JP2000137692A - Inter-distributed node load distribution system - Google Patents

Inter-distributed node load distribution system

Info

Publication number
JP2000137692A
JP2000137692A JP10311316A JP31131698A JP2000137692A JP 2000137692 A JP2000137692 A JP 2000137692A JP 10311316 A JP10311316 A JP 10311316A JP 31131698 A JP31131698 A JP 31131698A JP 2000137692 A JP2000137692 A JP 2000137692A
Authority
JP
Japan
Prior art keywords
load
node
value
moved
distributed
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.)
Pending
Application number
JP10311316A
Other languages
Japanese (ja)
Inventor
Akifumi Murata
明文 村田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP10311316A priority Critical patent/JP2000137692A/en
Publication of JP2000137692A publication Critical patent/JP2000137692A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To execute the distribution of loads when loads are centralized or distribution is requested without generating any waste in a memory resource. SOLUTION: This inter-node load distribution system is provided with a load table 1 for storing the present load value of each node N1-Nn and a performance value table 3 for storing the processing performance value of each node N1-Nn. At the time of detecting the excess load of its own node by referring to the load table 1, a movement instructing part 4 selects a node being the destination of movement which is capable of increasing loads by referring to the performance value table 3, and generates a load movement instruction. A load distributing part 5 moves the load of its own node to the node being the destination of movement for each prescribed unit based on the load movement instruction generated by the movement instructing part 4.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、分散ノードコンピ
ューティング環境における分散ノード間負荷分散方式に
関する。
The present invention relates to a load distribution method between distributed nodes in a distributed node computing environment.

【0002】[0002]

【従来の技術】一般に、複数のノードが分散配置された
分散ノード間では、複数のプロセス(サービス)を実行
しつつ各ノードの負荷分散を行なう際の分散ノード間負
荷分散方式が知られている。
2. Description of the Related Art In general, among distributed nodes in which a plurality of nodes are arranged in a distributed manner, a load distribution method among distributed nodes is known in which a load of each node is distributed while executing a plurality of processes (services). .

【0003】この種の分散ノード間負荷分散方式として
は、例えば、RPC(リモートプロシージャコール)に
よるRPCサーバの分散方式がある。このRPCサーバ
の分散方式は、予め負荷分散用に全サーバにRPCサー
バを立上げておき、全サーバに負荷を分散する方式であ
る。また、分散ノード間負荷分散方式には、予めプロセ
ス立上げ時に各サーバに負荷を分散する方式もある。
As this type of load distribution method between distributed nodes, for example, there is a distribution method of an RPC server by RPC (remote procedure call). This RPC server distribution method is a method in which RPC servers are set up in all servers in advance for load distribution, and the load is distributed to all servers. Further, among the load distribution methods among the distributed nodes, there is a method in which the load is distributed to each server in advance when the process is started.

【0004】[0004]

【発明が解決しようとする課題】しかしながら以上のよ
うな分散ノード間負荷分散方式では、例えばRPCサー
バの分散方式の場合、予め負荷分散用に全サーバにRP
Cサーバを立上げる必要があるので、メモリリソースに
無駄を生じさせる問題があり、また、負荷集中時又は分
散要求時に負荷を分散し得ない問題がある。
However, in the above-described load distribution method between distributed nodes, for example, in the case of the distribution method of the RPC server, the RP is distributed to all servers in advance for load distribution.
Since it is necessary to start the C server, there is a problem that the memory resource is wasted, and there is a problem that the load cannot be distributed at the time of load concentration or distribution request.

【0005】一方、プロセス立上げ時の分散方式の場
合、負荷の集中したサーバに新たな負荷をかけないもの
の、この負荷の集中したサーバの負荷を分散し得ない問
題がある。
[0005] On the other hand, in the case of the distribution method at the time of starting the process, although a new load is not applied to the server on which the load is concentrated, there is a problem that the load on the server with the concentrated load cannot be distributed.

【0006】本発明は上記実情を考慮してなされたもの
で、メモリリソースに無駄を生じさせず、負荷集中時や
分散要求時に負荷分散を実行し得る分散ノード間負荷分
散方式を提供することを目的とする。
The present invention has been made in view of the above circumstances, and provides a load distribution method between distributed nodes that can execute load distribution at the time of load concentration or distribution request without wasting memory resources. Aim.

【0007】[0007]

【課題を解決するための手段】請求項1に対応する発明
は、分散配置された複数のノードが互いに接続され、前
記各ノードの有する負荷を各ノード間で分散させるため
の分散ノード間負荷分散方式であって、前記各ノードの
現在の負荷値が記憶される負荷記憶手段と、前記各ノー
ドの処理性能値が記憶される性能値記憶手段と、前記負
荷記憶手段を参照して自ノードの過負荷を検出したと
き、前記性能値記憶手段を参照して負荷を増加可能な移
動先ノードを選択し、負荷移動指示を生成する移動指示
手段と、前記移動指示手段により生成された負荷移動指
示に基づいて、自ノードの負荷を所定単位毎に前記移動
先ノードに移動させる負荷分散手段とを備えた分散ノー
ド間負荷分散方式である。
According to a first aspect of the present invention, there is provided an inter-node load distribution for connecting a plurality of nodes arranged in a distributed manner to each other and distributing a load of each node among the nodes. A load storage unit in which a current load value of each node is stored; a performance value storage unit in which a processing performance value of each node is stored; and When an overload is detected, a destination node capable of increasing the load is selected with reference to the performance value storage unit, and a migration instruction unit that generates a load migration instruction; and a load migration instruction generated by the migration instruction unit. And a load distributing means for distributing the load of the own node to the destination node in predetermined units on the basis of.

【0008】また、請求項2に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、予め複数の度合のいずれかに負
荷が分類され、前記各度合毎に、移動対象の負荷が先頭
にあり、移動された負荷が末尾に接続されるキューを備
えた分散ノード間負荷分散方式である。
According to a second aspect of the present invention, in the load sharing method between distributed nodes according to the first aspect, the movement instructing means is configured to classify loads in advance into any of a plurality of degrees, This is a distributed node-to-node load distribution method having a queue in which the load to be moved is at the top and the moved load is connected at the end for each degree.

【0009】さらに、請求項3に対応する発明は、請求
項1に対応する分散ノード間負荷分散方式において、前
記負荷テーブルとしては、前記各負荷値と、前記各負荷
値における時系列的な平均値と、前記各負荷値の平均2
乗誤差とが記憶されており、前記移動指示手段として
は、前記自ノードの過負荷を検出したとき、前記負荷テ
ーブル内の平均値及び平均2乗誤差に基づいて、現在の
負荷値と前記平均値とが所定値以上離れており、且つ前
記平均2乗誤差の小さい負荷を移動対象に選択しない分
散ノード間負荷分散方式である。
Further, according to a third aspect of the present invention, in the load distribution method between distributed nodes according to the first aspect, the load table includes the load values and a time-series average of the load values. Value and the average of each load value 2
And the movement instructing means detects a current load value and the average value based on an average value and an average square error in the load table when detecting an overload of the own node. This is a load sharing method between distributed nodes in which a load whose value is more than a predetermined value and whose mean square error is small is not selected as a movement target.

【0010】また、請求項4に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、移動先対象のノードが先頭にあ
り、移動先にされたノードが末尾に接続されるキューを
備えた分散ノード間負荷分散方式である。
According to a fourth aspect of the present invention, in the load balancing method between distributed nodes according to the first aspect, the movement instruction means is such that a node to be moved is at the head and the movement destination is set as the movement destination. This is a load sharing method between distributed nodes including a queue to which a node is connected at the end.

【0011】さらに、請求項5に対応する発明は、請求
項1に対応する分散ノード間負荷分散方式において、前
記負荷テーブルとしては、前記負荷値がプロセス毎に記
憶され、且つ1個以上のプロセスからなる集合が前記所
定単位として登録されている分散ノード間負荷分散方式
である。
According to a fifth aspect of the present invention, in the load distribution method between distributed nodes according to the first aspect, the load value is stored for each process as the load table, and one or more process values are stored. Is a load distribution method between distributed nodes, in which a set of distributed nodes is registered as the predetermined unit.

【0012】また、請求項6に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
性能値テーブルとしては、MIPS(100万命令/
秒)に基づいた前記処理性能値が記憶される分散ノード
間負荷分散方式である。
According to a sixth aspect of the present invention, in the load distribution method between distributed nodes according to the first aspect, the performance value table includes MIPS (1,000,000 instructions /
(Second) based on the processing performance value.

【0013】さらに、請求項7に対応する発明は、請求
項1に対応する分散ノード間負荷分散方式において、前
記移動指示手段としては、自ノードにおける移動対象の
負荷の負荷値、前記移動先ノードの処理性能値及び前記
自ノードの処理性能値に基づいて、前記移動対象の負荷
を移動した場合に前記移動先ノードで増加する負荷値を
算出し、前記増加する負荷値が前記移動先ノードでのC
PUのアイドル量よりも小のとき、前記負荷移動指示を
生成する分散ノード間負荷分散方式である。
According to a seventh aspect of the present invention, in the load distribution method between distributed nodes according to the first aspect, the movement instructing means includes: a load value of a load to be moved in the own node; Based on the processing performance value of the own node and the processing performance value of the own node, when the load of the movement target is moved, a load value that increases at the destination node is calculated, and the increasing load value is calculated at the destination node. C
This is a load sharing method between distributed nodes that generates the load transfer instruction when the amount is smaller than the idle amount of the PU.

【0014】また、請求項8に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、予め高負荷、中負荷又は小負荷
のいずれかの度合に負荷が分類され、前記各度合毎に、
移動対象の負荷が先頭にあり、移動された負荷が末尾に
接続されるキューを備えた分散ノード間負荷分散方式で
ある。 (作用)従って、請求項1に対応する発明は以上のよう
な手段を講じたことにより、各ノードの現在の負荷値が
記憶される負荷記憶手段と、各ノードの処理性能値が記
憶される性能値記憶手段とを有し、移動指示手段が、負
荷記憶手段を参照して自ノードの過負荷を検出したと
き、性能値記憶手段を参照して負荷を増加可能な移動先
ノードを選択し、負荷移動指示を生成し、負荷分散手段
が、移動指示手段により生成された負荷移動指示に基づ
いて、自ノードの負荷を所定単位毎に移動先ノードに移
動させるので、従来とは異なり、メモリリソースに無駄
を生じさせず、負荷集中時や分散要求時に負荷分散を実
行させることができる。
According to an eighth aspect of the present invention, in the load sharing method between distributed nodes according to the first aspect, the movement instructing means includes a high load, a medium load and a small load in advance. The load is classified, and for each of the above-mentioned degrees,
This is a load sharing method between distributed nodes including a queue in which the load to be moved is at the top and the moved load is connected to the end. (Operation) Therefore, in the invention corresponding to claim 1, by taking the above means, the load storage means for storing the current load value of each node and the processing performance value of each node are stored. When the movement instruction means detects an overload of the own node by referring to the load storage means, the movement instruction means selects a destination node capable of increasing the load by referring to the performance value storage means. Since the load distribution instruction is generated, and the load distribution unit moves the load of the own node to the destination node for each predetermined unit based on the load migration instruction generated by the movement instruction unit. It is possible to execute load distribution at the time of load concentration or distribution request without causing waste of resources.

【0015】また、請求項2に対応する発明は、移動指
示手段としては、予め複数の度合のいずれかに負荷が分
類され、各度合毎に、移動対象の負荷が先頭にあり、移
動された負荷が末尾に接続されるキューを備えたので、
請求項1に対応する作用に加え、特定の負荷のみが順番
に移動するたらい回し動作を阻止することができる。
According to a second aspect of the present invention, as the movement instructing means, the loads are classified in advance into any one of a plurality of degrees, and for each degree, the load to be moved is at the top and moved. With a queue where the load is connected at the end,
In addition to the operation corresponding to the first aspect, it is possible to prevent the swirling operation in which only a specific load moves sequentially.

【0016】さらに、請求項3に対応する発明は、負荷
テーブルとしては、各負荷値と、各負荷値における時系
列的な平均値と、各負荷値の平均2乗誤差とが記憶され
ており、移動指示手段としては、自ノードの過負荷を検
出したとき、負荷テーブル内の平均値及び平均2乗誤差
に基づいて、現在の負荷値と平均値とが所定値以上離れ
ており、且つ平均2乗誤差の小さい負荷を移動対象に選
択しない。
Further, in the invention corresponding to claim 3, the load table stores each load value, a time-series average value of each load value, and an average square error of each load value. When the overload of the own node is detected, based on the average value and the mean square error in the load table, the current load value and the average value are separated from each other by a predetermined value or more. A load having a small square error is not selected as a moving object.

【0017】これにより、請求項1に対応する作用に加
え、通常は低負荷値で一時的に高負荷値となる負荷の移
動を阻止できるので、移動によるオーバヘッドを抑制す
ることができる。
In this way, in addition to the action corresponding to the first aspect, the movement of the load, which normally has a low load value and temporarily becomes a high load value, can be prevented, so that the overhead due to the movement can be suppressed.

【0018】また、請求項4に対応する発明は、移動指
示手段としては、移動先対象のノードが先頭にあり、移
動先にされたノードが末尾に接続されるキューを備えた
ので、請求項1に対応する作用に加え、負荷の移動先を
選択する際に、他の全ノードのうち、一部のノードを検
索すればよいので、サービス移動のオーバヘッドを抑制
することができる。
According to a fourth aspect of the present invention, the movement instructing means includes a queue in which the destination node is located at the top and the destination node is connected at the end. In addition to the action corresponding to 1, when selecting a destination of the load, it is only necessary to search some of the other nodes, so that the overhead of service movement can be suppressed.

【0019】さらに、請求項5に対応する発明は、負荷
テーブルとしては、負荷値がプロセス毎に記憶され、且
つ1個以上のプロセスからなる集合が所定単位として登
録されているので、請求項1に対応する作用を容易且つ
確実に奏することができる。
In the invention corresponding to claim 5, the load value is stored for each process in the load table, and a set of one or more processes is registered as a predetermined unit. Can be easily and reliably performed.

【0020】また、請求項6に対応する発明は、性能値
テーブルとしては、MIPS(100万命令/秒)に基
づいた処理性能値が記憶されるので、請求項1に対応す
る作用を容易且つ確実に奏することができる。
In the invention according to claim 6, since the processing value based on MIPS (million instructions / second) is stored as the performance value table, the operation corresponding to claim 1 can be performed easily and easily. Can be played reliably.

【0021】さらに、請求項7に対応する発明は、移動
指示手段としては、自ノードにおける移動対象の負荷の
負荷値、移動先ノードの処理性能値及び自ノードの処理
性能値に基づいて、移動対象の負荷を移動した場合に移
動先ノードで増加する負荷値を算出し、増加する負荷値
が移動先ノードでのCPUのアイドル量よりも小のと
き、負荷移動指示を生成するので、請求項1に対応する
作用を容易且つ確実に奏することができる。
Further, according to a seventh aspect of the present invention, as the movement instructing means, the movement instructing means based on the load value of the load to be moved in the own node, the processing performance value of the destination node and the processing performance value of the own node. When a load value to be increased is calculated at the destination node when the target load is moved, a load movement instruction is generated when the increased load value is smaller than the idle amount of the CPU at the destination node. The operation corresponding to 1 can be easily and reliably performed.

【0022】また、請求項8に対応する発明は、移動指
示手段としては、予め高負荷、中負荷又は小負荷のいず
れかの度合に負荷が分類され、各度合毎に、移動対象の
負荷が先頭にあり、移動された負荷が末尾に接続される
キューを備えたので、請求項1に対応する作用に加え、
特定の負荷のみが順番に移動するたらい回し動作を阻止
することができる。
In the invention corresponding to claim 8, the movement instructing means may classify loads in advance into any of high load, medium load and small load, and determine the load to be moved for each degree. In addition to the function corresponding to claim 1, a queue is provided at the head of which the moved load is connected to the tail.
It is possible to prevent the turning operation in which only a specific load moves sequentially.

【0023】[0023]

【発明の実施の形態】以下、本発明の各実施形態につい
て図面を参照しながら説明する。 (第1の実施形態)図1は本発明の第1の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムの構成を示す模式図である。この計算機システムは、
複数のノード(計算機本体)N1〜Nnが互いに接続さ
れている。ここで、各ノードN1〜Nnは、実行中のプ
ロセス(プログラム)が異なるものの、互いに同一構成
のため、ノードN1を例に挙げて説明する。
Embodiments of the present invention will be described below with reference to the drawings. (First Embodiment) FIG. 1 is a schematic diagram showing a configuration of a computer system to which a distributed node load balancing method according to a first embodiment of the present invention is applied. This computer system is
A plurality of nodes (computer bodies) N1 to Nn are connected to each other. Here, the nodes N1 to Nn have different processes (programs) being executed, but have the same configuration, so that the node N1 will be described as an example.

【0024】ノードN1は、実行の有無によらずに保持
する複数のプロセスP1〜Pmの他、負荷テーブル1、
負荷管理部2、性能値テーブル3、移動指示部4、負荷
分散部5、プロセスファイル6及びバックアップファイ
ル7を備えている。
The node N1 includes a plurality of processes P1 to Pm which are held irrespective of whether or not they are executed, a load table 1,
A load management unit 2, a performance value table 3, a movement instruction unit 4, a load distribution unit 5, a process file 6, and a backup file 7 are provided.

【0025】負荷テーブル1は、図2に示すように、負
荷管理部2によって、各ノードN1〜Nnにおけるプロ
セスP1〜Pm毎の現在のCPU負荷値、メモリ負荷値
及びディスク負荷値が読出/書込可能に記憶されるテー
ブルであり、1以上の任意のプロセスPをまとめた集合
が、1つのサービスS(負荷分散の単位)として取扱わ
れる。
As shown in FIG. 2, the load management unit 2 reads / writes the current CPU load value, memory load value, and disk load value for each of the processes P1 to Pm in each of the nodes N1 to Nn. A set of one or more arbitrary processes P is handled as one service S (unit of load distribution).

【0026】なお、負荷テーブル1は、以上の値に加
え、サービスS1〜Sj毎の負荷値(各サービス内の各
プロセス負荷の合計値)が記憶されてもよく、ノードN
1〜Nn毎の負荷値(ノード内の各サービス負荷の合計
値)が記憶されてもよい。
The load table 1 may store, in addition to the above values, load values for each of the services S1 to Sj (total value of each process load in each service).
A load value (a total value of each service load in the node) for each of 1 to Nn may be stored.

【0027】また、ノードN1全体のメモリ負荷値は、
ノードN1のスワップ(swap)の使用量(スワップの残り
容量あるいは一定時間のスワップin/out、ページin/out
の量)で規定可能である。ノードN1全体のCPU負荷
値は、CPUのアイドル量あるいはCPU割当て待ちプ
ロセス数で規定可能である。
The memory load value of the entire node N1 is:
Swap usage of node N1 (remaining capacity of swap or swap in / out for a certain time, page in / out
Amount). The CPU load value of the entire node N1 can be defined by the amount of idle CPU or the number of processes waiting for CPU allocation.

【0028】負荷管理部2は、定期的に各ノードN1〜
NnにおけるプロセスP1〜Pm毎の現在のCPU負荷
値、メモリ負荷値及びディスク負荷値を収集し、これら
CPU負荷値、メモリ負荷値及びディスク負荷値を負荷
テーブル1に書込む機能をもっている。
The load management unit 2 periodically checks each of the nodes N1 to N1.
It has a function of collecting the current CPU load value, memory load value, and disk load value for each of the processes P1 to Pm in Nn, and writing these CPU load value, memory load value, and disk load value in the load table 1.

【0029】性能値テーブル3は、ノードN1からNn
毎に予めCPU性能値及びメモリ性能値が読出可能に登
録されたテーブルであり、ノードN1〜Nn内の共有領
域(共有メモリでもファイルでも可)に設けられてい
る。ここで、CPU性能値としては、1/(MIPS*
MPU)が使用可能となっている。なお、MIPS(1
00万命令/秒)は、1つのCPUの性能値であり、M
PUは、CPUの個数である。一方、メモリ性能値とし
ては、ノード内の各メモリ容量の合計値が使用可能とな
っている。
The performance value table 3 includes nodes N1 to Nn
This is a table in which a CPU performance value and a memory performance value are registered in advance so as to be readable for each of them, and are provided in a shared area (can be a shared memory or a file) in the nodes N1 to Nn. Here, the CPU performance value is 1 / (MIPS *
MPU) can be used. Note that MIPS (1
(Million instructions / sec) is the performance value of one CPU, and M
PU is the number of CPUs. On the other hand, as the memory performance value, the total value of each memory capacity in the node can be used.

【0030】移動指示部4は、定期的に負荷テーブル1
を参照して自ノードN1の負荷状況を調査し、負荷が所
定値を越えた旨(過負荷)を検出すると、自ノードN1
の各プロセスPをサービスS単位で低負荷のノードNi
(iは1〜nまでの任意の自然数(但し、自ノードの番
号を除く))に移動させる旨の指示を負荷分散部5に与
える機能をもっている。
The movement instructing unit 4 periodically loads the load table 1
, The load status of the own node N1 is checked, and when it is detected that the load exceeds a predetermined value (overload), the own node N1 is checked.
Of each process P in the service S unit with a low load node Ni
(I is an arbitrary natural number from 1 to n (excluding the number of the own node)), and has a function of giving an instruction to the load distribution unit 5 to move the load.

【0031】同様に、移動指示部4は、ノードN自体又
はプロセスPの障害発生時に、障害発生により実行不可
能となったプロセスPを含むサービスSを低負荷のノー
ドNiに移動させる旨の指示を負荷分散部5に与える機
能をもっている。
Similarly, when the failure of the node N itself or the process P occurs, the movement instructing unit 4 issues an instruction to move the service S including the process P which has become unexecutable due to the failure to the node Ni with a low load. Is provided to the load distribution unit 5.

【0032】負荷分散部5は、移動指示部4から受けた
負荷移動指示に基づいて、自ノードN1の移動対象の負
荷(プロセス)をサービスS単位で他のノードNiに移
動させる移動機能をもっている。
The load distribution unit 5 has a movement function of moving the load (process) to be moved by the own node N1 to another node Ni in service S units based on the load movement instruction received from the movement instruction unit 4. .

【0033】ここで、移動機能は、自ノードN1に移動
対象のプロセスPk(kは1〜mまでの任意の自然数)
があるとき、自ノードN1における移動対象のプロセス
Pkを停止させ(障害により既に停止していれば不
要)、移動対象のプロセスPkを立上げるための再開実
行指示を移動先の他ノードNiに与え、他ノードNiに
おける移動対象のプロセスPkを再開実行させることに
より、結果としてプロセスPkを自ノードN1から他ノ
ードNiに移動させるものである。
Here, the transfer function is a process Pk (k is an arbitrary natural number from 1 to m) to be transferred to its own node N1.
When there is, the process Pk to be moved in the own node N1 is stopped (it is unnecessary if the process Pk has already been stopped due to a failure), and a restart execution instruction for starting up the process Pk to be moved is given to the other node Ni of the destination. By restarting the process Pk to be moved in the other node Ni, the process Pk is moved from the own node N1 to the other node Ni as a result.

【0034】この移動機能として、負荷分散部5は、移
動指示部4から受ける指示により、実行途中のプロセス
PをサービスS単位で他ノードNiへ移送して低負荷の
他ノードNiで継続実行する技術(特願平9−2329
30号)を用いている。
As the transfer function, the load distribution unit 5 transfers the process P being executed to another node Ni in units of service S in accordance with an instruction received from the transfer instruction unit 4 and continuously executes the process P on another node Ni with a low load. Technology (Japanese Patent Application No. 9-2329)
No. 30).

【0035】係る技術を用いる負荷分散部5は、プロセ
ス実行により更新されるプロセスファイル6の更新内容
の記録(以下、ログという)を採取して他の全ノードN
2〜Nnに分散するためのジャケットルーチン8と、ジ
ャケットルーチン8から受けたログを未確定キュー9a
として保持すると共に、チェックポイント毎に未確定キ
ュー9aを確定キュー9bとして該確定キュー9b内の
各ログに基づいてプロセスのバックアップファイル7を
更新可能なデーモン9とを備えている。
The load distribution unit 5 using this technique collects a record (hereinafter referred to as a log) of the update contents of the process file 6 updated by the execution of the process, and collects all other nodes N
The jacket routine 8 for distributing the data into 2 to Nn, and the log received from the jacket routine 8
And a daemon 9 that can update the backup file 7 of the process based on each log in the confirmed queue 9b as a confirmed queue 9b for each checkpoint.

【0036】ここで、ログは、プロセス状態を示すもの
であり、例えば、データ等のレジスタ情報及びファイル
の更新等のシステムコール発行結果が使用可能である。
チェックポイントとしては、一定時間が経過した時点、
あるいはOSのシステムコール発行コールをフェッチし
た時点が使用可能である。
Here, the log indicates a process state, and for example, register information such as data and a result of issuing a system call such as updating of a file can be used.
The checkpoints are as follows:
Alternatively, the time when the system call issuance call of the OS is fetched can be used.

【0037】次に、以上のように構成された計算機シス
テムの動作を説明する。ノードN1における負荷分散部
5のジャケットルーチン8は、図3に示すように、実行
中のプロセスP1から各ログを採取し、これら各ログを
プロセスファイルに更新記憶させると共に少なくともチ
ェックポイントCPまでに他の各ノードN2〜Nnに送
信する。各ノードN2〜Nnでは、デーモン9がこのロ
グを受けて未確定キューとして保持し、チェックポイン
トCP毎にログ内のシステムコール発行結果を反映させ
て処理を実行する。例えばシステムコール発行結果がバ
ックアップファイル7の更新を示すとき、デーモン9に
よりバックアップファイル7を更新する。
Next, the operation of the computer system configured as described above will be described. As shown in FIG. 3, the jacket routine 8 of the load distribution unit 5 in the node N1 collects each log from the running process P1, updates and stores each log in a process file, and at least stores the other logs until the checkpoint CP. To each of the nodes N2 to Nn. In each of the nodes N2 to Nn, the daemon 9 receives this log, holds it as an undetermined queue, and executes processing by reflecting the system call issuance result in the log for each checkpoint CP. For example, when the system call issuance result indicates that the backup file 7 is updated, the backup file 7 is updated by the daemon 9.

【0038】一方、ノードN1では、移動指示部4が、
定期的に負荷テーブル1の情報を監視し、一定条件(自
ノードN1の負荷が所定値を越えた時点)を満たすと、
負荷分散を開始する。
On the other hand, in the node N1, the movement instructing section 4
The information in the load table 1 is periodically monitored, and when a certain condition (when the load of the own node N1 exceeds a predetermined value) is satisfied,
Start load balancing.

【0039】すなわち、移動指示部4は、図4に示すよ
うに、一定時間スリープ(sleep) し(ST1)、しかる
後、負荷テーブル1を参照して自ノードN1の負荷状況
を調査する(ST2)。
That is, as shown in FIG. 4, the movement instructing unit 4 sleeps for a certain period of time (ST1), and then checks the load condition of the own node N1 with reference to the load table 1 (ST2). ).

【0040】この調査において、自ノードN1について
過負荷か否かを判定し(ST3)、過負荷でないときに
はステップST1へ戻る。
In this investigation, it is determined whether or not the own node N1 is overloaded (ST3). If not, the process returns to step ST1.

【0041】なお、ステップST3の判定は、メモリ負
荷の場合、前述したノードN1全体のメモリ負荷値が所
定値を越えたときに過負荷とし、CPU負荷の場合、前
述したノードN1全体のCPU負荷値が所定値を越えた
ときに過負荷とする。
It should be noted that the determination in step ST3 is that when the memory load is over, the above-mentioned memory load value of the entire node N1 exceeds a predetermined value, and the CPU load is overloaded. When the value exceeds a predetermined value, it is overloaded.

【0042】自ノードN1を過負荷と判定したとき、自
ノードN1から高負荷のサービスSを他ノードNiへの
転送対象として選択する(ST4)。
When it is determined that the own node N1 is overloaded, the high load service S from the own node N1 is selected as a transfer target to another node Ni (ST4).

【0043】続いて、最低の負荷の例えばノードN2を
選択し(ST5)、負荷テーブル1及び性能値テーブル
3を参照しつつ、サービスSを移動可能か否かを判定す
る(ST6)。
Subsequently, the node N2 having the lowest load, for example, is selected (ST5), and it is determined whether or not the service S can be moved while referring to the load table 1 and the performance value table 3 (ST6).

【0044】ステップST6の判定は、メモリ負荷と、
CPU負荷との2通りが実行される。メモリ負荷の判定
は、移動先ノードN2のメモリ性能値をMtotal とし、
移動先ノードN2で現在使用中のメモリ負荷値をMusin
g とし、移動するサービスSのメモリ負荷値をMservと
した場合、次の(1)式を満たすときに移動可能とされ
る。 Mtotal − Musing > Mserv …(1) なお、メモリ性能値はノードN2内の各メモリ容量の合
計値である。
The determination in step ST6 is based on the memory load,
CPU load is executed in two ways. The memory load is determined by setting the memory performance value of the destination node N2 to Mtotal,
Musin is the memory load value currently used in the destination node N2.
g, and the memory load value of the service S to be moved is Mserv, the movement is possible when the following expression (1) is satisfied. Mtotal-Musing> Mserv (1) The memory performance value is the total value of each memory capacity in the node N2.

【0045】次に、CPU負荷の判定は、移動先ノード
N2の現在のCPUアイドル(遊休)量を先CPUidol
とし、移動前のノードN1でのサービスSのCPU負荷
値を前CPUloadとし、移動先ノードN2のCPU性能
値を先CPUperfとし、移動前のノードN1でのCPU
性能値を前CPUperfとした場合、次の(2)式を満た
すときに移動可能とされる。
Next, the CPU load is determined by comparing the current CPU idle (idle) amount of the destination node N2 with the destination CPUidol.
The CPU load value of the service S in the node N1 before the movement is set as the previous CPUload, the CPU performance value of the destination node N2 is set as the first CPU perf, and the CPU in the node N1 before the movement is changed.
When the performance value is the previous CPU perf, the movement is possible when the following expression (2) is satisfied.

【0046】[0046]

【数1】 なお、CPUアイドル量は、新たに使用可能なCPU負
荷値を意味している。すなわち、(2)式は、右辺の移
動前のCPU負荷から換算される移動先のCPU負荷よ
りも、左辺の移動先のCPUアイドル量が大である関係
を意味している。
(Equation 1) The CPU idle amount means a newly available CPU load value. That is, equation (2) means a relationship in which the CPU idle amount of the destination on the left side is larger than the CPU load of the destination on the right side calculated from the CPU load before the movement on the right side.

【0047】また、サービス移動後の移動先ノードNi
の評価において、CPUアイドル量を後CPUidolと
し、メモリ負荷値を後Muse とした場合、各ノードN2
〜Nnのうち、次の(3)式の値が最高のノードN2
が、最低の負荷のノードN2として判定される。
The destination node Ni after the service is moved
In the evaluation of the above, when the CPU idle amount is post CPUidol and the memory load value is post Muse, each node N2
To Nn, the node N2 having the highest value of the following equation (3)
Is determined as the node N2 having the lowest load.

【0048】[0048]

【数2】 すなわち、(3)式は、サービス移動後において、CP
U負荷の余裕分と、メモリ負荷の余裕分とを合計した値
を示している。
(Equation 2) That is, equation (3) indicates that after the service transfer, the CP
The figure shows the sum of the U load allowance and the memory load allowance.

【0049】ステップST6においては、(1)式,
(2)式を共に満たした場合、すなわち、メモリ負荷及
びCPU負荷を共に移動可能と判定したときのみ、サー
ビスSを移動可能と判定し、負荷分散部5にサービス移
動の指示を出し(ST7)、ステップST1へ戻る。
In step ST6, equation (1)
Only when both the expressions (2) are satisfied, that is, when it is determined that both the memory load and the CPU load can be moved, it is determined that the service S can be moved, and a service transfer instruction is issued to the load distribution unit 5 (ST7). The process returns to step ST1.

【0050】なお、ステップ6において、高負荷のサー
ビスSを移動できないとき、中程度の負荷のサービスS
を選択し(ST8)、前述同様にサービスSを移動可能
か否かを判定する(ST9)。
In step 6, if the high-load service S cannot be moved, the medium-load service S
Is selected (ST8), and it is determined whether the service S can be moved as described above (ST9).

【0051】また、ステップST9において移動可能な
ときにはステップST7に行くが、中程度の負荷のサー
ビスSが移動不可のとき、低負荷のサービスSを選択し
(ST10)、前述同様にサービスSを移動可能か否か
を判定する(ST11)。
If it is possible to move in step ST9, the process goes to step ST7. If the service S having a medium load cannot be moved, the service S having a low load is selected (ST10), and the service S is moved as described above. It is determined whether or not it is possible (ST11).

【0052】ステップST11においても、移動可能な
ときにはステップST7に行くが、低負荷のサービスS
が移動不可のとき、ステップST1へ戻る。 (具体例1)次に、以上のような各ステップST1〜S
T11において、1つのプロセスP1のみを有する1つ
のサービスS1の移動に際し、CPU負荷のみを検討す
る場合について説明する。
Also in step ST11, when it is possible to move, the process goes to step ST7.
Returns to step ST1 when cannot be moved. (Specific Example 1) Next, each of the above steps ST1 to S1
At T11, a case will be described in which only the CPU load is considered when one service S1 having only one process P1 is moved.

【0053】具体的には、図5に示す負荷状況におい
て、ノードN1のCPU負荷値が90%を越えた際に、
サービスS1を移動させる場合の移動指示部4の動作を
述べる。
Specifically, in the load condition shown in FIG. 5, when the CPU load value of the node N1 exceeds 90%,
The operation of the movement instruction unit 4 when moving the service S1 will be described.

【0054】ステップST3において、ノードN1のC
PU負荷は、サービスS1〜S3を足して90%である
ため、ノードN1が過負荷と判定される。また、ステッ
プST4において、ノードN1で最も高負荷のサービス
S1が転送対象として選択される。
In step ST3, C of node N1
Since the PU load is 90% by adding the services S1 to S3, it is determined that the node N1 is overloaded. In step ST4, the service S1 with the highest load on the node N1 is selected as a transfer target.

【0055】次いで、ステップST5において、最低の
負荷のノードN2が選択される。例えば、サービスS1
を他ノードN2又はN3へ移動した場合を仮定し、ノー
ドN2,N3にてサービスS1を実行する場合のCPU
負荷値を試算する。その試算結果は、ノードN2が25
%(=50%*(1/200)/(1/100))であ
り、ノードN3が16%(=50%*(1/300)/
(1/100))である。
Next, in step ST5, the node N2 having the lowest load is selected. For example, service S1
Is moved to another node N2 or N3, and the CPU when the service S1 is executed in the nodes N2 and N3.
Calculate the load value. The calculation result shows that node N2 has 25
% (= 50% * (1/200) / (1/100)), and the node N3 has 16% (= 50% * (1/300) /
(1/100)).

【0056】ここで、サービスS1を移動すると、最終
的なCPU負荷値は、ノードN2では35%(=10%
+25%)となり、ノードN3では46%(=30%+
16%)となる。従って、最終的なCPU負荷値の小さ
いノードN2は、ステップST5により最低の負荷のノ
ードN2として選択され、ステップST6の(2)式に
より(先CPUidol90%>25%)移動可能と判定さ
れ、ステップST7によりサービスS1が移動される。 (具体例2)また、具体例と同一のCPU性能値におい
て、他のサービスが移動される場合について説明する。
図6に示す負荷状況において、サービスS1の移動を仮
定した場合、各ノードN2,N3の負荷は、ノードN2
が110%(=85%+25%)となり、ノードN3が
91%(=75%+16%)となる。この場合、ノード
N2,N3の負荷が高いので、サービスS1を移動でき
ない。
Here, when the service S1 is moved, the final CPU load value becomes 35% (= 10%) in the node N2.
+ 25%), and 46% (= 30% +) at the node N3.
16%). Therefore, the node N2 having the final small CPU load value is selected as the node N2 having the lowest load in step ST5, and it is determined that the node N2 can be moved (90%> 25%) in step ST6 according to the equation (2) in step ST6. The service S1 is moved by ST7. (Specific Example 2) A case where another service is moved at the same CPU performance value as that of the specific example will be described.
In the load situation shown in FIG. 6, when it is assumed that the service S1 moves, the load on each of the nodes N2 and N3 is
Becomes 110% (= 85% + 25%), and the node N3 becomes 91% (= 75% + 16%). In this case, since the load on the nodes N2 and N3 is high, the service S1 cannot be moved.

【0057】よって、中程度の負荷であるサービスS2
の移動を検討する。サービスS2を移動した場合の計算
は、ノードN2が100%(=85%+15%)とな
り、ノードN3が85%(=75%+10%)となるの
で、サービスS2をノードCへ移動させる。
Therefore, the service S2 having a medium load
Consider moving. In the calculation when the service S2 is moved, the node N2 becomes 100% (= 85% + 15%) and the node N3 becomes 85% (= 75% + 10%), so the service S2 is moved to the node C.

【0058】このように負荷が高い順から、サービスS
1,…の移動を計算し、移動可能なノードN3にサービ
スを移動させる。但し、全てのサービスS1〜S3が移
動不可能(他の全ノードN2,N3が高負荷状態)のと
き、サービスS1〜S3の移動をあきらめる。
As described above, the service S
The movement of 1,... Is calculated, and the service is moved to the movable node N3. However, when all the services S1 to S3 cannot be moved (all the other nodes N2 and N3 are in a high load state), the services S1 to S3 are given up.

【0059】このように、ノードN1では、ノードN1
自体又はプロセスPkにて障害発生あるいは高負荷の発
生により、プロセスPkの実行が困難になると、(高負
荷の発生時には予め当該プロセスPkを停止させた
後、)低負荷の例えばノードN2にプロセス移動を指示
して負荷分散を実行する。ノードN2では、プロセスの
再開を実行する。
As described above, in the node N1, the node N1
If it becomes difficult to execute the process Pk due to the occurrence of a fault or a high load in itself or the process Pk, the process is moved to a low-load node, for example, the node N2 (after the process Pk is stopped in advance when a high load occurs). And execute load distribution. In the node N2, the process is restarted.

【0060】ノードN2は、再開の実行時に、プロセス
Pkのmain(プログラムとしてのスタート)をフェッチ
し、チェックポイントCPのログからスタック積上げ/
レジスタ情報設定等を実行し、ノードN1で中止された
プロセスPkを最新のチェックポイントCP時点から再
開して実行する。
The node N2 fetches the main (start as a program) of the process Pk at the time of execution of the restart, and stacks / stacks the log from the checkpoint CP.
By executing register information setting and the like, the process Pk suspended at the node N1 is restarted from the latest checkpoint CP and executed.

【0061】上述したように本実施形態によれば、各ノ
ードN1〜Nnの現在の負荷値が記憶される負荷テーブ
ル1と、各ノードN1〜Nnの処理性能値が記憶される
性能値テーブル3とを有し、移動指示部4が、負荷テー
ブル1を参照して自ノードの過負荷を検出したとき、性
能値テーブル3を参照して負荷を増加可能な移動先ノー
ドを選択し、負荷移動指示を生成し、負荷分散部5が、
移動指示部4により生成された負荷移動指示に基づい
て、自ノードの負荷を所定単位毎に移動先ノードに移動
させるので、従来とは異なり、メモリリソースに無駄を
生じさせず、負荷集中時や分散要求時に負荷分散を実行
させることができる。
As described above, according to this embodiment, the load table 1 storing the current load values of the nodes N1 to Nn and the performance value table 3 storing the processing performance values of the nodes N1 to Nn When the movement instructing unit 4 detects an overload of the own node with reference to the load table 1, the movement instructing unit 4 selects a destination node capable of increasing the load with reference to the performance value table 3, and An instruction is generated, and the load distribution unit 5
Based on the load movement instruction generated by the movement instruction unit 4, the load of the own node is moved to the destination node for each predetermined unit. Load distribution can be executed when a distribution request is made.

【0062】また、プロセスの実行中の移動により、サ
ービスの継続性を保ちつつ、プログラミングによる負荷
分散の意識をせずに、分散ノード間での負荷分散システ
ムを構築することができる。 (第2の実施形態)次に、本発明の第2の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
Further, by moving the process during execution, it is possible to construct a load distribution system between distributed nodes without consciousness of load distribution by programming while maintaining service continuity. (Second Embodiment) Next, a description will be given of a computer system to which a load sharing method between distributed nodes according to a second embodiment of the present invention is applied.

【0063】本実施形態は、第1の実施形態中、各ノー
ドN1〜Nnの平均の負荷よりも高負荷のサービスSが
ある場合、この高負荷のサービスSのみが各ノードN1
〜Nnを順番に移動する(たらい回しされる)場合があ
ることを考慮し、このたらい回し動作の阻止を図るもの
である。
In the present embodiment, when there is a service S having a higher load than the average load of each of the nodes N1 to Nn in the first embodiment, only the service S having a higher load is applied to each node N1.
NNn are sequentially moved (turned around) in order to prevent this turning operation.

【0064】具体的には、移動指示部4は、前述した機
能に加え、図7に示すように、例えば各サービスS1〜
S9が負荷の程度に応じて配列される高、中、低の3段
階のキューQ1〜Q3を有し、各段階の負荷のサービス
を選択(ST4,8,10)する際に、各段階のキュー
の先頭にあるサービスS7(S8又はS9)を移動対象
として選択する機能と、サービスS7(S8又はS9)
が移動されたときにはこのサービスS7(S8又はS
9)を該当する段階のキューQ1(Q2又はQ3)の末
尾に接続する機能とをもっている。
More specifically, in addition to the above-described functions, the movement instructing unit 4 includes, for example, each of the services S1 to S5 as shown in FIG.
S9 has three stages of queues Q1 to Q3 of high, medium and low arranged according to the degree of load, and when selecting a service of each stage of load (ST4, 8, 10), A function of selecting the service S7 (S8 or S9) at the head of the queue as a movement target, and a function of selecting the service S7 (S8 or S9)
Is moved to the service S7 (S8 or S8).
9) is connected to the end of the queue Q1 (Q2 or Q3) at the corresponding stage.

【0065】なお、図7中のサービスSの添字及び各Q
1〜Q3内のサービスSの個数は、単なる一例であり、
適宜変更可能なことは言うまでもない。次に、以上のよ
うに構成された計算機システムの動作を説明する。な
お、この説明は、第1の実施形態と比較して述べる。
It should be noted that the suffix of the service S in FIG.
The number of services S in 1 to Q3 is merely an example,
Needless to say, it can be changed as appropriate. Next, the operation of the computer system configured as described above will be described. This description will be made in comparison with the first embodiment.

【0066】前述した第1の実施形態の場合、図5と同
一のCPU性能値のノードN1において、図8に示すC
PU負荷状況であるとする。この場合、ノードN1は、
サービスS1をノードN2に移動させる。ここで、サー
ビスS1のCPU負荷値が35%〜45%の範囲内で上
下すると、ノードN2は、サービスS1を他のノードN
3に移動させる可能性がある。また、ノードN3はサー
ビスS1をさらに他のノードN4に移動させる。以下同
様に、サービス1のみが各ノードN5〜Nnを順番に移
動する可能性がある。
In the case of the first embodiment described above, the node N1 having the same CPU performance value as that of FIG.
It is assumed that the state is a PU load state. In this case, the node N1
The service S1 is moved to the node N2. Here, when the CPU load value of the service S1 rises and falls within the range of 35% to 45%, the node N2 switches the service S1 to another node N
There is a possibility to move to 3. The node N3 moves the service S1 to another node N4. Similarly, there is a possibility that only the service 1 sequentially moves through the nodes N5 to Nn.

【0067】一方、本実施形態では、サービス選択用の
キューを設けた構成により、移動対象のサービスS1〜
S9が図9に示すようにキューQ1〜Q3に接続され
る。
On the other hand, in this embodiment, the services S1 to S1 to be moved are configured by providing a queue for service selection.
S9 is connected to queues Q1 to Q3 as shown in FIG.

【0068】ここで、ノードN1がキューQ1の先頭の
サービスS1をノードN2に移動させると、ノードN2
では、図10に示すように、このサービスS1がキュー
Q1の最後に接続される。
Here, when the node N1 moves the service S1 at the head of the queue Q1 to the node N2, the node N2
Then, as shown in FIG. 10, the service S1 is connected to the end of the queue Q1.

【0069】これにより、ノードN2がサービスSを移
動させる場合、高負荷のキューQ1の先頭であるサービ
スS6が移動対象となる。従って、第1の実施形態とは
異なり、サービスS1のみが順番に移動するたらい回し
動作を阻止することができる。
Thus, when the node N2 moves the service S, the service S6, which is the head of the high-load queue Q1, is to be moved. Therefore, unlike the first embodiment, it is possible to prevent the swirling operation in which only the service S1 moves sequentially.

【0070】上述したように本実施形態によれば、第1
の実施形態の効果に加え、あるサービス(例えば全ノー
ド中で一番負荷の高いサービス)のみがたらい回しにさ
れる動作を阻止することができる。 (第3の実施形態)次に、本発明の第3の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
As described above, according to the present embodiment, the first
In addition to the effects of the embodiment, it is possible to prevent an operation in which only a certain service (for example, a service with the highest load among all nodes) is circulated. (Third Embodiment) Next, a description will be given of a computer system to which a load sharing method between distributed nodes according to a third embodiment of the present invention is applied.

【0071】本実施形態は、第1の実施形態中、通常は
低負荷で一時的に高負荷になるが直ぐに低負荷に復帰す
るサービスSがある場合、このサービスSを移動させる
場合があることを考慮し、この一時的に高負荷となるサ
ービスSの移動の阻止を図るものである。
This embodiment is different from the first embodiment in that when there is a service S that normally temporarily becomes high at low load but temporarily returns to low load, this service S may be moved. In consideration of the above, it is intended to prevent the movement of the service S which temporarily becomes a high load.

【0072】具体的には、負荷テーブル1は、前述した
現在の負荷状況に加え、過去の負荷状況の平均値及び平
均2乗誤差が記憶されるものである。
More specifically, the load table 1 stores, in addition to the above-described current load status, an average value and a mean square error of the past load status.

【0073】負荷管理部2は、前述した機能に加え、過
去の負荷状況の平均値及び平均2乗誤差を負荷テーブル
1に書込む機能をもっている。
The load management unit 2 has a function of writing the average value and the mean square error of the past load status into the load table 1 in addition to the above-mentioned functions.

【0074】移動指示部4は、前述した機能に加え、ス
テップST4でノードが過負荷か否かを判定する際に、
現在の負荷値と負荷値の平均値とが著しく離れており、
且つ平均2乗誤差が小さいノードNを選択しない機能を
有している。
In addition to the above-described functions, the movement instructing unit 4 determines whether or not the node is overloaded in step ST4.
The current load value is significantly different from the average load value,
In addition, it has a function of not selecting a node N having a small mean square error.

【0075】次に、以上のように構成された計算機シス
テムの動作を説明する。なお、この説明は、第1の実施
形態と比較して述べる。
Next, the operation of the computer system configured as described above will be described. This description will be made in comparison with the first embodiment.

【0076】いま、図11に示すように、通常は低負荷
で一瞬だけ高負荷になるサービスS1があるとする。こ
のサービスS1は、一瞬だけ負荷が上昇したが、通常は
低負荷であるので、サービスS1を移動せずに時間の経
過を待つ方がよい。
Now, as shown in FIG. 11, it is assumed that there is a service S1 in which the load is normally low and the load is high for a moment. Although the load of the service S1 increases for a moment, the load is usually low. Therefore, it is better to wait for the passage of time without moving the service S1.

【0077】しかし、第1実施形態では、高負荷となる
時間Aにおいて、移動対象のサービスS1を選択する場
合、このサービスS1を移動対象とする可能性がある。
However, in the first embodiment, when the service S1 to be moved is selected at the time A when the load is high, there is a possibility that the service S1 is set as the movement target.

【0078】一方、本実施形態では、負荷の平均値と平
均2乗誤差とを管理する構成により、移動対象のサービ
スSkを選択する際に、現在の負荷と負荷の平均値とが
著しく離れており、且つ平均2乗誤差が小さいサービス
S1を移動対象に選択しない。
On the other hand, in the present embodiment, when the service Sk to be moved is selected, the current load and the average value of the load are significantly different from each other when the average value of the load and the average square error are managed. The service S1 which has a small mean square error is not selected as a movement target.

【0079】これにより、通常は低負荷で一時的に高負
荷となるサービスS1の移動を阻止できるので、移動に
よるオーバヘッドを抑制することができる。
Thus, it is possible to prevent the movement of the service S1, which normally has a low load and temporarily becomes a high load, so that the overhead due to the movement can be suppressed.

【0080】上述したように本実施形態によれば、第1
の実施形態の効果に加え、通常は低負荷値で一時的に高
負荷値となる負荷の移動を阻止できるので、移動による
オーバヘッドを抑制することができる。 (第4の実施形態)次に、本発明の第4の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
As described above, according to the present embodiment, the first
In addition to the effects of the first embodiment, it is possible to prevent the movement of the load, which normally has a low load value and temporarily becomes a high load value, so that the overhead due to the movement can be suppressed. (Fourth Embodiment) Next, a description will be given of a computer system to which a load sharing method between distributed nodes according to a fourth embodiment of the present invention is applied.

【0081】本実施形態は、第1の実施形態中、多数の
ノードN1〜Nnを有する計算機システムの場合、最低
の負荷をもつノードNiを選択する際に、ノード数nに
比例してノードN1〜Nnの負荷を算出する処理のオー
バヘッドを増大させることを考慮し、このオーバヘッド
の抑制を図るものである。
In this embodiment, in the case of the computer system having a large number of nodes N1 to Nn in the first embodiment, when selecting the node Ni having the lowest load, the node N1 is proportional to the node number n. This overhead is to be suppressed in consideration of increasing the overhead of the process of calculating the loads N to Nn.

【0082】具体的には、移動指示部4は、前述した機
能に加え、移動対象の例えばノードN1〜N4を順番に
配列したキューQmを有し、前述したステップST5に
よるノード選択の際に、最低の負荷のノードN2を選択
するのではなく、キューQmの先頭にあるノードNsを
移動先として選択する機能と、キューQmの先頭のノー
ドNにサービスSを移動可能なとき、サービスSをその
先頭のノードNに移動させる機能と、サービスSを移動
させたノードNをキューQmの末尾に接続する機能とを
有している。
More specifically, the movement instructing section 4 has a queue Qm in which, for example, nodes N1 to N4 to be moved are arranged in order in addition to the above-described functions. A function of selecting the node Ns at the head of the queue Qm as a destination, instead of selecting the node N2 with the lowest load, and when the service S can be moved to the node N at the head of the queue Qm, the service S is It has a function to move to the head node N and a function to connect the node N to which the service S has moved to the end of the queue Qm.

【0083】次に、以上のように構成された計算機シス
テムの動作を説明する。
Next, the operation of the computer system configured as described above will be described.

【0084】本実施形態では、ノード選択用のキューQ
を設けた構成により、移動先の候補としてノードN1〜
Nxが待ち行列に接続される。
In this embodiment, the queue Q for node selection
, The nodes N1 to N1
Nx is connected to the queue.

【0085】例えば、ノードN1→ノードN2→ノード
N3→ノードN4というキューQmがあり、ノードN2
から高負荷のサービスS1をノードN1に移動するとす
る。
For example, there is a queue Qm of node N 1 → node N 2 → node N 3 → node N 4.
From the server S1 to the node N1.

【0086】ここで、移動指示部4は、ノード選択の際
に、キューQmの先頭にあるノードN1を移動先として
選択し、そのノードN1の負荷を算出してそのノードN
1にサービスSを移動可能なとき、サービスSをそのノ
ードN1に移動させる。
Here, at the time of selecting a node, the movement instructing section 4 selects the node N1 at the head of the queue Qm as a movement destination, calculates the load on the node N1, and calculates the load on the node N1.
When the service S can be moved to the node N1, the service S is moved to the node N1.

【0087】また、移動指示部4は、サービスSの移動
により負荷の増えたノードN1をキューQmの末尾に接
続する一方、サービスSを移動して負荷の減ったノード
N2をキューQmの先頭に接続する。サービス移動後の
キューQmの状態は、ノードN1→ノードN3→ノード
N4→ノードN2のようになる。
The movement instructing unit 4 connects the node N1 whose load has increased due to the movement of the service S to the tail of the queue Qm, and moves the node N2 whose load has decreased by moving the service S to the head of the queue Qm. Connecting. The state of the queue Qm after the service transfer is as follows: node N1 → node N3 → node N4 → node N2.

【0088】このように、負荷を移動したノードがキュ
ーの先頭へ接続され、負荷の移動されたノードはキュー
の最後に接続されることにより、低負荷のノードがキュ
ーQmの先頭へ配置され、高負荷のノードがキューQm
の後半に配置される。
As described above, the node having moved the load is connected to the head of the queue, and the node having moved the load is connected to the end of the queue. High load node is queue Qm
Placed in the second half.

【0089】従って、次回、負荷移動先を算出する場合
もキューQmの先頭からのヒット率が高くなり、全ノー
ドN1〜Nnの負荷を算出する場合に比べ、オーバヘッ
ドを抑制することができる。
Therefore, the next time the load destination is calculated, the hit rate from the head of the queue Qm becomes higher, and the overhead can be suppressed as compared with the case where the loads of all the nodes N1 to Nn are calculated.

【0090】上述したように本実施形態によれば、第1
の実施形態の効果に加え、ノードN2がサービスSの移
動先を選択する際に、他の全ノードN1,N3〜Nnの
うち、一部のノードを検索すればよいので、サービス移
動のオーバヘッドを抑制することができる。
As described above, according to the present embodiment, the first
In addition to the effects of the embodiment, when the node N2 selects the destination of the service S, it is only necessary to search some of the other nodes N1, N3 to Nn. Can be suppressed.

【0091】なお、上記各第2〜第4の実施形態は、第
1の実施形態に個別に適用した場合を説明したが、これ
に限らず、適宜組合せて同時に適用する構成としても、
本発明を同様に実施して同様の効果を得ることができ
る。
Although the above-described second to fourth embodiments have been described with respect to the case where they are individually applied to the first embodiment, the present invention is not limited to this.
The present invention can be implemented in a similar manner to obtain similar effects.

【0092】また、上記実施形態に記載した手法は、コ
ンピュータに実行させることのできるプログラムとし
て、磁気ディスク(フロッピーディスク、ハードディス
クなど)、光ディスク(CD−ROM、DVDなど)、
光磁気ディスク(MO)、半導体メモリなどの記憶媒体
に格納して頒布することもできる。
The method described in the above embodiment can be executed by a computer as a program such as a magnetic disk (floppy disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.),
It can also be stored in a storage medium such as a magneto-optical disk (MO) or a semiconductor memory and distributed.

【0093】その他、本発明はその要旨を逸脱しない範
囲で種々変形して実施できる。
In addition, the present invention can be variously modified and implemented without departing from the gist thereof.

【0094】[0094]

【発明の効果】以上説明したように本発明によれば、メ
モリリソースに無駄を生じさせず、負荷集中時や分散要
求時に負荷分散を実行できる分散ノード間負荷分散方式
を提供できる。
As described above, according to the present invention, it is possible to provide a load distribution method between distributed nodes which can execute load distribution at the time of load concentration or distribution request without wasting memory resources.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施形態に係る分散ノード間負
荷分散方式の適用された計算機システムの構成を示す模
式図
FIG. 1 is a schematic diagram illustrating a configuration of a computer system to which a load distribution method between distributed nodes according to a first embodiment of the present invention is applied;

【図2】同実施形態における負荷テーブルの構成を示す
模式図
FIG. 2 is a schematic diagram showing a configuration of a load table according to the embodiment;

【図3】同実施形態における動作を説明するための模式
FIG. 3 is a schematic diagram for explaining the operation in the embodiment.

【図4】同実施形態における移動指示部の動作を説明す
るためのフローチャート
FIG. 4 is a flowchart for explaining the operation of a movement instruction unit according to the embodiment;

【図5】同実施形態における動作を説明するための負荷
状況を示す模式図
FIG. 5 is a schematic diagram showing a load state for explaining an operation in the embodiment.

【図6】同実施形態における動作を説明するための負荷
状況を示す模式図
FIG. 6 is a schematic diagram showing a load state for explaining an operation in the embodiment.

【図7】本発明の第2の実施形態に係る分散ノード間負
荷分散方式に用いられるキューの内容を示す模式図
FIG. 7 is a schematic diagram showing the contents of a queue used in a distributed node load distribution method according to the second embodiment of the present invention;

【図8】同実施形態における動作を説明するための負荷
状況を示す模式図
FIG. 8 is a schematic diagram showing a load state for explaining an operation in the embodiment.

【図9】同実施形態における動作を説明するためのキュ
ーの内容を示す模式図
FIG. 9 is a schematic diagram showing the contents of a queue for explaining the operation in the embodiment;

【図10】同実施形態における動作を説明するためのキ
ューの内容を示す模式図
FIG. 10 is a schematic diagram showing the contents of a queue for explaining the operation in the embodiment;

【図11】本発明の第3の実施形態に係る分散ノード間
負荷分散方式を説明するためのサービスの負荷値を示す
模式図
FIG. 11 is a schematic diagram showing load values of services for explaining a load distribution method between distributed nodes according to the third embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1…負荷テーブル 2…負荷管理部 3…性能値テーブル 4…移動指示部 5…負荷分散部 6…プロセスファイル 7…バックアップファイル 8…ジャケットルーチン 9…デーモン 9a…未確定キュー 9b…確定キュー N1〜Nn…ノード P1〜Pm…プロセス DESCRIPTION OF SYMBOLS 1 ... Load table 2 ... Load management part 3 ... Performance value table 4 ... Movement instruction part 5 ... Load distribution part 6 ... Process file 7 ... Backup file 8 ... Jacket routine 9 ... Daemon 9a ... Undetermined queue 9b ... Confirmed queue N1 Nn: nodes P1 to Pm: process

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 分散配置された複数のノードが互いに接
続され、前記各ノードの有する負荷を各ノード間で分散
させるための分散ノード間負荷分散方式であって、 前記各ノードの現在の負荷値が記憶される負荷記憶手段
と、 前記各ノードの処理性能値が記憶される性能値記憶手段
と、 前記負荷記憶手段を参照して自ノードの過負荷を検出し
たとき、前記性能値記憶手段を参照して負荷を増加可能
な移動先ノードを選択し、負荷移動指示を生成する移動
指示手段と、 前記移動指示手段により生成された負荷移動指示に基づ
いて、自ノードの負荷を所定単位毎に前記移動先ノード
に移動させる負荷分散手段と を備えたことを特徴とする分散ノード間負荷分散方式。
1. A distributed node-to-node load distribution method for interconnecting a plurality of nodes arranged in a distributed manner and distributing a load of each node among the nodes, wherein a current load value of each node is provided. A load value storing means for storing the processing performance value of each node; and a performance value storing means for detecting an overload of the own node by referring to the load storing means. A transfer instruction unit for generating a load transfer instruction by selecting a destination node capable of increasing the load by referring to the destination node; And a load balancing means for moving the load to the destination node.
【請求項2】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、予め複数の度合のいずれかに負荷
が分類され、前記各度合毎に、移動対象の負荷が先頭に
あり、移動された負荷が末尾に接続されるキューを備え
たことを特徴とする分散ノード間負荷分散方式。
2. The load distribution method between distributed nodes according to claim 1, wherein the movement instructing means classifies the load into one of a plurality of degrees in advance, and for each of the degrees, a load to be moved is a top load. Characterized in that the distributed load is provided with a queue connected to the end of the load.
【請求項3】 請求項1に記載の分散ノード間負荷分散
方式において、 前記負荷テーブルは、前記各負荷値と、前記各負荷値に
おける時系列的な平均値と、前記各負荷値の平均2乗誤
差とが記憶されており、 前記移動指示手段は、前記自ノードの過負荷を検出した
とき、前記負荷テーブル内の平均値及び平均2乗誤差に
基づいて、現在の負荷値と前記平均値とが所定値以上離
れており、且つ前記平均2乗誤差の小さい負荷を移動対
象に選択しないことを特徴とする分散ノード間負荷分散
方式。
3. The load distribution method between distributed nodes according to claim 1, wherein the load table is configured to store the load values, a time-series average value of the load values, and an average of the load values. And the movement instructing means detects a current load value and the average value based on an average value and an average square error in the load table when the overload of the own node is detected. And a load having a small mean square error is not selected as a movement target.
【請求項4】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、移動先対象のノードが先頭にあ
り、移動先にされたノードが末尾に接続されるキューを
備えたことを特徴とする分散ノード間負荷分散方式。
4. The load balancing method between distributed nodes according to claim 1, wherein the movement instructing means includes a queue in which a destination target node is at the head and a destination node is connected at the end. A load distribution method between distributed nodes.
【請求項5】 請求項1に記載の分散ノード間負荷分散
方式において、 前記負荷テーブルは、前記負荷値がプロセス毎に記憶さ
れ、且つ1個以上のプロセスからなる集合が前記所定単
位として登録されていることを特徴とする分散ノード間
負荷分散方式。
5. The load distribution method between distributed nodes according to claim 1, wherein in the load table, the load value is stored for each process, and a set of one or more processes is registered as the predetermined unit. A load sharing method between distributed nodes.
【請求項6】 請求項1に記載の分散ノード間負荷分散
方式において、 前記性能値テーブルは、MIPS(100万命令/秒)
に基づいた前記処理性能値が記憶されることを特徴とす
る分散ノード間負荷分散方式。
6. The distributed load between distributed nodes according to claim 1, wherein the performance value table is MIPS (1 million instructions / second).
A load distribution method between distributed nodes, characterized in that the processing performance value based on the storage performance is stored.
【請求項7】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、自ノードにおける移動対象の負荷
の負荷値、前記移動先ノードの処理性能値及び前記自ノ
ードの処理性能値に基づいて、前記移動対象の負荷を移
動した場合に前記移動先ノードで増加する負荷値を算出
し、前記増加する負荷値が前記移動先ノードでのCPU
のアイドル量よりも小のとき、前記負荷移動指示を生成
することを特徴とする分散ノード間負荷分散方式。
7. The load distribution method between distributed nodes according to claim 1, wherein the movement instructing means includes a load value of a load to be moved in the own node, a processing performance value of the destination node, and a processing of the own node. Calculating, based on the performance value, a load value that increases at the destination node when the load of the migration target is moved, and the increased load value is determined by the CPU at the destination node;
Wherein the load transfer instruction is generated when the load amount is smaller than the idle amount of the load.
【請求項8】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、予め高負荷、中負荷又は小負荷の
いずれかの度合に負荷が分類され、前記各度合毎に、移
動対象の負荷が先頭にあり、移動された負荷が末尾に接
続されるキューを備えたことを特徴とする分散ノード間
負荷分散方式。
8. The load distribution method between distributed nodes according to claim 1, wherein the movement instructing means classifies the load in advance into one of a high load, a medium load, and a small load, and A load to be moved is at the top, and a queue to which the moved load is connected at the end is provided.
JP10311316A 1998-10-30 1998-10-30 Inter-distributed node load distribution system Pending JP2000137692A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10311316A JP2000137692A (en) 1998-10-30 1998-10-30 Inter-distributed node load distribution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10311316A JP2000137692A (en) 1998-10-30 1998-10-30 Inter-distributed node load distribution system

Publications (1)

Publication Number Publication Date
JP2000137692A true JP2000137692A (en) 2000-05-16

Family

ID=18015677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10311316A Pending JP2000137692A (en) 1998-10-30 1998-10-30 Inter-distributed node load distribution system

Country Status (1)

Country Link
JP (1) JP2000137692A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005031771A (en) * 2003-07-08 2005-02-03 Hitachi Ltd Job scheduling management method, system, and program
JP2006252111A (en) * 2005-03-10 2006-09-21 Hitachi Ltd Information processing system and method
JP2007200294A (en) * 2006-01-25 2007-08-09 Internatl Business Mach Corp <Ibm> System and method for rearranging active application to computer positioned in topologically remote location
JP2008299509A (en) * 2007-05-30 2008-12-11 Hitachi Ltd Virtual computer system
WO2009060530A1 (en) * 2007-11-09 2009-05-14 Fujitsu Limited Network processing control device, program, and method
US7574708B2 (en) 2004-03-04 2009-08-11 International Business Machines Corporation Mechanism for enabling the distribution of operating system resources in a multi-node computer system
JP2009244999A (en) * 2008-03-28 2009-10-22 Fujitsu Ltd Virtual machine management program and management server device
US7668935B2 (en) 2003-08-29 2010-02-23 Kabushiki Kaisha Toshiba Computer system and method for service load distributing
US20120016994A1 (en) * 2009-03-03 2012-01-19 Hitachi, Ltd. Distributed system
US8312462B2 (en) 2004-03-04 2012-11-13 International Business Machines Corporation Reducing remote memory accesses to shared data in a multi-nodal computer system
JP2013090072A (en) * 2011-10-17 2013-05-13 Hitachi Ltd Service provision system
WO2014024612A1 (en) * 2012-08-06 2014-02-13 日本電気株式会社 Computer network system and method for determining need for load movement upon computer network system
US9037888B2 (en) 2010-03-31 2015-05-19 Fujitsu Limited Multi-core processor system, electrical power control method, and computer product for migrating process from one core to another
JP2015194810A (en) * 2014-03-31 2015-11-05 富士通株式会社 Scale-out method, system, information processor, management device, and program
US10165045B2 (en) 2015-05-20 2018-12-25 Fujitsu Limited Information processing apparatus, system, method, and computer readable medium
JP2019040343A (en) * 2017-08-24 2019-03-14 富士通株式会社 Information processing apparatus, process management method, and process management program

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721290B2 (en) 2003-07-08 2010-05-18 Hitachi, Ltd. Job scheduling management method using system resources, and a system and recording medium for implementing the method
JP2005031771A (en) * 2003-07-08 2005-02-03 Hitachi Ltd Job scheduling management method, system, and program
US7668935B2 (en) 2003-08-29 2010-02-23 Kabushiki Kaisha Toshiba Computer system and method for service load distributing
US8312462B2 (en) 2004-03-04 2012-11-13 International Business Machines Corporation Reducing remote memory accesses to shared data in a multi-nodal computer system
US7574708B2 (en) 2004-03-04 2009-08-11 International Business Machines Corporation Mechanism for enabling the distribution of operating system resources in a multi-node computer system
JP2006252111A (en) * 2005-03-10 2006-09-21 Hitachi Ltd Information processing system and method
JP2007200294A (en) * 2006-01-25 2007-08-09 Internatl Business Mach Corp <Ibm> System and method for rearranging active application to computer positioned in topologically remote location
JP2008299509A (en) * 2007-05-30 2008-12-11 Hitachi Ltd Virtual computer system
US8032679B2 (en) 2007-11-09 2011-10-04 Fujitsu Limited Device and method for controlling network processing mode, and non-transitory computer-readable medium recording program for controlling network processing mode
WO2009060530A1 (en) * 2007-11-09 2009-05-14 Fujitsu Limited Network processing control device, program, and method
JP4747307B2 (en) * 2007-11-09 2011-08-17 富士通株式会社 Network processing control device, program, and method
JP2009244999A (en) * 2008-03-28 2009-10-22 Fujitsu Ltd Virtual machine management program and management server device
US8448168B2 (en) 2008-03-28 2013-05-21 Fujitsu Limited Recording medium having virtual machine managing program recorded therein and managing server device
US20120016994A1 (en) * 2009-03-03 2012-01-19 Hitachi, Ltd. Distributed system
US9037888B2 (en) 2010-03-31 2015-05-19 Fujitsu Limited Multi-core processor system, electrical power control method, and computer product for migrating process from one core to another
JP2013090072A (en) * 2011-10-17 2013-05-13 Hitachi Ltd Service provision system
WO2014024612A1 (en) * 2012-08-06 2014-02-13 日本電気株式会社 Computer network system and method for determining need for load movement upon computer network system
US9712609B2 (en) 2012-08-06 2017-07-18 Nec Corporation Computer network system and method of determining necessity of transferring load in computer network system
JP2015194810A (en) * 2014-03-31 2015-11-05 富士通株式会社 Scale-out method, system, information processor, management device, and program
US10165045B2 (en) 2015-05-20 2018-12-25 Fujitsu Limited Information processing apparatus, system, method, and computer readable medium
JP2019040343A (en) * 2017-08-24 2019-03-14 富士通株式会社 Information processing apparatus, process management method, and process management program
JP7007557B2 (en) 2017-08-24 2022-01-24 富士通株式会社 Information processing equipment, process management method and process management program

Similar Documents

Publication Publication Date Title
CN109923523B (en) Computer system and method for computer system
JP2000137692A (en) Inter-distributed node load distribution system
EP2437168B1 (en) Method and device for balancing load of multiprocessor system
JP4920391B2 (en) Computer system management method, management server, computer system and program
US20130061071A1 (en) Energy Efficient Implementation Of Read-Copy Update For Light Workloads Running On Systems With Many Processors
US9389925B2 (en) Achieving low grace period latencies despite energy efficiency
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
US8996811B2 (en) Scheduler, multi-core processor system, and scheduling method
US20040002974A1 (en) Thread based lock manager
JP3969089B2 (en) Hierarchical server system
JPH10187638A (en) Cluster control system
JP2016526735A (en) Virtual hadoop manager
JP5347451B2 (en) Multiprocessor system, conflict avoidance program, and conflict avoidance method
JPH0954754A (en) Customer-information control system and method in loosely-coupled parallel processing environment
TW200422859A (en) Automated power control policies based on application-specific redundancy characteristics
WO2018018611A1 (en) Task processing method and network card
CN110190991B (en) Fault tolerance method of distributed stream processing system under multi-application scene
CN114064414A (en) High-availability cluster state monitoring method and system
JPH0950418A (en) System and method for control of customer information with temporary storage queuing function in loosely-coupled parallel processing environment
JPH0962635A (en) Customer information control system and method having transaction-serialization control function in loosely-coupled parallel processing environment
JP6556726B2 (en) System and method for supporting adaptive busy weight in a computing environment
JPH0944461A (en) System and method for control of customer information with api start and cancel transaction function in loosely-coupledparallel processing environment
US6990608B2 (en) Method for handling node failures and reloads in a fault tolerant clustered database supporting transaction registration and fault-in logic
Khaneghah et al. An efficient live process migration approach for high performance cluster computing systems
Sun et al. Adaptive trade‐off between consistency and performance in data replication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070327