JP5939620B2 - Computer system, server device, load balancing method, and program - Google Patents
Computer system, server device, load balancing method, and program Download PDFInfo
- Publication number
- JP5939620B2 JP5939620B2 JP2012048909A JP2012048909A JP5939620B2 JP 5939620 B2 JP5939620 B2 JP 5939620B2 JP 2012048909 A JP2012048909 A JP 2012048909A JP 2012048909 A JP2012048909 A JP 2012048909A JP 5939620 B2 JP5939620 B2 JP 5939620B2
- Authority
- JP
- Japan
- Prior art keywords
- resource
- server
- records
- server device
- job
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Description
本発明は、複数のサーバ装置を備えたコンピュータシステム、それに用いられるサーバ装置、コンピュータシステムにおける負荷を分散させるための負荷分散方法、及びこれらを実現するためのプログラムに関する。 The present invention relates to a computer system including a plurality of server devices, a server device used therefor, a load distribution method for distributing loads in the computer system, and a program for realizing them.
従来から、複数のクライアントからの大量の処理要求に対応するため、複数台のアプリケーションサーバ(以下「APサーバ」と表記する。)とロードバランサとで構築されたシステムが利用されている。このうち、ロードバランサは、クライアントからの処理要求を一元的に管理する装置であり、Push型でリクエストをAPサーバに送信する。複数のクライアントから送信されてきた処理要求は、ロードバランサによって、各APに均等に振分けられる。この結果、システムの負荷分散が図られる。 Conventionally, a system constructed by a plurality of application servers (hereinafter referred to as “AP servers”) and a load balancer is used in order to cope with a large amount of processing requests from a plurality of clients. Among these, the load balancer is a device that centrally manages processing requests from clients, and transmits a request to the AP server in a Push type. Processing requests transmitted from a plurality of clients are equally distributed to each AP by the load balancer. As a result, system load distribution is achieved.
但し、ロードバランサは、各APサーバのリソース状況及び負荷状況を考慮する機能を備えていないため、各APサーバに処理可能量以上の処理要求が送信されてしまう場合がある。この場合、処理速度が低下したり、オーバーフローによって処理が不能となったりする可能性がある。 However, since the load balancer does not have a function that considers the resource status and load status of each AP server, there may be a case where a processing request exceeding the processable amount is transmitted to each AP server. In this case, there is a possibility that the processing speed decreases or the processing becomes impossible due to overflow.
このため、特許文献1は、ロードバランサを設置せず、APサーバ自体に処理要求を分散処理させる機能を備えさせたシステムを提案している。具体的には、特許文献1に開示されたシステムでは、クライアントからの処理要求を受信したAPサーバは、各APサーバの負荷状況に応じて、処理要求に対する処理を行なうAPサーバを決定し、そこに処理要求を送信する。また、各APサーバは、他のAPサーバからリクエストを受信すると、自己の負荷状況に応じて、自身で処理を行なうか、別のAPサーバに処理の代行を求めるかを決定することもできる。 For this reason, Patent Document 1 proposes a system in which a load balancer is not installed, and the AP server itself has a function of processing processing requests in a distributed manner. Specifically, in the system disclosed in Patent Document 1, an AP server that has received a processing request from a client determines an AP server that performs processing for the processing request according to the load status of each AP server, Send a processing request to. In addition, when each AP server receives a request from another AP server, each AP server can also determine whether to perform the processing by itself or to request another AP server to perform the processing in accordance with its own load status.
特許文献1に開示されたシステムによれば、各APサーバに処理可能量以上の処理要求が送信されてしまう事態が回避されるので、システムにおける処理速度の低下及びオーバーフローの発生は抑制されると考えられる。 According to the system disclosed in Patent Document 1, since a situation where a processing request exceeding the processable amount is transmitted to each AP server is avoided, a decrease in processing speed and occurrence of overflow in the system are suppressed. Conceivable.
しかしながら、特許文献1に開示されたシステムにおいては、各APサーバは、自身又は他のAPサーバのリソースの使用状況を動的に監視しているわけではない。このため、特許文献1に開示されたシステムでは、一時的な処理速度の低下及びオーバーフローの発生は抑制できたとしても、システム全体における負荷分散を行なうことは困難である。 However, in the system disclosed in Patent Document 1, each AP server does not dynamically monitor the resource usage status of itself or another AP server. For this reason, in the system disclosed in Patent Document 1, it is difficult to perform load distribution in the entire system even if a temporary decrease in processing speed and occurrence of overflow can be suppressed.
本発明の目的の一例は、上記問題を解消し、複数のサーバ装置で構成されたシステムにおいて、各サーバ装置のリソースの使用状況を動的に鑑みた負荷分散を実施し得る、コンピュータシステム、サーバ装置、負荷分散方法、及びプログラムを提供することにある。 An example of an object of the present invention is to solve the above-described problem, and in a system composed of a plurality of server devices, a computer system and a server that can implement load distribution that dynamically considers the resource usage status of each server device An object is to provide a device, a load balancing method, and a program.
上記目的を達成するため、本発明におけるサーバ装置は、外部からの処理要求に応じてサービスを提供するシステムを構成し、且つ、前記サービスを提供するためのアプリケーションプログラムを実行する、サーバ装置であって、
当該サーバ装置のリソースの使用状況を特定するリソース情報を取得する、リソース情報取得部と、
前記アプリケーションプログラムの処理対象となるジョブを外部から取得し、取得したジョブを前記アプリケーションプログラムに渡して実行させる、処理制御部と、
前記処理制御部に対して、取得された前記リソース情報に基づいて、前記リソースの使用状況の目標となるように設定された第1の条件を満たすように、前記処理対象となるジョブの取得を行なわせ、そして、
取得された前記リソース情報が、前記リソースの使用状況についての上限として設定された第2の条件を越える場合に、前記アプリケーションプログラムに前記ジョブの実行をサスペンドさせる、リソース監視部と、
を備えている、ことを特徴とする。
In order to achieve the above object, a server apparatus according to the present invention is a server apparatus that constitutes a system that provides a service in response to an external processing request and that executes an application program for providing the service. And
A resource information acquisition unit that acquires resource information for identifying the resource usage status of the server device;
A processing control unit that obtains a job to be processed by the application program from the outside, passes the acquired job to the application program, and executes the job;
Based on the acquired resource information, the processing control unit acquires the job to be processed so as to satisfy a first condition set to be a target of the resource usage status. Let them do, and
A resource monitoring unit that causes the application program to suspend execution of the job when the acquired resource information exceeds a second condition set as an upper limit on the usage status of the resource;
It is characterized by having.
上記目的を達成するため、本発明におけるコンピュータシステムは、外部からの処理要求に応じてサービスを提供するシステムであって、
前記サービスを提供するためのアプリケーションプログラムを実行する、複数のサーバ装置を備え、
前記複数のサーバ装置それぞれは、
当該サーバ装置のリソースの使用状況を特定するリソース情報を取得する、リソース情報取得部と、
前記アプリケーションプログラムの処理対象となるジョブを外部から取得し、取得したジョブを前記アプリケーションプログラムに渡して実行させる、処理制御部と、
前記処理制御部に対して、取得された前記リソース情報に基づいて、前記リソースの使用状況の目標となるように設定された第1の条件を満たすように、前記処理対象となるジョブの取得を行なわせ、そして、
取得された前記リソース情報が、前記リソースの使用状況についての上限として設定された第2の条件を越える場合に、前記アプリケーションプログラムに前記ジョブの実行をサスペンドさせる、リソース監視部と、
を備えている、ことを特徴とする。
In order to achieve the above object, a computer system according to the present invention is a system that provides a service in response to an external processing request,
A plurality of server devices for executing an application program for providing the service;
Each of the plurality of server devices includes:
A resource information acquisition unit that acquires resource information for identifying the resource usage status of the server device;
A processing control unit that obtains a job to be processed by the application program from the outside, passes the acquired job to the application program, and executes the job;
Based on the acquired resource information, the processing control unit acquires the job to be processed so as to satisfy a first condition set to be a target of the resource usage status. Let them do, and
A resource monitoring unit that causes the application program to suspend execution of the job when the acquired resource information exceeds a second condition set as an upper limit on the usage status of the resource;
It is characterized by having.
また、上記目的を達成するため、本発明における負荷分散方法は、外部からの処理要求に応じてサービスを提供するシステムにおける負荷を軽減するための方法であって、
(a)前記システムを構成し、且つ、前記サービスを提供するためのアプリケーションプログラムを実行する、サーバ装置によって、当該サーバ装置のリソースの使用状況を特定するリソース情報を取得する、ステップと、
(b)前記サーバ装置によって、前記(a)のステップで取得された前記リソース情報に基づいて、前記リソースの使用状況の目標となるように設定された第1の条件を満たすように、前記アプリケーションプログラムの処理対象となるジョブを外部から取得する、ステップと、
(c)前記サーバ装置によって、前記(a)のステップで取得された前記リソース情報が、前記リソースの使用状況についての上限として設定された第2の条件を越える場合に、前記アプリケーションプログラムにおいて、前記ジョブの実行をサスペンドさせる、ステップと、
を有する、ことを特徴とする。
In order to achieve the above object, a load distribution method according to the present invention is a method for reducing a load in a system that provides a service in response to an external processing request,
(A) acquiring resource information for specifying a resource usage status of the server device by the server device that configures the system and executes an application program for providing the service; and
(B) Based on the resource information acquired in the step (a) by the server device, the application satisfies the first condition set to be a target of the usage status of the resource. Acquiring a job to be processed by the program from outside, step,
(C) In the application program, when the resource information acquired in the step (a) exceeds a second condition set as an upper limit on the usage status of the resource by the server device, Steps to suspend job execution, and
It is characterized by having.
更に、上記目的を達成するため、本発明におけるプログラムは、外部からの処理要求に応じてサービスを提供するシステムを構成し、且つ、前記サービスを提供するためのアプリケーションプログラムを実行する、コンピュータに、
(a)当該コンピュータのリソースの使用状況を特定するリソース情報を取得する、ステップと、
(b)前記(a)のステップで取得された前記リソース情報に基づいて、前記リソースの使用状況の目標となるように設定された第1の条件を満たすように、前記アプリケーションプログラムの処理対象となるジョブを外部から取得する、ステップと、
(c)前記(a)のステップで取得された前記リソース情報が、前記リソースの使用状況についての上限として設定された第2の条件を越える場合に、前記アプリケーションプログラムにおいて、前記ジョブの実行をサスペンドさせる、ステップと、
を実行させる、ことを特徴とする。
Furthermore, in order to achieve the above object, a program according to the present invention configures a system that provides a service in response to an external processing request, and executes an application program for providing the service.
(A) obtaining resource information for identifying resource usage status of the computer; and
(B) Based on the resource information acquired in the step (a), the processing target of the application program is set so as to satisfy a first condition set to be a target of the usage status of the resource. Get the job from outside, step,
(C) Suspend the execution of the job in the application program when the resource information acquired in step (a) exceeds a second condition set as an upper limit on the usage status of the resource. Let the steps and
Is executed.
以上のように、本発明によれば、複数のサーバ装置で構成されたシステムにおいて、各サーバ装置のリソースの使用状況を動的に鑑みた負荷分散を実施することができる。 As described above, according to the present invention, in a system constituted by a plurality of server devices, it is possible to implement load distribution that dynamically considers the resource usage status of each server device.
(実施の形態)
以下、本発明の実施の形態における、コンピュータシステム、サーバ装置、負荷分散方法、及びプログラムについて、図1〜図4を参照しながら説明する。
(Embodiment)
Hereinafter, a computer system, a server device, a load distribution method, and a program according to an embodiment of the present invention will be described with reference to FIGS.
[システム構成]
最初に、本発明の実施の形態におけるコンピュータシステムの構成について図1を用いて説明する。図1は、本発明の実施の形態におけるコンピュータシステムの全体構成を示すブロック図である。
[System configuration]
First, the configuration of the computer system according to the embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram showing an overall configuration of a computer system according to an embodiment of the present invention.
図1に示すように、本実施の形態におけるコンピュータシステム100は、外部のユーザからの処理要求に応じてサービスを提供するためのシステムである。コンピュータシステム100は、サービスの提供のためのアプリケーションプログラムを実行するサーバ装置(以下「APサーバ」と表記する。)40を備えている。 As shown in FIG. 1, a computer system 100 according to the present embodiment is a system for providing a service in response to a processing request from an external user. The computer system 100 includes a server device (hereinafter referred to as “AP server”) 40 that executes an application program for providing a service.
このコンピュータシステム100においては、後述するように、APサーバ40の負荷の分散を図ることが目的とされている。なお、図1の例では、3台のサーバ装置40が例示されているが、本実施の形態においてサーバ装置40の台数は特に限定されるものではない。
The computer system 100 is intended to distribute the load on the
また、図1に示すように、本実施の形態では、コンピュータシステム100は、APサーバ40に加えて、データベースサーバ(以下「DBサーバ」と表記する)30と、複数のWebサーバ20とを備えている。また、Webサーバ20は、互いに接続されず、DBサーバ20に接続されている。同様に、APサーバ40も、互いに接続されず、DBサーバ20に接続される。つまり、DBサーバ30は、Webサーバ20とAPサーバ40との間に介在するように配置されており、コンピュータシステム100は、三層構造によって構築されている。
As shown in FIG. 1, in the present embodiment, the computer system 100 includes a database server (hereinafter referred to as “DB server”) 30 and a plurality of
また、Webサーバ20には、ユーザのクライアント端末10が接続されており、ユーザの処理要求は、クライアント端末10から、Webサーバ20へと送信される。そして、Webサーバ20は、送信されたユーザの処理要求を受け取り、これをDBサーバ30に送信する。
Further, the user's
図1に示すように、DBサーバ30は、記憶装置(図1において図示せず)の記憶領域に構築されたデータベース33を備え、データベース33上には、「ページ」と呼ばれるデータ領域32が作成されている。また、データ領域32内には、データが書き込まれ、書き込まれたデータは、「レコード」と呼ばれる単位で保持される。なお、以降においては、データ領域32は、「ページ32」と表記する。また、1レコード単位で保持されているデータを「レコード31」と表記する。
As shown in FIG. 1, the
DBサーバ30のページ32へのレコード31の書込みは、上述のWebサーバ20によって行なわれている。Webサーバ20は、クライアント端末10から処理要求を受け付けると、DBサーバ30にアクセスし、データベース33上に、受け付けた処理要求をレコード31として(1処理要求=1レコード)書き込みを実行する。また、データベース33には、書き込みが必要な項目として、処理要求の状態を表すステータスが設けられている。よって、Webサーバは、受け付けた処理要求をレコード31に書き込む際は、ステータスに「未処理」と書き込む。
Writing of the
APサーバ40は、DBサーバ30のページ32に保持されているレコード31のうち、ステータスが未処理となっているレコード31を、処理対象となるジョブとして取得する。このとき、APサーバ40は、レコード31を取得すると同時に、該当するステータスに「処理中」と書き込む。また、APサーバ40は、取得したレコード31の処理が完了すると、更に該当するステータスに「完了」と書き込む。
The
[装置構成]
続いて、本実施の形態におけるAPサーバ(サーバ装置)40の構成について図2を用いて説明する。図2は、本発明の実施の形態におけるサーバ装置の構成を示すブロック図である。
[Device configuration]
Next, the configuration of the AP server (server device) 40 in the present embodiment will be described with reference to FIG. FIG. 2 is a block diagram showing the configuration of the server device according to the embodiment of the present invention.
図2に示す各APサーバ40は、上述したように、コンピュータシステム100の一部を構成し、サービスを提供するためのアプリケーションプログラム(以下「業務処理実行アプリケーション」と表記する。)42を実行する。また、図2に示すように、APサーバ40は、リソース情報取得部48と、処理制御部43と、リソース監視部47とを備えている。また、41は、これらを一括りとする監視処理部を示している。
As described above, each
リソース情報取得部48は、リソースの使用状況を特定するリソース情報を取得する。また、処理制御部43は、業務処理実行アプリケーション42の処理対象となるジョブを外部から取得し、取得したジョブを業務処理実行アプリケーション42に渡して実行させる。
The resource
リソース監視部47は、処理制御部43に対して、取得されたリソース情報に基づいて、リソース使用状況の目標となるように設定された第1の条件を満たすように、処理対象となるジョブの取得を行なわせる。 Based on the acquired resource information, the resource monitoring unit 47 sets the job to be processed so as to satisfy the first condition set to be the target of the resource usage status. Let the acquisition take place.
また、リソース監視部47は、取得されたリソース情報が、リソースの使用状況についての上限として設定された第2の条件を越える場合には、業務処理実行アプリケーションにジョブの実行をサスペンドさせる。 In addition, when the acquired resource information exceeds the second condition set as the upper limit on the resource usage status, the resource monitoring unit 47 causes the business process execution application to suspend job execution.
このように、本実施の形態では、各APサーバ40は、それぞれ独立に、リソースの使用状況を監視している。また、各APサーバは、第1の条件に基づくリソースの使用状況を適切なものにするための監視と、第2の条件に基づく突発的な高負荷状態の監視とを行なっており、リソースの使用状況は動的に監視されている。
As described above, in the present embodiment, each
ここで、本実施の形態におけるAPサーバ(サーバ装置)40の構成について更に具体的に説明する。まず、本実施の形態においては、各APサーバ40は、リソース情報取得部48、処理制御部43、及びリソース監視部47に加えて、能力計算部44と、ジョブ数計算部45と、入力受付部46とを備えている。
Here, the configuration of the AP server (server device) 40 in the present embodiment will be described more specifically. First, in the present embodiment, each
リソース情報取得部48は、本実施の形態では、システムの管理者が設定したポーリング間隔で、それが備えられたAPサーバ40のリソース情報を取得する。また、監視対象とすべきリソースの使用状況は、APサーバ40のシステム環境に応じて異なる。このため、リソース情報によって特定されるリソースの使用状況は、システムの管理者が、APサーバ40のシステム環境に応じて適宜選択することができる。
In this embodiment, the resource
具体的には、管理者は、以下の(1)〜(7)の中から、システムの環境に応じて、リソース情報によって特定されるリソースの使用状況を選択することができる。
(1)CPU使用率
(2)メモリ使用率
(3)スワップメモリ使用率
(4)オープンファイル数
(5)オープンスレッド数
(6)ハードディスクの使用量
(7)要求元が同一であり、且つ同時に実行されているプロセスの数
Specifically, the administrator can select the usage status of the resource specified by the resource information from the following (1) to (7) according to the system environment.
(1) CPU usage rate (2) Memory usage rate (3) Swap memory usage rate (4) Number of open files (5) Number of open threads (6) Hard disk usage (7) Requesters are the same and at the same time The number of processes that are running
また、本実施の形態では、リソース情報取得部48は、例えば、OS標準コマンドの実行、カーネルパラメータの参照などによって、リソース情報を取得することができる。但し、リソース情報取得部48がリソース情報を取得する際の具体的な手法は、APサーバ40が搭載するオペレーティングシステム(OS)によって異なっており、特に限定されるものではない。
In the present embodiment, the resource
入力受付部46は、外部から入力される情報のインターフェースである。システムの管理者が、システムの運用を開始する際に、入力機器又は端末装置を用いて、第1の条件及び第2の条件を入力すると、入力受付部46は、これらを受け付けてリソース監視部47に入力する。第1の条件及び第2の条件は、システムの管理者によって、適宜設定される。
The
本実施の形態において、第1の条件としては、リソースの使用状況の適正値(適正使用量、適正使用率)例えば、適正CPU使用率、適正メモリ使用率、適正オープンファイル数等が挙げられる。第1の条件は、APサーバ40が使用を求めるリソースの適正な使用量(又は使用率)である。また、第2の条件としては、リソースの使用状況の上限値、例えば、CPU使用率の上限値、メモリ使用率の上限値、オープンファイル数の上限値等が挙げられる。第2の条件は、APサーバ40が使用を許可するリソースの使用量(又は使用率)の上限値である。
In the present embodiment, the first condition includes an appropriate value (appropriate usage amount, appropriate usage rate) of the resource usage status, for example, an appropriate CPU usage rate, an appropriate memory usage rate, an appropriate number of open files, and the like. The first condition is an appropriate usage amount (or usage rate) of the resource that the
また、管理者は、更に、リソース情報取得部48がリソース情報の取得を行う際のポーリング間隔を設定することもできる。この場合、管理者は、入力機器又は端末装置を用いて、設定したポーリング間隔を、入力受付部46に入力する。
The administrator can also set a polling interval when the resource
また、本実施の形態では、リソース監視部47は、リソース情報で特定されるリソースの使用状況が、第1の条件である適正値に最も近くなるように、処理制御部43によるジョブの取得を制御する。これにより、コンピュータシステム100における負荷分散が行なわれる。
Further, in the present embodiment, the resource monitoring unit 47 acquires the job by the
具体的には、リソース監視部47は、リソース情報取得部48が取得したリソース情報で特定されるリソースの使用状況と、第1の条件である適正値とを比較し、リソースの使用状況が適切かどうかを判定する。
Specifically, the resource monitoring unit 47 compares the resource usage specified by the resource information acquired by the resource
そして、判定の結果、リソースの使用状況が適正値を上回っている場合は、リソース監視部47は、リソースの使用状況が適正値に近づくように、処理制御部43に対して、処理対象となるジョブの取得をサスペンドさせる。
If the resource usage status exceeds the appropriate value as a result of the determination, the resource monitoring unit 47 becomes a processing target for the
具体的には、処理制御部43は、SQL文の発行によってDBサーバ30とデータのやり取りを行なうので、リソース監視部47は、処理制御部43に対して、未処理レコード取得のためのSELECT文の発行をサスペンドするようにメッセージを送信する。そして、リソースの使用状況が適正値を下回った時点で、リソース監視部47は、処理制御部43に対して、サスペンドしていたSELECT文の発行を再開するようメッセージを送信する。
Specifically, since the
また、本実施の形態では、リソース監視部47は、リソース情報で特定されるリソースの使用状況が、第2の条件である上限値を超えた場合に、業務処理実行アプリケーション42に対して実行中のジョブをサスペンドさせる。具体的には、リソース監視部47は、処理制御部43から、業務処理実行アプリケーション42に対して、実行中のジョブをサスペンドする旨のメッセージを送信する。これにより、APサーバ40がリソースの枯渇を原因としてダウンする事が防止される。
In the present embodiment, the resource monitoring unit 47 is executing the business
なお、この時の実行中のジョブのサスペンドは、後から実行されたジョブから順に行なわれる。そして、リソース監視部47は、リソースの使用状況が上限値を下回った時点で、サスペンドされたジョブが、先にサスペンドされたジョブから順に再開されるように、処理制御部43を通じて、業務処理実行アプリケーション42に対してメッセージを送信する。
At this time, the job being executed is suspended in order from the job executed later. Then, the resource monitoring unit 47 executes the business process through the
また、本実施の形態では、処理制御部43は、上述したように、DBサーバ30に対してSQL文を発行することによって、クライアント端末10からの処理要求のレコード31をジョブとして取得する。そして、処理制御部43は、レコード31を取得すると、リソース監視部47からSQL文の発行をサスペンドするメッセージを受け取らない限り、取得したレコード31を、APサーバ40の業務処理実行アプリケーション42に引き渡し、実行させる。
In the present embodiment, as described above, the
また、処理制御部43は、ステータスが「未処理」であり、且つ、他のAPサーバ40のトランザクションによってロックがかけられていないレコード31を取得する。なお、この時、何らかの理由で、DBサーバ30のDBMS(Data Base Management System)のロックが使用できない場合がある。この場合は、処理制御部43は、レコード31を取得する際、明示的にロックを宣言することができ、これにより、複数のAPサーバ40によって重複して同じレコード31が取得される事態は回避される。
Further, the
なお、上述したように、処理制御部43は、リソース監視部47からSQL文(SELECT文)の発行をサスペンドするメッセージを受け取った場合は、SQL文の発行を再開するメッセージを受け取るまで、SQL文の発行をサスペンドする。
As described above, when the
また、上述したように、処理制御部43は、リソース監視部47から、実行中のジョブをサスペンドする旨のメッセージを送信するように指示されると、メッセージを送信する。これにより、処理制御部43が、リソース監視部47からの指示によって、サスペンドしたジョブを再開する旨のメッセージを送信するまで、業務処理実行アプリケーション42は、実行開始時間が最も遅いジョブから順にジョブの実行をサスペンドする。
Further, as described above, the
更に、本実施の形態では、レコード31の取得時において、処理制御部43は、DBサーバ30から、レコード31の総数と、ステータスが未処理になっているレコード31の総数とを取得し、これらを、ジョブ数計算部45と、能力計算部44とに送信することができる。
Furthermore, in the present embodiment, when acquiring the
能力計算部44は、コンピュータシステム100を構成する他のAPサーバ40の能力(例えば、同時処理ジョブ件数等)Aを計算することができる。具体的には、能力計算部44は、処理制御部43から受け取ったレコード31の総数R1とステータスが未処理になっているレコード31の総数R3とを用いて、以下の式(1)に基づいて、他のAPサーバの処理能力Aを算出する。
The
A=(R1−R2)−R3・・・・・(1)
R1:総レコード数
R2:自サーバで処理したレコードの数
R3:ステータスが未処理のレコードの数
A = (R1-R2) -R3 (1)
R1: Total number of records R2: Number of records processed by the local server R3: Number of records whose status is not processed
ジョブ数計算部45は、それを備えているAPサーバ40の能力(例えば、同時実行可能ジョブ数)Bと、能力計算部44によって計算された他のAPサーバ40の能力Aと、を比較し、比較結果に応じて、制御処理部43が取得するジョブの数を計算することができる。
The job
具体的には、まず、ジョブ数計算部45は、他のAPサーバ40の処理能力も鑑みて、自APサーバ40によって取得及び処理するレコードの数(ジョブ数)を決定すべく、α(=A−B)を算出する。そして、ジョブ数計算部45は、算出したαの値に基づいて、以下の(a)〜(b)に示すように、制御処理部43によって取得すべきジョブの数を決定する。
Specifically, first, the job
(a)α>0の場合(A>B)
この場合は、他のAPサーバの処理能力が、自APサーバの処理能力を上回るので、まず、ジョブ数計算部45は、ステータスが「未処理」のレコードの数R3から、他のAPサーバの処理能力Aを減算する。そして、ジョブ数計算部45は、減算によって得られたレコード数と、自APサーバの処理能力(同時実行可能ジョブ数)Bとを比較し、Bが大きければ「減算によって得られたレコード数」を、Bが小さければ「B」を、制御処理部43が次回取得すべきジョブの数として設定する。
(b)α<0の場合(A<B)
この場合は、他のAPサーバの処理能力が、自APサーバの処理能力を下回るので、ジョブ数計算部45は、自サーバの処理能力(同時実行可能ジョブ数)Bを制御処理部43が次回取得すべきジョブの数として設定する。但し、このとき、ジョブ数計算部45は、次回取得すべきジョブの数が、ステータスが「未処理」のレコードの数R3を越えないようにする。
(c)α=0の場合(A=B)
この場合は、他のAPサーバの処理能力と、自APサーバの処理能力とが同じとなるので、ジョブ数計算部45は、自APサーバの処理能力(同時実行可能ジョブ数)Bの半数を制御処理部43が次回取得すべきジョブの数として設定する。但し、このとき、ジョブ数計算部45は、次回取得すべきジョブの数が、ステータスが「未処理」のレコードの数R3を越えないようにする。
(A) When α> 0 (A> B)
In this case, since the processing capability of the other AP server exceeds the processing capability of the own AP server, the job
(B) When α <0 (A <B)
In this case, since the processing capability of the other AP server is lower than the processing capability of the own AP server, the job
(C) When α = 0 (A = B)
In this case, since the processing capability of the other AP server and the processing capability of the own AP server are the same, the job
[システム動作及び装置動作]
次に、本実施の形態におけるコンピュータシステム100及びAPサーバ40の動作について図3を用いて説明する。図3は、本実施の形態におけるコンピュータシステム及びサーバ装置の動作を示すフロー図である。以下の説明においては、適宜図1及び図2を参酌する。また、本実施の形態では、コンピュータシステム100を動作させることによって、負荷分散方法が実施される。よって、本実施の形態における負荷分散方法の説明は、以下のコンピュータシステム100の動作説明に代える。
[System operation and device operation]
Next, operations of the computer system 100 and the
最初に、図3に示すように、Webサーバ20は、クライアント端末10から処理要求を受け付けると、受け付けた処理要求を、DBサーバ30にレコード31として書き込む(ステップA1)。この時、Webサーバ20は、1つの処理要求を1つのレコード31として書き込む。
First, as shown in FIG. 3, when the
次に、各APサーバ4において、処理制御部43は、DBサーバ30にアクセスし、ステータスが「未処理」であり、且つ、他のAPサーバ40のトランザクションによってロックがかけられていないレコード31を取得する(ステップA2)。
Next, in each AP server 4, the
なお、ステップA2によるレコード31の取得に際して、通常あるサーバが取得したレコードは、DBMSによってロックが掛けられ、複数のサーバで同一のレコードが取得される事態は発生しない。但し、何らかの理由でDBMSのロックが使用できない場合は、処理制御部43は、レコード31を取得する際に、明示的にロックを宣言する。
Note that when the
次に、APサーバ40においては、ステップA2で取得されたジョブの実行に先立ち、リソース監視部47は、リソース情報取得部48によって取得されたリソース情報に基づいて、それが備えられたAPサーバ40のリソースの使用状況を監視する。そして、リソース監視部47は、APサーバ40のリソースの使用状況(システム負荷)が予め設定された基準値以下であるかどうかを判定する(ステップA3)。なお、「基準値」は、例えば、第1の条件である適正値と第2の条件である上限値との間の値に設定される。
Next, in the
ステップA3の判定の結果、APサーバ40のリソースの使用状況が基準値を超えている場合は、リソース管理部47は、リソースの使用状況が基準値を下回るまで待機状態となる。一方、ステップA3の判定の結果、APサーバ40のリソースの使用状況が基準値を超えていない場合は、リソース監視部47は、処理制御部43に対して、処理を実行するようメッセージを送信する。
As a result of the determination in step A3, if the resource usage status of the
リソース監視部47から処理実行のメッセージを受け取ると、処理制御部43は、APサーバ40にインストールされている業務処理実行アプリケーション42に対して、処理を実行するようメッセージを送信する(ステップA4)。この後、業務処理実行アプリケーション42は、取得されたレコードの処理を実行する。
Upon receiving the process execution message from the resource monitoring unit 47, the
次に、業務処理実行アプリケーション42によってレコードの処理が開始されると、リソース監視部47は、ジョブ(レコード)の実行中における、APサーバ40のリソースの使用状況を監視する。そして、リソース監視部47は、リソースの使用状況が設定された適正値(第1の条件)以下かどうかを判定する(ステップA5)。
Next, when record processing is started by the business
ステップA5の判定の結果、適正値以下でない場合(越えている場合)は、リソース監視部47は、処理制御部43に対して次回のSQL文の発行をサスペンドするよう、メッセージを送信する(ステップA6)。
If the result of determination in step A5 is not less than or equal to the appropriate value (exceeds), the resource monitoring unit 47 sends a message to the
次に、ステップA5が実行されると、処理制御部43は、APサーバ40のリソース使用状況が適正値を超えた時点における実行中のジョブの数を特定する(ステップA7)。そして、処理制御部43は、特定したジョブ数を同時実行可能ジョブ数Bとし、これを能力計算部44及びジョブ数計算部45に送信する。
Next, when step A5 is executed, the
次に、能力計算部44は、処理制御部43を通じてDBサーバ30にアクセスし、総レコード数R1を取得する。同時に、能力計算部44は、ステータスが「未処理」であり、且つ他のサーバのトランザクションによってロックがかけられていないレコード31を検索し、そのレコード数R3も取得する。
Next, the
次に、能力計算部44は、取得した総レコード数R1と、ステータスが「未処理」のレコード数R3とを、上述した式(1)に適用して、他のAPサーバの処理能力Aを算出する(ステップA8)。
Next, the
次に、ジョブ数計算部45は、ステップA7で計算した同時実行可能ジョブ数Bと、ステップA8で計算された他のAPサーバの処理能力Aとを用いて、α(=A−B)を算出する。そして、ジョブ数計算部45は、算出したαの値に基づいて、上述した(a)〜(b)の条件を用いて、制御処理部43によって次回に取得すべきジョブの数を決定する(ステップA9)。
Next, the job
ステップA9が実行されると、ジョブ数計算部45は、設定した取得すべきジョブ数を、処理制御部43に送信する。これにより、処理制御部43は、ステップA2を再度実行する。具体的には、処理制御部43は、SQL文を発行して、取得すべきジョブ数の数だけレコード31を取得する。
When step A9 is executed, the job
また、上述したステップA5の判定の結果、適正値以下である場合は、リソース監視部47は、処理制御部43に対して、発行がサスペンドされているSQL文の発行を再開するようメッセージを送信する(ステップA10)。なお、発行はサスペンドされているSQL文が存在しない場合は、ステップA10の処理は省略される。
If the result of determination in step A5 is not more than the appropriate value, the resource monitoring unit 47 sends a message to the
次に、リソース監視部47は、APサーバ40のリソース使用状況が上限値(第2の条件)以下であるかどうかを判定する(ステップA11)。ステップA11の判定の結果、リソースの使用状況が上限値を超えていない場合は、リソース監視部47は、処理制御部43に、再度ステップA2を実行するよう指示を行なう。これにより、処理制御部43は、DBサーバ30にアクセスし、ステータスが「未処理」であり、他のAPサーバ40のトランザクションによってロックがかけられていないレコード31を取得する。
Next, the resource monitoring unit 47 determines whether the resource usage status of the
一方、ステップA11の判定の結果、APサーバ40のリソース使用状況が上限値以下でない場合(上限値を超えている場合)は、リソース監視部47は、処理制御部43を通じて、業務処理実行アプリケーション42に対して、実行中のジョブを実行開始時間が遅いものから順にサスペンドするよう、メッセージを送信する(ステップA12)。
On the other hand, if the resource usage status of the
また、ステップA12の実行後、監視部47は、更に、APサーバ40のリソース使用状況が上限値を下回った場合は、サスペンドしたジョブを先にサスペンドした物から順に再開する旨のメッセージを、処理制御部43を通じて、業務処理実行アプリケーション42に送信する。その後、リソース監視部47は、処理制御部43に、再度ステップA2を実行するよう指示を行なう。
In addition, after the execution of step A12, the monitoring unit 47 further processes a message indicating that the suspended job is resumed in order from the first suspended one when the resource usage status of the
[実施の形態における効果]
以上説明したように、本実施の形態では、ロードバランサを用いることなく、各APサーバ40がリソースの使用状況を動的に監視している。また、各APサーバは、リソース使用状況の上限値に基づく監視だけでなく、リソース使用状況の適正値に基づく監視も行なっているため、一時的な処理速度の低下及びオーバーフローの発生の抑制だけでなく、システム全体における負荷の分散も可能となる。
[Effects of the embodiment]
As described above, in the present embodiment, each
[変形例]
上述の図1〜図3に示した例では、コンピュータシステム100は、DBサーバ30を備えているが、本実施の形態はこの例に限定されるものではない。本実施の形態におけるコンピュータシステムは、DBサーバ30の代わりに、クライアント端末10から受け付けた処理要求を中継する機能を有する中継サーバを備えていても良い。その場合、各APサーバ40は、DBサーバ30にアクセスする代わりに、中継サーバの共有メモリに対してアクセスして、ジョブを取得する。この点以外については、図1〜図3に示した例と同様である。
[Modification]
In the example shown in FIGS. 1 to 3 described above, the computer system 100 includes the
[プログラム]
本発明の実施の形態におけるプログラムは、コンピュータに、図3に示すステップA2〜A12を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態におけるAPサーバを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、処理制御部43、能力計算部44、ジョブ数計算部45、入力受付部46、リソース監視部47、及びリソース情報取得部48として機能し、処理を行なう。
[program]
The program in the embodiment of the present invention may be a program that causes a computer to execute steps A2 to A12 shown in FIG. By installing and executing this program on a computer, the AP server in the present embodiment can be realized. In this case, the CPU (Central Processing Unit) of the computer functions as a
ここで、本実施の形態におけるプログラムを実行することによって、APサーバ40を実現するコンピュータについて図4を用いて説明する。図4は、本発明の実施の形態におけるサーバ装置を実現するコンピュータの一例を示すブロック図である。
Here, a computer that realizes the
図4に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェース114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェース117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
As shown in FIG. 4, the
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェース117を介して接続されたインターネット上で流通するものであっても良い。
The
また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェース114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
Specific examples of the
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェース117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
The data reader /
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
Specific examples of the
以上のように、本発明によれば、複数のサーバ装置で構成されたシステムにおいて、各サーバ装置のリソースの使用状況を動的に鑑みた負荷分散を実施することができる。本発明は、Webアプリケーションサーバを備えたシステムに利用でき、このようなシステムの構築及び保守を行なう情報通信業のSI部門などで特に有用である。 As described above, according to the present invention, in a system constituted by a plurality of server devices, it is possible to implement load distribution that dynamically considers the resource usage status of each server device. The present invention can be used in a system including a Web application server, and is particularly useful in the SI department of the information communication industry that constructs and maintains such a system.
10 クライアント端末
20 Webサーバ
30 DBサーバ
31 レコード
32 ページ
33 データベース
40 APサーバ(サーバ装置)
41 監視処理部
42 業務処理実行アプリケーション
43 処理制御部
44 能力計算部
45 ジョブ数計算部
46 入力受付部
47 リソース監視部
48 リソース情報取得部
100 コンピュータシステム
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェース
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェース
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
10
DESCRIPTION OF
112
Claims (7)
当該サーバ装置のリソースの使用状況を特定するリソース情報を取得する、リソース情報取得部と、
処理要求が書き込まれたレコードを保持するデータベースサーバから、ステータスが未処理となっている前記レコードを、前記アプリケーションプログラムの処理対象となるジョブとして取得し、その際、前記データベースサーバから、更に、前記レコードの総数と、ステータスが未処理となっているレコードの総数とを取得し、そして、取得したジョブを前記アプリケーションプログラムに渡して実行させる、処理制御部と、
前記処理制御部に対して、取得された前記リソース情報が特定する前記リソースの使用状況が、第1の条件である適正値に最も近くなるように、前記処理対象となるジョブの取得を行なわせ、そして、
取得された前記リソース情報が特定する前記リソースの使用状況が、第2の条件である上限値を越える場合に、前記処理制御部に対して、前記リソースの使用状況が前記適正値に近づくように、前記アプリケーションプログラムに前記ジョブの実行をサスペンドさせる、リソース監視部と、
前記レコードの総数から、当該サーバ装置が処理したレコードの数と、ステータスが未処理となっているレコードの総数と、を減算して得られた値を、前記システムを構成する他のサーバ装置の能力として計算する、能力計算部と、
計算された前記他のサーバ装置の能力と、当該サーバ装置の能力である、当該サーバ装置が同時に実行できるレコード数と、を比較し、比較結果に応じて、前記処理制御部が次に前記ジョブを取得する際における、前記ジョブの数を計算する、ジョブ数計算部と、
を備えている、ことを特徴とするサーバ装置。 A server device that constitutes a system that provides a service in response to an external processing request, and that executes an application program for providing the service,
A resource information acquisition unit that acquires resource information for identifying the resource usage status of the server device;
From the database server that holds the record in which the processing request is written, the record whose status is not processed is acquired as a job to be processed by the application program. A processing control unit that obtains the total number of records and the total number of records whose status is unprocessed, and passes the acquired job to the application program for execution;
Let the processing control unit acquire the job to be processed so that the usage status of the resource specified by the acquired resource information is closest to the appropriate value that is the first condition. And
When the usage status of the resource specified by the acquired resource information exceeds an upper limit that is a second condition, the usage status of the resource approaches the appropriate value for the processing control unit. A resource monitoring unit that causes the application program to suspend execution of the job;
From the total number of records, the value obtained by subtracting the number of records processed by the server device and the total number of records whose status is unprocessed is obtained from other server devices constituting the system. Ability calculation part that calculates as ability,
The calculated capability of the other server device is compared with the number of records that can be executed simultaneously by the server device, which is the capability of the server device. A job number calculation unit for calculating the number of jobs when acquiring
The server apparatus characterized by the above-mentioned.
請求項1に記載のサーバ装置。 The resource information is the usage status of the resource, the CPU usage rate, the memory usage rate, the swap memory usage rate, the number of open files, the number of open threads, the usage amount of the storage device provided in the server device, and Identify at least one of the number of processes that have the same request source and are running simultaneously,
The server device according to claim 1.
前記サービスを提供するためのアプリケーションプログラムを実行する、複数のサーバ装置を備え、
前記複数のサーバ装置それぞれは、
当該サーバ装置のリソースの使用状況を特定するリソース情報を取得する、リソース情報取得部と、
処理要求が書き込まれたレコードを保持するデータベースサーバから、ステータスが未処理となっている前記レコードを、前記アプリケーションプログラムの処理対象となるジョブとして取得し、その際、前記データベースサーバから、更に、前記レコードの総数と、ステータスが未処理となっているレコードの総数とを取得し、そして、取得したジョブを前記アプリケーションプログラムに渡して実行させる、処理制御部と、
前記処理制御部に対して、取得された前記リソース情報が特定する前記リソースの使用状況が、第1の条件である適正値に最も近くなるように、前記処理対象となるジョブの取得を行なわせ、そして、
取得された前記リソース情報が特定する前記リソースの使用状況が、第2の条件である上限値を越える場合に、前記処理制御部に対して、前記リソースの使用状況が前記適正値に近づくように、前記アプリケーションプログラムに前記ジョブの実行をサスペンドさせる、リソース監視部と、
前記レコードの総数から、当該サーバ装置が処理したレコードの数と、ステータスが未処理となっているレコードの総数と、を減算して得られた値を、前記システムを構成する他のサーバ装置の能力として計算する、能力計算部と、
計算された前記他のサーバ装置の能力と、当該サーバ装置の能力である、当該サーバ装置が同時に実行できるレコード数と、を比較し、比較結果に応じて、前記処理制御部が次に前記ジョブを取得する際における、前記ジョブの数を計算する、ジョブ数計算部と、
を備えている、ことを特徴とするコンピュータシステム。 A system that provides services in response to processing requests from outside,
A plurality of server devices for executing an application program for providing the service;
Each of the plurality of server devices includes:
A resource information acquisition unit that acquires resource information for identifying the resource usage status of the server device;
From the database server that holds the record in which the processing request is written, the record whose status is not processed is acquired as a job to be processed by the application program. A processing control unit that obtains the total number of records and the total number of records whose status is unprocessed, and passes the acquired job to the application program for execution;
Let the processing control unit acquire the job to be processed so that the usage status of the resource specified by the acquired resource information is closest to the appropriate value that is the first condition. And
When the usage status of the resource specified by the acquired resource information exceeds an upper limit that is a second condition, the usage status of the resource approaches the appropriate value for the processing control unit. A resource monitoring unit that causes the application program to suspend execution of the job;
From the total number of records, the value obtained by subtracting the number of records processed by the server device and the total number of records whose status is unprocessed is obtained from other server devices constituting the system. Ability calculation part that calculates as ability,
The calculated capability of the other server device is compared with the number of records that can be executed simultaneously by the server device, which is the capability of the server device. A job number calculation unit for calculating the number of jobs when acquiring
A computer system comprising:
(a)前記システムを構成し、且つ、前記サービスを提供するためのアプリケーションプログラムを実行する、サーバ装置によって、当該サーバ装置のリソースの使用状況を特定するリソース情報を取得する、ステップと、
(b)前記サーバ装置によって、前記(a)のステップで取得された前記リソース情報が特定する前記リソースの使用状況が、第1の条件である適正値に最も近くなるように、処理要求が書き込まれたレコードを保持するデータベースサーバから、ステータスが未処理となっている前記レコードを、前記アプリケーションプログラムの処理対象となるジョブとして取得し、その際、前記データベースサーバから、更に、前記レコードの総数と、ステータスが未処理となっているレコードの総数とを取得する、ステップと、
(c)前記サーバ装置によって、前記(a)のステップで取得された前記リソース情報が特定する前記リソースの使用状況が、第2の条件である上限値を越える場合に、前記リソースの使用状況が前記適正値に近づくように、前記アプリケーションプログラムにおいて、前記ジョブの実行をサスペンドさせる、ステップと、
(d)前記サーバ装置によって、前記レコードの総数から、当該サーバ装置が処理したレコードの数と、ステータスが未処理となっているレコードの総数と、を減算して得られた値を、前記システムを構成する他のサーバ装置の能力として計算する、ステップと、
(e)前記サーバ装置によって、前記(d)のステップで計算された前記他のサーバ装置の能力と、前記サーバ装置の能力である、当該サーバ装置が同時に実行できるレコード数と、を比較し、比較結果に応じて、次の前記(b)のステップで前記ジョブを取得する際における、前記ジョブの数を計算する、ステップと、
を有し、
前記(d)のステップ及び前記(e)のステップを、前記(a)〜(c)のステップが少なくとも一回実行された後に、実行する、ことを特徴とする負荷分散方法。 A method for reducing a load on a system that provides a service in response to an external processing request,
(A) acquiring resource information for specifying a resource usage status of the server device by the server device that configures the system and executes an application program for providing the service; and
(B) A processing request is written by the server device so that the usage status of the resource specified by the resource information acquired in step (a) is closest to the appropriate value that is the first condition. From the database server that holds the recorded records, the records whose status is unprocessed are acquired as jobs to be processed by the application program. At that time, from the database server, the total number of records , Get the total number of records whose status is unprocessed,
(C) When the usage status of the resource specified by the resource information acquired in the step (a) exceeds the upper limit that is the second condition, the usage status of the resource is determined by the server device. Suspending the execution of the job in the application program so as to approach the appropriate value; and
(D) A value obtained by subtracting, from the total number of records by the server device, the number of records processed by the server device and the total number of records whose status is not processed, Calculating as the capacity of other server devices constituting
(E) The server device compares the capacity of the other server device calculated in the step (d) with the number of records that can be executed simultaneously by the server device, which is the capacity of the server device; Calculating the number of jobs when acquiring the jobs in the next step (b) according to the comparison result; and
Have
The load distribution method, wherein the step (d) and the step (e) are executed after the steps (a) to (c) are executed at least once.
請求項4に記載の負荷分散方法。 The resource information is the usage status of the resource, the CPU usage rate, the memory usage rate, the swap memory usage rate, the number of open files, the number of open threads, the usage amount of the storage device provided in the server device, and Identify at least one of the number of processes that have the same request source and are running simultaneously,
The load distribution method according to claim 4.
(a)当該コンピュータのリソースの使用状況を特定するリソース情報を取得する、ステップと、
(b)前記(a)のステップで取得された前記リソース情報が特定する前記リソースの使用状況が、第1の条件である適正値に最も近くなるように、処理要求が書き込まれたレコードを保持するデータベースサーバから、ステータスが未処理となっている前記レコードを、前記アプリケーションプログラムの処理対象となるジョブとして取得し、その際、前記データベースサーバから、更に、前記レコードの総数と、ステータスが未処理となっているレコードの総数とを取得する、ステップと、
(c)前記(a)のステップで取得された前記リソース情報が特定する前記リソースの使用状況が、第2の条件である上限値を越える場合に、前記リソースの使用状況が前記適正値に近づくように、前記アプリケーションプログラムにおいて、前記ジョブの実行をサスペンドさせる、ステップと、
(d)前記レコードの総数から、当該コンピュータが処理したレコードの数と、ステータスが未処理となっているレコードの総数と、を減算して得られた値を、前記システムを構成する他のコンピュータの能力として計算する、ステップと、
(e)前記(d)のステップで計算された前記他のコンピュータの能力と、当該コンピュータの能力である、当該コンピュータが同時に実行できるレコード数と、を比較し、比較結果に応じて、次の前記(b)のステップで前記ジョブを取得する際における、前記ジョブの数を計算する、ステップと、
を実行させ、
前記(d)のステップ及び前記(e)のステップを、前記(a)〜(c)のステップが少なくとも一回実行された後に、実行する、プログラム。 A computer that configures a system that provides a service in response to an external processing request and that executes an application program for providing the service.
(A) obtaining resource information for identifying resource usage status of the computer; and
(B) Holds a record in which a processing request is written so that the usage status of the resource specified by the resource information acquired in step (a) is closest to the appropriate value that is the first condition The record whose status is unprocessed is acquired from the database server as a job to be processed by the application program, and at that time, the total number of records and the status are unprocessed from the database server. The total number of records that are
(C) When the usage status of the resource specified by the resource information acquired in the step (a) exceeds an upper limit that is a second condition, the usage status of the resource approaches the appropriate value. Suspending the execution of the job in the application program,
(D) the total number of pre-Symbol record, the number of records that the computer has processed, the status is the total number of the record to untreated, a value obtained by subtracting, in addition to constituting the system Calculating as computer capacity, steps,
(E) the previous SL (d) the ability of the other computer calculated in step, is the ability of the computer compares the number of records the computer can run simultaneously, and depending on the comparison result, the following A step of calculating the number of the jobs when acquiring the jobs in the step of (b).
And execute
A program for executing the step (d) and the step (e) after the steps (a) to (c) are executed at least once.
請求項6に記載のプログラム。
The resource information includes the usage status of the resource as the CPU usage rate, the memory usage rate, the swap memory usage rate, the number of open files, the number of open threads, the usage amount of the storage device provided in the computer , and the request. Identify at least one of the number of processes that are originally the same and are running simultaneously;
The program according to claim 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012048909A JP5939620B2 (en) | 2012-03-06 | 2012-03-06 | Computer system, server device, load balancing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012048909A JP5939620B2 (en) | 2012-03-06 | 2012-03-06 | Computer system, server device, load balancing method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013186520A JP2013186520A (en) | 2013-09-19 |
JP5939620B2 true JP5939620B2 (en) | 2016-06-22 |
Family
ID=49387932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012048909A Active JP5939620B2 (en) | 2012-03-06 | 2012-03-06 | Computer system, server device, load balancing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5939620B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6668465B2 (en) * | 2016-05-20 | 2020-03-18 | 株式会社日立製作所 | Processing system and its program |
CN113495798B (en) * | 2020-03-20 | 2024-08-16 | 深圳市理邦精密仪器股份有限公司 | Method and system for selecting server based on informationized terminal |
CN112667560B (en) * | 2020-12-22 | 2023-01-24 | 深圳致星科技有限公司 | Data distribution device and computing platform based on FPGA |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000268012A (en) * | 1999-03-12 | 2000-09-29 | Nec Corp | Method and device for distributing load in client server system |
JP2007199811A (en) * | 2006-01-24 | 2007-08-09 | Hitachi Ltd | Program control method, computer and program control program |
JP5512215B2 (en) * | 2009-09-30 | 2014-06-04 | 株式会社日立システムズ | Job processing system and method, and program thereof |
JP5557590B2 (en) * | 2010-05-06 | 2014-07-23 | 株式会社日立製作所 | Load balancing apparatus and system |
-
2012
- 2012-03-06 JP JP2012048909A patent/JP5939620B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013186520A (en) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593152B1 (en) | Application hosting in a distributed application execution system | |
JP5653151B2 (en) | Cloud computing system, cloud computing system control method, and management application | |
JP6186787B2 (en) | Data transfer device, data transfer system, data transfer method and program | |
US8595361B2 (en) | Virtual machine software license management | |
JP4240062B2 (en) | Computer system, performance measurement method, and management server device | |
WO2012056596A1 (en) | Computer system and processing control method | |
JP6372074B2 (en) | Information processing system, control program, and control method | |
US20210389995A1 (en) | Information processing system and control method | |
US20110173319A1 (en) | Apparatus and method for operating server using virtualization technique | |
US7555621B1 (en) | Disk access antiblocking system and method | |
JP2019079334A (en) | Information processing apparatus, information processing system, and information processing method | |
JP5939620B2 (en) | Computer system, server device, load balancing method, and program | |
US10754368B1 (en) | Method and system for load balancing backup resources | |
KR102227061B1 (en) | Service system and control method of the same, and computer readable storage medium | |
JP6079357B2 (en) | Information processing apparatus, virtual PC thin client system, login load reduction method, and login load reduction program | |
JP2006243781A (en) | Method for controlling upper limit of multiplicity of server, management server, server, and program | |
JP6065843B2 (en) | Service level management apparatus, program, and method | |
JP6257296B2 (en) | Resource allocation device, resource allocation system, resource allocation method and program | |
JP4460512B2 (en) | Computer system and computer control method | |
JP6885441B2 (en) | License management device, license management method, and license management program | |
US20170168867A1 (en) | Information processing system and control method | |
KR20230063015A (en) | Apparatus and method for managing virtual machine cpu resource in virtualization server | |
JP2007179246A (en) | Method, program and server for computer management | |
JP6226666B2 (en) | Batch processing control program, batch processing system | |
JP2016015074A (en) | Load distribution processing program and load distribution processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20140609 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20150123 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150901 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160328 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160512 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5939620 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |