[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008071156A - Load distribution system, method and program - Google Patents

Load distribution system, method and program Download PDF

Info

Publication number
JP2008071156A
JP2008071156A JP2006249651A JP2006249651A JP2008071156A JP 2008071156 A JP2008071156 A JP 2008071156A JP 2006249651 A JP2006249651 A JP 2006249651A JP 2006249651 A JP2006249651 A JP 2006249651A JP 2008071156 A JP2008071156 A JP 2008071156A
Authority
JP
Japan
Prior art keywords
load
server
processing
target value
accommodation
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.)
Granted
Application number
JP2006249651A
Other languages
Japanese (ja)
Other versions
JP4340733B2 (en
Inventor
Toshio Touchi
敏夫 登内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006249651A priority Critical patent/JP4340733B2/en
Publication of JP2008071156A publication Critical patent/JP2008071156A/en
Application granted granted Critical
Publication of JP4340733B2 publication Critical patent/JP4340733B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a load distribution system, capable of performing a large volume of processing and attaining a convergent load distribution. <P>SOLUTION: A load coefficient determination means 260 determines a load coefficient 285 based on network configuration information 250. A load information exchange means 280 sets a state flag 340 to "load accommodation state" when the ratio of the load of an own server to the load of the other server exceeds an accommodation threshold 270, and determines a load target value based on the load of the own server, the load of the other server, and the load coefficient 285. The server name of the other server is stored in a transfer destination server name 335. A load accommodation means 220 determines whether the load of the own server exceeds the load target value or not when the state flag 340 is in the "load accommodation state", and transmits, when it exceeds the target value, a redirect response with the server of the transfer destination server name 335 as a redirect destination to a client. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、負荷分散システム、方法、及び、プログラムに関し、更に詳しくは、複数のサーバを有するネットワークシステムにおいて、サーバ負荷を分散させる負荷分散システム、方法、及び、プログラムに関する。   The present invention relates to a load distribution system, method, and program, and more particularly, to a load distribution system, method, and program for distributing server load in a network system having a plurality of servers.

クライアント−サーバ型のシステムにおいて、クライアントからの処理要求を分散させ、サーバ負荷の分散を図る負荷分散システムがある。従来の負荷分散システムの一例が、非特許文献1に記載されている。図13に、従来の負荷分散システムの構成を示す。この従来の負荷分散システム500は、複数のサーバで構成されるサーバ群501、負荷分散手段(ロードバランサ)510、及び、複数のクライアント端末で構成されるクライアント群520を有する。   In a client-server system, there is a load distribution system that distributes processing requests from clients and distributes server load. An example of a conventional load distribution system is described in Non-Patent Document 1. FIG. 13 shows the configuration of a conventional load distribution system. This conventional load distribution system 500 includes a server group 501 composed of a plurality of servers, a load distribution means (load balancer) 510, and a client group 520 composed of a plurality of client terminals.

クライアント群520内のクライアント端末(520−a〜520−c)は、サーバへの処理要求を発行する。ロードバランサ510は、ネットワーク530を介して、クライアント群520からの処理要求を受け取り、受け取った処理要求を、サーバ群501内のサーバ(501−a〜501−f)の何れかに振り分ける。ロードバランサ510は、処理要求を振り分ける際には、例えば、サーバ群501内のサーバからランダムにサーバを1つ選択する。クライアントからの処理要求を受信したサーバは、処理要求に従った処理を実行する。特許文献1では、このような構成により、ロードバランサ510を用いて、特定のサーバに対して処理が集中しないように制御し、サーバ群501内で、サーバの負荷を分散させている。   Client terminals (520-a to 520-c) in the client group 520 issue a processing request to the server. The load balancer 510 receives a processing request from the client group 520 via the network 530, and distributes the received processing request to any of the servers (501-a to 501-f) in the server group 501. For example, the load balancer 510 randomly selects one server from the servers in the server group 501 when distributing processing requests. The server that receives the processing request from the client executes processing according to the processing request. In Patent Document 1, with such a configuration, the load balancer 510 is used to control processing so as not to concentrate on a specific server, and the server load is distributed within the server group 501.

負荷分散システムの他の例としては、非特許文献2に記載されたものがある。図14は、非特許文献2に記載された負荷分散システム(DNSラウンドロビン)の構成を示す。この負荷分散システム600では、DNSの仕組みを用いて、サーバの負荷分散を図る。クライアント群620内のクライアント端末(620−a〜620−c)は、サーバからのサービスを受けるために、ローカルDNSサーバ670に、サーバのFQDN(Fully Qualified Domain Name)に対応するIPアドレスを質問する。ローカルDNSサーバ670は、FQDNとIPアドレスとの対応関係のエントリを有している(キャッシュしている)か否かを判断し、キャッシュしていなければ、上位のDNSサーバであるDNSロードバランサ650に問い合わせを行う。   Another example of the load distribution system is described in Non-Patent Document 2. FIG. 14 shows a configuration of a load distribution system (DNS round robin) described in Non-Patent Document 2. The load distribution system 600 uses a DNS mechanism to distribute the server load. The client terminals (620-a to 620-c) in the client group 620 inquire the local DNS server 670 about the IP address corresponding to the server's FQDN (Fully Qualified Domain Name) in order to receive services from the server. . The local DNS server 670 determines whether or not there is an entry (corresponding to the correspondence) between the FQDN and the IP address, and if it is not cached, the DNS load balancer 650 that is an upper DNS server. Make an inquiry.

DNSロードバランサ650は、各サーバ(601−a、601−b)の負荷を定期的に測定している。DNSロードバランサ650は、ローカルDNSサーバ670からIPアドレスの問い合わせを受けると、負荷が軽いサーバのIPアドレスを返答する。ローカルDNSサーバ670は、DNSロードバランサ650からIPアドレスの返答を受信すると、その応答をキャッシュして内部に保持すると共に、IPアドレスの質問を行ったクライアント端末に、IPアドレスを回答する。ローカルDNSサーバ670は、FQDNとIPアドレスとの対応関係をキャッシュしている場合には、DNSロードバランサ650への問い合わせを行わずに、クライアント端末にIPアドレスを回答する。   The DNS load balancer 650 periodically measures the load of each server (601-a, 601-b). When receiving an IP address inquiry from the local DNS server 670, the DNS load balancer 650 returns an IP address of a server with a light load. When the local DNS server 670 receives an IP address response from the DNS load balancer 650, the local DNS server 670 caches the response and stores it internally, and returns the IP address to the client terminal that has made the IP address inquiry. When the correspondence relationship between the FQDN and the IP address is cached, the local DNS server 670 returns the IP address to the client terminal without making an inquiry to the DNS load balancer 650.

例えば、クライアント端末620−aは、サーバからのサービスを受けるために、ローカルDNSサーバ670に、FQDNに対するIPアドレスの質問を行う。ローカルDNSサーバ670は、FQDNとIPアドレスとの対応関係をキャッシュしていなければ、上位のDNSロードバランサ650に問い合わせを行う。DNSロードバランサ650は、サーバ601−aの負荷が、サーバ601−bの負荷よりも軽いときには、サーバ601−aのIPアドレスを返答する。ローカルDNSサーバ670は、回答結果をキャッシュすると共に、クライアント端末620−aに、サーバ601−aのIPアドレスを回答する。このようにすることで、クライアント端末620−aは、負荷の軽いサーバ601−aから、サービスを受けることができる。   For example, the client terminal 620-a asks the local DNS server 670 about the IP address for the FQDN in order to receive a service from the server. If the correspondence relationship between the FQDN and the IP address is not cached, the local DNS server 670 makes an inquiry to the upper DNS load balancer 650. The DNS load balancer 650 returns the IP address of the server 601-a when the load of the server 601-a is lighter than the load of the server 601-b. The local DNS server 670 caches the response result and returns the IP address of the server 601-a to the client terminal 620-a. In this way, the client terminal 620-a can receive a service from the server 601-a with a light load.

負荷分散システムの他の例としては、特許文献1に記載されたものもある。図15は、特許文献1に記載された負荷分散(非集中型負荷分散)システムの構成を示している。負荷分散システム700は、複数のサーバ701を備え、各サーバ701が、処理要求検索部707と、位置情報解析部709と、処理要求転送部710とを備える。処理要求検索部707は、クライアント端末702内のクライアントアプリケーション703からの要求に該当するオブジェクトを検索する。その際、処理要求検索部707は、自装置(自サーバ)の負荷を参照して、自サーバでの処理が可能か否かを判断する。処理要求検索部707は、サーバ負荷が重く、処理が不可能であると判断すると、オブジェクト位置情報管理テーブルを参照して、同じ処理が実行可能なオブジェクトが存在する他のサーバを検索する。   Another example of the load balancing system is described in Patent Document 1. FIG. 15 shows a configuration of a load distribution (decentralized load distribution) system described in Patent Document 1. The load distribution system 700 includes a plurality of servers 701, and each server 701 includes a processing request search unit 707, a position information analysis unit 709, and a processing request transfer unit 710. The processing request search unit 707 searches for an object corresponding to the request from the client application 703 in the client terminal 702. At that time, the process request search unit 707 refers to the load of the own apparatus (own server) and determines whether or not the process on the own server is possible. When the process request search unit 707 determines that the server load is heavy and the process is impossible, the process request search unit 707 refers to the object position information management table and searches for another server in which an object that can execute the same process exists.

処理要求転送部710は、実際に処理を行うサーバを検索するために、処理要求検索部707が検索した他のサーバに対して、処理の依頼を行う。この依頼を受けた他のサーバは、処理要求検索部707により、そのサーバでの処理が可能か否かを判断し、その結果を、依頼元のサーバに返す。処理要求転送部710は、他のサーバでの処理が可能であれば、クライアントアプリケーション703に、転送先として、他のサーバを紹介する。処理可能でない場合には、処理可能なサーバの検索を続行する。   The process request transfer unit 710 requests a process to another server searched by the process request search unit 707 in order to search for a server that actually performs the process. The other server that has received this request determines whether or not processing by the server is possible by the processing request search unit 707 and returns the result to the requesting server. The processing request transfer unit 710 introduces another server as a transfer destination to the client application 703 if the processing can be performed by another server. If it cannot be processed, the search for a processable server is continued.

更に、負荷分散システムの他の例としては、特許文献2に記載されたものもある。図16は、特許文献2に記載された負荷分散システムの構成を示している。この負荷分散システム800は、ネットワークサービスサーバ負荷調整装置803を有する。ネットワークサービスサーバ負荷調整装置803は、分配率調整部807、分配中継部804、及び、変換テーブルvipを有する。分配中継部804は、クライアント群801からアクセス要求を受けると、受信パケットのヘッダ部にハッシュをかけ、ハッシュ値を基に変換テーブルvipを検索し、検索したサーバに、受信パケットを転送する。   Furthermore, as another example of the load distribution system, there is one described in Patent Document 2. FIG. 16 shows the configuration of the load distribution system described in Patent Document 2. The load distribution system 800 includes a network service server load adjustment device 803. The network service server load adjustment device 803 includes a distribution rate adjustment unit 807, a distribution relay unit 804, and a conversion table vip. Upon receiving an access request from the client group 801, the distribution relay unit 804 hashes the header portion of the received packet, searches the conversion table vip based on the hash value, and transfers the received packet to the searched server.

変換テーブルvipは、サーバ群805の数よりも多い、複数のスロットルから構成されている。ネットワークサービスサーバ負荷調整装置803は、サーバ群805内の各サーバの応答時間を測定し、応答時間が短いサーバは負荷が軽いサーバと推定して、多くのスロットルを割り当てる。負荷分散システム800では、多くのスロットルを割り当てたサーバに、多くの受信パケットが転送されることになり、負荷が分散される。この場合、負荷が重いサーバから負荷が軽いサーバにスロットルを割り当てていくことで、割り当てられたサーバの負荷が重くなり、そのスロットルを再割当てするという「振動」が発生する危険性がある。そこで、特許文献2では、割当てスロットル数を徐々に小さくすることで、割当てを収束させている。   The conversion table vip is composed of a plurality of throttles, which is larger than the number of server groups 805. The network service server load adjustment device 803 measures the response time of each server in the server group 805, and the server with a short response time is estimated as a server with a light load, and many throttles are allocated. In the load distribution system 800, many received packets are transferred to a server to which many throttles are assigned, and the load is distributed. In this case, by assigning a throttle from a server having a heavy load to a server having a light load, the load of the assigned server becomes heavy, and there is a risk of causing “vibration” in which the throttle is reassigned. Therefore, in Patent Document 2, the allocation is converged by gradually decreasing the allocation throttle number.

特開2003−256390号公報JP 2003-256390 A 特開平11−096128号公報Japanese Patent Laid-Open No. 11-096128 トニー ブルーク著「サーバ負荷分散技術」オライリー・ジャパン、2001年12月、pp.27−34"Server load balancing technology" by Tony Bruk, O'Reilly Japan, December 2001, pp. 27-34 トニー ブルーク著「サーバ負荷分散技術」オライリー・ジャパン、2001年12月、pp.4−8 #DNSラウンドロビン"Server load balancing technology" by Tony Bruk, O'Reilly Japan, December 2001, pp. 4-8 #DNS Round Robin

従来技術の第1の問題点は、大容量を処理するのに限界があるという点である。その理由は、一部の装置がボトルネックとなり、その装置の性能限界が全体の性能限界になるためである。例えば、非特許文献1に記載されている従来の負荷分散システム500(図13)では、クライアントからの全ての要求がロードバランサ510を通過することになり、ロードバランサ510の性能がシステムの性能限界となる。また、非特許文献2に記載される従来の負荷分散システム600(図14)では、ローカルDNSサーバ670がシステムの性能限界となり、特許文献2に記載される従来の負荷分散システム800(図16)では、ネットワークサービスサーバ負荷調整装置803の性能がシステムの性能限界となる。   The first problem of the prior art is that there is a limit to processing a large capacity. The reason is that some devices become bottlenecks and the performance limit of the device becomes the overall performance limit. For example, in the conventional load distribution system 500 (FIG. 13) described in Non-Patent Document 1, all requests from clients pass through the load balancer 510, and the performance of the load balancer 510 is limited to the system performance limit. It becomes. In the conventional load distribution system 600 described in Non-Patent Document 2 (FIG. 14), the local DNS server 670 becomes the system performance limit, and the conventional load distribution system 800 described in Patent Document 2 (FIG. 16). Then, the performance of the network service server load adjustment device 803 becomes the system performance limit.

第2の問題点は、負荷の分散の伝達が遅いという点である。例えば、非特許文献2に記載される従来の負荷分散システム600(図14)では、負荷分散情報を一部のDNSサーバで管理し、それがキャッシュされることでローカルDNSサーバ670に伝播するが、キャッシュの伝播には時間を要するため、サーバの負荷の変動に、迅速に対応することができない。   The second problem is that transmission of load distribution is slow. For example, in the conventional load distribution system 600 (FIG. 14) described in Non-Patent Document 2, load distribution information is managed by a part of DNS servers, and is propagated to the local DNS server 670 by being cached. Since propagation of the cache takes time, it is not possible to respond quickly to fluctuations in server load.

第3の問題点は、負荷分散時アルゴリズムが収束しない可能性がある点である。例えば、特許文献1に記載されている従来の負荷分散システム700(図15)では、複数の負荷が高いサーバの中に、負荷が低いサーバが存在すると、周りの負荷が高いサーバが、負荷の低いサーバにクライアントの要求を転送することで、負荷が低かったサーバは、複数のサーバから譲り受けた負荷のために、かえって負荷が高くなる。そうすると、そのサーバが、また、他のサーバへとクライアントの要求を転送する。この繰り返しで、クライアントからの要求が転送され続けられ、処理が完了しない。また、転送作業自体にも処理コストがかかるため、本来の処理作業ではなく、転送処理によって負荷が押し上げられるという問題も生じる。   The third problem is that the load balancing algorithm may not converge. For example, in the conventional load distribution system 700 (FIG. 15) described in Patent Document 1, if a server with a low load exists among a plurality of servers with a high load, the server with a high load around the load By transferring a client request to a low server, a server having a low load becomes rather high because of a load inherited from a plurality of servers. The server then forwards the client's request to another server. By repeating this, the request from the client continues to be transferred and the processing is not completed. In addition, since the transfer work itself is costly, there is a problem that the load is pushed up by the transfer process, not the original process work.

第4の問題点は、特許文献2の負荷分散システム800(図16)では、負荷の振動を考慮した負荷分散を行っているが、その場合でも、必ずしもサーバ間の負荷が平準化しないという点である。その理由は、負荷分散システム800では、負荷の割当ての変更割合を徐々に減らしているが、変更割合を減らしていき、0に近づいたときに、それは複数のサーバに対等に割当てている状態である保証がないためである。   The fourth problem is that the load distribution system 800 (FIG. 16) of Patent Document 2 performs load distribution considering the vibration of the load, but even in that case, the load between servers is not necessarily equalized. It is. The reason is that, in the load distribution system 800, the load allocation change rate is gradually reduced, but when the change rate is reduced and approaches 0, it is assigned to a plurality of servers on an equal basis. This is because there is no guarantee.

本発明は、上記従来技術の問題点を解消し、ボトルネックなしに大容量の処理ができる負荷分散システム、方法、及び、プログラムを提供することを目的とする。   An object of the present invention is to provide a load distribution system, method, and program capable of solving the above-described problems of the prior art and capable of processing a large volume without bottlenecks.

本発明の他の目的は、負荷情報の遅延なしに負荷分散できる負荷分散システム、方法、及び、プログラムを提供することである。   Another object of the present invention is to provide a load distribution system, method, and program capable of load distribution without delay of load information.

本発明の他の目的は、収束の保証された負荷分散システム、方法、及び、プログラムを提供することである。   Another object of the present invention is to provide a load distribution system, method, and program with guaranteed convergence.

本発明の他の目的は、負荷分散が収束された時点において、サーバ間の負荷が平準化されていることを保証する負荷分散システム、方法、及び、プログラムを提供することである。   Another object of the present invention is to provide a load distribution system, method, and program that guarantees that the load between servers is leveled when the load distribution is converged.

上記従来技術の問題点を解消するために、本発明の負荷分散システムは、複数のサーバを有するネットワークシステムのネットワーク構成を記憶するネットワーク構成情報を参照し、負荷係数を決定する負荷係数決定手段と、他のサーバから負荷情報を取得し、自サーバの負荷、及び、他のサーバの負荷と、前記負荷係数とに基づいて、負荷目標値を設定する負荷情報交換手段と、自サーバの負荷と前記負荷目標値とを比較し、自サーバの負荷が前記負荷目標値以下のとき、クライアントからの処理要求に対する処理を自サーバ内で実行させ、自サーバの負荷が前記負荷目標値を超えるとき、前記処理要求に対応する処理を、前記他のサーバで実行させる負荷融通手段とを備えることを特徴とする。   In order to solve the above-described problems of the prior art, a load distribution system according to the present invention includes load coefficient determination means for determining a load coefficient with reference to network configuration information storing a network configuration of a network system having a plurality of servers. Load information exchange means for obtaining load information from another server, setting a load target value based on the load of the own server, the load of the other server, and the load coefficient; and the load of the own server; Compared with the load target value, when the load of the own server is less than or equal to the load target value, the processing for the processing request from the client is executed in the own server, and when the load of the own server exceeds the load target value, Load accommodation means for causing the other server to execute processing corresponding to the processing request.

本発明の負荷分散方法は、複数のサーバを有するネットワークシステムで、サーバの負荷を分散させる方法であって、前記サーバが、前記ネットワークシステムのネットワーク構成を記憶するネットワーク構成情報を参照し、負荷係数を決定する負荷係数決定ステップと、前記サーバが、他のサーバとの間で負荷情報を交換し、自サーバの負荷、及び、他のサーバの負荷と、前記負荷係数とに基づいて、負荷目標値を設定する負荷目標値設定ステップと、前記サーバが、自サーバの負荷と前記負荷目標値とを比較し、クライアントからの処理要求に対する処理を、自サーバで実行するか、又は、前記他のサーバに実行させるかを決定する処理サーバ決定ステップとを有し、前記サーバが、前記処理サーバ決定ステップで、自サーバで実行すると決定すると、前記処理を自サーバ内で実行し、他のサーバに実行させると決定すると、前記処理を、前記他のサーバで実行させることを特徴とする。   The load distribution method of the present invention is a method of distributing a load of a server in a network system having a plurality of servers, wherein the server refers to network configuration information storing a network configuration of the network system, and a load coefficient A load coefficient determination step for determining the load target, and the server exchanges load information with another server, and the load target is determined based on the load of the own server, the load of the other server, and the load coefficient. A load target value setting step for setting a value; and the server compares the load of the server with the load target value, and executes a process for a processing request from a client on the server, or the other A processing server determining step for determining whether to execute the server, and the server executes the server at the processing server determining step. When determining, the processing executed in the local server, upon determining that is executed by the other server, the process is characterized in that is executed by the other server.

本発明のプログラムは、複数のサーバを有するネットワークシステムで、サーバの負荷を分散させる処理を前記サーバに実行させるプログラムあって、前記サーバに、前記ネットワークシステムのネットワーク構成を記憶するネットワーク構成情報を参照し、負荷係数を決定する負荷係数決定ステップと、他のサーバとの間で負荷情報を交換し、自サーバの負荷、及び、他のサーバの負荷と、前記負荷係数とに基づいて、負荷目標値を設定する負荷目標値設定ステップと、自サーバの負荷と前記負荷目標値とを比較し、クライアントからの処理要求に対する処理を、自サーバで実行するか、又は、前記他のサーバに実行させるかを決定する処理サーバ決定ステップとを実行させ、前記処理サーバ決定ステップで、自サーバで実行すると決定すると、前記処理を自サーバ内で実行し、他のサーバに実行させると決定すると、前記処理を、前記他のサーバで実行させることを特徴とする。   The program according to the present invention is a network system having a plurality of servers, and causes the server to execute a process of distributing the load on the server. The server refers to the network configuration information that stores the network configuration of the network system. A load factor determination step for determining a load factor, load information is exchanged with another server, a load target based on the load of the own server, the load of the other server, and the load factor The load target value setting step for setting the value, the load of the own server and the load target value are compared, and the processing for the processing request from the client is executed by the own server or is executed by the other server A processing server determination step for determining whether or not to execute on the own server in the processing server determination step. When, the processing executed in the local server, upon determining that is executed by the other server, the process is characterized in that is executed by the other server.

本発明の負荷分散システム、方法、及び、プログラムでは、ネットワーク構成に基づいて負荷移管量を決定するための負荷係数を決定し、決定した負荷係数と、自サーバ及び他サーバの負荷とに基づいて、負荷目標値を決定する。自サーバの負荷が、負荷目標値よりも高ければ、クライアントからの処理要求に対する処理を他のサーバで実行させてその他のサーバに負荷を移管し、負荷目標値以下であれば、自サーバ内で処理を実行する。本発明では、負荷係数を、ネットワーク構成に基づいて決定し、その負荷係数を用いて、負荷移管を繰り返していったときに各サーバの負荷が同程度の負荷に収束するように負荷目標値を設定することで、負荷が収束し、かつ、サーバ間の負荷を平準化した負荷分散を実現できる。また、その際、処理要求が特定の装置に集中することがないため、ボトルネックなしに大容量の処理が実現できる。   In the load distribution system, method, and program of the present invention, the load coefficient for determining the load transfer amount is determined based on the network configuration, and based on the determined load coefficient and the loads of the own server and other servers. Determine the load target value. If the load on the local server is higher than the load target value, the processing for the processing request from the client is executed on the other server and the load is transferred to the other server. Execute the process. In the present invention, the load coefficient is determined based on the network configuration, and when the load transfer is repeated, the load target value is set so that the load of each server converges to a similar load. By setting, it is possible to achieve load distribution in which the load converges and the load between servers is leveled. In this case, since processing requests are not concentrated on a specific device, a large-capacity processing can be realized without a bottleneck.

本発明の負荷分散システムでは、前記負荷情報交換手段は、前記自サーバの負荷から、該自サーバの負荷と他のサーバの負荷との差に前記負荷係数を乗じた値を引いた値を、前記負荷目標値として設定する構成を採用できる。負荷目標値は、具体的にはこのような計算により設定すればよい。   In the load distribution system of the present invention, the load information exchanging means subtracts a value obtained by multiplying the load of the own server by a value obtained by multiplying the difference between the load of the own server and the load of another server by the load coefficient. A configuration in which the load target value is set can be adopted. Specifically, the load target value may be set by such calculation.

本発明の負荷分散システムでは、前記負荷情報交換手段は、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、負荷融通を行うか否かを示す状態フラグを「負荷融通状態」に設定して前記負荷目標値の設定を行い、前記負荷融通手段は、前記状態フラグが「負荷融通状態」のとき、前記自サーバの負荷と前記負荷目標値との比較を行う構成を採用できる。この場合、負荷情報交換手段は、自サーバの負荷が他サーバの負荷よりも高く、かつ、その比率が所定のしきい値を超えるときに、負荷目標値の設定を行い、状態フラグを「負荷融通状態」に設定して、サーバ状態をサーバ間で負荷を融通する状態に移行させる。負荷融通手段は、クライアントからの処理要求を受けた際に、状態フラグが「負荷融通状態」であるときには、自サーバの負荷と負荷目標値との比較を行い、そのクライアントからの処理要求に対応する処理を、自サーバで行うか、又は、他サーバで行うかを決定する。このような処理により、負荷分散を実現できる。   In the load distribution system of the present invention, the load information exchanging means indicates whether or not to perform load accommodation when it is determined that the ratio of the load of the local server to the load of another server exceeds a predetermined threshold value. The load target value is set by setting a state flag to “load accommodation state”, and when the state flag is “load accommodation state”, the load accommodation unit sets the load of the server itself and the load target value. It is possible to adopt a configuration for comparing the above. In this case, the load information exchanging means sets the load target value when the load of the own server is higher than the load of the other server and the ratio exceeds a predetermined threshold, and sets the status flag to “load It is set to “accommodating state”, and the server state is shifted to a state in which the load is accommodated between servers. The load accommodation means, when receiving a processing request from a client, compares the load of the local server with the load target value and responds to the processing request from the client when the status flag is “load accommodation state”. It is determined whether the processing to be performed is performed by the own server or another server. With such processing, load distribution can be realized.

本発明の負荷分散システムでは、前記負荷融通手段は、前記比較の結果、前記自サーバの負荷が前記負荷目標値以下であると、前記状態フラグを、負荷融通を行わない状態を示す「通常状態」に設定する構成を採用できる。負荷融通手段が自サーバの負荷と負荷目標値との比較を行った結果、自サーバの負荷が負荷目標値以下であれば、クライアントからの処理要求に対する処理は自サーバで行うと決定するので、負荷融通は行われない。そのような場合には、状態フラグを「通常状態」に設定して、「負荷融通状態」を解除すればよい。   In the load distribution system of the present invention, the load accommodation means indicates that the state flag indicates a state in which load accommodation is not performed when the load of the local server is equal to or less than the load target value as a result of the comparison. Can be adopted. As a result of the load accommodation means comparing the load of the own server and the load target value, if the load of the own server is equal to or less than the load target value, it is determined that the processing for the processing request from the client is performed by the own server. There is no load accommodation. In such a case, the state flag may be set to “normal state” to cancel the “load accommodation state”.

本発明の負荷分散システムでは、前記負荷情報交換手段は、前記状態フラグが「負荷融通状態」でないとき、前記他のサーバから負荷情報を取得する構成を採用できる。サーバ状態が「負荷融通状態」でないときには、負荷情報交換手段によって、定期的に他サーバから負荷情報を取得し、取得した他サーバの負荷と自サーバの負荷とを比較する。比較の結果、負荷の比がしきい値を超えるときには、自サーバの負荷及び他サーバの負荷と、負荷係数とに基づいて負荷目標値を設定する。このようにすることで、負荷情報の遅延なしに他サーバの負荷を取得することができ、その他サーバの負荷に基づいて負荷目標値を設定することができる。   In the load distribution system of the present invention, the load information exchanging means may adopt a configuration for acquiring load information from the other server when the state flag is not “load accommodation state”. When the server state is not the “load accommodation state”, the load information exchanging unit periodically acquires load information from another server, and compares the acquired load of the other server with the load of the own server. As a result of the comparison, when the load ratio exceeds the threshold value, the load target value is set based on the load of the local server, the load of the other server, and the load coefficient. By doing in this way, the load of other servers can be acquired without delay of load information, and a load target value can be set based on the load of other servers.

本発明の負荷分散システムでは、前記負荷情報交換手段は、前記状態フラグを「負荷融通状態」に設定すると、前記他のサーバを指し示す情報を移管先サーバ記憶部に格納し、前記負荷融通手段は、自サーバの負荷が前記負荷目標値を超えるとき、前記移管先サーバ記憶部を参照して、前記処理要求に対する処理を、該移管先サーバ記憶部に格納されたサーバで実行させる構成を採用できる。   In the load distribution system of the present invention, the load information exchanging means stores the information indicating the other server in the transfer destination server storage unit when the status flag is set to “load accommodating state”, and the load accommodating means When the load of the own server exceeds the load target value, it is possible to refer to the transfer destination server storage unit and execute a process for the processing request on the server stored in the transfer destination server storage unit. .

本発明の負荷分散システムでは、前記負荷情報交換手段は、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、前記他のサーバに負荷融通が可能か否かを問い合わせる負荷融通要求を送信し、該要求に対して許諾する旨の応答を受信すると、前記状態フラグを「負荷融通状態」に設定すると共に、当該他のサーバを示す情報を前記移管先サーバ記憶部に格納する構成を採用できる。また、前記負荷情報交換手段は、他のサーバから、前記負荷融通要求を受信すると、自サーバの負荷情報を参照して許諾するか否かを決定し、許諾するときには許諾応答を、拒否するときには拒否応答を返信する構成を採用できる。負荷の移管先のサーバは、負荷移管を行うサーバよりも負荷は低いが、例えばその後負荷上昇が見込まれる場合など、負荷を受け入れることが不適当な場合もある。そこで、事前に負荷融通要求を送信して、他のサーバに対して負荷の受入れが可能か否かの問い合わせを行う。負荷融通要求を受信した他のサーバは、負荷情報などに基づいて、負荷融通要求を許諾するか否かを決定する。負荷融通要求の発行元のサーバは、負荷融通要求に対して許諾する旨の応答が得られると、許諾応答を送信した他のサーバは、負荷移管先サーバとして記憶する。このようにすることで、相手先の状況に合わせた負荷分散が可能となる。   In the load distribution system of the present invention, when the load information exchanging means determines that the ratio of the load of the local server to the load of the other server exceeds a predetermined threshold, the load can be accommodated to the other server. When transmitting a load accommodation request for inquiring whether or not, and receiving a response for granting the request, the status flag is set to “load accommodation state” and information indicating the other server is transferred A configuration of storing in the destination server storage unit can be adopted. Further, when the load information exchanging means receives the load accommodation request from another server, the load information exchanging means determines whether or not to grant the permission by referring to the load information of the own server. A configuration for returning a rejection response can be employed. The load transfer destination server has a lower load than the load transfer server, but it may be inappropriate to accept the load, for example, when a load increase is expected thereafter. Therefore, a load accommodation request is transmitted in advance, and an inquiry is made to other servers as to whether or not the load can be accepted. The other server that has received the load accommodation request determines whether or not to grant the load accommodation request based on the load information or the like. When the server that issued the load accommodation request obtains a response for granting the license to the load accommodation request, the other server that has transmitted the authorization response stores it as a load transfer destination server. By doing in this way, load distribution according to the situation of the other party becomes possible.

本発明の負荷分散システムでは、前記負荷融通手段は、自サーバの負荷が前記負荷目標値を超えるとき、前記処理要求に対して、他のサーバをリダイレクト先とするリダイレクト応答をクライアントに送信し、前記処理要求に対する処理を他のサーバで実行させる構成を採用できる。この場合、クライアントは、リダイレクト応答を受け取った後に、リダイレクト先のサーバに処理要求を送信することで、そのリダイレクトサーバから処理応答を得ることができる。   In the load distribution system of the present invention, when the load of the own server exceeds the load target value, the load accommodation unit transmits a redirect response with another server as a redirect destination to the client in response to the processing request, A configuration in which processing for the processing request is executed by another server can be employed. In this case, after receiving the redirect response, the client can obtain a processing response from the redirect server by transmitting a processing request to the redirect destination server.

本発明の負荷分散システムでは、前記負荷融通手段は、自サーバの負荷が前記負荷目標値以下であるとき、ディスパッチ手段により前記処理要求に対応するアプリケーションを起動し、該アプリケーションの処理結果を、前記クライアントに対する応答として送信する構成を採用できる。   In the load distribution system of the present invention, when the load of the own server is equal to or less than the load target value, the load accommodation unit activates an application corresponding to the processing request by a dispatch unit, and displays the processing result of the application as the processing result. It is possible to adopt a configuration for transmitting as a response to the client.

本発明の負荷分散システムでは、前記負荷係数決定手段は、前記ネットワーク構成情報に基づいて、行及び列を各サーバに対応させ、サーバ間で接続間関係にあるサーバに対応する要素を−1、接続関係にないサーバに対応する要素を0、対角要素をその行に対応するサーバに接続されたサーバの数とする接続行列Aを作成し、該作成した接続行列Aに対して、lを変数とし、Eを単位行列としてG=(−lA+E)の固有値k(l)を求め、全ての固有値k(l)が−1より大きく1以下となる0<l<1のうちのlの最大値を求め、該lの最大値を、負荷係数として決定する構成を採用できる。接続行列Aをこのように作成し、G=(−lA+E)に対して、行列Gの全ての固有値が−1より大きく、かつ、1より小さくなるlを選ぶことで、負荷融通を繰り返していった際に、各サーバの負荷を収束させることができる。また、行列Gの固有値のうちの1つは「1」であることがわかっており、その固有ベクトルは

Figure 2008071156
であることから、各サーバの負荷を平準化することができることがわかる。 In the load distribution system of the present invention, the load coefficient determination unit associates rows and columns with each server based on the network configuration information, and sets elements corresponding to servers in a connection relationship between servers to -1. A connection matrix A is created in which the element corresponding to the server that is not connected is 0, and the diagonal element is the number of servers connected to the server corresponding to the row. Using E as a unit matrix, eigenvalues k (l) of G = (− lA + E) are obtained, and the maximum of l of 0 <l <1 where all eigenvalues k (l) are greater than −1 and less than or equal to 1 A configuration can be adopted in which a value is obtained and the maximum value of l is determined as a load coefficient. By creating the connection matrix A in this way and selecting l for which all eigenvalues of the matrix G are larger than −1 and smaller than 1 for G = (− 1A + E), load accommodation is repeated. The load on each server can be converged. Also, one of the eigenvalues of the matrix G is known to be “1”, and its eigenvector is
Figure 2008071156
Therefore, it can be seen that the load on each server can be leveled.

本発明の負荷分散方法及びプログラムは、前記処理サーバ決定ステップでは、自サーバの負荷と前記負荷目標値とを比較し、自サーバの負荷が前記負荷目標値以下であれば、前記処理を自サーバ内で実行すると決定し、自サーバの負荷が前記目標値を超えるときには、前記他のサーバに実行させると決定する構成を採用できる。   In the load distribution method and program of the present invention, in the processing server determination step, the load of the own server is compared with the load target value, and if the load of the own server is equal to or less than the load target value, the process is performed. It is possible to adopt a configuration in which it is determined that the other server is to execute when the load of the own server exceeds the target value.

本発明の負荷分散方法及びプログラムは、前記負荷目標値設定ステップでは、前記自サーバの負荷から、該自サーバの負荷と他のサーバの負荷との差に前記負荷係数を乗じた値を引いた値を、前記負荷目標値として設定する構成を採用できる。   In the load distribution method and program according to the present invention, in the load target value setting step, a value obtained by multiplying a difference between the load of the local server and the load of another server by the load coefficient is subtracted from the load of the local server. A configuration in which a value is set as the load target value can be employed.

本発明の負荷分散方法及びプログラムは、前記負荷目標値設定ステップでは、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、負荷融通を行うか否かを示す状態フラグを「負荷融通状態」に設定して、前記負荷目標値の設定を行い、前記処理要求を受け付けると、前記状態フラグを参照し、該状態フラグが「負荷融通状態」であれば、前記処理サーバ決定ステップを実行する構成を採用できる。   In the load distribution method and program of the present invention, in the load target value setting step, if it is determined that the ratio of the load of the own server and the load of the other server exceeds a predetermined threshold, whether or not to perform load accommodation Is set to “load accommodation state”, the load target value is set, and when the processing request is received, the state flag is referred to and the state flag is “load accommodation state”. For example, a configuration for executing the processing server determination step can be adopted.

本発明の負荷分散方法及びプログラムは、前記処理サーバ決定ステップでは、前記処理要求に対する処理を自サーバで実行すると決定すると、前記状態フラグを、負荷融通を行わない状態を示す「通常状態」に設定する構成を採用できる。   In the load distribution method and program of the present invention, in the processing server determination step, when it is determined that the processing for the processing request is executed by the own server, the state flag is set to “normal state” indicating a state in which load accommodation is not performed. Can be adopted.

本発明の負荷分散方法及びプログラムは、前記負荷目標値設定ステップでは、前記状態フラグを「負荷融通状態」に設定すると、前記他のサーバを指し示す情報を移管先サーバ記憶部に格納する構成を採用できる。   The load distribution method and the program according to the present invention adopt a configuration in which, in the load target value setting step, when the state flag is set to “load accommodation state”, information indicating the other server is stored in the transfer destination server storage unit. it can.

本発明の負荷分散方法及びプログラムでは、前記サーバが前記処理要求に対する処理を他のサーバに実行させると決定すると、前記移管先サーバ記憶部を参照して、該移管先サーバ記憶部に格納されたサーバに、前記処理を実行させる構成を採用できる。   In the load distribution method and program according to the present invention, when the server determines that another server is to execute processing for the processing request, the server is stored in the transfer destination server storage unit with reference to the transfer destination server storage unit. A configuration in which the server executes the process can be adopted.

本発明の負荷分散方法及びプログラムは、前記負荷目標値設定ステップでは、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、前記他のサーバに負荷融通が可能か否かを問い合わせる負荷融通要求を送信し、該要求に対して許諾する旨の応答を受信すると、前記状態フラグを「負荷融通状態」に設定し、当該他のサーバを示す情報を前記移管先サーバ記憶部に格納して、前記負荷目標値を設定する構成を採用できる。   In the load distribution method and program according to the present invention, in the load target value setting step, if it is determined that the ratio of the load of the local server to the load of the other server exceeds a predetermined threshold value, the load is distributed to the other server. When a load accommodation request for inquiring whether or not accommodation is possible is transmitted and a response indicating that the request is granted is received, the status flag is set to “load accommodation state” and information indicating the other server is set. A configuration in which the load target value is set by storing in the transfer destination server storage unit can be adopted.

本発明の負荷分散方法及びプログラムでは、前記サーバが他のサーバから、前記負荷融通要求を受信すると、自サーバの負荷情報を参照して許諾するか否かを決定し、許諾するときには許諾応答を、拒否するときには拒否応答を返信する構成を採用できる。   In the load distribution method and program according to the present invention, when the server receives the load accommodation request from another server, the server determines whether or not to grant the license by referring to the load information of the own server. When rejecting, a configuration in which a rejection response is returned can be adopted.

本発明の負荷分散方法及びプログラムでは、前記処理サーバ決定ステップで、他のサーバに実行させると決定すると、前記処理要求に対して、他のサーバをリダイレクト先とするリダイレクト応答をクライアントに送信し、前記処理要求に対する処理を他のサーバで実行させる構成を採用できる。   In the load distribution method and program of the present invention, when it is determined in the processing server determination step that another server is to execute, a redirect response with the other server as a redirect destination is transmitted to the client in response to the processing request, A configuration in which processing for the processing request is executed by another server can be employed.

本発明の負荷分散方法及びプログラムでは、前記処理サーバ決定ステップで、自サーバで実行すると決定すると、ディスパッチ手段により前記処理要求に対応するアプリケーションを起動し、該アプリケーションの処理結果を、前記クライアントに対する応答として送信する構成を採用できる。   In the load distribution method and program according to the present invention, when it is determined in the processing server determination step that the server itself is executed, the application corresponding to the processing request is started by dispatch means, and the processing result of the application is returned to the client. The structure which transmits as can be employ | adopted.

本発明の負荷分散方法及びプログラムは、前記負荷係数決定ステップでは、前記サーバは、前記ネットワーク構成情報に基づいて、行及び列を各サーバに対応させ、サーバ間で接続間関係にあるサーバに対応する要素を−1、接続関係にないサーバに対応する要素を0、対角要素をその行に対応するサーバに接続されたサーバの数とする接続行列Aを作成し、該作成した接続行列Aに対して、lを変数とし、Eを単位行列としてG=(−lA+E)の固有値k(l)を求め、全ての固有値k(l)が−1より大きく1以下となる0<l<1のうちのlの最大値を求め、該lの最大値を、負荷係数として決定する構成を採用できる。   In the load distribution method and program according to the present invention, in the load coefficient determination step, the server corresponds to each server with a row and a column based on the network configuration information, and corresponds to a server having a connection relationship between servers. The connection matrix A is created with the element to be −1, the element corresponding to the server that is not connected to 0 as the number of servers connected to the server corresponding to the row as the diagonal element, and the created connection matrix A On the other hand, with e as a variable and E as a unit matrix, eigenvalues k (l) of G = (− 1A + E) are obtained, and all eigenvalues k (l) are greater than −1 and less than or equal to 1 <0 <l <1 The maximum value of l can be obtained, and the maximum value of l can be determined as a load coefficient.

本発明の負荷分散システム、方法、及び、プログラムでは、ネットワーク構成に基づいて負荷移管量を決定するための負荷係数を決定し、決定した負荷係数と、自サーバ及び他サーバの負荷とに基づいて、負荷目標値を決定する。自サーバの負荷が、負荷目標値よりも高ければ、クライアントからの処理要求に対する処理を他のサーバで実行させ、負荷目標値以下であれば、自サーバ内で処理を実行する。本発明では、負荷係数を、ネットワーク構成に基づいて決定し、その負荷係数を用いて、負荷移管を繰り返していったときに各サーバの負荷が同程度の負荷に収束するように負荷目標値を設定することで、負荷が収束し、かつ、サーバ間の負荷を平準化した負荷分散を実現できる。また、その際、処理要求が特定の装置に集中することがないため、ボトルネックとなる装置が存在せず、大容量の処理が実現できる。   In the load distribution system, method, and program of the present invention, the load coefficient for determining the load transfer amount is determined based on the network configuration, and based on the determined load coefficient and the loads of the own server and other servers. Determine the load target value. If the load of the own server is higher than the load target value, the process for the processing request from the client is executed by another server, and if the load is equal to or less than the load target value, the process is executed in the own server. In the present invention, the load coefficient is determined based on the network configuration, and when the load transfer is repeated, the load target value is set so that the load of each server converges to a similar load. By setting, it is possible to achieve load distribution in which the load converges and the load between servers is leveled. In this case, since processing requests are not concentrated on a specific device, there is no bottleneck device, and a large-capacity processing can be realized.

以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態の負荷分散システムの構成を示している。負荷分散システム100は、ネットワーク310を介して相互に接続された複数のサーバ200を有する。サーバ200は、プログラム制御により動作する中央処理装置(CPU)240、トランスポートスタック230、負荷融通手段220、ディスパッチ手段210、アプリケーション群300、負荷計測手段290、負荷情報交換手段280、及び、負荷係数決定手段260を有する。また、負荷目標値330、移管先サーバ名335、状態フラグ340、融通しきい値270、負荷係数285、及び、ネットワーク構成情報250を記憶するレジスタ等の記憶手段を有する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 shows the configuration of the load distribution system according to the first embodiment of the present invention. The load distribution system 100 includes a plurality of servers 200 connected to each other via a network 310. The server 200 includes a central processing unit (CPU) 240 that operates by program control, a transport stack 230, a load accommodation unit 220, a dispatch unit 210, an application group 300, a load measurement unit 290, a load information exchange unit 280, and a load coefficient. A determination unit 260 is included. In addition, it has storage means such as a load target value 330, a transfer destination server name 335, a status flag 340, an accommodation threshold value 270, a load coefficient 285, and a register for storing the network configuration information 250.

サーバ200は、図示しないクライアントからの処理要求を受け付け、要求に応じたサービスを実施し、クライアントに処理応答を送信する。トランスポートスタック230は、ネットワーク310に接続されており、クライアントや他サーバからの各種要求を受け付けて応答する。負荷計測手段290は、中央処理装置240やトランスポートスタック230の状況を観測し、サーバ200の負荷を計測する。状態フラグ340は、装置状態を管理するためのフラグを格納する。状態フラグ340に格納されるフラグには、サーバ間で負荷移管(負荷融通)を行う状態を示す「負荷融通状態」と、負荷の移管を行わない状態を示す「通常状態」とがある。   The server 200 receives a processing request from a client (not shown), performs a service according to the request, and transmits a processing response to the client. The transport stack 230 is connected to the network 310 and accepts and responds to various requests from clients and other servers. The load measuring means 290 observes the status of the central processing unit 240 and the transport stack 230 and measures the load on the server 200. The status flag 340 stores a flag for managing the device status. The flags stored in the status flag 340 include a “load accommodation state” indicating a state in which load transfer (load accommodation) is performed between servers, and a “normal state” indicating a state in which load transfer is not performed.

負荷情報交換手段280は、状態フラグ340が「通常状態」であれば、定期的にネットワーク310を通じて他のサーバと通信し、負荷計測手段290が得た負荷情報を交換する。状態フラグ340が「負荷融通状態」であれば、負荷情報の交換は行わない。負荷情報交換手段280は、例えば周期的にタイムアウトを発生するタイマ320がタイムアウトを発生するタイミングで負荷情報の交換を行う。負荷情報交換手段280は、他のサーバの負荷を取得すると、自サーバの負荷と他サーバとの負荷の比を計算し、その値が、負荷移管を開始する際の判断基準となる融通しきい値270よりも大きいか否かを判断する。負荷情報交換手段280は、負荷の比が融通しきい値270よりも大きいと判断すると、他のサーバに負荷融通要求を送信する。負荷情報交換手段280は、負荷融通要求に対して許諾する旨の応答を受け取ると、負荷の移管先を示す移管先サーバ名335に他のサーバを指し示す情報を格納し、状態フラグ340を「負荷融通状態」にセットする。   If the status flag 340 is “normal state”, the load information exchanging unit 280 periodically communicates with other servers through the network 310 to exchange the load information obtained by the load measuring unit 290. If the status flag 340 is “load accommodation state”, the load information is not exchanged. The load information exchanging means 280 exchanges load information, for example, at the timing when the timer 320 that periodically times out generates a timeout. When the load information exchanging means 280 obtains the load of the other server, it calculates the ratio of the load of the own server and the load of the other server, and the value becomes a decision threshold when starting the load transfer. It is determined whether or not the value is larger than 270. When the load information exchange unit 280 determines that the load ratio is larger than the accommodation threshold value 270, the load information exchange unit 280 transmits a load accommodation request to another server. When the load information exchanging means 280 receives a response to permit the load accommodation request, it stores information indicating another server in the transfer destination server name 335 indicating the load transfer destination, and sets the status flag 340 to “load Set to "Flexible state".

負荷係数決定手段260は、サーバ間の接続状況に関する情報を含むネットワーク構成情報250を参照して、負荷係数285を決定する。負荷係数285は、自サーバの負荷と、他のサーバの負荷とを照らし合わせて、前者の負荷が高い場合に、負荷の差のどれくらいを他のサーバに移管するかを定めるための比例係数である。負荷情報交換手段280は、「負荷融通状態」への移行に際して、自サーバの負荷、自サーバの負荷と他サーバの負荷との差、及び、負荷係数285に基づいて、負荷目標値330を設定する。具体的には、自サーバの負荷から、自サーバの負荷と他のサーバの負荷との差に負荷係数285を乗じた値を減算した値を、負荷目標値330として設定する。負荷目標値330は、「負荷融通状態」におけるサーバ負荷の目標値を示す。   The load coefficient determining unit 260 determines the load coefficient 285 with reference to the network configuration information 250 including information on the connection status between servers. The load coefficient 285 is a proportional coefficient for determining how much of the load difference is transferred to another server when the load of the former server is high and the load of the other server is compared. is there. The load information exchanging means 280 sets the load target value 330 based on the load of the own server, the difference between the load of the own server and the load of the other server, and the load coefficient 285 when shifting to the “load accommodation state”. To do. Specifically, a value obtained by subtracting a value obtained by multiplying the load between the load of the own server and the load of the other server by the load coefficient 285 from the load of the own server is set as the load target value 330. The load target value 330 indicates the target value of the server load in the “load accommodation state”.

トランスポートスタック230は、クライアントから要求を受信すると、受信した要求を負荷融通手段220に渡す。負荷融通手段220は、状態フラグ340を参照して「通常状態」であるか、或いは、「負荷融通状態」であるかを判断する。負荷融通手段220は、「通常状態」であれば、負荷の移管は行わずに自サーバ内で処理を実行すると決定し、ディスパッチ手段210に、クライアントからの要求を渡す。状態フラグ340が「負荷融通状態」であれば、負荷計測手段290が計測したサーバ負荷が負荷目標値330を超えるか否かを判断する。超える場合には、負荷の移管を行うと決定し、移管先サーバ名335で示されるサーバへのリダイレクト応答を、クライアントに返す。負荷目標値330を超えない場合には、自サーバ内で処理を実行すると決定し、クライアントからの要求をディスパッチ手段210へ渡す。   When the transport stack 230 receives a request from a client, the transport stack 230 passes the received request to the load accommodation unit 220. The load accommodation unit 220 refers to the state flag 340 and determines whether it is “normal state” or “load accommodation state”. If it is “normal state”, the load accommodation unit 220 decides to execute the process in its own server without transferring the load, and passes the request from the client to the dispatch unit 210. If the state flag 340 is “load accommodation state”, it is determined whether or not the server load measured by the load measuring unit 290 exceeds the load target value 330. If it exceeds, it is determined to transfer the load, and a redirect response to the server indicated by the transfer destination server name 335 is returned to the client. If the load target value 330 is not exceeded, it is determined that the process is to be executed in its own server, and the request from the client is passed to the dispatch unit 210.

ディスパッチ手段210は、負荷融通手段220から、クライアントからの処理要求を受け取ると、その処理要求が必要とするサービスを提供するアプリケーションを、アプリケーション群300の中から選択し起動する。アプリケーション群300は、ディスパッチ手段210から受け取ったクライアントの要求に基づいてサービスを実行し、その結果を、クライアントに対する応答としてディスパッチ手段210に返す。   When the dispatch unit 210 receives a processing request from a client from the load accommodation unit 220, the dispatch unit 210 selects an application that provides a service required by the processing request from the application group 300 and starts it. The application group 300 executes a service based on the client request received from the dispatch unit 210 and returns the result to the dispatch unit 210 as a response to the client.

図2は、負荷分散システム100の全体的な処理の流れを示しててる。サーバ200は、通信パケットの受信や、タイマ320からのトリガーなどのイベント発生を待つ(ステップZ110)。イベントが発生すると、発生したイベントに従って、適切な処理にディスパッチする(ステップZ120)。周期的にタイマ320が起動したときには、負荷情報交換処理を実行する(ステップZ130)。他のサーバから負荷情報交換要求を受信したときには、負荷情報提供処理を実行する(ステップZ140)。他のサーバから負荷融通要求を受信した場合には、負荷融通要求処理を実行する(ステップZ150)。クライアントからの要求を受信した場合には、クライアント要求処理を実行する(ステップZ160)。   FIG. 2 shows the overall processing flow of the load distribution system 100. Server 200 waits for an event such as reception of a communication packet or a trigger from timer 320 (step Z110). When an event occurs, it is dispatched to an appropriate process according to the event that has occurred (step Z120). When the timer 320 is periodically started, a load information exchange process is executed (step Z130). When a load information exchange request is received from another server, load information provision processing is executed (step Z140). When a load accommodation request is received from another server, load accommodation request processing is executed (step Z150). If a request from the client is received, client request processing is executed (step Z160).

図3は、ステップZ130の負荷情報交換処理の詳細な手順を示している。負荷情報交換手段280は、タイマ起動により、周期的に、近傍の他のサーバとの間で負荷情報交換処理を行う。この負荷情報交換は、サーバ200の近傍に、そのサーバ200に接続する他のサーバが複数あるときには、そのそれぞれとの間で周期的に行う。具体的には、近傍にサーバAとサーバBとの2台が存在する場合には、タイマ320により、サーバAとの間で負荷情報の交換を行うべきタイミング、及び、サーバBとの間で情報交換を行うべきタイミングの双方でタイムアウトを発生させ、サーバAとの間で周期的に負荷情報交換を行うと共に、サーバBとの間でも周期的に負荷情報交換を行う。   FIG. 3 shows a detailed procedure of the load information exchange process in step Z130. The load information exchanging means 280 periodically performs load information exchanging processing with other nearby servers by starting the timer. When there are a plurality of other servers connected to the server 200 in the vicinity of the server 200, the load information exchange is periodically performed with each of the servers. Specifically, when there are two servers A and B in the vicinity, the timing when the load information should be exchanged with the server A by the timer 320 and between the server B and the server B A timeout occurs at both timings at which information should be exchanged, and load information is periodically exchanged with server A, and load information is also exchanged with server B periodically.

負荷情報交換処理では、負荷情報交換手段280は、状態フラグ340を参照し、状態フラグ340が「通常状態」であるか、「負荷融通状態」であるかを判断する(ステップA210)。「負荷融通状態」であれば、そのまま処理を完了する。状態フラグ340が「通常状態」であれば、負荷情報交換手段280は、負荷情報交換の対象となる近傍の他のサーバとネットワーク310を介して通信し、負荷情報要求を送信して、当該他のサーバから、負荷情報を取得する(ステップA220)。   In the load information exchange process, the load information exchange unit 280 refers to the state flag 340 and determines whether the state flag 340 is “normal state” or “load accommodation state” (step A210). If it is “load accommodation state”, the processing is completed as it is. If the status flag 340 is “normal state”, the load information exchanging means 280 communicates with other servers in the vicinity that are subject to the load information exchange via the network 310, transmits a load information request, Load information is acquired from the server (step A220).

負荷情報交換手段280は、負荷情報を取得すると、取得した他のサーバの負荷情報、及び、自身の負荷情報に基づいて、負荷の比が、融通しきい値270を超えるか否かを判断する(ステップA230)。より詳細には、サーバ200(S)の負荷をS.l、他のサーバ(S’)の負荷をS’.lとし、融通しきい値270の値をDとして、S.l/S’.l>Dが成立するか否かを判断する。成立しない場合には、そのまま処理を完了する。成立する場合には、負荷情報交換手段280は、他のサーバに対して、負荷融通を要求する(ステップA240)。負荷情報交換手段280は、他のサーバから、負荷融通要求に対する応答を受信すると(ステップA250)、負荷融通の許諾が得られたか否かを判断する(ステップS260)。他のサーバから許諾が得られなかったときには、そのまま処理を完了する。   When the load information exchange unit 280 acquires the load information, the load information exchange unit 280 determines whether or not the load ratio exceeds the accommodation threshold value 270 based on the acquired load information of the other server and its own load information. (Step A230). More specifically, the load of the server 200 (S) is changed to S.I. l, the load of the other server (S ') is changed to S'. l and the value of the accommodation threshold 270 as D, S.I. l / S '. It is determined whether l> D is satisfied. If not, the process is completed as it is. If it is established, the load information exchanging means 280 requests load accommodation from other servers (step A240). When receiving a response to the load accommodation request from another server (step A250), the load information exchanging means 280 determines whether or not permission for load accommodation has been obtained (step S260). If permission is not obtained from another server, the processing is completed as it is.

負荷情報交換手段280は、他のサーバから許諾が得られると、状態フラグ340を「負荷融通状態」にセットし、負荷融通状態に移行する(ステップA270)。その際、負荷情報交換手段280は、他のサーバのサーバ名を、移管先サーバ名335に格納する。また、負荷計測手段290によって計測された自サーバの負荷と、他のサーバの負荷と、負荷係数285とに基づいて、負荷目標値330を決定する。より詳細には、klを負荷係数285に格納された係数値として、S.l−kl×(S.l−S’.l)を負荷目標値に設定する。   When the permission is obtained from another server, the load information exchanging means 280 sets the status flag 340 to “load accommodation state” and shifts to the load accommodation state (step A270). At that time, the load information exchanging means 280 stores the server name of the other server in the transfer destination server name 335. Further, the load target value 330 is determined based on the load of the own server, the load of other servers, and the load coefficient 285 measured by the load measuring unit 290. More specifically, kl is a coefficient value stored in the load coefficient 285, and S.I. l-kl × (S.l-S′.l) is set as the load target value.

図4は、図2のステップZ140の負荷情報提供処理の詳細手順を示している。図3のステップA220で送信された負荷情報要求は、他のサーバ200の負荷情報交換手段280により受信される。負荷情報交換手段280は、負荷情報要求を受信すると(ステップB110)、負荷計測手段290により、自サーバの負荷を計測する(ステップB120)。負荷情報交換手段280は、負荷計測手段290が計測した負荷情報を、負荷情報要求の発行元のサーバに対して送信する(ステップB130)。   FIG. 4 shows a detailed procedure of the load information providing process in step Z140 of FIG. The load information request transmitted at step A220 in FIG. 3 is received by the load information exchanging means 280 of the other server 200. When the load information exchanging means 280 receives the load information request (step B110), the load measuring means 290 measures the load of its own server (step B120). The load information exchanging unit 280 transmits the load information measured by the load measuring unit 290 to the server that issued the load information request (step B130).

図5は、図2のステップZ150の負荷融通要求処理の詳細手順を示している。サーバ200は、図3のステップA240で他のサーバから送信された負荷融通要求を受信する(ステップC110)。負荷情報交換手段280は、サーバ状態に基づいて、負荷受入れを受諾するか否かを判断する(ステップC120)。この受入れ判断では、サーバ負荷計測手段290が計測したサーバ負荷を参照し、例えば、サーバ負荷が軽い場合(所定のしきい値よりも低い場合)には、負荷受入れを受諾すると判断する。ただし、その場合でも、サーバ状態を考慮して、クライアントが利用するアプリケーションがまだインストールされておらず、インストール時間を考慮すると負荷融通要求の受入れが得策でないときには、拒絶する。負荷情報交換手段280は、受入れ可能と判断すると、許諾応答を、要求発行元のサーバに返信し(ステップC130)、受入れ不可と判断すると、拒絶応答を、要求発行元のサーバに返信する(ステップC140)。   FIG. 5 shows a detailed procedure of the load accommodation request process in step Z150 of FIG. The server 200 receives the load accommodation request transmitted from the other server in Step A240 in FIG. 3 (Step C110). The load information exchanging means 280 determines whether or not to accept the load acceptance based on the server state (step C120). In this acceptance determination, the server load measured by the server load measuring unit 290 is referred to. For example, when the server load is light (when it is lower than a predetermined threshold), it is determined that the load acceptance is accepted. However, even in that case, if the application used by the client is not yet installed in consideration of the server state and the installation time is taken into consideration, it is rejected if it is not a good idea to accept the load accommodation request. When the load information exchanging means 280 determines that it is acceptable, it returns a permission response to the server that issued the request (step C130), and when it determines that it is not acceptable, it returns a rejection response to the server that issued the request (step C130). C140).

図6は、図2のステップZ160のクライアント要求処理の詳細手順を示している。トランスポートスタック230は、クライアントからの処理要求を受信する(ステップD110)。トランスポートスタック230が受信したクライアントからの処理要求は、負荷融通手段220に渡される。負荷融通手段220は、状態フラグ340を参照し、状態フラグ340が「通常状態」であるか「負荷融通状態」であるかを調べる(ステップD120)。   FIG. 6 shows a detailed procedure of the client request process in step Z160 of FIG. The transport stack 230 receives the processing request from the client (step D110). The processing request from the client received by the transport stack 230 is passed to the load accommodation unit 220. The load accommodation unit 220 refers to the state flag 340 and checks whether the state flag 340 is “normal state” or “load accommodation state” (step D120).

負荷融通手段220は、状態フラグ340が「通常状態」であると判断すると、負荷の移管は行わないと決定し、クライアントからの要求をディスパッチ手段210に渡す。ディスパッチ手段210は、受け取ったクライアントからの要求に基づいて、アプリケーション群300から適切なサーバ群を選択し、アプリケーションを起動する(ステップD160)。起動したアプリケーションは、処理要求に応じた適切な処理を実行し、ディスパッチ手段210に応答(処理結果)を返す(ステップD170)。アプリケーションが作成した応答は、ディスパッチ手段210、負荷融通手段220、及び、トランスポートスタック230を介して、クライアントに返信される(ステップD180)。   When the load accommodation unit 220 determines that the status flag 340 is “normal state”, the load accommodation unit 220 determines that the load is not transferred, and passes the request from the client to the dispatch unit 210. The dispatch unit 210 selects an appropriate server group from the application group 300 based on the received request from the client, and activates the application (step D160). The activated application executes appropriate processing according to the processing request, and returns a response (processing result) to the dispatch unit 210 (step D170). The response created by the application is returned to the client via the dispatch unit 210, the load accommodation unit 220, and the transport stack 230 (step D180).

負荷融通手段220は、ステップD120で、状態フラグ340が「負荷融通状態」であると判断すると、負荷計測手段290により、サーバ200の負荷を計測する(ステップD130)。負荷融通手段220は、計測されたサーバ200の負荷と、負荷目標値330とを比較し、サーバ200の負荷が、負荷目標値330以上であるか否かを判断する(ステップD140)。負荷融通手段220は、サーバ負荷が負荷目標値330以上でないと判断すると、負荷の移管は行わないと決定し、状態フラグ340や負荷目標値330、移管先サーバ名335をリセットする(ステップD155)。その後、ステップD160へ進み、クライアントからの要求をディスパッチ手段210に渡し、ディスパッチ手段210によりアプリケーションを起動して、要求に対する応答をクライアントに返信する。   When the load accommodation unit 220 determines in step D120 that the status flag 340 is “load accommodation state”, the load measurement unit 290 measures the load of the server 200 (step D130). The load accommodation unit 220 compares the measured load of the server 200 with the load target value 330, and determines whether or not the load of the server 200 is equal to or greater than the load target value 330 (step D140). When determining that the server load is not equal to or higher than the load target value 330, the load accommodation unit 220 determines not to transfer the load, and resets the status flag 340, the load target value 330, and the transfer destination server name 335 (step D155). . Thereafter, the process proceeds to step D160, the request from the client is passed to the dispatch unit 210, the application is started by the dispatch unit 210, and a response to the request is returned to the client.

ステップD140での比較の結果、サーバ200の負荷が、負荷目標値330以上である場合には、負荷の移管を行うと決定する。この場合、負荷融通手段220は、移管先サーバ名335を参照し、移管先サーバ名335が示すサーバをリダイレクト先とするリダイレクト応答を作成する(ステップD150)。負荷融通手段220が作成したリダイレクト応答は、トランスポートスタック230を介して、クライアントに返信される。   As a result of the comparison in step D140, when the load of the server 200 is equal to or higher than the load target value 330, it is determined to transfer the load. In this case, the load accommodation unit 220 refers to the transfer destination server name 335 and creates a redirect response with the server indicated by the transfer destination server name 335 as the redirect destination (step D150). The redirect response created by the load accommodation unit 220 is returned to the client via the transport stack 230.

図7は、クライアントの動作手順を示している。クライアントは、HTTP等のリダイレクトで定義されるように、図7に示す手順で動作する。すなわち、クライアントは、あらかじめ決められたサーバ200に処理要求を発行する(ステップE110)。この処理要求を受け取ったサーバ200は、図6に示す手順に従って、処理結果、又は、リダイレクト応答を返信する。クライアントは、サーバ200からの応答を受信し(ステップE120)、受信した応答の種類を判別する(ステップE130)。サーバ200から受け取った応答が、処理結果であれば、処理結果を受信して(ステップE140)、処理を終了する。応答がリダイレクト応答であれば、クライアントは、指定されたリダイレクト先にサクセスサーバを変更し(ステップE150)、ステップE110に戻って、リダイレクト先にサーバに処理要求を送信する。   FIG. 7 shows an operation procedure of the client. The client operates according to the procedure shown in FIG. 7 as defined by redirection such as HTTP. That is, the client issues a processing request to the predetermined server 200 (step E110). Upon receiving this processing request, the server 200 returns a processing result or a redirect response according to the procedure shown in FIG. The client receives the response from the server 200 (step E120), and determines the type of the received response (step E130). If the response received from the server 200 is a processing result, the processing result is received (step E140) and the processing is terminated. If the response is a redirect response, the client changes the success server to the designated redirect destination (step E150), returns to step E110, and transmits a processing request to the server at the redirect destination.

次に、負荷係数285の決定について詳細について説明する。図8に、手順を示す。負荷係数285は、負荷目標値の決定に用いられ、他のサーバにどの程度の負荷を移管するかを決定するために用いられる。負荷係数決定手段260は、所定のタイミングで、例えばシステムの立ち上げ時に、ネットワーク構成情報250を読み込む(ステップF110)。負荷係数決定手段260は、読み込んだネットワーク構成情報250を参照して、ネットワーク構成(サーバ間の接続状態)を表す接続行列を作成する(ステップF120)。   Next, details of the determination of the load coefficient 285 will be described. FIG. 8 shows the procedure. The load coefficient 285 is used to determine a load target value, and is used to determine how much load is transferred to another server. The load coefficient determination unit 260 reads the network configuration information 250 at a predetermined timing, for example, when the system is started up (step F110). The load coefficient determination unit 260 refers to the read network configuration information 250 and creates a connection matrix representing the network configuration (connection state between servers) (step F120).

接続行列Aは、次のように定義する。

Figure 2008071156
上記接続行列Aにおいて、N(i)は、サーバiと接続されているサーバの集合である。すなわち、システムを構成するn台のサーバうちのi番目のサーバとj番目のサーバとが接続関係にある場合には、(i,j)成分及び(j,i)成分を「−1」にし、対角成分(i,i)をi番目に接続されたサーバに接続されたサーバの数とする。接続行列Aでは、任意の要素αi,jについて、
Figure 2008071156
が成立する。 The connection matrix A is defined as follows.
Figure 2008071156
In the connection matrix A, N (i) is a set of servers connected to the server i. That is, when the i-th server and the j-th server among n servers constituting the system are connected, the (i, j) component and the (j, i) component are set to “−1”. , The diagonal component (i, i) is the number of servers connected to the i-th connected server. In the connection matrix A, for any element α i, j ,
Figure 2008071156
Is established.

負荷係数決定手段260は、上記接続行列Aに対して、G=(−lA+E)(Eは単位行列)の固有値を求める。一般に、n×nの正方行列では、固有値はn個ある。固有値をk(l)とすると、全ての固有値k(l)が−1よりも大きく、かつ、1以下になるような0<l<1の範囲のlの値を求め、そのうちの最大値を求める(ステップF130)。このようにして求めた0<l<1の範囲のlの最大値を、負荷移管係数として、負荷係数285に格納する(ステップF140)。   The load coefficient determination unit 260 obtains an eigenvalue of G = (− 1A + E) (E is a unit matrix) for the connection matrix A. In general, an n × n square matrix has n eigenvalues. Assuming that the eigenvalue is k (l), the value of l in the range of 0 <l <1 such that all the eigenvalues k (l) are larger than −1 and 1 or less is obtained, and the maximum value among them is determined. Obtained (step F130). The maximum value of l in the range of 0 <l <1 obtained in this way is stored in the load coefficient 285 as a load transfer coefficient (step F140).

本実施形態の効果について説明する。本実施形態では、クライアントからの要求の全てが、特定の装置を通らずに、それぞれのサーバに送信される。このため、ボトルネックとなる装置が存在せず、大容量の負荷にも対応することが可能である。また、本実施形態では、サーバ同士は、周期的に、負荷情報交換手段280によって負荷情報を交換し、負荷目標値330を設定する。このため、サーバの負荷情報は、その周期よりも古い情報となることがない。従って、本実施形態では、キャッシュにより古いサーバ情報が残るDNSラウンドロビンに比して、最新の負荷情報による負荷分散が可能である。   The effect of this embodiment will be described. In this embodiment, all requests from the client are transmitted to each server without passing through a specific device. For this reason, there is no device that becomes a bottleneck, and it is possible to cope with a large load. Moreover, in this embodiment, servers exchange load information periodically by the load information exchanging means 280 to set the load target value 330. For this reason, the load information of the server does not become information older than the cycle. Therefore, in this embodiment, load distribution based on the latest load information is possible as compared with DNS round robin in which old server information remains in the cache.

更に、本実施形態では、接続行列Aに対して、G(−lA+E)の固有値が−1より大きく、1以下になるように、負荷係数285を求め、この負荷係数285を用いて負荷目標値330を決定する。このようにすることで、他のサーバとの間で負荷移管を繰り返した際に、サーバ負荷が平準化された負荷分散を実現できる。以下、サーバ負荷の平準化について、詳細に説明する。   Further, in the present embodiment, for the connection matrix A, the load coefficient 285 is obtained so that the eigenvalue of G (−1A + E) is greater than −1 and equal to or less than 1, and the load target value is obtained using this load coefficient 285. 330 is determined. By doing in this way, when load transfer is repeated with other servers, it is possible to realize load distribution in which the server load is leveled. Hereinafter, the leveling of the server load will be described in detail.

t回目の負荷移管によるサーバiの負荷を、xi,tで表す。各サーバでのt回目の負荷交換プロトコルの結果の負荷を、

Figure 2008071156
とおく。t+1回目の負荷移管によるサーバiの負荷は、t回目の負荷移管によるサーバiの負荷xi,tを用いて、
Figure 2008071156
と表すことができる。lは、負荷係数285の値である。これを変形すると、t+1回目の負荷と、t回目の負荷との差は、
Figure 2008071156
と表すことができる。接続行列を用いると、各サーバにおけるt+1回目の負荷と、t回目の負荷との差は、
Figure 2008071156
と表すことができる。すなわち、
Figure 2008071156
である。 The load of the server i resulting from the t-th load transfer is represented by x i, t . The load resulting from the tth load exchange protocol on each server is
Figure 2008071156
far. The load of the server i by the t + 1-th load transfer is calculated by using the load x i, t of the server i by the t-th load transfer,
Figure 2008071156
It can be expressed as. l is the value of the load coefficient 285. When this is transformed, the difference between the t + 1th load and the tth load is
Figure 2008071156
It can be expressed as. Using the connection matrix, the difference between the t + 1th load and the tth load on each server is
Figure 2008071156
It can be expressed as. That is,
Figure 2008071156
It is.

一般に、G=(−lA+E)の固有値が−1よりも大きく、かつ、1以下であれば、

Figure 2008071156
は収束するので、負荷係数決定手段260が、固有値がこの範囲に収まるようにlを設定すれば、
Figure 2008071156
は収束する。また、このとき、全ての固有値が0以上、かつ、1以下であれば、負荷は単調に収束する。固有値については、
Figure 2008071156
のため、固有値のうち、ひとつは1であることがわかっており、その固有ベクトルは、
Figure 2008071156
である。初期負荷ベクトルxを固有ベクトルの一次結合に分解し、tを無限大に近付けたとき負荷ベクトルxのリミットを考えると、1以外の固有値は−1よりも大きく、かつ、1よりも小さいので0に収束し、最終的に、固有ベクトルの一次結合のうちの
Figure 2008071156
の成分のみが残る。従って、負荷移管を繰り返すことで、負荷は平準化する。 In general, if the eigenvalue of G = (− 1A + E) is greater than −1 and less than or equal to 1,
Figure 2008071156
Converges, so if the load coefficient determining means 260 sets l so that the eigenvalue falls within this range,
Figure 2008071156
Converges. At this time, if all eigenvalues are 0 or more and 1 or less, the load converges monotonously. For eigenvalues,
Figure 2008071156
Therefore, one of the eigenvalues is known to be 1, and its eigenvector is
Figure 2008071156
It is. The initial load vector x 0 is decomposed into a linear combination of eigenvectors, given the limits of the load vector x t when close to t to infinity, 1 except eigenvalue greater than -1 and is smaller than 1 Converges to 0 and finally out of the linear combination of eigenvectors
Figure 2008071156
Only the ingredients remain. Therefore, the load is leveled by repeating the load transfer.

以下、具体例を用いて説明する。図9は、実施例1の負荷分散システムの構成を示している。本実施例では、サーバ200として、サーバA200−a、サーバB200−b、及び、サーバC200−cの3台のサーバを考える。また、サーバA200−aとサーバB200−b、及び、サーバB200−bとサーバC200−cとが相互認識し、定期的に負荷情報の交換を行っているもとする。この構成では、負荷係数決定手段260が、図8のステップF110で、ネットワーク構成情報250(図1)を読み込んで作成する接続行列Aは、下記のようになる。

Figure 2008071156
上記接続行列Aでは、1行目及び1列目がサーバA200−aに対応し、2行目及び2列目がサーバB200−bに対応している。また、3行目及び3列目は、サーバC200−cに対応している。 Hereinafter, a specific example will be described. FIG. 9 illustrates the configuration of the load distribution system according to the first embodiment. In the present embodiment, as the server 200, three servers, a server A 200-a, a server B 200-b, and a server C 200-c are considered. Further, it is assumed that the server A 200-a and the server B 200-b, and the server B 200-b and the server C 200-c mutually recognize each other and regularly exchange load information. In this configuration, the connection matrix A created by the load coefficient determination unit 260 by reading the network configuration information 250 (FIG. 1) in step F110 of FIG. 8 is as follows.
Figure 2008071156
In the connection matrix A, the first row and the first column correspond to the server A 200-a, and the second row and the second column correspond to the server B 200-b. The third row and the third column correspond to the server C200-c.

負荷係数決定手段260は、ステップF130で、作成した接続行列Aを用いて、

Figure 2008071156
の固有値を求める。その結果、k=1−3l、k=−l+1、k=1となる。単調に収束させるために、全ての固有値を0以上でかつ1以下にするには、0≦l≦(1/3)かつ0≦l≦1なので、これらを満たすlの最大値は1/3である。負荷係数決定手段260は、図8のステップF140で、「1/3」を負荷係数285に格納する。 The load coefficient determination means 260 uses the connection matrix A created in step F130,
Figure 2008071156
Find the eigenvalue of. As a result, k 0 = 1-3l, k 1 = -l + 1, k 2 = 1. In order to converge monotonously, to make all eigenvalues 0 or more and 1 or less, 0 ≦ l ≦ (1/3) and 0 ≦ l ≦ 1, so the maximum value of l satisfying these is 1/3 It is. The load coefficient determining means 260 stores “1/3” in the load coefficient 285 in step F140 of FIG.

次に、サーバA200−aには、クライアント400−a、400−bがアクセスし、サーバB200−bには、クライアント400−c、400−dがアクセスしているものとする。また、サーバC200−cには、クライアント400−e、400−fがアクセスしているものとする。当初、各クライアントは、10アクセス/秒でアクセスしていたとする。あるときに、サーバB200−bにアクセスするクライアント400−cのアクセス頻度が30アクセス/秒に増えたとする。そうすると、サーバB200−bの負荷は、20アクセス/秒から40アクセス/秒に増えることになる。   Next, it is assumed that the clients 400-a and 400-b are accessing the server A 200-a, and the clients 400-c and 400-d are accessing the server B 200-b. Further, it is assumed that the clients 400-e and 400-f are accessing the server C200-c. Initially, each client is accessing at 10 accesses / second. It is assumed that the access frequency of the client 400-c accessing the server B 200-b has increased to 30 accesses / second. Then, the load on the server B 200-b increases from 20 access / second to 40 access / second.

サーバA200−a及びサーバB200−bは、負荷情報交換手段280により、定期的に、互いの負荷情報を交換している(図2のステップZ130)。サーバB200−bは、サーバA200−aから負荷情報を取得することで、サーバA200−aの負荷が20アクセス/秒であることを知る(図3のステップA220)。融通しきい値270をD=1.5とすると、サーバB200−bの負荷と、サーバA200−aの負荷の比は、(40/20)>1.5となるので、ステップA230からステップA240に移行し、サーバB200−bは、サーバA200−aに対して、負荷融通を依頼する。   The server A 200-a and the server B 200-b regularly exchange load information with each other by the load information exchanging means 280 (step Z130 in FIG. 2). The server B 200-b obtains the load information from the server A 200-a to know that the load of the server A 200-a is 20 accesses / second (step A220 in FIG. 3). Assuming that the accommodation threshold 270 is D = 1.5, the ratio of the load on the server B 200-b to the load on the server A 200-a is (40/20)> 1.5. The server B 200-b requests the server A 200-a for load accommodation.

サーバA200−aは、図5のステップC110で、負荷融通要求を受信すると、ステップC120で、負荷が受入れ可能であるか否かをチェックする。負荷移管による問題がない場合、サーバA200−aは、ステップC130で、負荷融通要求に対して、許諾応答をする。サーバB200−bは、図3のステップA250で、サーバA200−aから許諾応答を受け取ると、負荷情報交換手段280により、状態フラグ340を「負荷融通状態」に設定し、移管先サーバ名335をサーバAに設定する。また、ステップA270で、負荷目標値330を、40−(1/3)×(40−20)=33に設定する。   When the server A 200-a receives the load accommodation request in step C110 of FIG. 5, the server A 200-a checks whether or not the load can be accepted in step C120. If there is no problem due to load transfer, the server A 200-a makes a permission response to the load accommodation request in step C130. When the server B 200-b receives the permission response from the server A 200-a in step A250 of FIG. 3, the load information exchanging unit 280 sets the status flag 340 to “load accommodation state” and sets the transfer destination server name 335 as the destination server name 335. Set to server A. In step A270, the load target value 330 is set to 40− (1/3) × (40−20) = 33.

サーバB200−bは、図6のステップD110で、クライアントからの要求処理を受けると、ステップD120で、状態フラグ340を調べる。状態フラグ340が「負荷融通状態」であるので、ステップD130へ移行して、負荷計測手段290により、サーバB200−bの負荷を計測する。その結果、例えば、負荷が40アクセス/秒であることがわかる。負荷融通手段220は、負荷(40アクセス/秒)と、負荷目標値330(33アクセス/秒)とを比較する。負荷が目標値よりも大きいので、ステップD140からステップD150へ移行して、サーバB200−bは、負荷融通手段220により、移管先サーバ名335で示すサーバA200−aへのリダイレクト応答を作成し、トランスポートスタック230を通じて、クライアントに、リダイレクト応答を返す。   When the server B 200-b receives the request processing from the client in step D110 of FIG. 6, it checks the status flag 340 in step D120. Since the status flag 340 is “load accommodation state”, the process proceeds to step D130 and the load measurement unit 290 measures the load on the server B 200-b. As a result, for example, it can be seen that the load is 40 accesses / second. The load accommodation unit 220 compares the load (40 accesses / second) with the load target value 330 (33 accesses / second). Since the load is larger than the target value, the process proceeds from step D140 to step D150, and the server B 200-b creates a redirect response to the server A 200-a indicated by the transfer destination server name 335 by the load accommodation unit 220. A redirect response is returned to the client through the transport stack 230.

クライアントは、図7のステップE120で、サーバB200−bからリダイレクト応答を受信する。リダイレクト応答を受けとったクライアントは、ステップE150で、指令されたリダイレクト先であるサーバA200−aにアクセス先を変更し、ステップE110に戻って、サーバA200−aに処理要求を送信する。このようにして、サーバB200−bに対するクライアントからの処理要求を、負荷が目標値に下がるまで、サーバA200−aにリダイレクトすることで、負荷分散を実現する。   The client receives a redirect response from the server B 200-b in step E120 of FIG. In step E150, the client that has received the redirect response changes the access destination to the instructed redirect destination server A 200-a, returns to step E110, and transmits a processing request to the server A 200-a. In this way, load distribution is realized by redirecting a processing request from a client to the server B 200-b to the server A 200-a until the load drops to the target value.

次に、別の具体例を用いて説明する。図10は、実施例2の負荷分散システムの構成を示している。本実施例では、サーバ200として、サーバA200−a、サーバB200−b、サーバC200−c、及び、サーバD200−dの4つのサーバを考える。これらは、互いに相互認識し、定期的に負荷情報の交換を行っている。この構成では、図8のステップF110で、負荷係数決定手段260が、ネットワーク構成情報250(図1)を読み込んで作成する接続行列Aは、下記のようになる。

Figure 2008071156
Next, another specific example will be described. FIG. 10 illustrates the configuration of the load distribution system according to the second embodiment. In the present embodiment, as the server 200, four servers, a server A 200-a, a server B 200-b, a server C 200-c, and a server D 200-d are considered. These mutually recognize each other and regularly exchange load information. In this configuration, the connection matrix A that the load coefficient determination unit 260 reads and creates the network configuration information 250 (FIG. 1) in step F110 of FIG. 8 is as follows.
Figure 2008071156

負荷係数決定手段260が、l=0.4と設定すると、行列G=(−lA+E)の1を除く固有値のうちで、絶対値が最大となる固有値は−0.84となり、この値は、−1より大きく1以下である。従って、負荷は収束する。図11に、各サーバの負荷の変化の様子を示す。この例では、融通しきい値Dは1.2とした。同図では、縦軸はサーバの負荷を表し、横軸は時間を表している。同図を参照すると、4台のサーバのうちの1台に負荷をかけた場合に、他の3台のサーバとの間で負荷を融通することで、最終的に、サーバ間で負荷が平準化できることがわかる。比較例として、同じ条件で、l=0.8としたときのサーバ負荷の変化の様子を図12に示す。この場合には、固有値のうちで絶対値が最大となるものは−2.7となるので、負荷移管を繰り返しても、同図に示すように各サーバの負荷は変動し、平準化されない。   When the load coefficient determination unit 260 sets l = 0.4, among eigenvalues excluding 1 in the matrix G = (− 1A + E), the eigenvalue having the maximum absolute value is −0.84, and this value is Greater than -1 and less than or equal to 1. Therefore, the load converges. FIG. 11 shows how the load on each server changes. In this example, the accommodation threshold D is 1.2. In the figure, the vertical axis represents the load on the server, and the horizontal axis represents time. Referring to the figure, when a load is applied to one of the four servers, the load is balanced with the other three servers, so that the load is finally leveled between the servers. It can be seen that As a comparative example, FIG. 12 shows how the server load changes when l = 0.8 under the same conditions. In this case, the eigenvalue having the maximum absolute value is −2.7. Therefore, even if load transfer is repeated, the load on each server fluctuates and is not leveled as shown in FIG.

なお、融通しきい値270について、他サーバへの負荷の移管は、負荷の比が融通しきい値を超えるときに行われるため、融通しきい値は、最終的には、平準化された負荷のサーバ間でのばらつきを示すことになる。この値を1とすると、負荷移管が頻発してかえって効率が落ちるため、融通しきい値は、1.1〜1.5程度の値とすることが好ましい。   Regarding the accommodation threshold value 270, since the load transfer to other servers is performed when the load ratio exceeds the accommodation threshold value, the accommodation threshold value is finally equalized load It shows the variation among servers. If this value is 1, load transfer frequently occurs and efficiency is lowered. Therefore, the accommodation threshold is preferably set to a value of about 1.1 to 1.5.

以上、本発明をその好適な実施形態に基づいて説明したが、本発明の負荷分散システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。   As described above, the present invention has been described based on the preferred embodiments. However, the load distribution system, method, and program of the present invention are not limited to the above embodiments, and various configurations are possible from the configurations of the above embodiments. Those modified and changed as described above are also included in the scope of the present invention.

本発明は、クライアントからの大量の負荷を処理するロードバランサといった用途に適用できる。また、センサーやRFIDからの大量の負荷を処理するロードバランサといった用途にも適用可能である。   The present invention can be applied to a use such as a load balancer that processes a large amount of load from a client. Moreover, it is applicable also to uses, such as a load balancer which processes a lot of loads from a sensor or RFID.

本発明の第1実施形態の負荷分散システムの構成を示すブロック図。The block diagram which shows the structure of the load distribution system of 1st Embodiment of this invention. 負荷分散システムの全体的な処理の流れを示すフローチャート。The flowchart which shows the flow of the whole process of a load distribution system. 負荷情報交換処理の詳細な手順を示すフローチャート。The flowchart which shows the detailed procedure of a load information exchange process. 負荷情報提供処理の詳細な手順を示すフローチャート。The flowchart which shows the detailed procedure of a load information provision process. 負荷融通要求処理の詳細な手順を示すフローチャート。The flowchart which shows the detailed procedure of a load accommodation request | requirement process. クライアント要求処理の詳細手順を示すフローチャート。The flowchart which shows the detailed procedure of a client request process. クライアントの動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of a client. 負荷係数の決定の手順を示すフローチャート。The flowchart which shows the procedure of the determination of a load coefficient. 実施例1の負荷分散システムの構成を示すブロック図。1 is a block diagram illustrating a configuration of a load distribution system according to a first embodiment. 実施例2の負荷分散システムの構成を示すブロック図。FIG. 3 is a block diagram illustrating a configuration of a load distribution system according to a second embodiment. 実施例2における各サーバの負荷の変化の様子を示すグラフ。9 is a graph showing a change in load on each server in Example 2. 比較例における各サーバの負荷の変化の様子を示すグラフ。The graph which shows the mode of the load change of each server in a comparative example. 従来の負荷分散システムの構成を示すブロック図。The block diagram which shows the structure of the conventional load distribution system. 従来の負荷分散システム(DNSラウンドロビン)の構成を示すブロック図。The block diagram which shows the structure of the conventional load distribution system (DNS round robin). 従来の負荷分散(非集中型負荷分散)システムの構成を示すブロック図。The block diagram which shows the structure of the conventional load distribution (decentralized type load distribution) system. 従来の負荷分散システムの構成を示すブロック図。The block diagram which shows the structure of the conventional load distribution system.

符号の説明Explanation of symbols

100:負荷分散システム
200:サーバ
210:ディスパッチ手段
220:負荷融通手段
230:トランスポートスタック
240:CPU
250:ネットワーク構成情報
260:負荷係数決定手段
270:融通しきい値
280:負荷情報交換手段
285:負荷係数
290:負荷計測手段
300:アプリケーション群
310:ネットワーク
320:タイマ
330:負荷目標値
335:移管先サーバ名
340:状態フラグ
400:クライアント
100: Load distribution system 200: Server 210: Dispatch means 220: Load accommodation means 230: Transport stack 240: CPU
250: Network configuration information 260: Load coefficient determination means 270: Interchange threshold 280: Load information exchange means 285: Load coefficient 290: Load measurement means 300: Application group 310: Network 320: Timer 330: Load target value 335: Transfer Destination server name 340: Status flag 400: Client

Claims (35)

複数のサーバを有するネットワークシステムのネットワーク構成を記憶するネットワーク構成情報を参照し、負荷係数を決定する負荷係数決定手段と、
他のサーバから負荷情報を取得し、自サーバの負荷、及び、他のサーバの負荷と、前記負荷係数とに基づいて、負荷目標値を設定する負荷情報交換手段と、
自サーバの負荷と前記負荷目標値とを比較し、自サーバの負荷が前記負荷目標値以下のとき、クライアントからの処理要求に対する処理を自サーバ内で実行させ、自サーバの負荷が前記負荷目標値を超えるとき、前記処理要求に対応する処理を、前記他のサーバで実行させる負荷融通手段とを備えることを特徴とする負荷分散システム。
Load coefficient determining means for determining a load coefficient with reference to network configuration information storing a network configuration of a network system having a plurality of servers;
Load information exchange means for obtaining load information from another server, and setting a load target value based on the load of the own server, the load of the other server, and the load coefficient;
The load of the own server is compared with the load target value, and when the load of the own server is equal to or less than the load target value, the processing for the processing request from the client is executed in the own server. And a load accommodation unit that causes the other server to execute processing corresponding to the processing request when the value exceeds the value.
前記負荷情報交換手段は、前記自サーバの負荷から、該自サーバの負荷と他のサーバの負荷との差に前記負荷係数を乗じた値を引いた値を、前記負荷目標値として設定する、請求項1に記載の負荷分散システム。   The load information exchanging means sets, as the load target value, a value obtained by subtracting a value obtained by multiplying the load of the own server and the load of another server by the load coefficient from the load of the own server. The load distribution system according to claim 1. 前記負荷情報交換手段は、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、負荷融通を行うか否かを示す状態フラグを「負荷融通状態」に設定して前記負荷目標値の設定を行い、前記負荷融通手段は、前記状態フラグが「負荷融通状態」のとき、前記自サーバの負荷と前記負荷目標値との比較を行う、請求項1又は2に記載の負荷分散システム。   When the load information exchanging means determines that the ratio of the load of the own server and the load of the other server exceeds a predetermined threshold, a status flag indicating whether or not to perform load accommodation is set to “load accommodation state”. The load target value is set by setting the load target value, and the load accommodation unit compares the load of the server with the load target value when the status flag is "load accommodation state". Or the load distribution system of 2. 前記負荷融通手段は、前記比較の結果、前記自サーバの負荷が前記負荷目標値以下であると、前記状態フラグを、負荷融通を行わない状態を示す「通常状態」に設定する、請求項3に記載の負荷分散システム。   The load accommodation means sets the state flag to a “normal state” indicating a state in which load accommodation is not performed when the load of the server is equal to or less than the load target value as a result of the comparison. Load balancing system described in 1. 前記負荷情報交換手段は、前記状態フラグが「負荷融通状態」でないとき、前記他のサーバから負荷情報を取得する、請求項3又は4に記載の負荷分散システム。   5. The load distribution system according to claim 3, wherein the load information exchanging unit acquires load information from the other server when the state flag is not “load accommodation state”. 前記負荷情報交換手段は、前記状態フラグを「負荷融通状態」に設定すると、前記他のサーバを指し示す情報を移管先サーバ記憶部に格納し、前記負荷融通手段は、自サーバの負荷が前記負荷目標値を超えるとき、前記移管先サーバ記憶部を参照して、前記処理要求に対する処理を、該移管先サーバ記憶部に格納されたサーバで実行させる、請求項3〜5の何れか一に記載の負荷分散システム。   The load information exchanging means stores the information indicating the other server in the transfer destination server storage unit when the status flag is set to “load accommodating state”. 6. The process according to claim 3, wherein when the target value is exceeded, the process corresponding to the processing request is executed by a server stored in the transfer destination server storage unit with reference to the transfer destination server storage unit. Load balancing system. 前記負荷情報交換手段は、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、前記他のサーバに負荷融通が可能か否かを問い合わせる負荷融通要求を送信し、該要求に対して許諾する旨の応答を受信すると、前記状態フラグを「負荷融通状態」に設定すると共に、当該他のサーバを示す情報を前記移管先サーバ記憶部に格納する、請求項6に記載の負荷分散システム。   When the load information exchanging means determines that the ratio of the load of the local server and the load of the other server exceeds a predetermined threshold, the load interchange request for inquiring whether or not the other server can accommodate the load. When the response indicating that the request is granted is received, the status flag is set to “load accommodation state”, and information indicating the other server is stored in the transfer destination server storage unit. The load distribution system according to claim 6. 前記負荷情報交換手段は、他のサーバから、前記負荷融通要求を受信すると、自サーバの負荷情報を参照して許諾するか否かを決定し、許諾するときには許諾応答を、拒否するときには拒否応答を返信する、請求項7に記載の負荷分散システム。   When the load information exchange unit receives the load accommodation request from another server, the load information exchanging means determines whether or not to grant the license by referring to the load information of the own server. The load distribution system according to claim 7, wherein 前記負荷融通手段は、自サーバの負荷が前記負荷目標値を超えるとき、前記処理要求に対して、他のサーバをリダイレクト先とするリダイレクト応答をクライアントに送信し、前記処理要求に対する処理を他のサーバで実行させる、請求項1〜8の何れか一に記載の負荷分散システム。   When the load of the own server exceeds the load target value, the load accommodation unit transmits a redirect response to the client as a redirect destination in response to the processing request, and performs processing for the processing request to another The load distribution system according to any one of claims 1 to 8, which is executed by a server. 前記負荷融通手段は、自サーバの負荷が前記負荷目標値以下であるとき、ディスパッチ手段により前記処理要求に対応するアプリケーションを起動し、該アプリケーションの処理結果を、前記クライアントに対する応答として送信する、請求項1〜9の何れか一に記載の負荷分散システム。   The load accommodation unit activates an application corresponding to the processing request by a dispatch unit when a load on the server is equal to or less than the load target value, and transmits a processing result of the application as a response to the client. Item 10. The load distribution system according to any one of Items 1 to 9. 前記負荷係数決定手段は、前記ネットワーク構成情報に基づいて、行及び列を各サーバに対応させ、サーバ間で接続間関係にあるサーバに対応する要素を−1、接続関係にないサーバに対応する要素を0、対角要素をその行に対応するサーバに接続されたサーバの数とする接続行列Aを作成し、該作成した接続行列Aに対して、lを変数とし、Eを単位行列としてG=(−lA+E)の固有値k(l)を求め、全ての固有値k(l)が−1より大きく1以下となる0<l<1のうちのlの最大値を求め、該lの最大値を、負荷係数として決定する、請求項1〜10の何れか一に記載の負荷分散システム。   The load factor determination means corresponds to each server with a row and a column based on the network configuration information, corresponds to a server corresponding to a server having a connection relationship between servers, and corresponds to a server having no connection relationship. A connection matrix A is created in which the element is 0, and the diagonal element is the number of servers connected to the server corresponding to the row. For the created connection matrix A, l is a variable and E is a unit matrix. Eigenvalue k (l) of G = (− lA + E) is obtained, and the maximum value of l of 0 <l <1 where all eigenvalues k (l) are greater than −1 and 1 or less is obtained. The load distribution system according to claim 1, wherein the value is determined as a load coefficient. 複数のサーバを有するネットワークシステムで、サーバの負荷を分散させる方法であって、
前記サーバが、前記ネットワークシステムのネットワーク構成を記憶するネットワーク構成情報を参照し、負荷係数を決定する負荷係数決定ステップと、
前記サーバが、他のサーバとの間で負荷情報を交換し、自サーバの負荷、及び、他のサーバの負荷と、前記負荷係数とに基づいて、負荷目標値を設定する負荷目標値設定ステップと、
前記サーバが、自サーバの負荷と前記負荷目標値とを比較し、クライアントからの処理要求に対する処理を、自サーバで実行するか、又は、前記他のサーバに実行させるかを決定する処理サーバ決定ステップとを有し、
前記サーバが、前記処理サーバ決定ステップで、自サーバで実行すると決定すると、前記処理を自サーバ内で実行し、他のサーバに実行させると決定すると、前記処理を、前記他のサーバで実行させることを特徴とする負荷分散方法。
In a network system having a plurality of servers, a method of distributing the server load,
A load factor determining step in which the server refers to network configuration information storing a network configuration of the network system and determines a load factor;
A load target value setting step in which the server exchanges load information with another server and sets a load target value based on the load of the own server, the load of the other server, and the load coefficient. When,
Processing server determination in which the server compares the load of its own server with the load target value, and determines whether to execute processing for a processing request from a client on its own server or to execute the other server And having steps
When the server decides that the server is to be executed by the server in the processing server determination step, the server performs the process on the other server when the server is determined to be executed in the server and executed by another server. A load balancing method characterized by the above.
前記処理サーバ決定ステップでは、前記サーバは、自サーバの負荷と前記負荷目標値とを比較し、自サーバの負荷が前記負荷目標値以下であれば、前記処理を自サーバ内で実行すると決定し、自サーバの負荷が前記目標値を超えるときには、前記他のサーバに実行させると決定する、請求項12に記載の負荷分散方法。   In the processing server determination step, the server compares the load of the server with the load target value, and determines that the process is executed in the server if the load of the server is equal to or less than the load target value. The load distribution method according to claim 12, wherein when the load of the own server exceeds the target value, the other server is determined to execute. 前記負荷目標値設定ステップでは、前記サーバは、前記自サーバの負荷から、該自サーバの負荷と他のサーバの負荷との差に前記負荷係数を乗じた値を引いた値を、前記負荷目標値として設定する、請求項12又は13に記載の負荷分散方法。   In the load target value setting step, the server subtracts a value obtained by subtracting a value obtained by multiplying the load between the own server and the load of another server by the load coefficient from the load of the own server. The load distribution method according to claim 12 or 13, wherein the load distribution method is set as a value. 前記負荷目標値設定ステップでは、前記サーバは、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、負荷融通を行うか否かを示す状態フラグを「負荷融通状態」に設定して、前記負荷目標値の設定を行い、
前記サーバは、前記処理要求を受け付けると、前記状態フラグを参照し、該状態フラグが「負荷融通状態」であれば、前記処理サーバ決定ステップを実行する、請求項12〜14の何れか一に記載の負荷分散方法。
In the load target value setting step, when the server determines that the ratio of the load of the own server and the load of another server exceeds a predetermined threshold, a status flag indicating whether or not to perform load accommodation is displayed. Set to "Load accommodation state", set the load target value,
The said server will refer to the said status flag, if the said status request is a "load accommodation state", and will perform the said processing server determination step, if the said processing request is received. The load balancing method described.
前記処理サーバ決定ステップでは、前記サーバは、前記処理要求に対する処理を自サーバで実行すると決定すると、前記状態フラグを、負荷融通を行わない状態を示す「通常状態」に設定する、請求項15に記載の負荷分散方法。   16. In the processing server determination step, the server sets the state flag to “normal state” indicating a state in which load accommodation is not performed when the server determines to execute processing for the processing request in its own server. The load balancing method described. 前記負荷目標値設定ステップでは、前記サーバは、前記状態フラグを「負荷融通状態」に設定すると、前記他のサーバを指し示す情報を移管先サーバ記憶部に格納する、請求項15又は16に記載の負荷分散方法。   The said load target value setting step WHEREIN: The said server will store the information which points out said other server in a transfer destination server memory | storage part, if the said state flag sets to the "load accommodation state". Load balancing method. 前記サーバは、前記処理要求に対する処理を他のサーバに実行させると決定すると、前記移管先サーバ記憶部を参照して、該移管先サーバ記憶部に格納されたサーバに、前記処理を実行させる、請求項17に記載の負荷分散方法。   When the server determines that another server is to execute the process for the processing request, the server stored in the transfer destination server storage unit is caused to execute the process with reference to the transfer destination server storage unit. The load distribution method according to claim 17. 前記負荷目標値設定ステップでは、前記サーバは、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、前記他のサーバに負荷融通が可能か否かを問い合わせる負荷融通要求を送信し、該要求に対して許諾する旨の応答を受信すると、前記状態フラグを「負荷融通状態」に設定し、当該他のサーバを示す情報を前記移管先サーバ記憶部に格納して、前記負荷目標値を設定する、請求項17又は18に記載の負荷分散方法。   In the load target value setting step, if the server determines that the ratio of the load of the local server to the load of the other server exceeds a predetermined threshold, whether or not load accommodation is possible for the other server. When receiving a response to grant permission for the request, the status flag is set to “load accommodation state”, and information indicating the other server is stored in the transfer destination server storage unit The load distribution method according to claim 17 or 18, wherein the load target value is set by storing the load target value. 前記サーバは、他のサーバから、前記負荷融通要求を受信すると、自サーバの負荷情報を参照して許諾するか否かを決定し、許諾するときには許諾応答を、拒否するときには拒否応答を返信する、請求項19に記載の負荷分散方法。   When the server receives the load accommodation request from another server, the server determines whether or not to grant the permission by referring to the load information of the server, and returns a permission response when permitting or a rejection response when rejecting. The load balancing method according to claim 19. 前記サーバは、前記処理サーバ決定ステップで、他のサーバに実行させると決定すると、前記処理要求に対して、他のサーバをリダイレクト先とするリダイレクト応答をクライアントに送信し、前記処理要求に対する処理を他のサーバで実行させる、請求項12〜20の何れか一に記載の負荷分散方法。   When the server determines in the processing server determination step that the other server is to execute, the server transmits a redirect response to the client as a redirect destination in response to the processing request, and performs processing for the processing request. The load distribution method according to any one of claims 12 to 20, which is executed by another server. 前記サーバは、前記処理サーバ決定ステップで、自サーバで実行すると決定すると、ディスパッチ手段により前記処理要求に対応するアプリケーションを起動し、該アプリケーションの処理結果を、前記クライアントに対する応答として送信する、請求項12〜20の何れか一に記載の負荷分散方法。   The server activates an application corresponding to the processing request by a dispatch unit and transmits a processing result of the application as a response to the client when the server determines that the server executes in the processing server determination step. The load distribution method according to any one of 12 to 20. 前記負荷係数決定ステップでは、前記サーバは、前記ネットワーク構成情報に基づいて、行及び列を各サーバに対応させ、サーバ間で接続間関係にあるサーバに対応する要素を−1、接続関係にないサーバに対応する要素を0、対角要素をその行に対応するサーバに接続されたサーバの数とする接続行列Aを作成し、該作成した接続行列Aに対して、lを変数とし、Eを単位行列としてG=(−lA+E)の固有値k(l)を求め、全ての固有値k(l)が−1より大きく1以下となる0<l<1のうちのlの最大値を求め、該lの最大値を、負荷係数として決定する、請求項12〜22の何れか一に記載の負荷分散方法。   In the load factor determination step, the server associates a row and a column with each server based on the network configuration information, and -1 indicates an element corresponding to a server that is in a connection relationship between servers, and is not in a connection relationship. A connection matrix A is created in which the element corresponding to the server is 0, the diagonal element is the number of servers connected to the server corresponding to the row, and l is a variable for the created connection matrix A, and E Is used as a unit matrix to determine eigenvalues k (l) of G = (− lA + E), and the maximum value of l among 0 <l <1 where all eigenvalues k (l) are greater than −1 and equal to or less than 1, The load distribution method according to any one of claims 12 to 22, wherein the maximum value of l is determined as a load coefficient. 複数のサーバを有するネットワークシステムで、サーバの負荷を分散させる処理を前記サーバに実行させるプログラムあって、前記サーバに、
前記ネットワークシステムのネットワーク構成を記憶するネットワーク構成情報を参照し、負荷係数を決定する負荷係数決定ステップと、
他のサーバとの間で負荷情報を交換し、自サーバの負荷、及び、他のサーバの負荷と、前記負荷係数とに基づいて、負荷目標値を設定する負荷目標値設定ステップと、
自サーバの負荷と前記負荷目標値とを比較し、クライアントからの処理要求に対する処理を、自サーバで実行するか、又は、前記他のサーバに実行させるかを決定する処理サーバ決定ステップとを実行させ、
前記処理サーバ決定ステップで、自サーバで実行すると決定すると、前記処理を自サーバ内で実行し、他のサーバに実行させると決定すると、前記処理を、前記他のサーバで実行させることを特徴とするプログラム。
In a network system having a plurality of servers, there is a program for causing the server to execute a process for distributing the load on the server.
A load coefficient determination step for determining a load coefficient with reference to network configuration information storing a network configuration of the network system;
A load target value setting step for exchanging load information with another server, and setting a load target value based on the load of the own server, the load of the other server, and the load coefficient;
A processing server determination step of comparing the load of the local server with the load target value and determining whether the processing for the processing request from the client is executed by the local server or the other server is executed. Let
In the processing server determination step, when it is determined that the processing is to be executed by the own server, the processing is executed by the other server when the processing is executed in the own server and is determined to be executed by another server. Program to do.
前記処理サーバ決定ステップでは、自サーバの負荷と前記負荷目標値とを比較し、自サーバの負荷が前記負荷目標値以下であれば、前記処理を自サーバ内で実行すると決定し、自サーバの負荷が前記目標値を超えるときには、前記他のサーバに実行させると決定する、請求項24に記載のプログラム。   In the processing server determination step, the load of the local server is compared with the load target value, and if the load of the local server is equal to or less than the load target value, it is determined that the processing is executed in the local server, The program according to claim 24, wherein when the load exceeds the target value, it is determined that the other server is executed. 前記負荷目標値設定ステップでは、前記自サーバの負荷から、該自サーバの負荷と他のサーバの負荷との差に前記負荷係数を乗じた値を引いた値を、前記負荷目標値として設定する、請求項24又は25に記載のプログラム。   In the load target value setting step, a value obtained by subtracting a value obtained by multiplying a difference between the load of the local server and the load of another server by the load coefficient from the load of the local server is set as the load target value. The program according to claim 24 or 25. 前記負荷目標値設定ステップでは、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、負荷融通を行うか否かを示す状態フラグを「負荷融通状態」に設定して、前記負荷目標値の設定を行い、
前記サーバに、前記処理要求を受け付けると、前記状態フラグを参照し、該状態フラグが「負荷融通状態」であれば、前記処理サーバ決定ステップを実行する処理を実行させる、請求項24〜26の何れか一に記載のプログラム。
In the load target value setting step, when it is determined that the ratio between the load of the local server and the load of the other server exceeds a predetermined threshold, a status flag indicating whether or not to perform load accommodation is set to “load accommodation state”. To set the load target value,
27. When receiving the processing request, the server refers to the status flag, and if the status flag is “load accommodation status”, causes the processing server determination step to be executed. The program according to any one of the above.
前記処理サーバ決定ステップでは、前記処理要求に対する処理を自サーバで実行すると決定すると、前記状態フラグを、負荷融通を行わない状態を示す「通常状態」に設定する、請求項27に記載のプログラム。   28. The program according to claim 27, wherein, in the processing server determination step, when it is determined that the processing corresponding to the processing request is to be executed by a local server, the state flag is set to a “normal state” indicating a state where load accommodation is not performed. 前記負荷目標値設定ステップでは、前記サーバは、前記状態フラグを「負荷融通状態」に設定すると、前記他のサーバを指し示す情報を移管先サーバ記憶部に格納する、請求項27又は28に記載のプログラム。   29. The load target value setting step according to claim 27 or 28, wherein the server stores information indicating the other server in a transfer destination server storage unit when the state flag is set to "load accommodation state". program. 前記サーバに、前記処理要求に対する処理を他のサーバに実行させると決定したときに、前記移管先サーバ記憶部を参照して、該移管先サーバ記憶部に格納されたサーバに、前記処理を実行させる処理を実行させる、請求項29に記載のプログラム。   When it is determined that the server is to execute processing for the processing request in another server, the processing is performed on the server stored in the transfer destination server storage unit with reference to the transfer destination server storage unit 30. The program according to claim 29, wherein the program is executed. 前記負荷目標値設定ステップでは、前記自サーバの負荷と他のサーバの負荷との比が所定のしきい値を超えると判断すると、前記他のサーバに負荷融通が可能か否かを問い合わせる負荷融通要求を送信し、該要求に対して許諾する旨の応答を受信すると、前記状態フラグを「負荷融通状態」に設定し、当該他のサーバを示す情報を前記移管先サーバ記憶部に格納して、前記負荷目標値を設定する、請求項29又は30に記載のプログラム。   In the load target value setting step, when it is determined that the ratio of the load of the local server to the load of the other server exceeds a predetermined threshold, the load accommodation is made to inquire whether the load accommodation is possible to the other server. When the request is transmitted and a response indicating that the request is granted is received, the status flag is set to “load accommodation status”, and information indicating the other server is stored in the transfer destination server storage unit. The program according to claim 29 or 30, wherein the load target value is set. 前記サーバに、他のサーバから、前記負荷融通要求を受信したときに、自サーバの負荷情報を参照して許諾するか否かを決定し、許諾するときには許諾応答を、拒否するときには拒否応答を返信する処理を実行させる、請求項31に記載のプログラム。   When receiving the load accommodation request from another server, the server determines whether or not to grant the license by referring to the load information of the own server. 32. The program according to claim 31, wherein the program for executing a reply is executed. 前記サーバに、前記処理サーバ決定ステップで、他のサーバに実行させると決定したときに、前記処理要求に対して、他のサーバをリダイレクト先とするリダイレクト応答をクライアントに送信し、前記処理要求に対する処理を他のサーバで実行させる処理を実行させる、請求項24〜32の何れか一に記載のプログラム。   When it is determined in the processing server determination step that the other server executes the server, the server transmits a redirect response to the client as a redirect destination in response to the processing request. The program according to any one of claims 24 to 32, which causes a process to be executed by another server. 前記サーバに、前記処理サーバ決定ステップで、自サーバで実行すると決定したときに、ディスパッチ手段により前記処理要求に対応するアプリケーションを起動し、該アプリケーションの処理結果を、前記クライアントに対する応答として送信する処理を実行させる、請求項24〜32の何れか一に記載のプログラム。   Processing for starting the application corresponding to the processing request by dispatch means and transmitting the processing result of the application to the server as a response to the client when it is determined in the processing server determination step to be executed by the server. The program according to claim 24, wherein the program is executed. 前記負荷係数決定ステップでは、前記ネットワーク構成情報に基づいて、行及び列を各サーバに対応させ、サーバ間で接続間関係にあるサーバに対応する要素を−1、接続関係にないサーバに対応する要素を0、対角要素をその行に対応するサーバに接続されたサーバの数とする接続行列Aを作成し、該作成した接続行列Aに対して、lを変数とし、Eを単位行列としてG=(−lA+E)の固有値k(l)を求め、全ての固有値k(l)が−1より大きく1以下となる0<l<1のうちのlの最大値を求め、該lの最大値を、負荷係数として決定する、請求項24〜34の何れか一に記載のプログラム。   In the load factor determination step, rows and columns are associated with each server based on the network configuration information, and an element corresponding to a server having a connection relationship between servers is -1, and a server having no connection relationship is associated with the server. A connection matrix A is created in which the element is 0, and the diagonal element is the number of servers connected to the server corresponding to the row. For the created connection matrix A, l is a variable and E is a unit matrix. Eigenvalue k (l) of G = (− lA + E) is obtained, and the maximum value of l of 0 <l <1 where all eigenvalues k (l) are greater than −1 and 1 or less is obtained. The program according to any one of claims 24 to 34, wherein the value is determined as a load coefficient.
JP2006249651A 2006-09-14 2006-09-14 Load balancing system, method, and program Expired - Fee Related JP4340733B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006249651A JP4340733B2 (en) 2006-09-14 2006-09-14 Load balancing system, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006249651A JP4340733B2 (en) 2006-09-14 2006-09-14 Load balancing system, method, and program

Publications (2)

Publication Number Publication Date
JP2008071156A true JP2008071156A (en) 2008-03-27
JP4340733B2 JP4340733B2 (en) 2009-10-07

Family

ID=39292679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006249651A Expired - Fee Related JP4340733B2 (en) 2006-09-14 2006-09-14 Load balancing system, method, and program

Country Status (1)

Country Link
JP (1) JP4340733B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009449A (en) * 2008-06-30 2010-01-14 Nec Corp Distributed information arrangement system
JP2010160748A (en) * 2009-01-09 2010-07-22 Nippon Hoso Kyokai <Nhk> Network controller and computer program
WO2011024930A1 (en) * 2009-08-24 2011-03-03 日本電気株式会社 Content distribution system, content distribution method and content distribution-use program
WO2011070607A1 (en) * 2009-12-07 2011-06-16 富士通株式会社 Server system control method and server control program
JP2012185638A (en) * 2011-03-04 2012-09-27 Kddi Corp Load distribution device, load distribution system, load distribution method, and load distribution program
JP2013003710A (en) * 2011-06-14 2013-01-07 Kddi Corp Server coordination and mutual-aid system, server for the same, and server coordination and mutual-aid program
JP2018160720A (en) * 2017-03-22 2018-10-11 ブラザー工業株式会社 Communication method and communication program
US10122768B2 (en) 2013-11-18 2018-11-06 Ricoh Company, Limited Control system, communication system, computer program, controlling method, and computer program product
US10171568B2 (en) 2013-11-18 2019-01-01 Ricoh Company, Limited Selecting system, communication management system, communication system, computer program, and method of selection
US10187219B2 (en) 2013-11-18 2019-01-22 Ricoh Company, Limited Control system, communication system, computer program, controlling method, and computer program product

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168790A (en) * 1993-12-15 1995-07-04 Oki Electric Ind Co Ltd Information processor
JPH1021200A (en) * 1996-06-28 1998-01-23 Hitachi Ltd Work accommodation amount controller
JPH1078937A (en) * 1996-07-12 1998-03-24 Nec Corp Inter-computer job distribution system and method and recording medium recording job distribution program
JP2000196677A (en) * 1998-12-28 2000-07-14 Fujitsu Ltd Repeater used for network system
JP2002334012A (en) * 2001-05-10 2002-11-22 Nippon Telegr & Teleph Corp <Ntt> Service request processing method and its implementation system, and its processing program and recording medium
JP2004133839A (en) * 2002-10-15 2004-04-30 Fujitsu Ltd Device and program for distributing server
JP2005149423A (en) * 2003-11-19 2005-06-09 Hitachi Ltd Information processing system and information processor
JP2006221450A (en) * 2005-02-10 2006-08-24 Nec Access Technica Ltd Load distribution device, load distribution method and load distribution program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168790A (en) * 1993-12-15 1995-07-04 Oki Electric Ind Co Ltd Information processor
JPH1021200A (en) * 1996-06-28 1998-01-23 Hitachi Ltd Work accommodation amount controller
JPH1078937A (en) * 1996-07-12 1998-03-24 Nec Corp Inter-computer job distribution system and method and recording medium recording job distribution program
JP2000196677A (en) * 1998-12-28 2000-07-14 Fujitsu Ltd Repeater used for network system
JP2002334012A (en) * 2001-05-10 2002-11-22 Nippon Telegr & Teleph Corp <Ntt> Service request processing method and its implementation system, and its processing program and recording medium
JP2004133839A (en) * 2002-10-15 2004-04-30 Fujitsu Ltd Device and program for distributing server
JP2005149423A (en) * 2003-11-19 2005-06-09 Hitachi Ltd Information processing system and information processor
JP2006221450A (en) * 2005-02-10 2006-08-24 Nec Access Technica Ltd Load distribution device, load distribution method and load distribution program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中島募、佐々木元也: "WWWサーバー負荷分散ツール", 日経インターネットテクノロジー, vol. 第13号, JPN6008048841, 22 July 1998 (1998-07-22), JP, pages 148 - 157, ISSN: 0001143226 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009449A (en) * 2008-06-30 2010-01-14 Nec Corp Distributed information arrangement system
JP2010160748A (en) * 2009-01-09 2010-07-22 Nippon Hoso Kyokai <Nhk> Network controller and computer program
US8694643B2 (en) 2009-08-24 2014-04-08 Nec Corporation Contents delivery system, a contents delivery method, and a program for contents delivery
WO2011024930A1 (en) * 2009-08-24 2011-03-03 日本電気株式会社 Content distribution system, content distribution method and content distribution-use program
US9009325B2 (en) 2009-08-24 2015-04-14 Nec Corporation Contents delivery system, a contents delivery method, and a program for contents delivery
WO2011070607A1 (en) * 2009-12-07 2011-06-16 富士通株式会社 Server system control method and server control program
JP2012185638A (en) * 2011-03-04 2012-09-27 Kddi Corp Load distribution device, load distribution system, load distribution method, and load distribution program
JP2013003710A (en) * 2011-06-14 2013-01-07 Kddi Corp Server coordination and mutual-aid system, server for the same, and server coordination and mutual-aid program
US10122768B2 (en) 2013-11-18 2018-11-06 Ricoh Company, Limited Control system, communication system, computer program, controlling method, and computer program product
US10171568B2 (en) 2013-11-18 2019-01-01 Ricoh Company, Limited Selecting system, communication management system, communication system, computer program, and method of selection
US10187219B2 (en) 2013-11-18 2019-01-22 Ricoh Company, Limited Control system, communication system, computer program, controlling method, and computer program product
JP2018160720A (en) * 2017-03-22 2018-10-11 ブラザー工業株式会社 Communication method and communication program
US10462198B2 (en) 2017-03-22 2019-10-29 Brother Kogyo Kabushiki Kaisha Communication method and storage medium storing communication program

Also Published As

Publication number Publication date
JP4340733B2 (en) 2009-10-07

Similar Documents

Publication Publication Date Title
JP4340733B2 (en) Load balancing system, method, and program
US9787599B2 (en) Managing content delivery network service providers
US8159961B1 (en) Load balancing utilizing adaptive thresholding
JP5389153B2 (en) Method and system for requesting routing based on class
JP4974888B2 (en) Distributed request routing
US7792989B2 (en) Arrangement for selecting a server to provide distributed services from among multiple servers based on a location of a client device
JP5404766B2 (en) Method and system for requesting routing
US7853953B2 (en) Methods and apparatus for selective workload off-loading across multiple data centers
US7822839B1 (en) Method and system for accessing network services
KR100295004B1 (en) A method and apparatus for dynamic interval-based load balancing
EP2356577B1 (en) Request routing and updating routing information utilizing client location information
JP5632074B2 (en) Device and method for data load balancing
JP5957965B2 (en) Virtualization system, load balancing apparatus, load balancing method, and load balancing program
WO2020107768A1 (en) Collaborative in-network name-to-locator resolution support for information centric networking
Guo et al. A QoS aware multicore hash scheduler for network applications
Keller et al. Server Workload Assignment for Real-Time Range Queries in Adaptive Quad Streaming Sensor Environments
JP3950113B2 (en) Job allocation method in grid system, grid mediation apparatus and program thereof
Asaka et al. Distributed web caching using hash-based query caching method
JP5488029B2 (en) Distributed processing system, distributed processing method, and program
Toumura et al. A Scalable Server Load Balancing Method Using IP Address Stealing
Shukla et al. CLUE based load balancing in replicated web server
JP2006209465A (en) Load distribution system, load distribution device, server, load distribution program and load distribution method
CN116800810A (en) QUIC handshake method and device, electronic equipment and storage medium
JP2010152783A (en) Load distribution access system, object holding device, client device, and method and program therefor in distributed file system
Ramana et al. NDLB: Nearest Dispatcher Load Balancing approach for Web Server Cluster

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081125

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: 20090521

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090603

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees