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

JP4265377B2 - Load balancing method, apparatus, system, and program - Google Patents

Load balancing method, apparatus, system, and program Download PDF

Info

Publication number
JP4265377B2
JP4265377B2 JP2003382371A JP2003382371A JP4265377B2 JP 4265377 B2 JP4265377 B2 JP 4265377B2 JP 2003382371 A JP2003382371 A JP 2003382371A JP 2003382371 A JP2003382371 A JP 2003382371A JP 4265377 B2 JP4265377 B2 JP 4265377B2
Authority
JP
Japan
Prior art keywords
node
task
load
nodes
information
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.)
Expired - Fee Related
Application number
JP2003382371A
Other languages
Japanese (ja)
Other versions
JP2005148911A (en
Inventor
盛朗 佐々木
淳裕 田中
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 JP2003382371A priority Critical patent/JP4265377B2/en
Publication of JP2005148911A publication Critical patent/JP2005148911A/en
Application granted granted Critical
Publication of JP4265377B2 publication Critical patent/JP4265377B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は負荷分散方法および装置に関し、特に、ネットワークで接続された複数のノードからなるクラスタに用いて好適な、負荷分散方法及び装置とシステムとプログラムに関する。   The present invention relates to a load distribution method and apparatus, and more particularly to a load distribution method, apparatus, system, and program suitable for use in a cluster composed of a plurality of nodes connected by a network.

複数の計算資源から構成されるシステム上で、複数種類のタスクを処理する際の負荷分散の方法が、例えば、後記する非特許文献1等に記載されている。非特許文献1に記載されている負荷分散方法は、静的なものである。すなわち、各計算資源の性能やタスクの負荷内容あるいはタスクの到着特性などを、事前に、何らかの方法で決定しておき、実行時に、事前に決定された特性に変化がないことを前提とした制御方法である。静的な負荷分散は、変動が少なく定常的な負荷を分散させ均衡させるためには、有効であるが、実際の負荷は、常に変動しており、短い時間間隔においては、常に、負荷の不均衡が生じている。このような問題を解決するのが、動的負荷分散である。   A load distribution method for processing a plurality of types of tasks on a system composed of a plurality of computing resources is described in, for example, Non-Patent Document 1 described later. The load distribution method described in Non-Patent Document 1 is static. In other words, control based on the assumption that the performance of each computing resource, task load content, task arrival characteristics, etc. are determined in advance by some method and that the characteristics determined in advance do not change. Is the method. Static load balancing is effective for balancing and balancing steady loads with little fluctuation, but the actual load is constantly fluctuating, and in a short time interval, the load is always constant. There is an equilibrium. Dynamic load balancing solves this problem.

複数種類のトランザクションを対象とする動的負荷分散方法の一例として、複数の負荷を合成した負荷特性(ジョブミックス)と、プログラムの処理時間の伸長率を推定することで、動的な負荷分散を行なう方法が提案されている(例えば後記する特許文献1参照)。ジョブミックスを用いるのは、一つの解決策ではあるが、ジョブミックスが同じような場合であっても、ジョブミックスを構成する複数種類のトランザクションのうち、どの種類のトランザクションがシステム性能全体に影響を与えているかという要因は、考慮に入れられていない。従って、ある種類のトランザクション処理が必要以上に他の種類のトランザクション実行を妨げているような場合に対する問題の解決はなされていない。   As an example of a dynamic load distribution method for multiple types of transactions, dynamic load distribution can be achieved by estimating the load characteristics (job mix) that combines multiple loads and the expansion rate of program processing time. There has been proposed a method (see, for example, Patent Document 1 described later). Using a job mix is one solution, but even if the job mix is the same, any type of transactions that make up the job mix will affect the overall system performance. The factor of whether it is given is not taken into account. Therefore, a problem has not been solved for a case where a certain type of transaction processing is impeding the execution of other types of transactions more than necessary.

各ノードが自ノードが持つ負荷情報に基づいて負荷の移送先を決定する負荷分散方法の一例が、例えば後記する非特許文献2等に記載されている。非特許文献2には、各ノードが周期的に他の全ノードの負荷情報を収集し、自ノードの負荷と、全ノードで最も負荷の軽いノードの負荷の差Δが、ある値よりも大きくなった場合、到着したタスクを、最も負荷の軽いノードに移送する、という負荷分散方法が提案されている。   An example of a load distribution method in which each node determines a load transfer destination based on load information of its own node is described in, for example, Non-Patent Document 2 described later. In Non-Patent Document 2, each node periodically collects load information of all other nodes, and the difference Δ between the load of the own node and the load of the lightest node among all nodes is larger than a certain value. In such a case, a load distribution method has been proposed in which the arrived task is transferred to the node with the lightest load.

非特許文献2に記載される手法では、他の全ノードから情報を収集してタスクの移送先を選択するために、多数のノードからなるシステムにおいては、負荷情報の共有に必要な計算・通信コストが高くなり、負荷分散を行うことによる性能の向上は、情報共有コストによって打ち消されてしまう。だからといって、情報共有コストを削減するために情報更新間隔(情報収集の周期)を長くすると、古い情報に基づいて負荷分散を行うことになる。そして、負荷情報の更新時には負荷が軽かったが、現在は負荷が重いノードにタスクを移送してしまう場合も生じ、負荷を均衡させることが、困難になる。   In the method described in Non-Patent Document 2, in order to collect information from all other nodes and select a task transfer destination, in a system composed of a large number of nodes, computation and communication necessary for sharing load information The cost increases and the performance improvement due to load balancing is negated by the information sharing cost. However, if the information update interval (information collection cycle) is increased in order to reduce the information sharing cost, load distribution is performed based on old information. Although the load is light when updating the load information, a task may be transferred to a node with a heavy load at present, and it becomes difficult to balance the load.

また、精度の異なる情報を共有することで、低コストで、多数のノードの負荷情報を共有する方法が、先行出願1に記載されているが、非特許文献2に記載された方法では、精度の異なる情報を扱うことができない。   In addition, a method of sharing load information of a large number of nodes at low cost by sharing information with different accuracy is described in the prior application 1, but the method described in Non-Patent Document 2 is accurate. Cannot handle different information.

多数のノードがある低負荷なノードの負荷情報を持っている場合に、この低負荷なノードに、多数のノードがほぼ同時に負荷を移送してしまい、低負荷ノードが過負荷なノードになってしまうという「群集効果」が発生する。群集効果は、負荷均衡を妨げる理由の一つである。   When there is load information of a low load node with a large number of nodes, a large number of nodes transfer the load to this low load node almost simultaneously, and the low load node becomes an overloaded node. The “crowd effect” occurs. The crowd effect is one of the reasons that hinders load balancing.

負荷情報を収集するノードはタスクの移送先になり得るノードであることから、負荷情報を収集するノードをランダムに定数個選択すれば、情報共有コストを抑えつつ、群集効果の発生を抑制することができる。このようなアルゴリズムについては、例えば後記する非特許文献3の記載が参照される。ただし、非特許文献3に記載された手法では、システム全体の負荷情報を知ることができないため、システム全体に亘って、負荷が均衡するとは限らない。   Since the node that collects load information is a node that can be a task transfer destination, if a fixed number of nodes that collect load information are randomly selected, the cost of sharing information can be reduced, and the occurrence of crowd effects can be suppressed. Can do. For such an algorithm, for example, the description of Non-Patent Document 3 described later is referred to. However, the method described in Non-Patent Document 3 cannot know the load information of the entire system, and thus the load is not always balanced across the entire system.

タスクの到着だけでなく、タスクの出発によっても負荷の変化が生じる。上記二つのアルゴリズムが行うのは、タスクの到着を分散させることである。このため、タスクの実行時間のばらつきによって生じる負荷の不均衡を直接解消することはできない。つまり、既に到着したタスクを移送することはできない。   The load changes not only by the arrival of the task but also by the departure of the task. What the two algorithms do is to distribute task arrivals. For this reason, the load imbalance caused by the variation in task execution time cannot be directly resolved. In other words, tasks that have already arrived cannot be transferred.

既に到着したタスクを最も負荷の低いノードに移送するアルゴリズムが、例えば後記する非特許文献4に記載されている。しかしながら、非特許文献4に記載の手法では、一度に移送するタスクの個数は、最大で二つであり、移送先ノードも単一のノードに限られるため、負荷不均衡の度合いが大きい場合には、負荷を均衡させるのに時間がかかってしまう。また、群集効果も発生する。   An algorithm for transferring a task that has already arrived to a node with the lowest load is described in Non-Patent Document 4, for example. However, in the method described in Non-Patent Document 4, the maximum number of tasks to be transferred at one time is two, and the transfer destination node is limited to a single node. Therefore, when the degree of load imbalance is large Takes time to balance the load. A crowd effect also occurs.

[先行出願1]
特願2002−333741号(図1、図2)
[Prior Application 1]
Japanese Patent Application No. 2002-333741 (FIGS. 1 and 2)

特開2001−109638号公報(第6頁)JP 2001-109638 A (page 6) ジエ・リー(Jie Li)、ヒサオ・カメダ(Hisao Kameda)著、”ロードバランシングプロブレム フォア マルチクラス ジョブ イン、ディストリビューテッド/パラレル コンピュータシステム(Load Balancing Problems for Multi-class Jobs in Distributed/Parallel Computer Systems)”、アイ・イー・イー・イー・トランザクションズ・オン・コンピューターズ(IEEE Transactions on Computers)、米国、1998年、第47巻、第3号、322〜332頁“Load Balancing Problems for Multi-class Jobs in Distributed / Parallel Computer Systems” by Jie Li and Hisao Kameda IEEE Transactions on Computers, USA, 1998, 47, 3, 322-332 ソンニアン・ゾウ(Songnian Zhou)著、”ア トレースドリブン シミュレーション スタディ オブ ダイナミック ロードバランシング”(A Trace-Driven Simulation Study of Dynamic Load Balancing)、アイ・イー・イー・イー・トランザンションズ・オン・ソフトウェアエンジニアリング(IEEE Transactions on Software Engineering)、米国、1988年、第14巻、第9号、1327〜1341頁Songnian Zhou, “A Trace-Driven Simulation Study of Dynamic Load Balancing”, I.E.E.Transactions on Software Engineering ( IEEE Transactions on Software Engineering), USA, 1988, Vol. 14, No. 9, pp. 1327-1341 マイケル・ミッツェンマッシャー(Michael Mitzenmacher)著、”ハウユースフル イズ オールド インフォーメーション”(How Useful Is Old Information?)、アイ・イー・イー・イー・トランザクションズ・オン・パラレル・アンド・ディストリビューテッド・システムズ(IEEE Transactions on Parallel and Distributed Systems)、米国、2000年、第11巻、第1号、6〜20頁By Michael Mitzenmacher, “How Useful Is Old Information?”, IEE Transactions on Parallel and Distributed Systems ( IEEE Transactions on Parallel and Distributed Systems), USA, 2000, Vol. 11, No. 1, pp. 6-20 ジョン・スタンコビック(John Stankovic)著、シミュレーション オブ スリー アダプティブ デセントラライズド コントロールド ジョブ スケジューリング アルゴリズム”(Simulations of three adaptive, decentralized controlled, job scheduling algorithms)、コンピューティングネットワークス(Computing Networks)、米国、1984年、第8巻、199〜217頁Simulations of three adaptive, decentralized controlled, job scheduling algorithms by John Stankovic, Computing Networks, USA, 1984 Year, Vol. 8, 199-217 亀田壽夫、紀一誠、李頡著、「性能評価の基礎と応用」、共立出版、1998年、第4.2章Kazuo Kameda, Makoto Kiichi and Wang Li, “Basics and Applications of Performance Evaluation”, Kyoritsu Shuppan, 1998, Chapter 4.2 伊理正夫、藤野和建著、「数値計算の常識」、第15章 補間(内挿)、第16章 雲形定規とスプライン−続補間(第109〜122頁)、共立出版、1985年、Masao Iri and Kazuken Fujino, “Common sense of numerical computation”, Chapter 15 Interpolation (interpolation), Chapter 16 Cloud ruler and spline-continuous interpolation (pages 109-122), Kyoritsu Shuppan, 1985,

上記した従来の負荷分散は以下の問題点を有している。   The conventional load balancing described above has the following problems.

第1の問題点は、複数のノードから構成されるクラスタシステム上で複数のタスク処理を行うような状況下では、ある種のタスクの発生/到着が極端に増えてしまった場合に、関係のないタスクの実行が影響を受け、レスポンスタイムの極端な悪化等の状況が生じてしまう、ということである。   The first problem is that, in a situation where a plurality of task processes are performed on a cluster system composed of a plurality of nodes, the occurrence / arrival of a certain type of task is extremely increased. This means that the execution of a task that is not present will be affected, resulting in a situation such as extreme deterioration in response time.

その理由は、ノードでは、複数の種類のタスクが実行されるため、あるタスク種の実行が他のタスク種の実行を妨げるためである。   The reason is that a plurality of types of tasks are executed in the node, so that execution of a certain task type prevents execution of other task types.

第2の問題点は、群集効果が生じる、ということである。   The second problem is that a crowd effect occurs.

その理由は、個々のノードが他のノードの負荷移送を考慮していない、ためである。   The reason is that each node does not consider the load transfer of other nodes.

第3の問題点は、負荷の不均衡の度合いが大きいと、負荷を均衡させるために長時間を要する、ということである。   The third problem is that if the degree of load imbalance is large, it takes a long time to balance the load.

その理由は、到着したタスクの移送のみを行うか、既に到着したタスクを移送したとしても、少数ずつ単一のノードに移送するだけの構成とされている、ためである。   The reason is that only the task that arrived is transferred, or even if the task that has already arrived is transferred, only a small number of tasks are transferred to a single node.

第4の問題点は、情報共有コストを低くすると、適切な負荷分散を行うことができない、ということである。   The fourth problem is that when the information sharing cost is lowered, appropriate load distribution cannot be performed.

その理由は、情報更新間隔を長くした場合、情報更新時には負荷が軽かったが現在は負荷が重いノードにタスクを移送してしまう、という問題が生じるためである。また、一部のノードの負荷情報のみを共有した場合は、局所的に負荷が均衡させることができても、全体的な負荷均衡を図るのが困難になる、という問題が生じるためである。   The reason is that if the information update interval is increased, the task is transferred to a node that is lightly loaded at the time of information update but is currently heavily loaded. Further, when only the load information of some nodes is shared, there is a problem that even if the load can be balanced locally, it becomes difficult to achieve the overall load balance.

したがって、本発明は、上記問題点に鑑みて創案されたものであって、その目的は、異なる種類のタスクによる負荷が互いのタスク実行に影響を及ぼさないように、タスク種にノードを割り当てることができる方法及び装置とシステム並びにプログラムを提供することにある。   Therefore, the present invention was created in view of the above problems, and its purpose is to assign nodes to task types so that loads due to different types of tasks do not affect each other's task execution. It is an object to provide a method, an apparatus, a system, and a program.

本発明の他の目的は、群集効果を発生し難くする負荷分散方法及び装置とシステム並びにプログラムを提供することにある。   Another object of the present invention is to provide a load distribution method, apparatus, system, and program that make it difficult to generate crowd effects.

本発明のさらに他の目的は、負荷を高速に均衡させることができる負荷分散方法及び装置とシステム並びにプログラムを提供することにある。   Still another object of the present invention is to provide a load distribution method, apparatus, system, and program capable of balancing loads at high speed.

本発明のさらに他の目的は、低コストで提供される、精度の異なる負荷情報に基づいて負荷分散を行っても、負荷を均衡させることができる負荷分散方法及び装置とシステム並びにプログラムを提供することにある。   Still another object of the present invention is to provide a load distribution method, apparatus, system, and program capable of balancing loads even when load distribution is performed based on load information with different accuracy, which is provided at low cost. There is.

前記目的を達成する本発明は、ユーザが望むレスポンスタイムを満足するように、複数種類のタスクを処理可能とし、各ノードは、自ノードが持つ負荷情報に基づいて、負荷の移送先を決定できるようにしたものである。   The present invention that achieves the above-described object enables a plurality of types of tasks to be processed so as to satisfy the response time desired by the user, and each node can determine the load transfer destination based on the load information of its own node. It is what I did.

より詳細には、本発明の一つのアスペクトに係る負荷分散装置(「グローバル負荷分散装置」ともいう)は、システム構成情報とシステムの運用条件と事前に測定されたタスク−ノード特性とを入力するシステム構成入力手段と、システムに到着するタスクの種類を判別し、タスク到着率をタスクごとに測定するタスク受信手段と、実行時にノードの実行時性能情報を測定する実行性能測定手段と、前記システム構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性と、実行時に測定される前記タスク到着率と、ノードの実行時性能情報と、を用いて、ノードグループを構成し、ノードグループ上で実行されるタスク種を決定するノードグループ構築手段と、タスクを実行するノードを、ノードグループより選択して、選択したノードに対してタスクを転送するタスク転送手段と、を有する。   More specifically, a load balancer according to one aspect of the present invention (also referred to as a “global load balancer”) inputs system configuration information, system operating conditions, and task-node characteristics measured in advance. System configuration input means; task receiving means for determining the type of task arriving at the system and measuring task arrival rate for each task; execution performance measuring means for measuring runtime performance information of a node during execution; and the system A node group is configured using configuration information, system operating conditions, task-node characteristics measured in advance, the task arrival rate measured at the time of execution, and node performance information at the time of execution, Select the node group construction means to determine the task type to be executed on the node group and the node to execute the task from the node group, Has a task transfer means for transferring tasks on-option node, the.

本発明に係る負荷分散装置において、タスク転送先ノード上の滞留タスク数が予め定められた所定数を超えないように、タスクをキューイングするグローバルキューイング手段をさらに有する構成としてもよい。   The load distribution apparatus according to the present invention may further include global queuing means for queuing tasks so that the number of staying tasks on the task transfer destination node does not exceed a predetermined number.

本発明に係る負荷分散装置において、前記ノードグループ構築手段が、一つのノードグループに対して運用条件を満足するタスク種を対応させ、他のノードグループに対して運用条件を満足しないタスク種を対応させる構成としてもよい。   In the load distribution apparatus according to the present invention, the node group construction means corresponds to a task type that satisfies the operating condition for one node group and corresponds to a task type that does not satisfy the operating condition for another node group. A configuration may be adopted.

本発明に係る負荷分散装置において、前記ノードグループ構築手段が、一つのノードグループ上で一種類のタスク処理が行なわれるようにノードグループを構成し、前記ノードグループに対してタスク種の対応付けを行う構成としてもよい。   In the load distribution apparatus according to the present invention, the node group construction means configures a node group so that one type of task processing is performed on one node group, and associates a task type with the node group. It is good also as a structure to perform.

本発明の他のアスペクトに係るノードは、計算機システムを構成するノードであって、
タスクまたはタスクの実行結果の送受信を行うタスク送受信手段と、前記タスク送受信手段で受信したタスクをキューイングするローカルキューイング手段と、負荷情報を共有する負荷情報共有手段と、前記負荷情報共有手段が提供する他ノードの負荷情報に基づいて、どのタスクをどのノードに移送するかを決定し、前記タスク送受信手段にタスクの移送を依頼する負荷分散手段と、実行を依頼されたタスクを処理し、前記タスクの実行結果を、前記ローカルキューイング手段に返すタスク実行手段と、を有する。
A node according to another aspect of the present invention is a node constituting a computer system,
Task transmission / reception means for transmitting / receiving tasks or task execution results, local queuing means for queuing tasks received by the task transmission / reception means, load information sharing means for sharing load information, and the load information sharing means Based on the load information of the other nodes to be provided, it is determined which task is to be transferred to which node, load distribution means for requesting the task transmission / reception means to transfer the task, and processing the task requested to be executed, Task execution means for returning the execution result of the task to the local queuing means.

本発明に係るノードにおいて、前記負荷分散手段は、好ましくは、負荷情報を管理する負荷情報管理手段と、自ノードで実行すべきタスクの量を動的に計算する均衡度計算手段と、ノードに対して優先度を割り当てるノード優先度割り当て手段と、優先度順に、負荷の移送対象のノードを選択し、該ノードに移送するタスクの個数を決定する移送タスク決定手段と、を有する。   In the node according to the present invention, the load distribution unit preferably includes a load information management unit that manages load information, a balance degree calculation unit that dynamically calculates the amount of tasks to be executed by the node, and a node Node priority assigning means for assigning priorities, and transfer task determining means for selecting a load transfer target node in order of priority and determining the number of tasks to be transferred to the node.

本発明に係るノードにおいて、前記ノード優先度割り当て手段が、他ノードに割り当てる優先度は、循環単調増加優先度割り当てとされる。   In the node according to the present invention, the priority assigned to the other nodes by the node priority assignment means is cyclic monotonically increasing priority assignment.

本発明に係るノードにおいて、前記負荷情報共有手段は、異なる精度を持つ負荷情報を共有し、前記負荷分散手段の前記負荷情報管理手段は、単純空間精度補完を行い、前記負荷分散手段の前記ノード優先度割り当て手段は、負荷情報の精度が高いノードに対してより高い優先度を割り当てる構成としてもよい。   In the node according to the present invention, the load information sharing unit shares load information having different accuracy, the load information management unit of the load distribution unit performs simple space accuracy complement, and the node of the load distribution unit The priority assignment means may be configured to assign a higher priority to a node with high load information accuracy.

本発明に係るノードにおいて、タスクの実行数別に、スループットを算出するためのレスポンスタイムテーブルを有し、前記負荷分散手段の前記ローカルキューイング手段は、前記レスポンステーブルを参照して、同時に実行するタスク数を動的に変化させる構成としてもよい。   The node according to the present invention has a response time table for calculating throughput according to the number of executions of a task, and the local queuing unit of the load distribution unit refers to the response table and executes tasks simultaneously. It is good also as a structure which changes a number dynamically.

本発明のさらに他のアスペクトに係る方法は、システム構成情報と、事前に測定されたタスク−ノード特性と、タスク到着率と、ノードの実行時性能情報の少なくとも1つに基づき、ノードグループを構成し、実行時に得られる負荷情報を用いて、各ノードグループのサイズを適切な値に設定するステップを有する。   According to yet another aspect of the present invention, a method for configuring a node group based on at least one of system configuration information, pre-measured task-node characteristics, task arrival rate, and node runtime performance information. And a step of setting the size of each node group to an appropriate value using the load information obtained at the time of execution.

本発明の他のアスペクトに係る方法は、負荷分散装置が、タスク処理要求を受け付け、タスクの種類を判別し、タスクの到着率を測定するステップと、前記負荷分散装置が、計算機システムを構成するノードを複数のノードグループに分け、どのノードグループでどのタスク種を実行させるかを決定し、その際、入力装置から得られるシステム構成情報と、測定された実行時の性能測定情報とを用いて、各ノードグループに含まれるノードの数を調整することで、ユーザが指定する運用条件を満足するように制御するステップと、前記負荷分散装置が、あるタスク種を実行するノードグループの中から1つのノードを選択し、選択されたノードに対して前記タスクを転送するステップと、を含む。   The method according to another aspect of the present invention includes a step in which a load balancer receives a task processing request, determines a task type, and measures a task arrival rate, and the load balancer constitutes a computer system. The node is divided into a plurality of node groups, and which task type is executed in which node group is determined, using the system configuration information obtained from the input device and the measured performance measurement information at the time of execution. Adjusting the number of nodes included in each node group to control so as to satisfy the operating conditions specified by the user, and the load balancer is configured to select one of the node groups that execute a certain task type. Selecting one node and transferring the task to the selected node.

本発明に係る方法においては、前記負荷分散装置が、ノード上に滞留しているタスク数が予め定められた所定個数を超えないように、タスクをキューイングするステップを有する。   In the method according to the present invention, the load distribution apparatus includes a step of queuing tasks so that the number of tasks staying on the node does not exceed a predetermined number.

本発明の他のアスペクトに係る方法においては、複数のノードが計算機システムを構成するシステムの負荷分散方法において、他ノードの負荷情報に基づいて、負荷の移送対象のノードを決定し、前記ノードにタスクを移送することで、負荷分散処理を行うステップを含む。   In a method according to another aspect of the present invention, in a load distribution method for a system in which a plurality of nodes constitute a computer system, a load transfer target node is determined based on load information of another node, and the node is assigned to the node. It includes a step of performing load distribution processing by transferring a task.

本発明に係る方法においては、前記負荷分散処理を行うステップが、
自ノードで実行すべきタスクの量を計算するステップと、
ノードに対して、優先度を割り当てるステップと、
優先度順に、負荷の移送対象のノードを選択し、該ノードに移送するタスクの個数を決定するステップと、を有する。
In the method according to the present invention, the step of performing the load balancing process includes:
Calculating the amount of tasks to be executed on the own node;
Assigning a priority to a node;
Selecting a node to which a load is to be transferred in order of priority, and determining the number of tasks to be transferred to the node.

さらに、本発明の他のアスペクトに係るプログラムは、複数のノードを含む計算機システムを対象としたグローバル負荷分散装置を構成するコンピュータに、
システム構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性とを入力するシステム構成入力処理と、
システムに到着するタスクの種類を判別し、タスク到着率をタスクごとに測定するタスク受信処理と、
実行時にノードの実行性能情報を測定する実行性能測定処理と、
前記システム構成情報と、前記システムの運用条件と、事前に測定された前記タスク−ノード特性と、実行時に測定される前記タスク到着率と、ノードの実行時性能情報と、のうちの少なくとも一つを用いて、ノードグループを構成し、前記ノードグループ上で実行されるタスク種を決定するノードグループ構築処理と、
タスクを実行するノードを前記ノードグループより選択して、前記ノードに対してタスクを転送するタスク転送処理と、
を実行させるためのプログラムよりなる。
Furthermore, a program according to another aspect of the present invention is provided in a computer constituting a global load distribution apparatus for a computer system including a plurality of nodes.
System configuration input processing for inputting system configuration information, system operating conditions, and task-node characteristics measured in advance;
Task reception processing that determines the type of task that arrives at the system and measures the task arrival rate for each task;
An execution performance measurement process that measures the execution performance information of a node at the time of execution;
At least one of the system configuration information, the operating conditions of the system, the task-node characteristics measured in advance, the task arrival rate measured at the time of execution, and the runtime performance information of the node A node group is constructed, and a node group construction process for determining a task type to be executed on the node group;
A task transfer process for selecting a node to execute a task from the node group and transferring the task to the node;
It consists of a program to execute.

さらに、本発明の他のアスペクトに係るプログラムは、計算機システムを構成するノードを構成するコンピュータに、
タスクまたはタスクの実行結果の送受信を行うタスク送受信処理と、
前記タスク送受信手段で受信したタスクをキューイングするキューイング処理と、
負荷情報を共有する負荷情報共有部が提供する他ノードの負荷情報に基づいて、どのタスクをどのノードに移送するかを決定し、前記タスク送受信手段にタスクの移送を依頼する負荷分散処理と、
実行を依頼されたタスクを処理し、前記タスクの実行結果を、前記ローカルキューイング手段に返すタスク実行処理と、
を実行させるためのプログラムよりなる。
Furthermore, a program according to another aspect of the present invention is provided in a computer constituting a node constituting a computer system.
Task transmission / reception processing for transmitting / receiving tasks or task execution results;
A queuing process for queuing a task received by the task transmitting / receiving means;
Load distribution processing for determining which task is transferred to which node based on load information of other nodes provided by a load information sharing unit that shares load information, and requesting task transfer to the task transmission / reception means;
A task execution process for processing a task requested to be executed and returning an execution result of the task to the local queuing means;
It consists of a program to execute.

本発明に係るプログラムにおいて、前記負荷分散処理を実行する前記プログラムは、
負荷情報を管理する負荷情報管理処理と、
自ノードで実行すべきタスクの量を動的に計算する均衡度計算処理と、
ノードに対して優先度を割り当てるノード優先度割り当て処理と、
優先度順に、負荷の移送対象のノードを選択し、該ノードに移送するタスクの個数を決定する移送タスク決定処理とを、ノードを構成する前記コンピュータに実行させるためのプログラムよりなる。
In the program according to the present invention, the program for executing the load balancing process is:
Load information management processing for managing load information;
Balance calculation processing that dynamically calculates the amount of tasks to be executed on the own node;
Node priority assignment processing for assigning priorities to nodes;
It comprises a program for causing the computer constituting the node to execute a transfer task determination process for selecting a load transfer target node in order of priority and determining the number of tasks to be transferred to the node.

本発明によれば、ノードグループを構成し、該ノードグループを構成するノード数を、実行時に、最適な値に制御し、かつ、ノードグループ上で実行されるタスクの種類を決定するために、あるノードグループ上で実行されるタスク種が、たとえ過負荷になったとしても、他のノードグループ上で実行されるタスク種の実行性能に悪影響を及ぼすことがない、という効果を有する。   According to the present invention, in order to configure a node group, to control the number of nodes constituting the node group to an optimal value at the time of execution, and to determine the type of task to be executed on the node group, Even if the task type executed on a certain node group is overloaded, the execution performance of the task type executed on another node group is not adversely affected.

本発明によれば、タスク種を実行するノードグループを構成するため、ノードグループを超えて、タスクの実行に影響が及ばず、あるタスク種が突然大量に発生しても、関係のないタスク種の実行は、影響を受けず、事前に定められたレスポンスタイムを満足させることができる。   According to the present invention, since the node group for executing the task type is configured, the task execution is not affected beyond the node group. The execution of is not affected and can satisfy a predetermined response time.

本発明によれば、自ノードの負荷が閾値を越えた時に、過去に移送判断を行ったノードの負荷と、現在移送判断を行っているノードの負荷とから、負荷移送の判断を行っており、他ノードのタスク移送を考慮することにより、群衆効果を緩和することができる。   According to the present invention, when the load of the own node exceeds the threshold, the load transfer is determined from the load of the node that has made the transfer determination in the past and the load of the node that is currently determining the transfer. The crowd effect can be mitigated by considering the task transfer of other nodes.

本発明によれば、一つのノードに対して一つ以上のタスクを移送することと、一つ以上のノードにタスクを移送することを決定することにより、高速に負荷を均衡させることができることにある。本発明によれば、余剰負荷を複数ノードに対して、それぞれ複数個ずつ移動させるためである。   According to the present invention, it is possible to balance the load at a high speed by deciding to transfer one or more tasks to one node and to transfer the task to one or more nodes. is there. According to the present invention, a plurality of surplus loads are moved with respect to a plurality of nodes.

本発明によれば、異なる精度を持つ負荷情報に基づいて負荷移送の判断を行うことにより、低コストで共有できる。さらに、異なる精度を持つ負荷情報の精度と負荷から負荷情報を再構築することで、適切な負荷分散を実現することができる。   According to the present invention, it is possible to share at low cost by determining load transfer based on load information having different accuracy. Furthermore, by reconstructing the load information from the accuracy and load of the load information having different accuracy, appropriate load distribution can be realized.

次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。   Next, a first embodiment of the present invention will be described in detail with reference to the drawings.

図1には、本発明の第1の実施の形態のグローバル負荷分散装置1の構成が示されている。図1を参照すると、本発明の第1の実施の形態のグローバル負荷分散装置1は、システム構成に関する情報(例えば、システム構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性)を入力するシステム構成入力手段13と、システムに到着するタスクの種類を判別しタスク到着率をタスクごとに測定するタスク受信手段11と、ノードの実行時性能情報を測定する実行性能測定手段14と、システム構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性と、実行時に測定されるタスク到着率と、ノードの実行時性能情報とを用いてノードグループを構成し、ノードグループ上で実行されるタスク種を決定するノードグループ構築手段12と、タスクを実行するノードをノードグループより選択し、選択したノードに対して、タスクを転送するタスク送信手段15とを備えている。上記各手段は、グローバル負荷分散装置1を構成するコンピュータで実行されるプログラムによりその処理、機能が実現される。   FIG. 1 shows the configuration of a global load distribution apparatus 1 according to the first embodiment of this invention. Referring to FIG. 1, the global load distribution apparatus 1 according to the first embodiment of the present invention includes information on a system configuration (for example, system configuration information, system operation conditions, and task-node characteristics measured in advance). ), A task receiving unit 11 that determines the type of task arriving at the system and measures the task arrival rate for each task, and an execution performance measuring unit 14 that measures the runtime performance information of the node. A node group using system configuration information, system operating conditions, pre-measured task-node characteristics, task arrival rate measured at execution time, and node runtime performance information, The node group construction means 12 for determining the task type to be executed on the node group and the node for executing the task are selected from the node group. For the selected node, and a task transmitting unit 15 for transferring the task. The processing and functions of each of the above means are realized by a program executed by a computer constituting the global load distribution apparatus 1.

本発明が対象とするクラスタシステムは、処理能力が異なるK種類のノードが、それぞれN(k)個(k=1〜K)から構成され、またシステム上で実行されるタスクの種類は、全部でJ種類であるものとする。また、全ノード数をNと表記する。すなわち、
N=N(1)+・・・+N(K) …(1)
In the cluster system targeted by the present invention, K types of nodes having different processing capacities are respectively composed of N (k) (k = 1 to K), and the types of tasks executed on the system are all It is assumed that there are J types. The total number of nodes is denoted as N. That is,
N = N (1) +... + N (K) (1)

図2は、本発明の第1の実施の形態のグローバル負荷分散装置1の処理手順を説明するための流れ図である。図1及び図2を参照して、本発明の第1の実施の形態のグローバル負荷分散装置1の動作について説明する。   FIG. 2 is a flowchart for explaining the processing procedure of the global load distribution apparatus 1 according to the first embodiment of this invention. With reference to FIG.1 and FIG.2, operation | movement of the global load distribution apparatus 1 of the 1st Embodiment of this invention is demonstrated.

タスク受信手段11は、グローバル負荷分散装置1へのタスク処理要求を受け付け(図2のステップ101)、タスクの種類を判別し(ステップ102)、タスクの到着率を測定する(ステップ103)。   The task receiving unit 11 receives a task processing request to the global load balancer 1 (step 101 in FIG. 2), determines the type of task (step 102), and measures the arrival rate of the task (step 103).

ノードグループ構築手段12は、全部でN個あるノードをいくつかのグループ(これを「ノードグループ」と呼ぶ)に分けて管理し、どのノードグループで、どのタスク種を実行させるかを決定する。この際に、システム構成入力手段13から得られる情報と、実行性能測定手段14から得られる情報とを用いて、各グループに含まれるノード数を実行時に制御し(ステップ104)、ユーザが指定する運用条件を満足するように、動作する。   The node group constructing means 12 manages a total of N nodes divided into several groups (referred to as “node groups”), and determines which task type is executed in which node group. At this time, using the information obtained from the system configuration input means 13 and the information obtained from the execution performance measurement means 14, the number of nodes included in each group is controlled at the time of execution (step 104) and specified by the user. Operates to satisfy the operating conditions.

タスク送信手段15は、あるタスク種を実行するノードグループの中から適切なノードを一つ選び出し(ステップ105)、選択されたノードに対して、タスクを転送する(ステップ106)。   The task transmission means 15 selects one appropriate node from the node group that executes a certain task type (step 105), and transfers the task to the selected node (step 106).

このような動作を行なうために、グローバル負荷分散装置1は、ノードグループを構築するノードを管理するノードグループ構成表193(図19参照)と、あるタスク種を実行するノードグループを管理するタスク種−ノードグループ対応表194(図14参照)と、実行時に測定する性能データを管理する測定データ管理表とを記憶装置に記憶保持する。この測定データ管理表は、図17に示すタスク到着率管理表191と、図18に示すノード性能管理表192とから構成される。   In order to perform such an operation, the global load distribution apparatus 1 has a node group configuration table 193 (see FIG. 19) that manages the nodes that construct the node group, and a task type that manages a node group that executes a certain task type. A node group correspondence table 194 (see FIG. 14) and a measurement data management table for managing performance data measured at the time of execution are stored in the storage device. This measurement data management table includes a task arrival rate management table 191 shown in FIG. 17 and a node performance management table 192 shown in FIG.

更に、グローバル負荷分散装置1内に、グローバルキューイング手段16を追加した場合には、各ノード上に滞留しているタスク数が一定個数を超えないように、グローバルキューイング手段16上に、タスクをキューイングするように動作を拡張することもできる。   Furthermore, when the global queuing means 16 is added in the global load balancer 1, tasks are retained on the global queuing means 16 so that the number of tasks staying on each node does not exceed a certain number. The behavior can also be extended to queue

次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。   Next, a second embodiment of the present invention will be described in detail with reference to the drawings.

図3は、本発明の第2の実施の形態のシステム及びノードの構成を示す図である。図3を参照すると、本発明の第2の実施の形態は、スイッチング装置2と、ノード3−1〜3−nと、を含む。ただし、nは、ある自然数である。ノード3−1〜3−nは、スイッチング装置2を経由して通信を行なうことができ、タスクは、スイッチング装置2を経由してノード3−1〜3−nに到着する。各ノード3−1〜3−nは同一の構成を有し、図3では、ノード3−1の構成が示されている。各ノードは、負荷分散手段31と、負荷情報共有手段32と、タスク送受信手段33と、タスク実行手段34と、ローカルキューイング手段35とを含む。これらの手段は、ノードを構成するコンピュータで実行されるプログラムによってその機能が実現され、それぞれ概略つぎのように動作する。   FIG. 3 is a diagram illustrating a configuration of a system and a node according to the second embodiment of this invention. Referring to FIG. 3, the second embodiment of the present invention includes a switching device 2 and nodes 3-1 to 3-n. However, n is a certain natural number. The nodes 3-1 to 3-n can communicate via the switching device 2, and the task arrives at the nodes 3-1 to 3-n via the switching device 2. Each of the nodes 3-1 to 3-n has the same configuration, and FIG. 3 shows the configuration of the node 3-1. Each node includes a load distribution unit 31, a load information sharing unit 32, a task transmission / reception unit 33, a task execution unit 34, and a local queuing unit 35. The functions of these means are realized by a program executed by a computer constituting the node, and each operates roughly as follows.

タスク送受信手段33は、タスクまたはタスクの実行結果の送受信を行う。   The task transmission / reception means 33 transmits / receives a task or a task execution result.

タスク実行手段34は、依頼されたタスクを処理し、実行結果をローカルキューイング手段35に返す。   The task execution means 34 processes the requested task and returns the execution result to the local queuing means 35.

ローカルキューイング手段35は、タスク送受信手段33で受信したタスクをキューイングし、キューの先頭から、ある個数のタスクをタスク実行手段34に渡す。タスク実行手段34から実行結果を受け取るか、タスク送受信手段33に実行結果が到着していれば、対応するタスクをキューから外す。そして、実行結果の送信をタスク送受信手段33に依頼する。   The local queuing means 35 queues the task received by the task transmission / reception means 33 and passes a certain number of tasks to the task execution means 34 from the head of the queue. If the execution result is received from the task execution means 34 or if the execution result has arrived at the task transmission / reception means 33, the corresponding task is removed from the queue. Then, the task transmission / reception means 33 is requested to transmit the execution result.

負荷情報共有手段32は、上記先行出願1に記載される情報共有方法及び装置と等価な動作を行う。ただし、他ノードの負荷情報が更新されたときに、下記負荷分散手段31に情報をプッシュする機能が追加されている。   The load information sharing means 32 performs an operation equivalent to the information sharing method and apparatus described in the prior application 1. However, a function is added to push information to the following load distribution means 31 when the load information of other nodes is updated.

負荷分散手段31は、負荷情報共有手段32が提供する他ノードの負荷情報に基づいて、どのタスクをどのノードに移送するかを決定し、タスク送受信手段33にタスクの移送を依頼する。   The load distribution unit 31 determines which task is transferred to which node based on the load information of the other nodes provided by the load information sharing unit 32 and requests the task transmission / reception unit 33 to transfer the task.

図4は、図3の負荷分散手段31の構成を示す図である。図4を参照すると、負荷分散手段31は、負荷情報管理手段36と、ノード優先度割り当て手段37と、均衡度計算手段38と、どのタスクをどのノードに移送するかを決定する移送タスク決定手段39とを持つ。これらの手段はそれぞれ概略つぎのように動作する。   FIG. 4 is a diagram showing the configuration of the load distribution means 31 of FIG. Referring to FIG. 4, the load distribution means 31 includes a load information management means 36, a node priority assignment means 37, a balance calculation means 38, and a transfer task determination means for determining which task is transferred to which node. 39. Each of these means generally operates as follows.

負荷情報管理手段36は、負荷情報共有手段32からプッシュされた負荷情報を受け取り、あらかじめ定められた方法に従って、情報を再構成する。また、負荷情報管理手段36は、下記の移送タスク決定手段39からの負荷情報の問い合わせに答える。さらに、負荷情報管理手段36は、移送タスク決定手段39からのノードの負荷情報の更新を、そのノードに関する負荷情報共有手段32からの情報のプッシュがあるまで保持する。   The load information management unit 36 receives the load information pushed from the load information sharing unit 32, and reconfigures the information according to a predetermined method. Further, the load information management means 36 answers the inquiry of load information from the following transfer task determination means 39. Further, the load information management unit 36 holds the update of the load information of the node from the transfer task determination unit 39 until the information is pushed from the load information sharing unit 32 regarding the node.

ノード優先度割り当て手段37は、あらかじめ定められた方法に従って、どのノードから負荷の移送判断を行うかを決めるための優先度をノードに割り当てる。ただし、以下では、優先度の値が小さいほど、優先度は高いものとする。   The node priority assigning means 37 assigns a priority for determining a node from which a load transfer determination is performed according to a predetermined method to a node. However, in the following, it is assumed that the lower the priority value, the higher the priority.

均衡度計算手段38は、あらかじめ定められた方法に従って、自ノードで実行すべきタスクの量(threshold)を動的に計算する。   The balance degree calculation means 38 dynamically calculates the amount of tasks to be executed in the own node according to a predetermined method.

移送タスク決定手段39は、優先度の高いノードから、タスクを移送するかどうかを決定する。   The transfer task determination unit 39 determines whether to transfer a task from a node having a high priority.

図5は、本発明の第2の実施の形態の動作を説明するための流れ図である。次に、図3乃至図5を参照して、本発明の第2の実施の形態の全体の動作について詳細に説明する。   FIG. 5 is a flowchart for explaining the operation of the second exemplary embodiment of the present invention. Next, the overall operation of the second exemplary embodiment of the present invention will be described in detail with reference to FIGS.

まず、タスクをタスク送受信手段33で受信する(図5のステップL1)。   First, the task is received by the task transmitting / receiving means 33 (step L1 in FIG. 5).

次に、受信したタスクを、ローカルキューイング手段35がキューイングする。ただし、キューイング時にタスクの実行結果の返信先が判別できるようにしておく。例えば、TCPによる通信でタスクが送信されたのであれば、キューイング時にタスクとコネクションの対応を記録しておく(ステップL2)。   Next, the local queuing means 35 queues the received task. However, it is possible to determine the return destination of the task execution result at the time of queuing. For example, if the task is transmitted by TCP communication, the correspondence between the task and the connection is recorded at the time of queuing (step L2).

負荷分散手段31は、ローカルキューイング手段35中のタスクに関して、キューの先頭から、ある数Qのタスクを除いて、どのノードで実行すればよいかを決定する(ステップL3)。   The load distribution means 31 determines which node should be executed with respect to the tasks in the local queuing means 35, excluding a certain number Q of tasks from the head of the queue (step L3).

この決定に基づいて、タスク送受信手段33はタスクを他のノードに移送する(ステップL4)。   Based on this determination, the task transmitting / receiving unit 33 transfers the task to another node (step L4).

他のノードに移送されなかった、キューの先頭からQ個のタスクは、タスク実行手段34で実行される(ステップL5)。   The Q tasks from the head of the queue that have not been transferred to other nodes are executed by the task execution means 34 (step L5).

タスク送受信手段33は、他ノードに移送したタスクの実行結果が返ってきていれば、これを受信する(ステップL6)。   If the execution result of the task transferred to the other node is returned, the task transmission / reception means 33 receives this (step L6).

ローカルキューイング手段35は、タスク実行手段34から実行結果を受け付けるか、タスク送受信手段33で実行結果が受信されていれば、対応するタスクをキューから外し、タスク送受信手段33を用いて実行結果を送信する(ステップL7)。ただし、負荷情報共有手段32は、負荷分散手段31に対して適宜負荷情報をプッシュする。   The local queuing means 35 accepts the execution result from the task execution means 34 or, if the execution result is received by the task transmission / reception means 33, removes the corresponding task from the queue and uses the task transmission / reception means 33 to obtain the execution result. Transmit (step L7). However, the load information sharing unit 32 pushes load information to the load distribution unit 31 as appropriate.

図6は、本実施の形態の負荷分散手段31の動作を説明するための流れ図である。図4、図6を参照して、本実施の形態の負荷分散手段31の動作について以下に詳細に説明する。   FIG. 6 is a flowchart for explaining the operation of the load distribution means 31 of the present embodiment. With reference to FIG. 4 and FIG. 6, the operation of the load distribution means 31 of this embodiment will be described in detail below.

まず、均衡度計算手段38を用いて、許容できる自ノードの負荷の上限である閾値(threshold)を算出する(図6のステップA1)。   First, the threshold value (threshold) which is the upper limit of the load of the own node which can be permitted is calculated using the balance degree calculation means 38 (step A1 in FIG. 6).

次に、ノード優先度割り当て手段37を用いて、他のノードに対して優先度を割り当てる(ステップA2)。以下では、優先度が高いノードを「近いノード」、優先度が低いノードを「遠いノード」と呼ぶ。   Next, the node priority assigning means 37 is used to assign priorities to other nodes (step A2). Hereinafter, a node having a high priority is referred to as a “close node”, and a node having a low priority is referred to as a “far node”.

そして、移送タスク決定手段39は、移送したい負荷の量「over」(オーバ)を算出する。「over」は、自ノードの負荷と、閾値「threshold」以上の最小の整数の差である。また、負荷移送対象ノードが受け入れることができる負荷の量「under」(アンダー)を「0」で初期化する(ステップA3)。   Then, the transfer task determination unit 39 calculates the amount “over” (over) of the load to be transferred. “Over” is the difference between the load of the own node and the smallest integer equal to or greater than the threshold “threshold”. Further, the load amount “under” (under) that can be accepted by the load transfer target node is initialized to “0” (step A3).

移送タスク決定手段39は、移送したい負荷の量「over」が正値であるか否か判定し、正値でなければ、負荷分散を行わずに終了する(ステップA4)。   The transfer task determination means 39 determines whether or not the load amount “over” to be transferred is a positive value, and if it is not a positive value, the transfer task determination means 39 ends without performing load distribution (step A4).

移送したい負荷の量「over」が正値であれば、移送タスク決定手段39は、近いノードから順に、負荷移送判断を行うノードを選択する(ステップA5)。以下では、選択されたノードを、「負荷移送対象ノード」と呼ぶ。   If the amount “over” of the load to be transferred is a positive value, the transfer task determining means 39 selects the node that performs load transfer determination in order from the closest node (step A5). Hereinafter, the selected node is referred to as a “load transfer target node”.

既に全てのノードに対して、負荷移送判断が行われていれば、選択できるノードがないので、負荷分散を終了する(ステップA6)。   If load transfer determination has already been made for all nodes, there is no node that can be selected, and load distribution is terminated (step A6).

移送タスク決定手段39は、受け入れ可能な負荷の量「under」に、閾値「threshold」と、負荷移送対象ノードの(負荷情報管理手段36に問い合わせて得られた)負荷情報との差を加える(ステップA7)。   The transfer task determination unit 39 adds the difference between the threshold “threshold” and the load information (obtained by inquiring of the load information management unit 36) of the load transfer target node to the acceptable load amount “under” ( Step A7).

加算された受け入れ可能な負荷の量「under」が「1」以上でなければ、ステップA5に戻って、負荷移送対象ノードを変更する(ステップA8)。   If the added acceptable load amount “under” is not “1” or more, the process returns to step A5 to change the load transfer target node (step A8).

加算された受け入れ可能な負荷の量「under」が「1」以上であれば、負荷を「1」だけ負荷移送対象ノードに移送することを決定する(ステップA9)。   If the added acceptable load amount “under” is “1” or more, it is determined to transfer the load by “1” to the load transfer target node (step A9).

そして、負荷情報管理手段36を用いて、自ノードの負荷情報を「1」減らし、自ノードが持つ移送対象ノードの負荷情報を、「1」増やして(ステップA10)、負荷分散を終了する。   Then, the load information management means 36 is used to decrease the load information of the own node by “1”, increase the load information of the transfer target node of the own node by “1” (step A10), and terminate the load distribution.

次に、本発明の第2の実施の形態の作用効果について説明する。   Next, the effect of the 2nd Embodiment of this invention is demonstrated.

本発明の第2の実施の形態において、
「over」は、自ノードの過負荷状態を解消するために移送すべき負荷の量を意味する。
「under」は、最も近くにあるノードから負荷移送対象ノードまでのノードが、過負荷になることなく受け入れられる負荷の量を意味する。
In the second embodiment of the present invention,
“Over” means the amount of load to be transferred in order to eliminate the overload state of the own node.
“Under” means the amount of load that the node from the nearest node to the load transfer target node can accept without being overloaded.

したがって、「under」が正になる最も近いノード(ノードα)に対して、負荷を移送することは、自ノードと、ノードαの間にあるノードは、それらのノード間での負荷移送によって、負荷均衡を図ることを考慮する、ことを意味する。このようにして、他ノードの負荷移送を考慮して自ノードの負荷移送を決定するため、群集効果を防ぐことができる。   Therefore, to transfer the load to the closest node (node α) in which “under” is positive, the node between the own node and the node α is transferred by load transfer between those nodes. This means taking into account load balancing. In this way, the load transfer of the own node is determined in consideration of the load transfer of the other nodes, so that the crowd effect can be prevented.

次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。本発明の第3の実施の形態の基本構成は、図3乃至図5を参照して説明した前記第2の実施の形態の構成と同様である。   Next, a third embodiment of the present invention will be described in detail with reference to the drawings. The basic configuration of the third embodiment of the present invention is the same as the configuration of the second embodiment described with reference to FIGS.

本発明の第3の実施の形態は、前記第2の実施の形態に対し、負荷分散手段31(図4参照)の処理手順を示す図6において、タスク移送先を決定する動作であるステップA9と、負荷情報を更新する動作であるA10の代わりに、図7のステップB1〜B5を実行する点が異なる。   The third embodiment of the present invention is an operation for determining a task transfer destination in FIG. 6 showing the processing procedure of the load distribution means 31 (see FIG. 4) with respect to the second embodiment. 7 in that steps B1 to B5 in FIG. 7 are executed instead of A10 which is an operation of updating the load information.

「under」が「1」以上であり、かつ、「over」が「under」以下であれば、移送タスク決定手段39は、「over」分の負荷を負荷移送対象ノードに移送することを決定する(図7のステップB2)。   When “under” is “1” or more and “over” is “under” or less, the transfer task determination unit 39 determines to transfer the load of “over” to the load transfer target node. (Step B2 in FIG. 7).

そして、負荷情報管理手段36(図4参照)を用いて、自ノードの負荷情報を「over」分減らし、自ノードが持つ移送対象ノードの負荷情報を「over」分増やして(ステップB3)、負荷分散は終了する。   Then, using the load information management means 36 (see FIG. 4), the load information of the own node is reduced by “over”, and the load information of the transfer target node possessed by the own node is increased by “over” (step B3). Load balancing ends.

「under」が「1」以上であり、かつ、「over」の値が「under」の値よりも大きければ、移送タスク決定手段39は、floor(under)(=under以下の最大の整数)分の負荷を、負荷移送対象ノードに移送することを決定する(ステップB4)。   If “under” is equal to or greater than “1” and the value of “over” is larger than the value of “under”, the transfer task determination means 39 determines the amount of floor (under) (= the maximum integer equal to or less than under). Is determined to be transferred to the load transfer target node (step B4).

そして、負荷情報管理手段36を用いて、自ノードの負荷情報と「over」を、「floor(under)」減らし、自ノードが持つ負荷移送対象ノードの負荷情報を、「floor(under)」増やす。さらに、「under」から、「floor(under)」を差し引く(ステップB5)。そしてステップA5へ進む。   Then, the load information management means 36 is used to reduce the load information of the own node and “over” by “floor (under)”, and increase the load information of the load transfer target node of the own node by “floor (under)”. . Further, “floor (under)” is subtracted from “under” (step B5). Then, the process proceeds to Step A5.

次に、本発明の第3の実施の形態の作用効果について説明する。   Next, the effect of the 3rd Embodiment of this invention is demonstrated.

本発明の第3の実施の形態では、「under」が正になったノード(ノードα)に対して、「under」分の負荷を移送する。これは、ノードαと、ノードαにより近いノードを過負荷状態にしないので、他ノードの負荷移送を考慮して、自ノードの負荷移送を行うことを意味する。従来、複数個のタスク移送を行うと、群衆効果が強まってしまうために、性能は向上しないが、本実施形態では、他ノードのタスク移送を考慮することで群衆効果を緩和できるため、複数タスクを複数ノードに移送しても、高速に負荷を均衡させることができる。   In the third embodiment of the present invention, the load of “under” is transferred to the node (node α) in which “under” becomes positive. This means that the node α and a node closer to the node α are not overloaded, and therefore load transfer of the own node is performed in consideration of load transfer of other nodes. Conventionally, performing a plurality of task transfers does not improve performance because the crowd effect increases, but in this embodiment, the crowd effect can be mitigated by considering the task transfer of other nodes. The load can be balanced at high speed even if the node is transferred to a plurality of nodes.

次に、本発明の第4の実施の形態について詳細に説明する。本発明の第4の実施の形態は、前記第3の実施の形態と同一の構成とされるが、負荷情報共有手段32(図3参照)、負荷分散手段31の負荷情報管理手段36(図4参照)の処理が相違している。すなわち、本発明の第4の実施の形態は、
(I)負荷情報共有手段32(図3参照)が、精度の異なる情報を、負荷分散手段31に提供し、
(II)負荷分散手段31の負荷情報管理手段36(図4参照)が、負荷情報の値と精度から、負荷情報を再構築する
構成とされており、上記(I)、(II)で、前記第3の実施の形態と相違している。
Next, a fourth embodiment of the present invention will be described in detail. The fourth embodiment of the present invention has the same configuration as that of the third embodiment, but the load information sharing means 32 (see FIG. 3) and the load information management means 36 of the load distribution means 31 (see FIG. 4) is different. That is, the fourth embodiment of the present invention
(I) The load information sharing means 32 (see FIG. 3) provides information with different accuracy to the load distribution means 31,
(II) The load information management means 36 (see FIG. 4) of the load distribution means 31 is configured to reconstruct the load information from the value and accuracy of the load information. In (I) and (II) above, This is different from the third embodiment.

次に、本発明の第4の実施の形態の作用効果について説明する。   Next, the effect of the 4th Embodiment of this invention is demonstrated.

本発明の第4の実施の形態では、他ノードから送られる負荷情報の値と精度から、負荷情報を再構築する構成とされているため、低コストで負荷情報を共有することができる。ノード毎に異なる精度を持つ負荷情報に基づいていても、他ノードのタスク移送を考慮し、余剰負荷を複数ノードに対して、それぞれ複数個ずつ移送するように構成されているため、低コストでありながら、高速に、負荷を均衡させることができる。   In the fourth embodiment of the present invention, the load information is reconstructed from the value and accuracy of the load information sent from another node, so that the load information can be shared at low cost. Even if it is based on load information with different accuracy for each node, considering the task transfer of other nodes, it is configured to transfer multiple surplus loads to multiple nodes at low cost. Nevertheless, the load can be balanced at high speed.

次に、本発明の第5の実施の形態について図面を参照して詳細に説明する。本発明の第5の実施の形態は、前記本発明の第3、第4の実施の形態とは相違して、負荷分散手段31(図3、図4参照)は、レスポンスタイムテーブル(図8参照)を備えている。   Next, a fifth embodiment of the present invention will be described in detail with reference to the drawings. The fifth embodiment of the present invention is different from the third and fourth embodiments of the present invention in that the load distribution means 31 (see FIGS. 3 and 4) has a response time table (FIG. 8). See).

ローカルキューイング手段35(図3参照)において、タスクのレスポンスタイムを測定し、その結果を、レスポンスタイムテーブルに反映させ、レスポンスタイムテーブルを参照して、実行時に同時に実行するタスクの数を変化させる制御が行われる。   In the local queuing means 35 (see FIG. 3), the response time of the task is measured, the result is reflected in the response time table, and the number of tasks executed simultaneously at the time of execution is changed with reference to the response time table. Control is performed.

図8を参照すると、レスポンスタイムテーブル310は、レスポンスタイムの総和と測定個数(和を取ったレスポンスタイムの個数)を記録する。この二つの値は、実行数(同時に実行されていたタスク数)別に記録される。例えば三つのタスクが実行されていて、そのうちの一つが終了したら、このレスポンスタイムは実行数が「3」の時のものとして扱われる。   Referring to FIG. 8, the response time table 310 records the total of response times and the number of measurements (the number of response times obtained by summing up). These two values are recorded according to the number of executions (the number of tasks executed simultaneously). For example, when three tasks are being executed and one of them is completed, the response time is treated as when the number of executions is “3”.

次に、図5と図9を参照して、本実施の形態におけるローカルキューイング手段35の動作について詳細に説明する。   Next, the operation of the local queuing means 35 in the present embodiment will be described in detail with reference to FIG. 5 and FIG.

ローカルキューイング手段35は、図5のステップL5で、タスク実行手段34にタスクを渡すときの時刻を、タスク毎に保持する。また、図5のステップL6では、実行結果を受け取る度に、図9に示す動作を加えて行う。   The local queuing unit 35 holds, for each task, the time when the task is transferred to the task execution unit 34 in step L5 in FIG. Further, in step L6 in FIG. 5, every time the execution result is received, the operation shown in FIG. 9 is added.

まず、ローカルキューイング手段35は、実行結果をタスク実行手段34から受け取ると、現在時刻とステップL5で保持したタスクの実行開始時刻の差を求める(図9のステップC1)。   First, when the local queuing means 35 receives the execution result from the task execution means 34, the local queuing means 35 obtains the difference between the current time and the task execution start time held in step L5 (step C1 in FIG. 9).

次に、現在のキュー長に「1」を足した実行数のレスポンスタイムの総和に、ステップC1で求めたレスポンスタイムを加算し、対応する測定個数を「1」増やし、レスポンスタイムテーブル310を更新する(ステップC2)。   Next, the response time obtained in step C1 is added to the sum of the response times of the number of executions obtained by adding “1” to the current queue length, the corresponding measurement number is increased by “1”, and the response time table 310 is updated. (Step C2).

さらに、レスポンスタイムテーブル310を参照して、s個以上のレスポンスタイムの総和を、対応する測定個数で割ることで、平均レスポンスタイムを求め、これら平均レスポンスタイムの値から望ましい実行数Rを求める(ステップC3)。ただし、sは、あらかじめ定められた値であり、「有効サンプリング数」と呼ぶ。   Further, referring to the response time table 310, an average response time is obtained by dividing the sum of s or more response times by the corresponding number of measurements, and a desired number of executions R is obtained from the value of these average response times ( Step C3). However, s is a predetermined value and is referred to as an “effective sampling number”.

そして、同時に実行するタスク数の最大値Qを、(R+v)に変更する(ステップC4)。ただし、vは、あらかじめ定められた非負の整数であり、「付加実行数」と呼ぶ。   Then, the maximum value Q of the number of tasks executed simultaneously is changed to (R + v) (step C4). However, v is a predetermined non-negative integer and is referred to as “additional execution number”.

次に、本発明の第5の実施の形態の作用効果について説明する。   Next, the effect of the 5th Embodiment of this invention is demonstrated.

本発明の第5の実施の形態では、同時に実行するタスク数別にレスポンスタイムを測定し、最大で、いくつのタスクを同時に実行するのが望ましいかを、動的に決定するように構成されているため、多重実行によるノードのスループットの向上と、タスクの移送制限(一度実行されたタスクは移送しない)による負荷不均衡のトレードオフを図り、システム全体のスループットを向上させることができる。   In the fifth embodiment of the present invention, the response time is measured according to the number of tasks to be executed simultaneously, and the maximum number of tasks to be executed simultaneously is determined dynamically. Therefore, the throughput of the node can be improved by multiple executions, and the load imbalance can be traded off by limiting task transfer (tasks that have been executed once are not transferred), thereby improving the overall system throughput.

次に、本発明の第6の実施の形態について図面を参照して詳細に説明する。   Next, a sixth embodiment of the present invention will be described in detail with reference to the drawings.

図10を参照すると、本発明の第6の実施の形態は、前記第5の実施の形態と相違して、スイッチング装置2(図3参照)の代わりに、グローバル負荷分散装置1を備えている。グローバル負荷分散装置1は、図1に示した構成とされるが、ノードグループ構築手段12の処理が一部相違している。ノードは、図3に示した構成とされるが、負荷情報共有手段32が相違している。   Referring to FIG. 10, unlike the fifth embodiment, the sixth embodiment of the present invention includes a global load balancer 1 instead of the switching device 2 (see FIG. 3). . The global load balancer 1 is configured as shown in FIG. 1, but the processing of the node group construction unit 12 is partially different. The node is configured as shown in FIG. 3, but the load information sharing means 32 is different.

グローバル負荷分散装置1は、前記第1の実施の形態と相違して、図2のステップ104において、ノードグループ構築手段12が、ノードグループの変更を、変更が加えられるグループに含まれる各ノードの負荷情報共有手段32に通知する動作を行う。   Unlike the first embodiment, the global load balancer 1 is configured such that, in step 104 of FIG. 2, the node group construction unit 12 changes the node group to each node included in the group to which the change is applied. An operation of notifying the load information sharing means 32 is performed.

また、本実施の形態における負荷情報共有手段32は、前記第5の実施の形態と相違して、ノードグループ変更の通知を受け取り、他のノードグループに属するノードとは情報を共有しないようにする動作を行う。したがって、本実施の形態では、ノードグループ間を越えて、負荷が移送されることはない。   Further, unlike the fifth embodiment, the load information sharing means 32 in the present embodiment receives a notification of a node group change so as not to share information with nodes belonging to other node groups. Perform the action. Therefore, in this embodiment, the load is not transferred across the node groups.

次に、本発明の第6の実施の形態の作用効果について説明する。   Next, the effect of the 6th Embodiment of this invention is demonstrated.

本発明の第6の実施の形態によれば、タスクは、タスク種毎に異なるノードグループで実行され、ノードグループ間でのタスクの移送が起きないように構成されているため、あるタスク種が突然大量に発生しても、他のタスク種の実行には影響を及ぼすことはなく、事前に定められたレスポンスタイムを満足させる、ことができる。   According to the sixth embodiment of the present invention, a task is executed in a different node group for each task type, and is configured so that task transfer between node groups does not occur. Even if a large number of sudden occurrences occur, the execution of other task types is not affected, and a predetermined response time can be satisfied.

また、ノードグループ内での負荷均衡が高速に達成されるため、より少ないノード数でノードグループを構成しても、事前に定められたレスポンスタイムを満足させる、ことができる。   Moreover, since load balancing within the node group is achieved at high speed, a predetermined response time can be satisfied even if the node group is configured with a smaller number of nodes.

さらに、過負荷になったノードグループにノードを追加した直後に、負荷均衡状態に移行できるため、ノードを追加するタイミングを遅らせる、ことができる。その結果、今は、過負荷であるが、ノード追加時には低負荷になってしまった不適切なノード追加判断を減らし、システムのスループットを向上させる、ことができる。   Furthermore, immediately after adding a node to an overloaded node group, it is possible to shift to a load balanced state, so that the timing of adding a node can be delayed. As a result, it is now overloaded, but it is possible to reduce inappropriate node addition judgment that has become a low load when adding a node, and improve the throughput of the system.

次に、上記した実施の形態についてさらに詳細に説明すべく、具体的な実施例に即して説明する。   Next, in order to describe the above-described embodiment in more detail, a description will be given according to specific examples.

図1は、本発明の第1の実施例の構成を示す図である。グローバル負荷分散装置1に到着するタスクは、タスク受信手段11が受け付け、タスク受信手段11は、タスクの種類を判別する。タスクの種類を判別する方法の一例をあげる。プロトコルとして、HTTP(HyperText Transport Protocol)を用いた場合には、HTTPリクエストの最初の行(リクエストライン)や、リクエストヘッダや、リクエストボディにタスクの種類を明示的に示しておくことで、タスクの種類を判断することができる。また、プロトコルが異なるものを異なるタスクと判別することもできる。あるいは、用いるポート番号が異なる場合に異なるタスクと判別することもできる。このようにして、タスク受信手段11ではタスクの種類を判別する。   FIG. 1 is a diagram showing the configuration of the first exemplary embodiment of the present invention. The task arriving at the global load balancer 1 is received by the task receiving unit 11, and the task receiving unit 11 determines the type of task. Here is an example of how to determine the type of task. When HTTP (HyperText Transport Protocol) is used as the protocol, the task type is clearly indicated in the first line (request line), request header, and request body of the HTTP request. The type can be determined. In addition, it is possible to distinguish different tasks from different protocols. Alternatively, it can be determined that the task is different when the port number to be used is different. In this way, the task receiving means 11 determines the type of task.

また、タスク受信手段11では、あらかじめ定められた測定時間間隔内に到着したタスクの個数をタスク種ごとに計数し、タスク到着率(単位時間当たりに到着したタスク数)を算出し、タスク到着率管理表191(図17参照)にて、測定データを管理する。測定間隔が経過するたびに、タスク受信手段11は、タスク到着率を算出し、タスク到着率管理表191を更新する。   Further, the task receiving means 11 counts the number of tasks that arrive within a predetermined measurement time interval for each task type, calculates a task arrival rate (the number of tasks that arrive per unit time), and obtains a task arrival rate. The measurement data is managed in the management table 191 (see FIG. 17). Each time the measurement interval elapses, the task receiving unit 11 calculates a task arrival rate and updates the task arrival rate management table 191.

タスク到着率管理表191は、最新のタスク到着率だけではなく、前回の測定値や、その前の測定値なども管理対象とし、事前に定められた数(=L)分の測定データを保存する。   The task arrival rate management table 191 stores not only the latest task arrival rate but also the previous measurement value and the previous measurement value, and stores a predetermined number (= L) of measurement data. To do.

システム構成入力手段13は、クラスタシステムを構成するノードの種類Kと、k番目のノード種のノード数N(k)と、システム上で実行されるタスクの種類数Jと、事前に測定されたタスク特性と、どのような条件でシステムを運用するかを定めるシステム運用条件との入力を受け付ける。   The system configuration input means 13 is measured in advance, the type K of nodes constituting the cluster system, the node number N (k) of the k-th node type, the number J of types of tasks executed on the system. It accepts input of task characteristics and system operating conditions that determine under what conditions the system is operated.

なお、
N=N(1)+N(2)+・・・+N(K) …(2)
とする。
In addition,
N = N (1) + N (2) +... + N (K) (2)
And

図11(A)、図11(B)は、タスク特性の一つの具体例をそれぞれ示す図である。図11(A)は、一つのノード上で、一種類のタスク処理を行なった場合の、タスクの到着率(横軸)と、スループット(縦軸)との関係を示し、図11(B)は、タスクの到着率(横軸)と、レスポンス(縦軸)との関係を示す図である(図11に示したスループットとレスポンスとタスク到着率の特性を、「タスク−ノード特性」、もしくは「T−N特性」と呼ぶ)。   FIG. 11A and FIG. 11B are diagrams showing one specific example of task characteristics. FIG. 11A shows the relationship between the task arrival rate (horizontal axis) and the throughput (vertical axis) when one type of task processing is performed on one node, and FIG. Is a diagram showing the relationship between the task arrival rate (horizontal axis) and the response (vertical axis) (the characteristics of throughput, response, and task arrival rate shown in FIG. Called "TN characteristics").

システム運用条件の一つの具体例は、タスク処理時間として許容でき得る値(許容レスポンス)と、そのような許容レスポンスを達成するようにシステムが動作する限界範囲を定める限界到着率である。   One specific example of the system operation condition is an allowable value (allowable response) as the task processing time and a limit arrival rate that defines a limit range in which the system operates so as to achieve such an allowable response.

タスク到着率が、予め定められた限界到着率未満であれば、システムは許容レスポンスを達成するように、図1のノードグループ構築手段12が、グループの構成を行なう。しかしながら、タスク到着率が限界到着率を超えてしまう場合には、保証範囲外の状態としてとらえ、システムとしては、許容レスポンスを達成するようなグループ構成は行なわない。   If the task arrival rate is less than a predetermined limit arrival rate, the node group construction unit 12 in FIG. 1 performs group configuration so that the system achieves an acceptable response. However, when the task arrival rate exceeds the limit arrival rate, it is regarded as being out of the guaranteed range, and the system does not perform a group configuration that achieves an acceptable response.

図12に、入力の一例を示す。図12を参照すると、第j番目のタスク種と、第k番目のノード種に対して、許容レスポンスタイムR(図では、「0.11」)と、限界到着率Λ_Lim(図では、「1.99」)が指定され、更に、表形式で1ノードへのタスク到着率と、その時のスループットとレスポンスタイムとの関係(「タスク−ノード特性」、もしくは「T−N特性」という)が与えられている。   FIG. 12 shows an example of input. Referring to FIG. 12, for the jth task type and the kth node type, an allowable response time R (“0.11” in the figure) and a marginal arrival rate Λ_Lim (“1” in the figure). .99 ") is specified, and the task arrival rate to one node in a table format and the relationship between the throughput and the response time (referred to as" task-node characteristics "or" TN characteristics ") are given. It has been.

このような表は、システムを実際に運用する前の段階で、1ノードを用いて、タスク処理性能を測定するような実験を行なうことにより取得される。あるいは、シングルプロファイル法を用いることで、一つのタスクを実行するために必要となるCPU利用時間やディスク・アクセス時間などから算出することができる(詳細は前記非特許文献5の記載参照)。   Such a table is acquired by conducting an experiment for measuring task processing performance using one node at a stage before the system is actually operated. Alternatively, by using the single profile method, it can be calculated from the CPU usage time and disk access time required for executing one task (refer to the description of Non-Patent Document 5 for details).

図12において、T−N特性の一つの行は、1ノードに与えるタスク到着率を一定にした状態で、多数のタスク処理を1ノード上で行った時に得られるスループットとレスポンスタイムの平均値である。   In FIG. 12, one row of the TN characteristic is an average value of throughput and response time obtained when a large number of task processes are performed on one node with a task arrival rate given to one node being constant. is there.

システムで処理するタスクの種類がJ個、システムを構成するノードの種類がK個あるので、図12のような入力データは、j=1〜Jとk=1〜Kの組み合わせに対して用意される。   Since there are J types of tasks to be processed in the system and K types of nodes constituting the system, input data as shown in FIG. 12 is prepared for combinations of j = 1 to J and k = 1 to K. Is done.

図1の実行性能測定手段14では、運用時における個々のノードの処理性能を測定する。具体的には、測定間隔を定めて、その間にノードへ転送したタスク数(転送数)と、ノード上で処理が終了したタスク数(処理数)と、タスク処理に要する時間(レスポンスタイム)とを測定する。測定間隔として、通常、数百ミリ秒から数秒程度としている。   The execution performance measuring means 14 in FIG. 1 measures the processing performance of individual nodes during operation. Specifically, the number of tasks transferred to the node during the measurement interval (number of transfers), the number of tasks completed on the node (number of processes), and the time required for task processing (response time) Measure. The measurement interval is usually several hundred milliseconds to several seconds.

処理が終了したタスクの個数を、測定間隔で除することで、ノードのスループットが得られる。   The throughput of the node can be obtained by dividing the number of tasks that have been processed by the measurement interval.

また、直前の測定間隔における性能測定値や、その更に前の値なども管理対象とし、事前に定められた数(=L)分の測定データを保存する。このような値を管理するために、図18に示すような、ノード性能管理表192を用いる。ノード性能管理表192は、ノードIDに対して、レスポンス、スループット、転送数、処理数の欄を有し、それぞれの値のノード全体での平均値が記録され、過去(L回前)の測定から、現在の測定に対応して保持される。   In addition, the performance measurement value at the immediately preceding measurement interval, the previous value, etc. are also managed, and a predetermined number (= L) of measurement data is stored. In order to manage such values, a node performance management table 192 as shown in FIG. 18 is used. The node performance management table 192 has columns of response, throughput, number of transfers, and number of processes for the node ID, the average value of each value for the entire node is recorded, and the past (L times before) measurement is recorded. From the current measurement.

ノード性能管理表192は、タスク種と、ノード種ごとに作成される。ここで、転送タスク数と、完了タスク数とを用いることで、滞留タスク数を算出することができる。すなわち、次式(3)の関係が成り立つ。   The node performance management table 192 is created for each task type and each node type. Here, the number of remaining tasks can be calculated by using the number of transfer tasks and the number of completed tasks. That is, the relationship of the following formula (3) is established.

(滞留タスク数)=(直前の測定間隔における滞留タスク数)
+(転送タスク数)
−(完了タスク数) …(3)
(Number of staying tasks) = (Number of staying tasks in the previous measurement interval)
+ (Number of transfer tasks)
-(Number of completed tasks) (3)

従って、本実施例では、滞留タスク数は、直接測定する必要はない。   Therefore, in this embodiment, it is not necessary to directly measure the number of staying tasks.

ノードグループ構築手段12は、全部でN個あるノードをグループ化し、どのノードグループでどのタスク種が実行されるかを管理する。そのために必要となる情報を管理するために、ノードグループ構成表193(図19参照)と、タスク種−ノードグループ対応表194(図14参照)とを更新する。   The node group construction unit 12 groups N nodes in total, and manages which task type is executed in which node group. In order to manage information necessary for this, the node group configuration table 193 (see FIG. 19) and the task type / node group correspondence table 194 (see FIG. 14) are updated.

図19に示すように、ノードグループ構成表193は、ノードグループの番号と、そのノードグループを構成するノード番号をノードの種対ごとに対応付ける表である。すなわち、ノードグループの番号に対して、ノードグループを構成するノードの、ノードIDとノード数の対の情報を、ノード種1、2、…に対して有する。   As illustrated in FIG. 19, the node group configuration table 193 is a table in which a node group number and a node number configuring the node group are associated with each node type pair. That is, the node group number, node number, and node number information of the nodes constituting the node group is stored for the node types 1, 2,.

また、図14に示すように、タスク種−ノードグループ対応表194は、第j番目のタスク種を実行するノードグループを管理する表であり、タスクIDと、ノードグループ番号の対応表からなる。図14に示す例では、タスクIDが1と3のタスクは、ノードグループ番号1で実行され、タスクグループAのタスクを構成し、タスクIDが2のタスクは、ノードグループ番号2で実行され、タスクグループBのタスクを構成している。   As shown in FIG. 14, a task type / node group correspondence table 194 is a table for managing a node group that executes the j-th task type, and includes a correspondence table of task IDs and node group numbers. In the example shown in FIG. 14, tasks with task IDs 1 and 3 are executed with node group number 1 and constitute tasks of task group A, and tasks with task ID 2 are executed with node group number 2. Tasks of task group B are configured.

これら二つの表(ノードグループ構成表193、タスク種−ノードグループ対応表194)を更新する際に、ノードグループ構築手段12は、入力された運用条件と、T−N特性と、およびタスク到着率管理表191と、ノード性能管理表192とを参照する。   When updating these two tables (node group configuration table 193, task type-node group correspondence table 194), the node group construction means 12 receives the input operating conditions, TN characteristics, and task arrival rate. The management table 191 and the node performance management table 192 are referred to.

以下では、ノードの種類が一つ(K=1、すなわち、全てのノードの処理能力が等しい場合)で、かつ、一つのノードグループに対して一つのタスク種が対応付けられる場合(すなわち、J個のノードグループがあり、第j番目のノードグループ上で、第j番目のタスク種が実行されているという場合)に関して、ノードグループ構成表193、および、タスク種−ノードグループ対応表194を更新する具体的な方法に関して、詳細に説明する。なお、説明の都合上、次のような記号を定義する。   In the following, there is one node type (K = 1, that is, when all nodes have the same processing capability), and one task type is associated with one node group (that is, J Node group configuration table 193 and task type-node group correspondence table 194 are updated with respect to the case where there are n node groups and the jth task type is executed on the jth node group) The specific method to do is demonstrated in detail. For convenience of explanation, the following symbols are defined.

第j番目のタスク種の入力データとして与えられる許容レスポンスをR(j)、限界到着率をΛ_Lim(j)とする。   Let R (j) be an allowable response given as input data of the j-th task type, and Λ_Lim (j) the limit arrival rate.

また、1ノードで達成可能な最大スループットを、T_max(j)とし、1ノードの許容到着率をλ(j)とする。   The maximum throughput achievable at one node is T_max (j), and the allowable arrival rate at one node is λ (j).

ここで、許容到着率λ(j)は、許容レスポンスR(j)を与えるような1ノードへのタスク到着率のことである。   Here, the allowable arrival rate λ (j) is a task arrival rate to one node that gives an allowable response R (j).

図12に示されるような表形式のT−N特性を利用して、1ノードで達成することができる最大スループットT_max(j)と、1ノードの許容到着率λ(j)とを次のようにして求める。   The maximum throughput T_max (j) that can be achieved by one node and the allowable arrival rate λ (j) of one node are expressed as follows using the tabular TN characteristics as shown in FIG. Ask for it.

最大スループットT_max(j)は、入力されたT−N特性の中から、スループットの最大値を選び、その値とする。   As the maximum throughput T_max (j), the maximum throughput value is selected from the input TN characteristics and set as the value.

1ノードの許容到着率λ(j)は、到着率とレスポンスとの関係と、許容レスポンスタイムを用いて求める。   The allowable arrival rate λ (j) of one node is obtained using the relationship between the arrival rate and the response and the allowable response time.

到着率とレスポンスは、測定点におけるデータの組が、入力データとして与えられている。   As for the arrival rate and the response, a data set at the measurement point is given as input data.

このような複数の測定点を、適切な方式で補間することで、レスポンスタイムを到着率の関数として表したり、逆に、到着率を、レスポンスタイムの関数として表すことができる。   By interpolating such a plurality of measurement points by an appropriate method, the response time can be expressed as a function of the arrival rate, or conversely, the arrival rate can be expressed as a function of the response time.

具体的な補間の詳細は、前記非特許文献6(「数値計算の常識」(伊理正夫、藤野和建著)共立出版(1985年)の第15章 補間(内挿)と第16章 雲形定規とスプライン−続補間)に詳述されているので、前記非特許文献6が参照される。本実施例においては、補間の詳細を省略する。   For details of the interpolation, see Non-Patent Document 6 ("Common sense of numerical computation" (by Masao Iri and Kazunori Fujino), Kyoritsu Shuppan (1985), Chapter 15 Interpolation (interpolation) and Chapter 16 Clouds. The ruler and spline-continuous interpolation) are described in detail. In this embodiment, details of interpolation are omitted.

このように、到着率とレスポンスタイムとの関係を近似的に関数で表すことで、許容レスポンスタイムR(j)を与える到着率λ(j)を求めることができる。   As described above, the relationship between the arrival rate and the response time is approximately expressed as a function, whereby the arrival rate λ (j) that gives the allowable response time R (j) can be obtained.

前述したように、図11(A)、(B)は、T−N特性をグラフ表示したものである。タスク到着率とレスポンスとのグラフは、到着率がレスポンスタイムの関数として計算できるのであれば、許容レスポンスR(j)から1ノードの許容到着率λ(j)が容易に求められることを示している。   As described above, FIGS. 11A and 11B are graphs showing the TN characteristics. The graph of task arrival rate and response shows that if the arrival rate can be calculated as a function of response time, the allowable arrival rate λ (j) of one node can be easily obtained from the allowable response R (j). Yes.

第j番目のノードグループ上で実行するタスク種が、第j番目のタスク種のみである場合、第j番目のタスク種の到着率Λ(j)が与えられた時に、許容レスポンスR(j)を満たすために、第j番目のノードグループに含まれるノード数(これを「許容ノード数」と呼ぶ)を算出する関数N_h(j)(Λ(j))は、次のようになる。   When the task type executed on the j-th node group is only the j-th task type, the allowable response R (j) is given when the arrival rate Λ (j) of the j-th task type is given. In order to satisfy the above, a function N_h (j) (Λ (j)) for calculating the number of nodes included in the j-th node group (referred to as “allowable node number”) is as follows.

なお、タスク種jの到着率Λ(j)は、タスク到着率管理表191で管理される値である。この表では最近L回の測定結果を管理しており、Λ(j)として最近L回の測定結果の重み付け平均値を用いることができる。   The arrival rate Λ (j) of the task type j is a value managed in the task arrival rate management table 191. In this table, the latest L measurement results are managed, and a weighted average value of the latest L measurement results can be used as Λ (j).

許容ノード数をn(j)とすると、一つのノードに対する到着率が許容到着率λ(j)以下であれば、許容レスポンスを満足すると考えられる。   If the number of allowable nodes is n (j), it is considered that the allowable response is satisfied if the arrival rate for one node is equal to or less than the allowable arrival rate λ (j).

すなわち、
λ(j)≧Λ(j)/n(j) …(4)
が成り立つように、n(j)を定めればよい。
That is,
λ (j) ≧ Λ (j) / n (j) (4)
N (j) may be determined so that.

従って、
n(j)≧Λ(j)/λ(j) …(5)
Therefore,
n (j) ≧ Λ (j) / λ (j) (5)

ノード数は、整数値であることと、最低限必要な値ということを考慮すると、
N_h(j)(Λ(j))=Ceil(Λ(j)/λ(j)) …(6)
である。ここで、Ceil(x)は、xより小さくない最小の整数を示す。
Considering that the number of nodes is an integer value and the minimum required value,
N_h (j) (Λ (j)) = Ceil (Λ (j) / λ (j)) (6)
It is. Here, Ceil (x) represents the smallest integer not smaller than x.

なお、タスク到着率Λ(j)が、限界到着率λ_Lim(j)より大きい時には、必要以上に多くのノードを第j番目のノードグループに対して割当てないようにしなければならない。   When the task arrival rate Λ (j) is larger than the limit arrival rate λ_Lim (j), it is necessary not to allocate more nodes than necessary to the jth node group.

このような条件を考慮し、N_hは、最終的に、以下のような関数となる。   Considering such conditions, N_h finally becomes a function as follows.

N_h(j)(Λ(j))=Ceil(min(Λ(j),Λ_Lim(j))/λ(j))、 …(7)     N_h (j) (Λ (j)) = Ceil (min (Λ (j), Λ_Lim (j)) / λ (j)), (7)

ここで、min(a,b)は、aとbとの大きくない方を返す関数である。   Here, min (a, b) is a function that returns the lesser of a and b.

上記で求めた、1ノードの許容到着率λ(j)と、許容ノード数を与える関数N_h(j)(Λ(j))とは、入力データを解析した段階で求められるものであり、実行時に測定される値を利用する必要は特にない。   The permissible arrival rate λ (j) of one node and the function N_h (j) (Λ (j)) that gives the number of permissible nodes obtained above are obtained at the stage of analyzing the input data and are executed. There is no particular need to use values that are sometimes measured.

次に、実行時に、変化するタスク到着率Λ(j)に応じて、J個のタスクに対して割り当てられるノード数を算出する手順(手続きP)を、図13の流れ図を参照して説明する。この手順は、図1のノードグループ構築手段12上で定期的に実行されるものであり、下記のようなステップから構成される。   Next, a procedure (procedure P) for calculating the number of nodes allocated to J tasks according to the task arrival rate Λ (j) that changes during execution will be described with reference to the flowchart of FIG. . This procedure is periodically executed on the node group construction means 12 of FIG. 1 and includes the following steps.

j=1〜JなるJ個のタスクの中から、
Λ_Lim(j)>Λ(j) …(8)
を満たす(すなわち到着率が許容到着率未満の)タスク種をタスクグループAとし、
満たされないタスク種をタスクグループBとする(ステップ122)。
From J tasks where j = 1 to J,
Λ_Lim (j)> Λ (j) (8)
The task type that satisfies (that is, the arrival rate is less than the allowable arrival rate) is defined as task group A,
The task type that is not satisfied is defined as task group B (step 122).

タスクグループBのタスク種jに対しては、上記で導いた割り当てノード数を算出する(ステップ123)。   For the task type j of task group B, the number of assigned nodes derived above is calculated (step 123).

関数N_h(j)(Λ(j))で得られる値を、ノード数として割り当てる。ここで、タスクグループBのタスク種jに対して割り当てられたノード数の合計をNbとする。   A value obtained by the function N_h (j) (Λ (j)) is assigned as the number of nodes. Here, the total number of nodes assigned to the task type j of the task group B is Nb.

タスクグループAのタスク種jに対しては、残りのNa=N−Nb個のノードを適切に割り当てる(ステップ124)。このような割り当て方の一例は、ノードグループの仮想的な使用率がバランスするような割り当て方である。ここで、ノードグループの仮想的な使用率とは、次の通りである。タスク種jのスループットをΦ(j)とし、j番目のノードグループのノード数をn(j)とする。この時、n(j)個のノードで達成できるスループットの最大値は、1ノードの最大スループットT_max(j)を用いて、
n(j)×T_max(j) …(9)
と表すことができる。
The remaining Na = N-Nb nodes are appropriately assigned to task type j of task group A (step 124). An example of such an allocation method is an allocation method in which the virtual usage rates of the node groups are balanced. Here, the virtual usage rate of the node group is as follows. The throughput of task type j is Φ (j), and the number of nodes in the jth node group is n (j). At this time, the maximum throughput that can be achieved by n (j) nodes is the maximum throughput T_max (j) of one node.
n (j) × T_max (j) (9)
It can be expressed as.

このスループットの最大値に対する現在のスループットの比
Φ(j)/(n(j)×T_max(j)) …(10)
をj番目のノードグループの仮想的な使用率とする。
Ratio of the current throughput to the maximum value of this throughput Φ (j) / (n (j) × T_max (j)) (10)
Is a virtual usage rate of the j-th node group.

このようにして算出されるノードグループの仮想使用率が、タスクグループAに含まれるタスク種jに対してほぼ一定値となるように、n(j)を定めることで、適切な割り当てノード数を算出することができる。   By determining n (j) so that the virtual usage rate of the node group calculated in this way becomes a substantially constant value with respect to the task type j included in the task group A, an appropriate number of allocated nodes can be determined. Can be calculated.

ただし、
n(1)+…+n(J)=Na …(11)
である。
However,
n (1) +... + n (J) = Na (11)
It is.

上記ステップ124で求めたノード数n(j)に関して、
n(j)≧N_h(j)(Λ(j)) …(12)
が満たされる否かをチェックする(ステップ125)。
Regarding the number of nodes n (j) obtained in step 124 above,
n (j) ≧ N_h (j) (Λ (j)) (12)
Is checked (step 125).

N_h(j)(Λ(j))で算出される値は、最低限必要なノード数である。このような条件が満たされない場合には、不正な割り当てが起こっている、ということであるので、システム管理者に、割り当てられる十分な数のノードがないことを通知する。   The value calculated by N_h (j) (Λ (j)) is the minimum necessary number of nodes. If such a condition is not met, it means that an illegal assignment has occurred, so the system administrator is notified that there are not enough nodes to be assigned.

上記手続きPを実行する前に、各ノードグループjに割り当てられているノード数をNG(j)とし、手続きPを実行して得られる割り当てノード数をNG’(j)とする。ただし、j=1〜Jは、ノードグループ番号である。   Before executing the procedure P, the number of nodes assigned to each node group j is NG (j), and the number of assigned nodes obtained by executing the procedure P is NG ′ (j). However, j = 1 to J are node group numbers.

ここで、ノード数の変化分を、
ΔNG(j)=NG’(j)−NG(j) …(12)
と定める。
Here, the change in the number of nodes is
ΔNG (j) = NG ′ (j) −NG (j) (12)
It is determined.

得られたノード割り当てNG’(j)、j=1〜J、を実現するには、
ΔNG(j)<0 …(13)
となるようなノードグループjの中から、ノードを一つ選択して、そのノードグループから削除し、
ΔNG(i)>0 …(14)
となるようなノードグループiに、そのノードを追加するという手続きを繰り返し、最終的に、ノードグループに対するノード割り当て数が、NG’(j)を満たすようにすると良い。
In order to realize the obtained node assignment NG ′ (j), j = 1 to J,
ΔNG (j) <0 (13)
Select one node from the node group j such that and delete it from the node group,
ΔNG (i)> 0 (14)
It is preferable to repeat the procedure of adding the node to the node group i such that the node allocation number for the node group finally satisfies NG ′ (j).

ここで、ノードグループjの中から一つのノードを選択する手法としては、
・ランダムな選択方式、又は、
・負荷としてタスク滞留数、もしくは平均レスポンスタイム、あるいは平均スループットなどの指標を用いて、最小負荷のノードを選択する方式
を用いることができる。
Here, as a method of selecting one node from the node group j,
・ Random selection method or
-A method of selecting the node with the minimum load by using an index such as the number of staying tasks, average response time, or average throughput as the load can be used.

従って、本実施例においては、ノードグループ構成表193(図19参照)の中から、
ΔNG(j)<0 …(15)
となるようなノードグループjを選び出し、ノードグループ構成表193中のj行の中から、前記の方法を用いて、一つのノードを選択して、ノードIDを表中から削除する。
Therefore, in this embodiment, from the node group configuration table 193 (see FIG. 19),
ΔNG (j) <0 (15)
A node group j is selected, and one node is selected from the j rows in the node group configuration table 193 using the method described above, and the node ID is deleted from the table.

更に、ノードグループ構成表193の中から、
ΔNG(i)>0 …(16)
となるようなノードグループiを選び出し、表中のi行に前記削除されたノードIDを追加するという操作を行なう。
Furthermore, from the node group configuration table 193,
ΔNG (i)> 0 (16)
The node group i is selected, and the deleted node ID is added to the i row in the table.

タスク送信手段15では、タスク種−ノードグループ対応表194(図14参照)を参照して、タスク種jに属するタスクを、タスクグループjに属するノードに転送する。   The task transmission means 15 refers to the task type / node group correspondence table 194 (see FIG. 14) and transfers the task belonging to the task type j to the node belonging to the task group j.

タスクグループjに属するノードが複数個ある場合には、複数個のノードの中からリクエストを転送するノードを、一つ選択する必要がある。   When there are a plurality of nodes belonging to the task group j, it is necessary to select one of the plurality of nodes to which the request is transferred.

このようなノード選択の方法としては、
・複数個のノードを順番に選択するラウンドロビン手法、
・複数個のノードの中からランダムに一つのノードを選択するランダム選択手法、
・ノード上に滞留しているリクエスト数が最小のノードを選択する最小リクエストノード選択手法、
・レスポンスタイムが最小のノードを選択する最小レスポンス選択手法、
・スループットが最大のノードを選択する最大スループット選択手法、
のいずれかを用いることができる。
As a method of such node selection,
・ Round robin method to select multiple nodes in sequence,
・ Random selection method that randomly selects one node from a plurality of nodes,
・ Minimum request node selection method to select the node with the smallest number of requests staying on the node,
・ Minimum response selection method to select the node with the shortest response time,
・ Maximum throughput selection method to select the node with the highest throughput,
Either of these can be used.

この時に必要となる、各ノードの滞留リクエスト数、レスポンスタイム、スループットなど性能値は、ノード性能管理表192(図18参照)で管理されている値を参照すれば良い。   For performance values such as the number of staying requests, response time, and throughput required for each node, values managed in the node performance management table 192 (see FIG. 18) may be referred to.

また、ノード性能管理表192の値は、最近L回の測定結果が保存されているため、最新の測定結果だけではなく、L個の測定結果の重み付け平均などを用いることもできる。   In addition, since the value of the node performance management table 192 includes the latest L measurement results, not only the latest measurement result but also a weighted average of L measurement results can be used.

本実施例では、タスク種jに割り当てるノード数を求める関数N_h(j)を用いる。
タスク種jの到着率Λ(j)が、限界到着率Λ_lim(j)未満の時には、
Ceil(Λ(j)/λ(j))個のノードを割り当て、
タスク種jの到着率Λ(j)が限界到着率Λ_lim(j)以上の時には、
Ceil(Λ_lim(j)/λ(j))個のノードを割り当てる、ように動作している。
In this embodiment, a function N_h (j) for obtaining the number of nodes assigned to the task type j is used.
When the arrival rate Λ (j) of the task type j is less than the limit arrival rate Λ_lim (j),
Assign Ceil (Λ (j) / λ (j)) nodes,
When the arrival rate Λ (j) of the task type j is greater than or equal to the limit arrival rate Λ_lim (j),
It operates to allocate Ceil (Λ_lim (j) / λ (j)) nodes.

上記のように動作させることで、本実施例によれば、許容到着率以上の到着率を持つタスク種に対する割り当てノード数に制限を与え、他のタスク種に対して、十分な量のノードが割り当てられる、という効果を奏する。   By operating as described above, according to the present embodiment, a limit is imposed on the number of nodes assigned to a task type having an arrival rate that is equal to or higher than the allowable arrival rate, and a sufficient amount of nodes is provided for other task types. There is an effect of being assigned.

上記の実施例では、システム構成入力手段13が受け付けるT−N特性として、図12で示されるような表形式のデータを想定している。   In the above embodiment, tabular data as shown in FIG. 12 is assumed as the TN characteristic accepted by the system configuration input means 13.

しかしながら、前述したシングルプロファイル法を用いると、一つのタスクを実行する際に必要となるノード内資源(CPUやディスク)の利用時間を用いて、リクエスト到着率に対するスループット、およびレスポンスタイムを算出することができる。このような場合には、入力データとして、一つのタスクを実行する際に消費するCPU、および、ディスクの利用時間が必要となる。   However, if the single profile method described above is used, the throughput and response time for the request arrival rate can be calculated using the utilization time of resources in the node (CPU and disk) required to execute one task. Can do. In such a case, as the input data, the CPU consumed when executing one task and the disk usage time are required.

また、上記の実施例では、一つのノードグループに対して、一つのタスク種が対応付けられている、という条件が設けられている。   In the above embodiment, a condition that one task type is associated with one node group is provided.

以下では、この条件を緩め、一つのグループに対して複数のタスク種が対応付けられた場合の実施例について述べる。   In the following, an embodiment in which this condition is relaxed and a plurality of task types are associated with one group will be described.

ノードグループ構築手段12では、システムを構成する全ノードを、例えば二つのノードグループ(ノードグループ1とノードグループ2)とに分け、ノードグループ1では、タスクグループAに属するタスク種を実行し、ノードグループ2では、タスクグループBに属するタスク種を実行するような制御を行なう(タスクグループAとBは、手続きPのステップ122により構成することができる)。   The node group construction means 12 divides all nodes constituting the system into, for example, two node groups (node group 1 and node group 2). In the node group 1, the task type belonging to the task group A is executed, In group 2, control is performed to execute the task type belonging to task group B (task groups A and B can be configured by step 122 of procedure P).

そのためのデータ構造として、タスク種−ノードグループ対応表194(図14参照)を用いる。   As a data structure for this purpose, a task type / node group correspondence table 194 (see FIG. 14) is used.

図14には、タスク種(タスクID)2の到着率Λが許容到着率Λ_lim以上であるため、タスクグループBに分類され、タスク種1と3との到着率が許容到着率未満であるため、ノードグループAに分類された時に、タスク種1と3とがノードグループ1に割り当てられ、タスク種2がノードグループ2に割り当てられた場合の対応表の例が示されている。   In FIG. 14, since the arrival rate Λ of the task type (task ID) 2 is equal to or greater than the allowable arrival rate Λ_lim, it is classified into the task group B, and the arrival rates of the task types 1 and 3 are less than the allowable arrival rate. The example of the correspondence table when task types 1 and 3 are assigned to node group 1 and task type 2 is assigned to node group 2 when classified into node group A is shown.

ノードグループBに割り当てられるノード数としては、図13のステップ123で算出されるNbを割り当て、ノードグループAに割り当てられるノード数としては、N−Nbを割り当てる(ここで、Nは全ノード数を示す)。   As the number of nodes allocated to the node group B, Nb calculated in step 123 of FIG. 13 is allocated, and as the number of nodes allocated to the node group A, N−Nb is allocated (where N is the total number of nodes). Show).

タスク送信手段15(図1参照)は、タスク種−ノードグループ対応表194(図14参照)を参照して、タスク種jに属するタスクを転送するノードグループを決定する。   The task transmitting unit 15 (see FIG. 1) refers to the task type / node group correspondence table 194 (see FIG. 14) and determines a node group to which a task belonging to the task type j is transferred.

上記実施例においては、ノードの処理能力が全て等しい場合を仮定していた。   In the above embodiment, it is assumed that the processing capabilities of all nodes are equal.

以下では、ノードの処理能力が異なる場合について、すなわち、ノードは、処理能力に応じて分類され、システム全体に、K種類のノードがある場合の実施例を説明する。   In the following, an embodiment will be described in which nodes have different processing capabilities, that is, nodes are classified according to processing capabilities, and there are K types of nodes in the entire system.

なお、ノードグループjに割り当てられているノード種kの個数を、N(j,k)と表記する。   The number of node types k assigned to the node group j is expressed as N (j, k).

また、1ノードの許容到着率をノードの種類ごとに与え、タスク種jのノード種kに対する許容到着率をλ(j,k)と表記する。   An allowable arrival rate of one node is given for each node type, and an allowable arrival rate of task type j for node type k is expressed as λ (j, k).

更に、ノードグループj上でタスク種jが実行されるような状況を想定する。   Furthermore, a situation is assumed where task type j is executed on node group j.

この場合、上記実施例で用いていたj番目のノードグループに割り当てるノード数を求める関数N_h(j)の代わりに、以下で示されるような手続きに従って、割り当てるノード数を決定する。この手続きは、図13のステップ123を、図15のステップ1230〜1232で、また図13のステップ124を、図16の1241〜1242で置き換えたものである。   In this case, instead of the function N_h (j) for obtaining the number of nodes to be assigned to the j-th node group used in the above embodiment, the number of nodes to be assigned is determined according to the following procedure. This procedure is obtained by replacing step 123 of FIG. 13 with steps 1230 to 1232 of FIG. 15 and step 124 of FIG. 13 with 1241 to 1242 of FIG.

図15を参照すると、ステップ1230では、
タスクグループBのタスク種j全てに対して、下記の二つのステップ(1231と1232)を実行する。
Referring to FIG. 15, in step 1230,
The following two steps (1231 and 1232) are executed for all task types j in task group B.

次のステップ1231では、
下記の条件を満たすノード数の組、N’(j,k)(k=1〜K)を全て求める。
In the next step 1231,
All N ′ (j, k) (k = 1 to K) pairs of nodes satisfying the following conditions are obtained.

Λ_Lim(j)≧N’(j,1)λ(j,1)+N’(j,1)λ(j,1)+…+N’(j,K)λ(j,K) …(17)     Λ_Lim (j) ≧ N ′ (j, 1) λ (j, 1) + N ′ (j, 1) λ (j, 1) +... + N ′ (j, K) λ (j, K) (17)

次のステップ1232では、
得られたノード数の組N’(j,1)の中から、手続き実行直前のノード数の組N(j,k)を用いて算出される次式(18)の値(距離)が最小となるN(j,k)を、新たな割り当てノード数の組とする。
|N’(j,1)−N(j,1)|
+|N’(j,2)−N(j,2)|
+・・・
+|N’(j,K)−N(j,K)| …(18)
In the next step 1232,
The value (distance) of the following equation (18) calculated using the set N (j, k) of the number of nodes immediately before the execution of the procedure is the smallest among the obtained sets N ′ (j, 1) of the number of nodes. Let N (j, k) be a set of new allocation node numbers.
| N ′ (j, 1) −N (j, 1) |
+ | N ′ (j, 2) −N (j, 2) |
+ ...
+ | N ′ (j, K) −N (j, K) | (18)

また、ノード種kに関して、N(j,k)の総和をNb(k)とする(ただし、jはタスクグループBに属するタスク種)。   For the node type k, the sum of N (j, k) is Nb (k) (where j is a task type belonging to task group B).

図16を参照すると、ステップ1241では、
タスクグループAのタスク種に対して割り当て可能なノード数をノード種kごとに算出する。すなわち、
Na(k)=N(k)−Nb(k)(k=1〜K) …(19)
とする。
Referring to FIG. 16, in step 1241,
The number of nodes that can be assigned to the task type of task group A is calculated for each node type k. That is,
Na (k) = N (k) -Nb (k) (k = 1 to K) (19)
And

ステップ1242では、
タスクグループAの各タスク種jに対して、Na(k)を適切に割り当てる。このような割り当て方の一例は、ノードグループを構成するk番目のノード種に対する仮想的な使用率がバランスするような割り当て方のことである。このような条件を具体的に記述すると下記の通りである。
In step 1242,
Na (k) is appropriately assigned to each task type j of task group A. An example of such an allocation method is an allocation method in which virtual usage rates for the k-th node type constituting the node group are balanced. Such conditions are specifically described as follows.

ノード種kを用いた時のタスク種jのスループットをΦ(j,k)とし,j番目のノードグループのノード種kのノード数をn(j,k)とする。   The throughput of the task type j when using the node type k is Φ (j, k), and the number of nodes of the node type k of the jth node group is n (j, k).

この時、n(j,k)個のノードで達成できるスループットの最大値は、ノード種kを1ノード用いて達成できる最大スループットT_max(j,k)を用いて、
n(j,k)×T_max(j,k) …(20)
と表すことができる。
At this time, the maximum value of the throughput that can be achieved by n (j, k) nodes is the maximum throughput T_max (j, k) that can be achieved by using one node of the node type k.
n (j, k) × T_max (j, k) (20)
It can be expressed as.

この最大スループットに対する現在のスループットの比を
β(j,k)=Φ(j,k)/(n(j,k)×T_max(j,k)) …(21)
とする。
The ratio of the current throughput to the maximum throughput is β (j, k) = Φ (j, k) / (n (j, k) × T_max (j, k)) (21)
And

この時、β(j,k)がj=1〜Jに対して、ほぼ同じ値を取る時、ノードグループを構成するk番目のノード種に対する仮想的な使用率が「バランスする」と呼ぶ。このような条件を満たすように、n(j,k)を定めることで、最適な割り当てノード数を算出することができる。   At this time, when β (j, k) takes substantially the same value for j = 1 to J, the virtual usage rate for the k-th node type constituting the node group is called “balance”. By determining n (j, k) so as to satisfy such a condition, the optimum number of allocated nodes can be calculated.

ただし、
n(1,k)+…+n(j,k)=Na(k) …(22)
である。
However,
n (1, k) +... + n (j, k) = Na (k) (22)
It is.

次に、グローバル負荷分散装置1内に、グローバルキューイング手段16を持つ場合の実施例の拡張について説明する。この場合、タスク送信手段15が、ノードに対してタスクを送信する際に、送信先候補のノード上にある滞留タスク数が、ある一定値を超えた時には、そのノードを、送信対象ノードとはせずに、他の送信先候補のノードを選択する。送信先候補として上がった全てのノード上の滞留タスク数が、一定値を超えていたときには、タスク送信手段15は、タスクをノードに送信せずに、グローバルキューイング手段上に、タスクを保存する。   Next, an extension of the embodiment in the case where the global load distribution apparatus 1 has the global queuing means 16 will be described. In this case, when the task transmitting unit 15 transmits a task to a node, and the number of staying tasks on the destination candidate node exceeds a certain value, the node is referred to as a transmission target node. Without selecting another destination candidate node. When the number of staying tasks on all nodes that have risen as destination candidates exceeds a certain value, the task transmission unit 15 stores the task on the global queuing unit without transmitting the task to the node. .

そのようなタスクは、あるノード上でのタスク処理が完了した時に、そのノード上に送信される。なお、タスクを送信するかどうかという判断に用いる滞留タスク数は、許容レスポンスR(j)と、許容到着率λ(j)と、から、リトルの公式を用いて、算出される値であるR、
(j)×λ(j) …(23)
を採用することが考えられる。あるいは、余裕を見込んで、
α×R(j)×λ(j)、 …(24)
ただし、0≦α<1、としても良い。
Such a task is transmitted on a node when task processing on that node is completed. Note that the number of staying tasks used for determining whether to transmit a task is a value calculated using Little's formula from the allowable response R (j) and the allowable arrival rate λ (j). ,
(J) × λ (j) (23)
Can be considered. Or, expect some room,
α × R (j) × λ (j), (24)
However, 0 ≦ α <1 may be satisfied.

次に、本発明の第2の実施例を、図面を参照して説明する。本実施例は、本発明の第2の実施の形態に対応するものである。ただし、まず以下の前提(前提1)を置く。   Next, a second embodiment of the present invention will be described with reference to the drawings. This example corresponds to the second embodiment of the present invention. However, the following premise (premise 1) is set first.

前提1:
0からn−1の絶対ノードIDを持つn個のノードからなるクラスタで、到着したタスクを処理する。
Assumption 1:
Arriving tasks are processed in a cluster of n nodes with absolute node IDs from 0 to n-1.

またノードに対しては、相対ノードIDが定義される。相対ノードIDは、例えばノードi(iは0以上n−1以下の整数)から見ると、ノードi+1は、相対ノードIDが「1」のノードである、というように計算される。   A relative node ID is defined for the node. The relative node ID is calculated such that, for example, when viewed from the node i (i is an integer not less than 0 and not more than n−1), the node i + 1 is a node whose relative node ID is “1”.

ノードiからみたノードjの相対ノードIDの計算式は、
(i−j+m) mod m …(25)
となる。ただし、mはある自然数である。以下、単に、ノードIDと言えば、相対ノードIDを指すものとする。
The formula for calculating the relative node ID of node j as seen from node i is:
(i−j + m) mod m (25)
It becomes. However, m is a natural number. Hereinafter, simply speaking, a node ID indicates a relative node ID.

負荷情報は、ボトルネックになるリソースに関する情報であり、ここでは、ローカルキューイング手段のキュー長を負荷情報とする。負荷情報は実数で表されるが、負荷の移送単位は、整数とする。   The load information is information regarding a resource that becomes a bottleneck, and here, the queue length of the local queuing means is used as the load information. Although the load information is represented by a real number, the load transfer unit is an integer.

実行されるのは、キューにつながれたタスクのうち、先頭から定数個のみであり、移送可能なタスクは、まだ実行されていないタスクである。ただし、ここでは、キューの先頭から一つ目のタスクのみが実行可能であるとする。   Of the tasks connected to the queue, only a fixed number of tasks are executed from the top, and the tasks that can be transported are those that have not yet been executed. However, it is assumed here that only the first task from the top of the queue can be executed.

本実施例では、負荷情報共有手段32は、他の全ノードの情報を共有しており、ノード優先度割り当て手段37は、優先度として、ノードIDを割り当てる(値が小さい方が優先度が高い)。   In this embodiment, the load information sharing means 32 shares information of all other nodes, and the node priority assignment means 37 assigns a node ID as a priority (the smaller the value, the higher the priority). ).

負荷分散手段31の均衡度計算手段38(図4参照)は、全ノードの負荷の平均値以上の最小の整数を算出する。   The balance degree calculation means 38 (see FIG. 4) of the load distribution means 31 calculates the smallest integer equal to or greater than the average value of the loads of all nodes.

そして、本実施例において、負荷分散手段31は、前述した図6の流れ図に従って動作する。   In this embodiment, the load distribution means 31 operates according to the flowchart of FIG.

図20に、8ノードからなるクラスタでの本実施例の動作例を示す。図20には、表形式で、負荷移送対象ノード毎に、
・対象ノードの負荷情報の初期値(initial load info.)と、
・タスク移送判断後のノードの負荷情報(modified load info.)、
・タスク移送判断前のunderの値(under(b))、
・タスク移送判断後のunderの値(under(a))、
・タスク移送判断後のoverの値(over)
が示されている。
FIG. 20 shows an example of the operation of this embodiment in a cluster of 8 nodes. FIG. 20 shows a table format for each load transfer target node.
・ Initial value of load information of target node (initial load info.)
-Node load information after modified task transfer (modified load info.),
・ Under value before task transfer judgment (under (b)),
・ Under value (under (a)) after task transfer judgment,
-Over value after task transfer judgment (over)
It is shown.

ノード0(自ノード)は、自ノードの負荷(=5)と負荷情報から算出した閾値threshold(=「3」)の差が正であるので、自ノードが過負荷であることを認識して、負荷移送を開始する。   Node 0 (own node) recognizes that its own node is overloaded because the difference between its load (= 5) and the threshold threshold (= “3”) calculated from the load information is positive. , Start load transfer.

そして、ノード0は、優先度が最も高いノード1から順に、移送先ノードを探す。   Then, the node 0 searches for the destination node in order from the node 1 having the highest priority.

負荷移送対象ノードの負荷情報と、閾値「threshold」の差を、順に、「under」に加算していくと、ノード6で、初めて、「under」が「1」以上になるので、ノード6にタスクを一つ移送し、自ノードとノード6の負荷情報を更新して、負荷分散を終了する。   When the difference between the load information of the load transfer target node and the threshold “threshold” is added to “under” in order, “under” becomes “1” or more for the first time in node 6, so One task is transferred, the load information of the own node and the node 6 is updated, and load distribution ends.

以上がノード0の動作であるが、他のノードも同様の動作を行うことに注意する。図20には、過負荷なノード1、ノード2、ノード3からのタスク移送も、破線で示した。   The above is the operation of node 0, but it should be noted that other nodes also perform the same operation. In FIG. 20, the task transfer from the overloaded node 1, node 2, and node 3 is also indicated by broken lines.

同じ負荷状態を仮定して、全ノードで最も負荷が軽いノードであるノードLと、自ノードの負荷を比較して、その差が、Δ(ただし、ここではΔ=1とする)になるように、ノードLにタスクを一つずつ移送した場合、ノード6には、4つのタスク移送がなされ、群集効果が発生する。   Assuming the same load state, the node L, which is the lightest node among all nodes, is compared with the load of its own node, and the difference is Δ (here, Δ = 1). In addition, when tasks are transferred to the node L one by one, four tasks are transferred to the node 6 to generate a crowd effect.

本実施例で群集効果が発生していないのは、図20に示した通りである。   In this embodiment, the crowd effect does not occur as shown in FIG.

三つのノードx, y, zに対して、
xがyに割り当てる優先度が、xがzに割り当てる優先度よりも高ければ、
yがzに割り当てる優先度は、yがxに割り当てる優先度よりも高く、
zがxに割り当てる優先度は、zがyに割り当てる優先度よりも高い、
となるような、優先度割り当てを本明細書(説明部)及び特許請求の範囲では、「循環単調増加優先度割り当て」と呼ぶ。本実施例では、任意の三つのノードに対して、循環単調優先度割り当てが成り立っている。
For three nodes x, y, z
If the priority that x assigns to y is higher than the priority that x assigns to z,
The priority y assigns to z is higher than the priority y assigns to x,
The priority that z assigns to x is higher than the priority that z assigns to y.
In the present specification (explanation part) and claims, priority assignment such as follows is referred to as “circular monotonically increasing priority assignment”. In the present embodiment, cyclic monotone priority assignment is established for any three nodes.

したがって、あるノードへの負荷移送を行う場合、そのノードよりも近くのノードによる負荷移送が起こるかを考えれば、群集効果を防ぐことができる。   Therefore, when performing load transfer to a certain node, the crowd effect can be prevented by considering whether load transfer by a node closer to that node occurs.

一方、一部の三つのノード間の優先度が、循環単調増加になっていなければ、その分群集効果が発生する。   On the other hand, if the priority among some of the three nodes does not increase in a cyclic monotonous manner, the crowd effect will occur.

どの程度の群集効果が発生するかは、負荷の状態と、循環単調増加優先度割り当てにならない三つノードの組み合わせの数に依存する。   How much crowd effect occurs depends on the load state and the number of combinations of three nodes that cannot be assigned to a monotonically increasing priority.

次に、本発明の第3の実施例を、図面を参照して説明する。本実施例は、第3の実施の形態に対応するものである。   Next, a third embodiment of the present invention will be described with reference to the drawings. This example corresponds to the third embodiment.

本実施例では、上記した「前提1」を仮定しており、前記第2の実施例と同じく、負荷情報共有手段32、ノード優先度割り当て手段37、均衡度計算手段38を持つが、移送タスク決定手段39は、図6のステップA9を、図7のステップB1〜B5で置き換えて動作する。   In this embodiment, the above-mentioned “Premise 1” is assumed. Like the second embodiment, the load information sharing means 32, the node priority assignment means 37, and the balance degree calculation means 38 are provided, but the transfer task The determination means 39 operates by replacing step A9 in FIG. 6 with steps B1 to B5 in FIG.

図21に、8ノードからなるクラスタでの本実施例の動作例を示す。図21に表形式で表すものは、前記第2の実施例と同様である。   FIG. 21 shows an operation example of this embodiment in a cluster of 8 nodes. The table shown in FIG. 21 is the same as that in the second embodiment.

第2の実施例における動作とは異なり、ノード0は、負荷の量「under」が2以上のノードに対してはタスクを、「under」分移送する。   Unlike the operation in the second embodiment, the node 0 transfers a task by “under” to a node having a load amount “under” of 2 or more.

そして、全ノードを移送対象ノードとして選択するか、過負荷状態が解消される(「over」が「0」になる)と、負荷分散を終了する。   Then, when all nodes are selected as transfer target nodes or the overload state is resolved (“over” becomes “0”), the load distribution ends.

したがって、最初に「under」が「1」以上になったノードが全ての過負荷分のタスクを受け入れられない場合、複数ノードにタスクが移送されることになる。図21では、ノード2において「under」が3になるので、ノード2に3つのタスクを移送している。しかし、まだ「over」は「1」以上なので、さらにタスク移送先ノードを探し、ノード3と4に2つのタスクを、ノード7に、1つのタスクを移送する。   Therefore, when a node whose “under” is initially “1” or more cannot accept all overloaded tasks, the task is transferred to a plurality of nodes. In FIG. 21, since “under” is 3 in the node 2, three tasks are transferred to the node 2. However, since “over” is still “1” or more, a task transfer destination node is further searched, and two tasks are transferred to nodes 3 and 4 and one task is transferred to node 7.

同じ負荷状態を仮定して、全ノードで最も負荷が軽いノードであるノードLと自ノードの負荷を比較して、その差がΔ(ただし、ここではΔ=1とする)になるように、ノードLにタスクを一つずつ移送する場合、負荷分散終了後であってもノード0の過負荷状態はほとんど解消されない。   Assuming the same load state, comparing the load of the node L, which is the lightest node among all nodes, with the load of its own node, the difference is Δ (here, Δ = 1), When transferring tasks one by one to the node L, the overload state of the node 0 is hardly eliminated even after the end of load distribution.

本実施例では、複数タスクの移送を許すため、負荷分散終了後には、負荷が均衡する。通常、複数のタスクを移動すると、群集効果が強まるが、本実施例では、群集効果が生じていない。これは、他のノードのタスク移送を考慮して、自ノードのタスク移送を決定しているためである。   In this embodiment, since the transfer of a plurality of tasks is permitted, the load is balanced after the end of load distribution. Usually, when a plurality of tasks are moved, the crowd effect is strengthened, but in this embodiment, the crowd effect is not generated. This is because the task transfer of the own node is determined in consideration of the task transfer of other nodes.

次に、本発明の第4の実施例を図面を参照して説明する。本実施例は、上記第4の実施の形態に対応するものである。   Next, a fourth embodiment of the present invention will be described with reference to the drawings. This example corresponds to the fourth embodiment.

本実施例では、前提1の下、空間精度を落とした負荷情報を共有する場合の負荷分散を行う。   In the present embodiment, load sharing is performed when load information with reduced spatial accuracy is shared under assumption 1.

空間精度は、一ノード分の負荷情報が、何ノード分の負荷情報を表しているか、ということを表す。   Spatial accuracy indicates how many nodes of load information each node represents.

例えば、ある4ノードの負荷の平均値が負荷情報として送信され、この平均値をこれらのノードの負荷情報とするとすれば、この情報の空間精度は、1/4とする。つまり、空間精度は、次式(26)で定義される。   For example, if an average value of a load of a certain four nodes is transmitted as the load information and this average value is used as the load information of these nodes, the spatial accuracy of this information is ¼. That is, the spatial accuracy is defined by the following equation (26).

空間精度=1/(その情報で表すノード数) …(26)     Spatial accuracy = 1 / (number of nodes represented by the information) (26)

本実施例の負荷情報共有手段32(図3参照)では、各ノードは、
ノード0(自ノード)の負荷と、
ノードg1から送信されたノードg1〜g2−1の負荷の平均、
ノードg2から送信されたノードg2〜g3−1の負荷の平均、…、
ノードgk-1から送信されたノードgk-1〜gk−1の負荷の平均
を情報として持つ。
In the load information sharing means 32 (see FIG. 3) of this embodiment, each node
The load on node 0 (own node),
The average load transmission node g 1 to g 2 -1 from node g 1,
The average load of the nodes g 2 to g 3 −1 transmitted from the node g 2 ,...
With an average load of the node g node sent from k-1 g k-1 ~g k -1 as information.

ただし、
k-1 < n <= gk、かつ、m = gk
であり、
i < jの時、
i+1−gi <= gj+1−gj
が成り立つ。
However,
g k-1 <n <= g k and m = g k
And
When i <j
g i + 1 −g i <= g j + 1 −g j
Holds.

そして、giは、静的に定められる値である。また、負荷情報は、周期的に更新される(この情報共有方法は、前記先行出願1の方法によって実現される)。 G i is a statically determined value. The load information is periodically updated (this information sharing method is realized by the method of the prior application 1).

図6のステップA1での均衡度計算手段38による閾値thresholdの計算は、以下のように行われる。ただし、load(i)は、自ノードが持つノードiの負荷情報である。   Calculation of the threshold threshold by the balance degree calculation means 38 in step A1 of FIG. 6 is performed as follows. However, load (i) is the load information of the node i possessed by the own node.

threshold ={load(0)+Σi=1 k-2load(gi)×(gi+1- gi)+load(gk-1)×(n-gk-1)}/n
…(27)
threshold = {load (0) + Σ i = 1 k-2 load (g i ) × (g i + 1 -g i ) + load (g k-1 ) × (ng k-1 )} / n
... (27)

ただし、演算記号Σi=1 k-2で始まる項は、load(gi)×(gi+1- gi)のi=1からi=k-2までの総和を表している。 However, the term beginning with the operation symbol Σ i = 1 k−2 represents the sum of load (g i ) × (g i + 1 −g i ) from i = 1 to i = k−2.

さらに、図6のステップA2のノード間距離の決定では、前記第3の実施例と同様に、ノード優先度割り当て手段37はノードIDを割り当てる。移送タスク決定手段39は、前記第3の実施例と同様に動作する。   Further, in the determination of the inter-node distance in step A2 in FIG. 6, the node priority assigning means 37 assigns a node ID as in the third embodiment. The transfer task determination means 39 operates in the same manner as in the third embodiment.

負荷情報共有手段32からプッシュされるのは、ノードgiの情報のみであり、ノードgi+1〜ノードgi+1−1の情報はプッシュされない。 Only the information on the node g i is pushed from the load information sharing means 32, and the information on the nodes g i +1 to g i + 1 −1 is not pushed.

そこで、負荷情報管理手段36は、ノードgi+1〜ノードgi+1−1の情報問い合わせを受けた場合、基本的に、ノードgiの情報を返すことで、負荷情報を、再構築する。この操作を本明細書(説明部)及び特許請求の範囲では「単純空間精度補完」と呼ぶ。 Therefore, when the load information management means 36 receives an information inquiry about the nodes g i +1 to g i + 1 −1, it basically reconstructs the load information by returning the information on the node g i. To do. This operation is referred to as “simple space accuracy complement” in the present specification (explanation part) and claims.

ただし、移送タスク決定手段39からの情報更新が行われたノードに関しては、この更新後に、ノードgiの情報がプッシュされていなければ、移送タスク決定手段39によって更新された情報を返す。 However, for information has been updated nodes from the transport task determining means 39, after the update, unless information of the node g i is pushed, returns the information updated by the transport task determining means 39.

本実施例の、8ノードからなるクラスタでの動作例について説明する。まず、動作例で用いる情報共有方法を、図22に示す。   An example of operation in a cluster of 8 nodes according to this embodiment will be described. First, FIG. 22 shows an information sharing method used in the operation example.

図22に示す例では、
ノード0は、
・ノード1から、ノード1の情報を、
・ノード2から、ノード2とノード3の情報の平均を、
・ノード4から、ノード4とノード7の情報を
受け取っている。
In the example shown in FIG.
Node 0 is
・ From node 1, information on node 1
-From node 2, the average of the information of node 2 and node 3 is
・ Information on node 4 and node 7 is received from node 4.

ノード2がノード2と3の情報の平均を送信できるのは、ノード2がノード3からノード3の情報を受け取っているからであり、ノード4がノード4と7の情報の平均を送信できるのは、ノード5からノード5の情報を、ノード6からノード6とノード7の平均を受け取っているためである。   Node 2 can transmit the average of the information of nodes 2 and 3 because node 2 has received the information of node 3 from node 3 and node 4 can transmit the average of the information of nodes 4 and 7 This is because the information of the node 5 is received from the node 5 and the average of the nodes 6 and 7 is received from the node 6.

図23は、本実施例の動作の一例を示す図である。図23の下部の表形式で表すものは、前記第2の実施例と同様である。   FIG. 23 is a diagram illustrating an example of the operation of the present embodiment. What is shown in the table format at the bottom of FIG. 23 is the same as in the second embodiment.

ノード0(自ノード)は、負荷情報から算出した閾値threshold(=「2.5」)から、負荷の量「over」(=「3」)個のタスクを、他ノードに移送する。そして、ノード1から順に移送先ノードを探す。ノードIDが若いノードの情報ほど空間精度が高くなっている。   The node 0 (own node) transfers the task of the load amount “over” (= “3”) to another node from the threshold threshold (= “2.5”) calculated from the load information. Then, the destination node is searched in order from node 1. As the node ID of the node is younger, the spatial accuracy is higher.

こうすると、近くのノードのみを使って、負荷不均衡が解消できることが、高い精度の情報のみを使って、負荷不均衡が解消できることにつながり、より効率のよい負荷分散が可能になる。   By doing so, the fact that the load imbalance can be solved using only the nearby nodes leads to the fact that the load imbalance can be solved using only highly accurate information, and more efficient load distribution becomes possible.

さらに、遠くのノードに負荷を投げる場合でも、情報精度の低下の影響は抑えられるようになっている。なぜなら、各ノードが近くのノードとはより正確な負荷分散を行うため、基本的には遠くにあるノードの負荷を同一とみなせるからである。   Furthermore, even when a load is thrown to a distant node, the influence of a decrease in information accuracy can be suppressed. This is because each node performs load balancing more accurately with nearby nodes, so that it is basically possible to consider the loads of nodes far away as the same.

図23に示す例では、単純空間精度補完を行っているため、ノード2と3の負荷を「1.5」とみなし、ノード4〜7の負荷を「2」とみなしている。   In the example shown in FIG. 23, since simple space accuracy complementation is performed, the loads on the nodes 2 and 3 are regarded as “1.5”, and the loads on the nodes 4 to 7 are regarded as “2”.

実際の個々のノードの負荷には、ばらつきがある。例えば、ノード4の負荷は「4」であるが、ノード5の負荷は「0」である。しかし、ノード4も負荷分散を行い、ノード5に、タスクの移送を行うために、この差は緩和される。そこで、ノード0は、これらのノードは同じ負荷であるとみなして、タスクの移送を行うことができる。   The actual load on each node varies. For example, the load on the node 4 is “4”, but the load on the node 5 is “0”. However, since the node 4 also performs load balancing and transfers tasks to the node 5, this difference is alleviated. Therefore, the node 0 can transfer tasks by assuming that these nodes have the same load.

ノード数を「n」とし、情報更新の周期を「p」とすると、本実施例で用いた負荷情報共有方法のコストはO(pn log n)であり、全ノードの情報を共有する場合のコスト、O(pn2)に比べて低コストである。 Assuming that the number of nodes is “n” and the information update period is “p”, the cost of the load information sharing method used in this embodiment is O (pn log n). Cost is lower than O (pn 2 ).

それにも関わらず、本実施例が負荷分散は比較的正確に行うことができるのは、本実施例では、近くのノードの情報は、比較的正確な情報であり、近くのノードには、優先的にタスクを移送するためである。   Nevertheless, in this embodiment, the load distribution can be performed relatively accurately in the present embodiment. In this embodiment, the information on the nearby nodes is relatively accurate information, and priority is given to the nearby nodes. The purpose is to transfer tasks.

さらに、本実施例では、他ノードの負荷移送を考慮し、複数タスクの移送を許しているため、低コストで群集効果の影響を受けずに高速に負荷の均衡を図ることができる。   Furthermore, in this embodiment, load transfer of other nodes is taken into consideration, and transfer of a plurality of tasks is allowed. Therefore, load balance can be achieved at high speed without being affected by the crowd effect.

次に、本発明の第5の実施例を図面を参照して説明する。本実施例は、前記第5の実施の形態に対応する。本実施例は、「前提1」を前提とする。   Next, a fifth embodiment of the present invention will be described with reference to the drawings. This example corresponds to the fifth embodiment. This embodiment is based on “Premise 1”.

実行可能なのは、キューの先頭からQ個のタスクであるとする。この時、ノードのローカルキューイング手段35(図3参照)は、実行数別に、実行数が「1」から「Q」の時のレスポンスタイムの総和と、測定個数を保持する。また、有効サンプリング数は、「10」、付加実行数は「1」とする。   It is assumed that Q tasks can be executed from the head of the queue. At this time, the local queuing means 35 (see FIG. 3) of the node holds the total of response times and the number of measurements when the number of executions is “1” to “Q” for each number of executions. The effective sampling number is “10” and the additional execution number is “1”.

本発明の第5の実施の形態における図9のステップC3において、有効な平均レスポンスタイムが求められたとし、平均レスポンスタイムが求まる実行数の集合をV’とする。   In step C3 of FIG. 9 in the fifth embodiment of the present invention, it is assumed that an effective average response time is obtained, and a set of execution numbers from which the average response time is obtained is V ′.

そして、V’のうち最大の要素をaとして、VをV’と{a+1}の和集合とする。Littleの公式(滞在タスク数は、タスク到着率と平均レスポンスタイムの積に等しい)にしたがって、実行数を平均レスポンスタイムで割ることで、V’に属する実行数に関してのスループットが求まる。   Then, the largest element of V ′ is a, and V is the union of V ′ and {a + 1}. By dividing the number of executions by the average response time according to the Little formula (the number of staying tasks is equal to the product of the task arrival rate and the average response time), the throughput for the number of executions belonging to V ′ is obtained.

kをVに属する実行数として、実行数がkの時のスループットをT(k)とすると、T(k)とT(j)がほぼ等しくなるような最小のkを見つけ、これを望ましい実行数Rとする。   If k is the number of executions belonging to V and the throughput when the number of executions is k is T (k), the minimum k is found such that T (k) and T (j) are approximately equal, and this is the desired execution. Let it be the number R.

ただし、jは、Vに属するkより大きい実行数のうち最小のものである。また、
T(a+1)=T(a) …(28)
とし、Vが空である場合には、Rの値は変化しないとする。
However, j is the smallest number of executions larger than k belonging to V. Also,
T (a + 1) = T (a) (28)
If V is empty, the value of R does not change.

図24は、Q=4の時のレスポンスタイムテーブルである。したがって、実行数が「4」以下の場合のレスポンスタイムの総和と測定個数が有効である。この時、有効サンプリング数以上のレスポンスタイムの総和が記録されているのは、同時実行数が「1」と「2」の場合である(「5」以上の値は考慮しない)。   FIG. 24 is a response time table when Q = 4. Therefore, the sum of response times and the number of measurements when the number of executions is “4” or less are effective. At this time, the sum of response times equal to or greater than the effective sampling number is recorded when the number of simultaneous executions is “1” and “2” (a value greater than “5” is not considered).

そこで、レスポンスタイムの総和を測定個数で割ってレスポンスタイムを求めると、実行数が「1」のときの平均レスポンスタイムは「0.94」、実行数が「2」のときの平均レスポンスタイムは「1.63」である。   Therefore, when the total response time is divided by the number of measurements to obtain the response time, the average response time when the number of executions is “1” is “0.94”, and the average response time when the number of executions is “2” is “1.63”.

したがって、
T(1)<T(2)=T(3)
となるので、
R=2とする。
Therefore,
T (1) <T (2) = T (3)
So,
Let R = 2.

図25は、Q=3の時のレスポンスタイムテーブルである。この時、有効サンプリング数以上のレスポンスタイムの総和が記録されているのは、同時実行数が、「1」と「2」と「3」の場合である。   FIG. 25 is a response time table when Q = 3. At this time, the sum of the response times exceeding the effective sampling number is recorded when the number of simultaneous executions is “1”, “2”, and “3”.

T(1)<T(2)<T(3)=T(4)
となるので、
R=3とする。
T (1) <T (2) <T (3) = T (4)
So,
Let R = 3.

通常は、入出力(I/O)待ち等によって、タスクにリソースが割り当てられていてもタスクを実行できない時間が存在する。従って、複数のタスクを同時に実行すれば、一つのタスクが実行できなくとも、他のタスクを実行することができるようになるため、スループットが向上する。   Usually, due to input / output (I / O) waiting or the like, there is a time during which a task cannot be executed even if resources are allocated to the task. Therefore, if a plurality of tasks are executed at the same time, even if one task cannot be executed, another task can be executed, thereby improving the throughput.

その一方で、一度実行を開始したタスクを移送する場合、タスクを最初から実行しなおすか、タスクの状態をも移送して途中から実行するかのいずれかの方法をとる必要があり、実行開始前のタスクを移送するのに比べて、オーバーヘッドが大きいため、本発明では、実行開始前のタスクのみを移送対象としている。   On the other hand, when transferring a task once started, it is necessary to either execute the task again from the beginning or transfer the task status and execute it from the middle. Since overhead is large compared to transferring the previous task, in the present invention, only the task before the start of execution is targeted for transfer.

そのため、同時に実行するタスクの数を増やすと、個々のノードのスループットは向上するが、その分負荷均衡を図るためのタスク移送に制限がつく。   Therefore, if the number of tasks to be executed simultaneously is increased, the throughput of each node is improved, but task transfer for balancing the load is limited accordingly.

本実施例では、動的に同時に実行するタスク数を決定することで、ノード毎のスループットの向上と、負荷不均衡によるスループットの低下のトレードオフを行うことで、システム全体のスループットを向上させる。   In this embodiment, by dynamically determining the number of tasks to be simultaneously executed, the throughput of the entire system is improved by making a trade-off between improvement of throughput for each node and reduction of throughput due to load imbalance.

次に本発明の第6の実施例を図面を参照して詳細に説明する。本実施例は、前記第6の実施の形態に対応するものである。   Next, a sixth embodiment of the present invention will be described in detail with reference to the drawings. This example corresponds to the sixth embodiment.

本実施例では、ノードグループ構築手段12(図1参照)は、ノードグループを変更するときに、変更されたノードグループに含まれる各ノードに同じグループに含まれるノードは何か(ノードグループデータ)を送信する。   In this embodiment, when the node group construction unit 12 (see FIG. 1) changes the node group, what is the node included in the same group in each node included in the changed node group (node group data) Send.

例えば、16ノード(ノード0〜15、本実施例では、ノードIDは、絶対ノードIDとする)からなるクラスタで、
・ノード0〜4が、第一のノードグループ、
・ノード5〜7が、第二のノードグループ、
・ノード8〜15が第三のノードグループ、
を構成しているときに、
グローバル負荷分散装置1が、
ノード5を、第一のノードグループに移す判断を行うと、
グローバル負荷分散装置1は、
ノード0〜5には、0〜5までの整数をノードグループのデータとして送信し、
ノード6〜7には、6〜7までの整数をノードグループのデータとして送信する。
For example, in a cluster composed of 16 nodes (nodes 0 to 15, in this embodiment, the node ID is an absolute node ID),
Nodes 0-4 are the first node group,
Nodes 5-7 are the second node group,
Nodes 8-15 are the third node group,
When configuring
The global load balancer 1 is
When a decision is made to move node 5 to the first node group,
The global load balancer 1
An integer from 0 to 5 is transmitted to nodes 0 to 5 as node group data,
An integer from 6 to 7 is transmitted to the nodes 6 to 7 as node group data.

ノードグループデータを受けとったノードの負荷情報共有手段32(図3参照)は、この情報に基づいて情報共有方法を変更する。   The load information sharing means 32 (see FIG. 3) of the node that has received the node group data changes the information sharing method based on this information.

各ノードがノードグループ内の他の全ノードに負荷情報を送信している状況を仮定すると、ノードグループの変更前に、第一のノードグループに属するノード0は、ノード1〜4に情報を送信していたが、変更後は、ノード1〜5に情報を送信する。   Assuming a situation in which each node transmits load information to all other nodes in the node group, node 0 belonging to the first node group transmits information to nodes 1 to 4 before the node group is changed. However, after the change, information is transmitted to the nodes 1 to 5.

情報がないノードは、負荷分散対象ノードとして選択されないため、グループ間の負荷移送は行われない。   Since a node without information is not selected as a load distribution target node, load transfer between groups is not performed.

ノードグループデータを受け取ったノードの負荷情報共有手段32は、前記先行出願1に示される通り、情報共有対象となるノード数によらない形での情報共有方法が与えられているため、具体的に、どのノードに情報を送信するのか、またはどのノードから情報を受信するのかをノードグループデータから再構築できる。   Since the load information sharing means 32 of the node that has received the node group data is provided with an information sharing method in a form that does not depend on the number of nodes that are information sharing targets, as shown in the prior application 1, specifically, The node to which information is transmitted or from which node the information is received can be reconstructed from the node group data.

図26は、ノードグループ変更時の動作の一例を示す図である。   FIG. 26 is a diagram illustrating an example of an operation when a node group is changed.

図26には、ノード0、1、2の3ノードからなるノードグループに、さらに、3つのノード(ノード3、4、5)を加えた時の動作が示されている。   FIG. 26 shows the operation when three nodes (nodes 3, 4, 5) are added to a node group consisting of three nodes, nodes 0, 1, and 2.

ノードを追加した直後は、負荷の不均衡が大きいが、本発明における負荷分散手段31(図3、図4参照)によって、瞬時に負荷均衡状態へと移行する。   Immediately after the node is added, the load imbalance is large, but the load distribution means 31 (see FIGS. 3 and 4) in the present invention instantaneously shifts to the load balance state.

これによって、あるタスク種による負荷が急激に増加したとしても、他のタスク種の実行が妨げられないだけでなく、変動するタスク種毎の負荷に速やかに追従できるため、より少ないリソースで、事前に定められたレスポンスタイムを満足させることができる。   As a result, even if the load due to a certain task type suddenly increases, not only the execution of other task types is not hindered, but also the load of each changing task type can be followed quickly. It is possible to satisfy the response time specified in.

以上本発明を上記実施の形態及び実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものでなく、特許請求の範囲の各請求項の発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   Although the present invention has been described with reference to the above-described embodiments and examples, the present invention is not limited to the above-described examples, and is within the scope of the invention of each claim. It goes without saying that various modifications and corrections that can be made by those skilled in the art are included.

本発明によれば、複数の計算ノードから構成されるクラスタシステムを、用途に応じて複数のグループに分割し、実行時の負荷状況に応じてグループを構成するノード数を適切に保ち、システム全体の性能を向上させるような用途に適用できる。   According to the present invention, a cluster system composed of a plurality of computing nodes is divided into a plurality of groups according to the use, and the number of nodes constituting the group is appropriately maintained according to the load situation at the time of execution, and the entire system It can be applied to applications that improve the performance.

また、突発的に過負荷状態が生じたとしても、グループの構成変更を行うことで生じる負荷のアンバランスを改善し、システム全体の性能を向上させる用途にも適用できる。   In addition, even if an overload condition occurs unexpectedly, it can be applied to an application that improves the load imbalance caused by changing the group configuration and improves the performance of the entire system.

特に、ウェブサーバやアプリケーションサーバに対する負荷分散や、ウェブサーバやアプリケーションサーバとして用いるサーバ数を実行時に最適な台数に保つという用途にも適用可能である。   In particular, the present invention can also be applied to load balancing for web servers and application servers, and for keeping the number of servers used as web servers and application servers at an optimum number during execution.

本発明の第1の実施の形態の構成を示す図である。It is a figure which shows the structure of the 1st Embodiment of this invention. 本発明の第1の実施の形態の負荷分散装置の処理手順を説明する流れ図である。It is a flowchart explaining the process sequence of the load distribution apparatus of the 1st Embodiment of this invention. 本発明の第2の実施の形態の構成を示す図である。It is a figure which shows the structure of the 2nd Embodiment of this invention. 本発明の第2の実施の形態の負荷分散手段の構成を示す図である。It is a figure which shows the structure of the load distribution means of the 2nd Embodiment of this invention. 本発明の第2の実施の形態の動作を示す流れ図である。It is a flowchart which shows the operation | movement of the 2nd Embodiment of this invention. 本発明の第2の実施の形態の動作における、タスクの移送先ノード決定時の動作を示す流れ図である。It is a flowchart which shows operation | movement at the time of determination of the transfer destination node of a task in the operation | movement of the 2nd Embodiment of this invention. 本発明の第3の実施の形態の動作における、タスクの移送先ノード決定時の動作を示す流れ図である。It is a flowchart which shows the operation | movement at the time of determination of the transfer destination node of a task in the operation | movement of the 3rd Embodiment of this invention. 本発明の第5の実施の形態のレスポンスタイムテーブルを示す図である。It is a figure which shows the response time table of the 5th Embodiment of this invention. 本発明の第5の実施の形態の動作における、レスポンスタイムテーブル更新時の動作を示す流れ図である。It is a flowchart which shows the operation | movement at the time of the response time table update in operation | movement of the 5th Embodiment of this invention. 本発明の第6の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 6th Embodiment of this invention. (A)、(B)は、本発明の実施の形態で用いられる、タスク−ノード特性の一例をグラフ表示した図である。(A), (B) is the figure which displayed the graph of an example of the task-node characteristic used by embodiment of this invention. 本発明の実施の形態において、システム構成入力手段13に入力するシステム運用条件とタスク−ノード特性の一例を示す図である。In embodiment of this invention, it is a figure which shows an example of the system operation conditions and task-node characteristic which are input into the system configuration input means 13. 本発明の実施の形態において、ノードグループに割り当てるノード数を算出する手続きの一例を示す流れ図である。5 is a flowchart illustrating an example of a procedure for calculating the number of nodes allocated to a node group in the embodiment of the present invention. 本発明の実施の形態において、タスク種とノードグループの対応を管理する表の構成の一例を示す図である。In an embodiment of the invention, it is a figure showing an example of composition of a table which manages correspondence with a task kind and a node group. 本発明の実施の形態において、図13のステップ123を拡張する手続きの一例を示す流れ図である。14 is a flowchart showing an example of a procedure for extending step 123 in FIG. 13 in the embodiment of the present invention. 本発明の実施の形態において、図13のステップ124を拡張する手続きの一例を示す流れ図である。14 is a flowchart illustrating an example of a procedure for extending step 124 in FIG. 13 in the embodiment of the present invention. 本発明の実施の形態において、タスク到着率を管理する表の構成の一例を示す図である。In an embodiment of the invention, it is a figure showing an example of composition of a table which manages a task arrival rate. 本発明の実施の形態において、ノード性能を管理する表の構成の一例を示す図である。In an embodiment of the invention, it is a figure showing an example of composition of a table which manages node performance. 本発明の実施の形態において、ノードグループの構成を管理する表の構成の一例を示す図である。In an embodiment of the invention, it is a figure showing an example of the composition of the table which manages the composition of a node group. 本発明の第2の実施例におけるタスク移送を説明するための図である。It is a figure for demonstrating the task transfer in the 2nd Example of this invention. 本発明の第3の実施例におけるタスク移送を説明するための図である。It is a figure for demonstrating the task transfer in the 3rd Example of this invention. 本発明の第4の実施例に情報共有を説明するための図である。It is a figure for demonstrating information sharing to 4th Example of this invention. 本発明の第4の実施例におけるタスク移送を説明するための図である。It is a figure for demonstrating the task transfer in the 4th Example of this invention. 本発明の第5の実施例におけるレスポンスタイムテーブルを示す図である。It is a figure which shows the response time table in the 5th Example of this invention. 本発明の第5の実施例にレスポンスタイムテーブルを示す図である。It is a figure which shows a response time table in the 5th Example of this invention. 本発明の第6の実施例におけるタスク移送を説明するための図である。It is a figure for demonstrating the task transfer in the 6th Example of this invention.

符号の説明Explanation of symbols

1 グローバル負荷分散装置
11 タスク受信装置
12 ノードグループ構築手段
13 システム構成入力手段
14 実行性能測定手段
15 タスク送信手段
16 グローバルキューイング手段
191 タスク到着率管理表
192 ノード性能管理表
193 ノードグループ構成表
194 タスク種−ノードグループ対応表
2 スイッチング装置
3−i ノード
31 負荷分散手段
32 負荷情報共有手段
33 タスク送受信手段
34 タスク実行手段
35 ローカルキューイング手段
36 負荷情報管理手段
37 ノード優先度割り当て手段
38 均衡度計算手段
39 移送タスク決定手段
310 レスポンスタイムテーブル
DESCRIPTION OF SYMBOLS 1 Global load distribution apparatus 11 Task receiving apparatus 12 Node group construction means 13 System configuration input means 14 Execution performance measurement means 15 Task transmission means 16 Global queuing means 191 Task arrival rate management table 192 Node performance management table 193 Node group configuration table 194 Task type-node group correspondence table 2 Switching device 3-i Node 31 Load distribution means 32 Load information sharing means 33 Task transmission / reception means 34 Task execution means 35 Local queuing means 36 Load information management means 37 Node priority assignment means 38 Balance degree Calculation means 39 Transfer task determination means 310 Response time table

Claims (36)

計算機システムを構成するノードにおいて、
タスク又はタスクの実行結果の送受信を行うタスク送受信手段と、
前記タスク送受信手段で受信したタスクをキューイングするキューイング手段(「ローカルキューイング手段」という)と、
負荷情報を共有する負荷情報共有手段と、
前記負荷情報共有手段が提供する他ノードの負荷情報に基づいて、どのタスクをどのノードに移送するかを決定し、前記タスク送受信手段にタスクの移送を依頼する負荷分散手段と、
実行を依頼されたタスクを処理し、前記タスクの実行結果を、前記ローカルキューイング手段に返すタスク実行手段と、
を含
前記負荷分散手段は、
少なくとも自ノードで実行すべきタスクの量を、動的に計算する均衡度計算手段と、
ノードに対して優先度を割り当てるノード優先度割り当て手段と、
を含む、ことを特徴とするノード。
In the nodes that make up the computer system,
Task transmission / reception means for transmitting / receiving tasks or task execution results; and
Queuing means for queuing tasks received by the task transmitting / receiving means (referred to as "local queuing means");
Load information sharing means for sharing load information;
Load distribution means for determining which task is to be transferred to which node based on load information of other nodes provided by the load information sharing means, and requesting task transfer to the task transmission / reception means;
A task execution unit that processes a task requested to be executed and returns an execution result of the task to the local queuing unit;
Only including,
The load balancing means includes
A balance calculation means for dynamically calculating at least the amount of tasks to be executed in the own node;
A node priority assignment means for assigning a priority to a node;
A node characterized by containing.
前記負荷分散手段は、
負荷情報を管理する負荷情報管理手段と、
優先度順に、負荷の移送対象のノードを選択し、選択したノードに移送するタスクの個数を決定する移送タスク決定手段と、
を含む、ことを特徴とする請求項記載のノード。
The load balancing means includes
Load information management means for managing load information;
A transport task determination means for selecting nodes to be transported of loads in order of priority and determining the number of tasks to be transported to the selected nodes;
Node according to claim 1 including, characterized in that the.
前記ノード優先度割り当て手段が、前記ノードに対する優先度の割り当てを、循環単調増加優先度割り当てにしたがって行う、こと特徴する請求項又はに記載のノード。 The node priority allocation means the allocation of priorities for said nodes, performed according to a cyclic monotonically increasing priority assignments, node according to claim 1 or 2, this and characteristics. 前記負荷情報共有手段は、異なる精度を持つ負荷情報を共有し、
前記負荷分散手段の前記負荷情報管理手段は、単純空間精度補完を行い、
前記負荷分散手段の前記ノード優先度割り当て手段は、負荷情報の精度が高いノードに対してより高い優先度を割り当てる、ことを特徴とする、請求項に記載のノード。
The load information sharing means shares load information with different accuracy,
The load information management means of the load distribution means performs simple space accuracy complementation,
The node according to claim 2 , wherein the node priority assignment unit of the load distribution unit assigns a higher priority to a node having high load information accuracy.
タスクの実行数別に、スループットを算出するためのレスポンスタイムテーブルを有し、
前記負荷分散手段の前記ローカルキューイング手段は、前記レスポンステーブルを参照して、同時に実行するタスク数を、動的に変化させる、ことを特徴とする請求項乃至のいずれか一に記載のノード。
There is a response time table for calculating throughput for each number of task executions,
Said local queuing means of the load distribution unit, said with reference to the response table, the number of tasks to be executed at the same time, dynamically changing, according to any one of claims 1 to 4, characterized in that node.
スイッチング装置と、
請求項乃至のいずれか一に記載のノードを複数備え、
前記複数のノードは、前記スイッチング装置に接続され、前記スイッチング装置を介して通信する、ことを特徴とする負荷分散システム。
A switching device;
A plurality of nodes according to any one of claims 1 to 5 ,
The plurality of nodes are connected to the switching device and communicate via the switching device.
複数のノードを含む計算機システムを対象とした負荷分散装置であって、
システムの構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性情報とを入力するシステム構成入力手段と、
システムに到着するタスクの種類を判別し、タスク到着率をタスクごとに測定するタスク受信手段と、
実行時にノードの実行性能情報を測定する実行性能測定手段と、
前記システムの構成情報と、前記システムの運用条件と、事前に測定された前記タスク−ノード特性と、実行時に測定される前記タスク到着率と、ノードの実行時性能情報とのうちの少なくとも一つに基づき、ノードグループを構成し、前記ノードグループ上で実行されるタスク種を決定するノードグループ構築手段と、
タスクを実行するノードを前記ノードグループより選択し、前記ノードに対してタスクを転送するタスク転送手段と、
を含む負荷分散装置と、
請求項乃至のいずれか一に記載のノードを複数備え、
複数の前記ノードはクラスタシステムを構成し、
前記負荷分散装置は、前記ノードに接続され、前記ノードグループの構成変更情報を、前記クラスタシステムを構成する前記ノードに通知し、
同一のノードグループに属するノード間で、負荷情報を共有する、ことを特徴とする負荷分散システム。
A load balancer for a computer system including a plurality of nodes,
System configuration input means for inputting system configuration information, system operating conditions, and task-node characteristic information measured in advance;
A task receiving means for determining the type of task arriving at the system and measuring the task arrival rate for each task;
An execution performance measuring means for measuring execution performance information of a node at the time of execution;
At least one of the configuration information of the system, the operating conditions of the system, the task-node characteristics measured in advance, the task arrival rate measured at the time of execution, and the runtime performance information of the node A node group constructing means for configuring a node group and determining a task type to be executed on the node group;
A task transfer means for selecting a node to execute a task from the node group and transferring the task to the node;
A load balancer including:
A plurality of nodes according to any one of claims 1 to 5 ,
The plurality of nodes constitute a cluster system,
The load balancer is connected to the node and notifies the node group constituting the cluster system of configuration change information of the node group;
A load distribution system characterized by sharing load information between nodes belonging to the same node group.
前記負荷分散装置は、タスクの転送先のノードにおける滞留タスク数が予め定められた所定数を超えないように、タスクをキューイングするキューイング手段(「グローバルキューイング手段」という)をさらに有する、ことを特徴とする請求項記載の負荷分散システム The load balancer further includes queuing means (referred to as “global queuing means”) for queuing tasks so that the number of staying tasks in a node to which tasks are transferred does not exceed a predetermined number. The load distribution system according to claim 7 . 前記ノードグループ構築手段が、一つのノードグループに対して、前記システムの運用条件を満足するタスク種を対応させ、他のノードグループに対して前記システムの運用条件を満足しないタスク種を対応させる、ことを特徴とする請求項又はに記載の負荷分散システムThe node group construction means associates a task type that satisfies the operating conditions of the system with one node group, and associates a task type that does not satisfy the operating conditions of the system with another node group; The load distribution system according to claim 7 or 8 , wherein 前記ノードグループ構築手段が、一つのノードグループ上で一種類のタスク処理が行なわれるようにノードグループを構成し、前記ノードグループと前記ノードグループに対応するタスク種とを関連付けて記憶管理する、ことを特徴とする請求項又はに記載の負荷分散システムThe node group construction means configures a node group so that one kind of task processing is performed on one node group, and stores and manages the node group and a task type corresponding to the node group in association with each other. The load distribution system according to claim 7 or 8 , wherein 前記タスク−ノード特性情報は、前記タスク到着率とスループット、及び/又は、前記タスク到着率とレスポンスの特性情報を含む、ことを特徴とする請求項記載の負荷分散システムThe load distribution system according to claim 7 , wherein the task-node characteristic information includes the task arrival rate and throughput and / or the task arrival rate and response characteristic information. タスクは、タスク種毎に異なるノードグループで実行され、ノードグループ間でのタスクの移送は行われない、ことを特徴とする、請求項7乃至11のいずれか一に記載の負荷分散システム。 12. The load distribution system according to claim 7 , wherein tasks are executed in different node groups for each task type, and tasks are not transferred between the node groups. 計算機システムを構成するノードにおいて、
タスク又はタスクの実行結果の送受信を行うタスク送受信ステップと、
前記タスク送受信手段で受信したタスクをキューイングするローカルキューイングステップと、
負荷情報を共有する負荷情報共有手段が提供する他ノードの負荷情報に基づいて、どのタスクをどのノードに移送するかを決定し、前記タスク送受信手段にタスクの移送を依頼する負荷分散ステップと、
実行を依頼されたタスクを処理し、前記タスクの実行結果を、前記ローカルキューイングステップに返すタスク実行ステップと、
を含み
前記負荷分散ステップは、
少なくとも自ノードで実行すべきタスクの量を、動的に計算する均衡度計算ステップと、
ノードに対して優先度を割り当てるノード優先度割り当てステップと、
を含む、ことを特徴とする負荷分散方法。
In the nodes that make up the computer system,
A task transmission / reception step for transmitting / receiving a task or a task execution result; and
A local queuing step for queuing a task received by the task transmitting / receiving means;
A load distribution step of determining which task is to be transferred to which node based on load information of another node provided by load information sharing means for sharing load information, and requesting the task transmitting / receiving means to transfer the task;
A task execution step for processing a task requested to be executed and returning an execution result of the task to the local queuing step;
Including
The load balancing step includes
A balance calculation step for dynamically calculating at least the amount of tasks to be executed on the own node;
A node priority assignment step for assigning priorities to the nodes;
A load balancing method comprising:
前記負荷分散ステップは、The load balancing step includes
負荷情報を管理する負荷情報管理ステップと、Load information management step for managing load information;
優先度順に、負荷の移送対象のノードを選択し、選択したノードに移送するタスクの個数を決定する移送タスク決定ステップと、A transport task determination step for selecting nodes to be transported of loads in order of priority and determining the number of tasks to be transported to the selected nodes;
を含む、ことを特徴とする請求項13記載の負荷分散方法。The load distribution method according to claim 13, further comprising:
前記ノード優先度割り当てステップが、前記ノードに対する優先度の割り当てを、循環単調増加優先度割り当てにしたがって行う、こと特徴する請求項13又は14に記載の負荷分散方法。15. The load distribution method according to claim 13, wherein the node priority assignment step assigns a priority to the node according to a cyclic monotone increasing priority assignment. 前記負荷情報共有手段は、異なる精度を持つ負荷情報を共有し、
前記負荷分散ステップの前記負荷情報管理ステップは、単純空間精度補完を行い、
前記負荷分散ステップの前記ノード優先度割り当てステップは、負荷情報の精度が高いノードに対してより高い優先度を割り当てる、ことを特徴とする、請求項14に記載の負荷分散方法。
The load information sharing means shares load information with different accuracy,
The load information management step of the load distribution step performs simple space accuracy complementation,
The load distribution method according to claim 14 , wherein the node priority assignment step of the load distribution step assigns a higher priority to a node having high load information accuracy.
前記負荷分散ステップの前記ローカルキューイングステップは、タスクの実行数別に、スループットを算出するためのレスポンステーブルを参照して、同時に実行するタスク数を、動的に変化させる、ことを特徴とする請求項13乃至15のいずれか一に記載の負荷分散方法 The local queuing step of the load distribution step refers to a response table for calculating throughput for each execution number of tasks, and dynamically changes the number of tasks executed simultaneously. Item 16. The load distribution method according to any one of Items 13 to 15 . 請求項13乃至17のいずれか一に記載のノードを複数備え、A plurality of nodes according to any one of claims 13 to 17,
前記複数のノードは、スイッチング装置に接続され、前記スイッチング装置を介して通信する、ことを特徴とする負荷分散方法。The plurality of nodes are connected to a switching device and communicate via the switching device.
複数のノードを含む計算機システムを対象とした負荷分散方法であって、A load balancing method for a computer system including a plurality of nodes,
負荷分散装置において、システムの構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性情報とを入力するシステム構成入力ステップと、In the load balancer, a system configuration input step for inputting system configuration information, system operating conditions, and task-node characteristic information measured in advance,
システムに到着するタスクの種類を判別し、タスク到着率をタスクごとに測定するタスク受信ステップと、A task receiving step for determining the type of task arriving at the system and measuring the task arrival rate for each task;
実行時にノードの実行性能情報を測定する実行性能測定ステップと、An execution performance measurement step for measuring execution performance information of a node at the time of execution;
前記システムの構成情報と、前記システムの運用条件と、事前に測定された前記タスク−ノード特性と、実行時に測定される前記タスク到着率と、ノードの実行時性能情報とのうちの少なくとも一つに基づき、ノードグループを構成し、前記ノードグループ上で実行されるタスク種を決定するノードグループ構築ステップと、At least one of the configuration information of the system, the operating conditions of the system, the task-node characteristics measured in advance, the task arrival rate measured at the time of execution, and the runtime performance information of the node A node group construction step for configuring a node group and determining a task type to be executed on the node group;
タスクを実行するノードを前記ノードグループより選択し、前記ノードに対してタスクを転送するタスク転送ステップと、A task transfer step of selecting a node to execute the task from the node group and transferring the task to the node;
を含み、Including
請求項13乃至17のいずれか一に記載のノードを複数備え、A plurality of nodes according to any one of claims 13 to 17,
複数の前記ノードはクラスタシステムを構成し、The plurality of nodes constitute a cluster system,
前記負荷分散装置は、前記ノードに接続され、前記ノードグループの構成変更情報を、前記クラスタシステムを構成する前記ノードに通知し、The load balancer is connected to the node, and notifies the node constituting the cluster system of configuration change information of the node group,
同一のノードグループに属するノード間で、負荷情報を共有する、ことを特徴とする負荷分散方法。A load distribution method characterized by sharing load information between nodes belonging to the same node group.
前記負荷分散装置は、タスクの転送先のノードにおける滞留タスク数が予め定められた所定数を超えないように、タスクをキューイングするグローバルキューイングステップをさらに有する、ことを特徴とする請求項19記載の負荷分散方法 The load balancing apparatus further comprises a global queuing step for queuing a task so that the number of staying tasks in a task transfer destination node does not exceed a predetermined number. The load balancing method described . 前記ノードグループ構築ステップが、一つのノードグループに対して、前記システムの運用条件を満足するタスク種を対応させ、他のノードグループに対して前記システムの運用条件を満足しないタスク種を対応させる、ことを特徴とする請求項19又は20に記載の負荷分散方法。The node group construction step corresponds to one node group with a task type that satisfies the operating conditions of the system, and to another node group with a task type that does not satisfy the operating conditions of the system; The load balancing method according to claim 19 or 20, wherein 前記ノードグループ構築ステップが、一つのノードグループ上で一種類のタスク処理が行なわれるようにノードグループを構成し、前記ノードグループと前記ノードグループに対応するタスク種とを関連付けて記憶管理する、ことを特徴とする請求項19又は20に記載の負荷分散方法。The node group construction step configures a node group so that one type of task processing is performed on one node group, and stores and manages the node group and a task type corresponding to the node group in association with each other. The load distribution method according to claim 19 or 20, wherein: 前記タスク−ノード特性情報は、前記タスク到着率とスループット、及び/又は、前記タスク到着率とレスポンスの特性情報を含む、ことを特徴とする請求項19乃至22のいずれか一に記載の負荷分散方法 The load distribution according to any one of claims 19 to 22, wherein the task-node characteristic information includes the task arrival rate and throughput, and / or the task arrival rate and response characteristic information. Way . タスクは、タスク種毎に異なるノードグループで実行され、ノードグループ間でのタスクの移送は行われない、ことを特徴とする、請求項19乃至23のいずれか一に記載の負荷分散方法。The load distribution method according to any one of claims 19 to 23, wherein tasks are executed in different node groups for each task type, and tasks are not transferred between node groups. 計算機システムを構成するノードを構成するコンピュータに、
タスク又はタスクの実行結果の送受信を行うタスク送受信処理と、
前記タスク送受信手段で受信したタスクをキューに繋ぐキューイング処理と、
負荷情報を共有する負荷情報共有部が提供する他ノードの負荷情報に基づいて、どのタスクをどのノードに移送するかを決定し、前記タスク送受信処理にタスクの移送を依頼する負荷分散処理と、
実行を依頼されたタスクを処理し、前記タスクの実行結果を、前記ローカルキューイング手段に返すタスク実行処理と、
を実行させ
前記負荷分散処理として、
少なくとも自ノードで実行すべきタスクの量を動的に計算する均衡度計算処理と、
ノードに対して優先度を割り当てるノード優先度割り当て処理と、
を実行させるためのプログラム。
To the computers that make up the nodes that make up the computer system,
Task transmission / reception processing for transmitting / receiving tasks or task execution results;
A queuing process for connecting a task received by the task transmitting / receiving means to a queue;
Load distribution processing for determining which task is transferred to which node based on load information of other nodes provided by a load information sharing unit that shares load information, and requesting task transfer to the task transmission / reception processing;
A task execution process for processing a task requested to be executed and returning an execution result of the task to the local queuing means;
Was executed,
As the load balancing process,
Balance degree calculation processing that dynamically calculates the amount of tasks to be executed at least on its own node;
Node priority assignment processing for assigning priorities to nodes;
A program for running
請求項25記載のプログラムにおいて、
負荷情報を管理する負荷情報管理処理と、
優先度順に、負荷の移送対象のノードを選択し、選択したノードに移送するタスクの個数を決定する移送タスク決定処理と、
を含む前記負荷分散処理を、前記コンピュータに実行させるためのプログラム。
The program according to claim 25 ,
Load information management processing for managing load information;
A transport task determination process for selecting a load transport target node in order of priority and determining the number of tasks to be transported to the selected node;
A program for causing the computer to execute the load distribution process including:
請求項26記載のプログラムにおいて、
他ノードに割り当てる優先度を、循環単調増加優先度割り当てにしたがって行う前記ノード優先度割り当て処理を、前記コンピュータに実行させるためのプログラム。
The program according to claim 26 ,
A program for causing the computer to execute the node priority assignment processing for assigning priority to another node according to cyclic monotonically increasing priority assignment.
請求項25記載のプログラムにおいて、
前記負荷情報共有部は、異なる精度を持つ負荷情報を共有し、
他ノードから送られる負荷情報の値と精度とから、前記負荷情報を再構築する処理を、前記コンピュータに実行させるためのプログラム。
The program according to claim 25 ,
The load information sharing unit shares load information with different accuracy,
A program for causing the computer to execute processing for reconstructing the load information from the value and accuracy of the load information sent from another node.
請求項25記載のプログラムにおいて、
タスクの実行数別に、スループットを算出するためのレスポンスタイムテーブルを参照して、同時に実行するタスク数を、動的に変化させる処理を、前記コンピュータに実行させるためのプログラム。
The program according to claim 25 ,
A program for causing the computer to execute a process of dynamically changing the number of tasks to be executed simultaneously with reference to a response time table for calculating throughput for each number of tasks executed.
請求項25乃至29のいずれか一に記載のノードを複数備え、A plurality of nodes according to any one of claims 25 to 29,
スイッチング装置に接続され、前記スイッチング装置を介して通信する処理を前記ノードの前記コンピュータに実行させるためのプログラム。A program for causing the computer of the node to execute a process connected to a switching device and communicating via the switching device.
複数のノードを含む計算機システムを対象とした負荷分散装置を構成するコンピュータに、In a computer constituting a load balancer for a computer system including a plurality of nodes,
システムの構成情報と、システムの運用条件と、事前に測定されたタスク−ノード特性情報とを入力するシステム構成入力処理と、System configuration input processing for inputting system configuration information, system operating conditions, and task-node characteristic information measured in advance;
システムに到着するタスクの種類を判別し、タスク到着率をタスクごとに測定するタスク受信処理と、Task reception processing that determines the type of task that arrives at the system and measures the task arrival rate for each task;
実行時にノードの実行性能情報を測定する実行性能測定処理と、An execution performance measurement process that measures the execution performance information of a node at the time of execution;
前記システムの構成情報と、前記システムの運用条件と、事前に測定された前記タスク−ノード特性と、実行時に測定される前記タスク到着率と、ノードの実行時性能情報とのうちの少なくとも一つに基づき、ノードグループを構成し、前記ノードグループ上で実行されるタスク種を決定するノードグループ構築処理と、At least one of the configuration information of the system, the operating conditions of the system, the task-node characteristics measured in advance, the task arrival rate measured at the time of execution, and the runtime performance information of the node A node group construction process for configuring a node group and determining a task type to be executed on the node group;
タスクを実行するノードを前記ノードグループより選択し、前記ノードに対してタスクを転送するタスク転送処理と、A task transfer process for selecting a node to execute a task from the node group and transferring the task to the node;
を実行させ、And execute
請求項25乃至29のいずれか一に記載のノードを複数備え、A plurality of nodes according to any one of claims 25 to 29,
複数の前記ノードはクラスタシステムを構成し、The plurality of nodes constitute a cluster system,
前記負荷分散装置は、前記ノードに接続され、前記ノードグループの構成変更情報を、前記クラスタシステムを構成する前記ノードに通知し、The load balancer is connected to the node and notifies the node group constituting the cluster system of configuration change information of the node group;
同一のノードグループに属するノード間で、負荷情報を共有する処理を、前記ノードの前記コンピュータに実行させるためのプログラム。A program for causing the computer of the node to execute a process of sharing load information between nodes belonging to the same node group.
前記負荷分散装置に、タスクの転送先のノードにおける滞留タスク数が予め定められた所定数を超えないように、タスクをキューイングするグローバルキューイング処理をさらに実行させる請求項31記載のプログラム 32. The program according to claim 31, further causing the load balancer to further execute a global queuing process for queuing tasks so that the number of staying tasks in a task transfer destination node does not exceed a predetermined number . 前記ノードグループ構築処理が、一つのノードグループに対して、前記システムの運用条件を満足するタスク種を対応させ、他のノードグループに対して前記システムの運用条件を満足しないタスク種を対応させる、ことを特徴とする請求項31又は32に記載のプログラム。The node group construction process associates a task type that satisfies the operating condition of the system with one node group, and associates a task type that does not satisfy the operating condition of the system with another node group. The program according to claim 31 or 32, wherein 前記ノードグループ構築処理が、一つのノードグループ上で一種類のタスク処理が行なわれるようにノードグループを構成し、前記ノードグループと前記ノードグループに対応するタスク種とを関連付けて記憶管理する、ことを特徴とする請求項31又は32に記載のプログラム。The node group construction process configures a node group so that one type of task processing is performed on one node group, and stores and manages the node group and a task type corresponding to the node group in association with each other. The program according to claim 31 or 32. 前記タスク−ノード特性情報は、前記タスク到着率とスループット、及び/又は、前記タスク到着率とレスポンスの特性情報を含む、ことを特徴とする請求項31記載のプログラム 32. The program according to claim 31, wherein the task-node characteristic information includes the task arrival rate and throughput and / or the task arrival rate and response characteristic information . タスクは、タスク種毎に異なるノードグループで実行され、ノードグループ間でのタスクの移送は行われない、ことを特徴とする、請求項31乃至34のいずれか一に記載のプログラム。The program according to any one of claims 31 to 34, wherein tasks are executed in different node groups for each task type, and tasks are not transferred between node groups.
JP2003382371A 2003-11-12 2003-11-12 Load balancing method, apparatus, system, and program Expired - Fee Related JP4265377B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003382371A JP4265377B2 (en) 2003-11-12 2003-11-12 Load balancing method, apparatus, system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003382371A JP4265377B2 (en) 2003-11-12 2003-11-12 Load balancing method, apparatus, system, and program

Publications (2)

Publication Number Publication Date
JP2005148911A JP2005148911A (en) 2005-06-09
JP4265377B2 true JP4265377B2 (en) 2009-05-20

Family

ID=34691473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003382371A Expired - Fee Related JP4265377B2 (en) 2003-11-12 2003-11-12 Load balancing method, apparatus, system, and program

Country Status (1)

Country Link
JP (1) JP4265377B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9086910B2 (en) 2010-02-05 2015-07-21 Nec Corporation Load control device

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4855655B2 (en) * 2004-06-15 2012-01-18 株式会社ソニー・コンピュータエンタテインメント Processing management apparatus, computer system, distributed processing method, and computer program
WO2008007669A1 (en) 2006-07-10 2008-01-17 Nec Corporation Computer system managing device, and computer system managing method
US8996707B2 (en) * 2007-09-28 2015-03-31 Alcatel Lucent Method and apparatus for performing load balancing for a control plane of a mobile communication network
JP5176558B2 (en) * 2008-01-17 2013-04-03 富士通株式会社 Distributed processing program, distributed processing apparatus, and distributed processing method
JP5262751B2 (en) * 2009-01-23 2013-08-14 日本電気株式会社 Resource information management server, resource information management system, resource information management method, and resource information management program
WO2012172588A1 (en) * 2011-06-13 2012-12-20 株式会社日立製作所 Request allocation computer, request allocation method, and program
WO2014030300A1 (en) * 2012-08-23 2014-02-27 日本電気株式会社 Matching system, matching method, and matching program
JP6080213B2 (en) * 2013-11-01 2017-02-15 日本電信電話株式会社 System linkage apparatus, method and program thereof
WO2018061825A1 (en) * 2016-09-29 2018-04-05 日本電気株式会社 Distributed processing system, distributed processing method, and recording medium
JP6546235B2 (en) * 2017-09-15 2019-07-17 株式会社日立製作所 Storage system
CN109302438B (en) * 2017-12-30 2023-10-31 上海创远仪器技术股份有限公司 Radio monitoring big data concurrent processing system
JP7193429B2 (en) * 2019-08-15 2022-12-20 Kddi株式会社 DEVICE SYSTEM, DEVICE, COMPUTER PROGRAM AND DEVICE SYSTEM CONTROL METHOD
CN112948104B (en) * 2019-12-11 2024-01-05 中盈优创资讯科技有限公司 Load balancing data acquisition method and device
CN113247315B (en) * 2019-12-25 2023-03-14 长沙天仪空间科技研究院有限公司 Satellite
KR102413924B1 (en) * 2020-09-25 2022-06-29 주식회사 이노그리드 Process group management method and system for high performance cloud service system using multiple computing nodes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9086910B2 (en) 2010-02-05 2015-07-21 Nec Corporation Load control device

Also Published As

Publication number Publication date
JP2005148911A (en) 2005-06-09

Similar Documents

Publication Publication Date Title
Yu et al. Stochastic load balancing for virtual resource management in datacenters
JP4265377B2 (en) Load balancing method, apparatus, system, and program
CN110764912B (en) Self-adaptive task scheduler and method
Shah et al. On the design of adaptive and decentralized load balancing algorithms with load estimation for computational grid environments
US10055262B1 (en) Distributed load balancing with imperfect workload information
US6986139B1 (en) Load balancing method and system based on estimated elongation rates
Kashyap et al. A survey of various load balancing algorithms in cloud computing
EP3161632B1 (en) Integrated global resource allocation and load balancing
US8087025B1 (en) Workload placement among resource-on-demand systems
EP1564638A1 (en) A method of reassigning objects to processing units
WO2001038972A1 (en) Load balancing method in a communication network
Mostafa et al. Fog resource selection using historical executions
Kim et al. An energy-aware service function chaining and reconfiguration algorithm in NFV
Shen et al. Probabilistic network-aware task placement for mapreduce scheduling
Abreu et al. A rank scheduling mechanism for fog environments
Mostafa Cooperative fog communications using a multi-level load balancing
CN111143036A (en) Virtual machine resource scheduling method based on reinforcement learning
Wen et al. Load balancing job assignment for cluster-based cloud computing
CN117155942A (en) Micro-service dynamic self-adaptive client load balancing method and system
CN116909735A (en) Calculation power scheduling method and device, server and storage medium
EP1533699A1 (en) A method of assigning objects to processing units
Shefu et al. Fruit fly optimization algorithm for network-aware web service composition in the cloud
KR100718907B1 (en) Load balancing system based on fuzzy grouping and the load balancing method
Kokkinos et al. Data consolidation: A task scheduling and data migration technique for grid networks
Mostafaei et al. SNR: Network-aware geo-distributed stream analytics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081027

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees