JP2000137692A - 分散ノード間負荷分散方式 - Google Patents
分散ノード間負荷分散方式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
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 本発明は、メモリリソースに無駄を生じさせ
ず、負荷集中時や分散要求時に負荷分散の実行を図る。 【解決手段】 各ノードN1〜Nnの現在の負荷値が記
憶される負荷テーブル1と、各ノードN1〜Nnの処理
性能値が記憶される性能値テーブル3とを有し、移動指
示部4が、負荷テーブル1を参照して自ノードの過負荷
を検出したとき、性能値テーブル3を参照して負荷を増
加可能な移動先ノードを選択し、負荷移動指示を生成
し、負荷分散部5が、移動指示部4により生成された負
荷移動指示に基づいて、自ノードの負荷を所定単位毎に
移動先ノードに移動させる分散ノード間負荷分散方式。
ず、負荷集中時や分散要求時に負荷分散の実行を図る。 【解決手段】 各ノードN1〜Nnの現在の負荷値が記
憶される負荷テーブル1と、各ノードN1〜Nnの処理
性能値が記憶される性能値テーブル3とを有し、移動指
示部4が、負荷テーブル1を参照して自ノードの過負荷
を検出したとき、性能値テーブル3を参照して負荷を増
加可能な移動先ノードを選択し、負荷移動指示を生成
し、負荷分散部5が、移動指示部4により生成された負
荷移動指示に基づいて、自ノードの負荷を所定単位毎に
移動先ノードに移動させる分散ノード間負荷分散方式。
Description
【0001】
【発明の属する技術分野】本発明は、分散ノードコンピ
ューティング環境における分散ノード間負荷分散方式に
関する。
ューティング環境における分散ノード間負荷分散方式に
関する。
【0002】
【従来の技術】一般に、複数のノードが分散配置された
分散ノード間では、複数のプロセス(サービス)を実行
しつつ各ノードの負荷分散を行なう際の分散ノード間負
荷分散方式が知られている。
分散ノード間では、複数のプロセス(サービス)を実行
しつつ各ノードの負荷分散を行なう際の分散ノード間負
荷分散方式が知られている。
【0003】この種の分散ノード間負荷分散方式として
は、例えば、RPC(リモートプロシージャコール)に
よるRPCサーバの分散方式がある。このRPCサーバ
の分散方式は、予め負荷分散用に全サーバにRPCサー
バを立上げておき、全サーバに負荷を分散する方式であ
る。また、分散ノード間負荷分散方式には、予めプロセ
ス立上げ時に各サーバに負荷を分散する方式もある。
は、例えば、RPC(リモートプロシージャコール)に
よるRPCサーバの分散方式がある。このRPCサーバ
の分散方式は、予め負荷分散用に全サーバにRPCサー
バを立上げておき、全サーバに負荷を分散する方式であ
る。また、分散ノード間負荷分散方式には、予めプロセ
ス立上げ時に各サーバに負荷を分散する方式もある。
【0004】
【発明が解決しようとする課題】しかしながら以上のよ
うな分散ノード間負荷分散方式では、例えばRPCサー
バの分散方式の場合、予め負荷分散用に全サーバにRP
Cサーバを立上げる必要があるので、メモリリソースに
無駄を生じさせる問題があり、また、負荷集中時又は分
散要求時に負荷を分散し得ない問題がある。
うな分散ノード間負荷分散方式では、例えばRPCサー
バの分散方式の場合、予め負荷分散用に全サーバにRP
Cサーバを立上げる必要があるので、メモリリソースに
無駄を生じさせる問題があり、また、負荷集中時又は分
散要求時に負荷を分散し得ない問題がある。
【0005】一方、プロセス立上げ時の分散方式の場
合、負荷の集中したサーバに新たな負荷をかけないもの
の、この負荷の集中したサーバの負荷を分散し得ない問
題がある。
合、負荷の集中したサーバに新たな負荷をかけないもの
の、この負荷の集中したサーバの負荷を分散し得ない問
題がある。
【0006】本発明は上記実情を考慮してなされたもの
で、メモリリソースに無駄を生じさせず、負荷集中時や
分散要求時に負荷分散を実行し得る分散ノード間負荷分
散方式を提供することを目的とする。
で、メモリリソースに無駄を生じさせず、負荷集中時や
分散要求時に負荷分散を実行し得る分散ノード間負荷分
散方式を提供することを目的とする。
【0007】
【課題を解決するための手段】請求項1に対応する発明
は、分散配置された複数のノードが互いに接続され、前
記各ノードの有する負荷を各ノード間で分散させるため
の分散ノード間負荷分散方式であって、前記各ノードの
現在の負荷値が記憶される負荷記憶手段と、前記各ノー
ドの処理性能値が記憶される性能値記憶手段と、前記負
荷記憶手段を参照して自ノードの過負荷を検出したと
き、前記性能値記憶手段を参照して負荷を増加可能な移
動先ノードを選択し、負荷移動指示を生成する移動指示
手段と、前記移動指示手段により生成された負荷移動指
示に基づいて、自ノードの負荷を所定単位毎に前記移動
先ノードに移動させる負荷分散手段とを備えた分散ノー
ド間負荷分散方式である。
は、分散配置された複数のノードが互いに接続され、前
記各ノードの有する負荷を各ノード間で分散させるため
の分散ノード間負荷分散方式であって、前記各ノードの
現在の負荷値が記憶される負荷記憶手段と、前記各ノー
ドの処理性能値が記憶される性能値記憶手段と、前記負
荷記憶手段を参照して自ノードの過負荷を検出したと
き、前記性能値記憶手段を参照して負荷を増加可能な移
動先ノードを選択し、負荷移動指示を生成する移動指示
手段と、前記移動指示手段により生成された負荷移動指
示に基づいて、自ノードの負荷を所定単位毎に前記移動
先ノードに移動させる負荷分散手段とを備えた分散ノー
ド間負荷分散方式である。
【0008】また、請求項2に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、予め複数の度合のいずれかに負
荷が分類され、前記各度合毎に、移動対象の負荷が先頭
にあり、移動された負荷が末尾に接続されるキューを備
えた分散ノード間負荷分散方式である。
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、予め複数の度合のいずれかに負
荷が分類され、前記各度合毎に、移動対象の負荷が先頭
にあり、移動された負荷が末尾に接続されるキューを備
えた分散ノード間負荷分散方式である。
【0009】さらに、請求項3に対応する発明は、請求
項1に対応する分散ノード間負荷分散方式において、前
記負荷テーブルとしては、前記各負荷値と、前記各負荷
値における時系列的な平均値と、前記各負荷値の平均2
乗誤差とが記憶されており、前記移動指示手段として
は、前記自ノードの過負荷を検出したとき、前記負荷テ
ーブル内の平均値及び平均2乗誤差に基づいて、現在の
負荷値と前記平均値とが所定値以上離れており、且つ前
記平均2乗誤差の小さい負荷を移動対象に選択しない分
散ノード間負荷分散方式である。
項1に対応する分散ノード間負荷分散方式において、前
記負荷テーブルとしては、前記各負荷値と、前記各負荷
値における時系列的な平均値と、前記各負荷値の平均2
乗誤差とが記憶されており、前記移動指示手段として
は、前記自ノードの過負荷を検出したとき、前記負荷テ
ーブル内の平均値及び平均2乗誤差に基づいて、現在の
負荷値と前記平均値とが所定値以上離れており、且つ前
記平均2乗誤差の小さい負荷を移動対象に選択しない分
散ノード間負荷分散方式である。
【0010】また、請求項4に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、移動先対象のノードが先頭にあ
り、移動先にされたノードが末尾に接続されるキューを
備えた分散ノード間負荷分散方式である。
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、移動先対象のノードが先頭にあ
り、移動先にされたノードが末尾に接続されるキューを
備えた分散ノード間負荷分散方式である。
【0011】さらに、請求項5に対応する発明は、請求
項1に対応する分散ノード間負荷分散方式において、前
記負荷テーブルとしては、前記負荷値がプロセス毎に記
憶され、且つ1個以上のプロセスからなる集合が前記所
定単位として登録されている分散ノード間負荷分散方式
である。
項1に対応する分散ノード間負荷分散方式において、前
記負荷テーブルとしては、前記負荷値がプロセス毎に記
憶され、且つ1個以上のプロセスからなる集合が前記所
定単位として登録されている分散ノード間負荷分散方式
である。
【0012】また、請求項6に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
性能値テーブルとしては、MIPS(100万命令/
秒)に基づいた前記処理性能値が記憶される分散ノード
間負荷分散方式である。
1に対応する分散ノード間負荷分散方式において、前記
性能値テーブルとしては、MIPS(100万命令/
秒)に基づいた前記処理性能値が記憶される分散ノード
間負荷分散方式である。
【0013】さらに、請求項7に対応する発明は、請求
項1に対応する分散ノード間負荷分散方式において、前
記移動指示手段としては、自ノードにおける移動対象の
負荷の負荷値、前記移動先ノードの処理性能値及び前記
自ノードの処理性能値に基づいて、前記移動対象の負荷
を移動した場合に前記移動先ノードで増加する負荷値を
算出し、前記増加する負荷値が前記移動先ノードでのC
PUのアイドル量よりも小のとき、前記負荷移動指示を
生成する分散ノード間負荷分散方式である。
項1に対応する分散ノード間負荷分散方式において、前
記移動指示手段としては、自ノードにおける移動対象の
負荷の負荷値、前記移動先ノードの処理性能値及び前記
自ノードの処理性能値に基づいて、前記移動対象の負荷
を移動した場合に前記移動先ノードで増加する負荷値を
算出し、前記増加する負荷値が前記移動先ノードでのC
PUのアイドル量よりも小のとき、前記負荷移動指示を
生成する分散ノード間負荷分散方式である。
【0014】また、請求項8に対応する発明は、請求項
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、予め高負荷、中負荷又は小負荷
のいずれかの度合に負荷が分類され、前記各度合毎に、
移動対象の負荷が先頭にあり、移動された負荷が末尾に
接続されるキューを備えた分散ノード間負荷分散方式で
ある。 (作用)従って、請求項1に対応する発明は以上のよう
な手段を講じたことにより、各ノードの現在の負荷値が
記憶される負荷記憶手段と、各ノードの処理性能値が記
憶される性能値記憶手段とを有し、移動指示手段が、負
荷記憶手段を参照して自ノードの過負荷を検出したと
き、性能値記憶手段を参照して負荷を増加可能な移動先
ノードを選択し、負荷移動指示を生成し、負荷分散手段
が、移動指示手段により生成された負荷移動指示に基づ
いて、自ノードの負荷を所定単位毎に移動先ノードに移
動させるので、従来とは異なり、メモリリソースに無駄
を生じさせず、負荷集中時や分散要求時に負荷分散を実
行させることができる。
1に対応する分散ノード間負荷分散方式において、前記
移動指示手段としては、予め高負荷、中負荷又は小負荷
のいずれかの度合に負荷が分類され、前記各度合毎に、
移動対象の負荷が先頭にあり、移動された負荷が末尾に
接続されるキューを備えた分散ノード間負荷分散方式で
ある。 (作用)従って、請求項1に対応する発明は以上のよう
な手段を講じたことにより、各ノードの現在の負荷値が
記憶される負荷記憶手段と、各ノードの処理性能値が記
憶される性能値記憶手段とを有し、移動指示手段が、負
荷記憶手段を参照して自ノードの過負荷を検出したと
き、性能値記憶手段を参照して負荷を増加可能な移動先
ノードを選択し、負荷移動指示を生成し、負荷分散手段
が、移動指示手段により生成された負荷移動指示に基づ
いて、自ノードの負荷を所定単位毎に移動先ノードに移
動させるので、従来とは異なり、メモリリソースに無駄
を生じさせず、負荷集中時や分散要求時に負荷分散を実
行させることができる。
【0015】また、請求項2に対応する発明は、移動指
示手段としては、予め複数の度合のいずれかに負荷が分
類され、各度合毎に、移動対象の負荷が先頭にあり、移
動された負荷が末尾に接続されるキューを備えたので、
請求項1に対応する作用に加え、特定の負荷のみが順番
に移動するたらい回し動作を阻止することができる。
示手段としては、予め複数の度合のいずれかに負荷が分
類され、各度合毎に、移動対象の負荷が先頭にあり、移
動された負荷が末尾に接続されるキューを備えたので、
請求項1に対応する作用に加え、特定の負荷のみが順番
に移動するたらい回し動作を阻止することができる。
【0016】さらに、請求項3に対応する発明は、負荷
テーブルとしては、各負荷値と、各負荷値における時系
列的な平均値と、各負荷値の平均2乗誤差とが記憶され
ており、移動指示手段としては、自ノードの過負荷を検
出したとき、負荷テーブル内の平均値及び平均2乗誤差
に基づいて、現在の負荷値と平均値とが所定値以上離れ
ており、且つ平均2乗誤差の小さい負荷を移動対象に選
択しない。
テーブルとしては、各負荷値と、各負荷値における時系
列的な平均値と、各負荷値の平均2乗誤差とが記憶され
ており、移動指示手段としては、自ノードの過負荷を検
出したとき、負荷テーブル内の平均値及び平均2乗誤差
に基づいて、現在の負荷値と平均値とが所定値以上離れ
ており、且つ平均2乗誤差の小さい負荷を移動対象に選
択しない。
【0017】これにより、請求項1に対応する作用に加
え、通常は低負荷値で一時的に高負荷値となる負荷の移
動を阻止できるので、移動によるオーバヘッドを抑制す
ることができる。
え、通常は低負荷値で一時的に高負荷値となる負荷の移
動を阻止できるので、移動によるオーバヘッドを抑制す
ることができる。
【0018】また、請求項4に対応する発明は、移動指
示手段としては、移動先対象のノードが先頭にあり、移
動先にされたノードが末尾に接続されるキューを備えた
ので、請求項1に対応する作用に加え、負荷の移動先を
選択する際に、他の全ノードのうち、一部のノードを検
索すればよいので、サービス移動のオーバヘッドを抑制
することができる。
示手段としては、移動先対象のノードが先頭にあり、移
動先にされたノードが末尾に接続されるキューを備えた
ので、請求項1に対応する作用に加え、負荷の移動先を
選択する際に、他の全ノードのうち、一部のノードを検
索すればよいので、サービス移動のオーバヘッドを抑制
することができる。
【0019】さらに、請求項5に対応する発明は、負荷
テーブルとしては、負荷値がプロセス毎に記憶され、且
つ1個以上のプロセスからなる集合が所定単位として登
録されているので、請求項1に対応する作用を容易且つ
確実に奏することができる。
テーブルとしては、負荷値がプロセス毎に記憶され、且
つ1個以上のプロセスからなる集合が所定単位として登
録されているので、請求項1に対応する作用を容易且つ
確実に奏することができる。
【0020】また、請求項6に対応する発明は、性能値
テーブルとしては、MIPS(100万命令/秒)に基
づいた処理性能値が記憶されるので、請求項1に対応す
る作用を容易且つ確実に奏することができる。
テーブルとしては、MIPS(100万命令/秒)に基
づいた処理性能値が記憶されるので、請求項1に対応す
る作用を容易且つ確実に奏することができる。
【0021】さらに、請求項7に対応する発明は、移動
指示手段としては、自ノードにおける移動対象の負荷の
負荷値、移動先ノードの処理性能値及び自ノードの処理
性能値に基づいて、移動対象の負荷を移動した場合に移
動先ノードで増加する負荷値を算出し、増加する負荷値
が移動先ノードでのCPUのアイドル量よりも小のと
き、負荷移動指示を生成するので、請求項1に対応する
作用を容易且つ確実に奏することができる。
指示手段としては、自ノードにおける移動対象の負荷の
負荷値、移動先ノードの処理性能値及び自ノードの処理
性能値に基づいて、移動対象の負荷を移動した場合に移
動先ノードで増加する負荷値を算出し、増加する負荷値
が移動先ノードでのCPUのアイドル量よりも小のと
き、負荷移動指示を生成するので、請求項1に対応する
作用を容易且つ確実に奏することができる。
【0022】また、請求項8に対応する発明は、移動指
示手段としては、予め高負荷、中負荷又は小負荷のいず
れかの度合に負荷が分類され、各度合毎に、移動対象の
負荷が先頭にあり、移動された負荷が末尾に接続される
キューを備えたので、請求項1に対応する作用に加え、
特定の負荷のみが順番に移動するたらい回し動作を阻止
することができる。
示手段としては、予め高負荷、中負荷又は小負荷のいず
れかの度合に負荷が分類され、各度合毎に、移動対象の
負荷が先頭にあり、移動された負荷が末尾に接続される
キューを備えたので、請求項1に対応する作用に加え、
特定の負荷のみが順番に移動するたらい回し動作を阻止
することができる。
【0023】
【発明の実施の形態】以下、本発明の各実施形態につい
て図面を参照しながら説明する。 (第1の実施形態)図1は本発明の第1の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムの構成を示す模式図である。この計算機システムは、
複数のノード(計算機本体)N1〜Nnが互いに接続さ
れている。ここで、各ノードN1〜Nnは、実行中のプ
ロセス(プログラム)が異なるものの、互いに同一構成
のため、ノードN1を例に挙げて説明する。
て図面を参照しながら説明する。 (第1の実施形態)図1は本発明の第1の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムの構成を示す模式図である。この計算機システムは、
複数のノード(計算機本体)N1〜Nnが互いに接続さ
れている。ここで、各ノードN1〜Nnは、実行中のプ
ロセス(プログラム)が異なるものの、互いに同一構成
のため、ノードN1を例に挙げて説明する。
【0024】ノードN1は、実行の有無によらずに保持
する複数のプロセスP1〜Pmの他、負荷テーブル1、
負荷管理部2、性能値テーブル3、移動指示部4、負荷
分散部5、プロセスファイル6及びバックアップファイ
ル7を備えている。
する複数のプロセスP1〜Pmの他、負荷テーブル1、
負荷管理部2、性能値テーブル3、移動指示部4、負荷
分散部5、プロセスファイル6及びバックアップファイ
ル7を備えている。
【0025】負荷テーブル1は、図2に示すように、負
荷管理部2によって、各ノードN1〜Nnにおけるプロ
セスP1〜Pm毎の現在のCPU負荷値、メモリ負荷値
及びディスク負荷値が読出/書込可能に記憶されるテー
ブルであり、1以上の任意のプロセスPをまとめた集合
が、1つのサービスS(負荷分散の単位)として取扱わ
れる。
荷管理部2によって、各ノードN1〜Nnにおけるプロ
セスP1〜Pm毎の現在のCPU負荷値、メモリ負荷値
及びディスク負荷値が読出/書込可能に記憶されるテー
ブルであり、1以上の任意のプロセスPをまとめた集合
が、1つのサービスS(負荷分散の単位)として取扱わ
れる。
【0026】なお、負荷テーブル1は、以上の値に加
え、サービスS1〜Sj毎の負荷値(各サービス内の各
プロセス負荷の合計値)が記憶されてもよく、ノードN
1〜Nn毎の負荷値(ノード内の各サービス負荷の合計
値)が記憶されてもよい。
え、サービスS1〜Sj毎の負荷値(各サービス内の各
プロセス負荷の合計値)が記憶されてもよく、ノードN
1〜Nn毎の負荷値(ノード内の各サービス負荷の合計
値)が記憶されてもよい。
【0027】また、ノードN1全体のメモリ負荷値は、
ノードN1のスワップ(swap)の使用量(スワップの残り
容量あるいは一定時間のスワップin/out、ページin/out
の量)で規定可能である。ノードN1全体のCPU負荷
値は、CPUのアイドル量あるいはCPU割当て待ちプ
ロセス数で規定可能である。
ノードN1のスワップ(swap)の使用量(スワップの残り
容量あるいは一定時間のスワップin/out、ページin/out
の量)で規定可能である。ノードN1全体のCPU負荷
値は、CPUのアイドル量あるいはCPU割当て待ちプ
ロセス数で規定可能である。
【0028】負荷管理部2は、定期的に各ノードN1〜
NnにおけるプロセスP1〜Pm毎の現在のCPU負荷
値、メモリ負荷値及びディスク負荷値を収集し、これら
CPU負荷値、メモリ負荷値及びディスク負荷値を負荷
テーブル1に書込む機能をもっている。
NnにおけるプロセスP1〜Pm毎の現在のCPU負荷
値、メモリ負荷値及びディスク負荷値を収集し、これら
CPU負荷値、メモリ負荷値及びディスク負荷値を負荷
テーブル1に書込む機能をもっている。
【0029】性能値テーブル3は、ノードN1からNn
毎に予めCPU性能値及びメモリ性能値が読出可能に登
録されたテーブルであり、ノードN1〜Nn内の共有領
域(共有メモリでもファイルでも可)に設けられてい
る。ここで、CPU性能値としては、1/(MIPS*
MPU)が使用可能となっている。なお、MIPS(1
00万命令/秒)は、1つのCPUの性能値であり、M
PUは、CPUの個数である。一方、メモリ性能値とし
ては、ノード内の各メモリ容量の合計値が使用可能とな
っている。
毎に予めCPU性能値及びメモリ性能値が読出可能に登
録されたテーブルであり、ノードN1〜Nn内の共有領
域(共有メモリでもファイルでも可)に設けられてい
る。ここで、CPU性能値としては、1/(MIPS*
MPU)が使用可能となっている。なお、MIPS(1
00万命令/秒)は、1つのCPUの性能値であり、M
PUは、CPUの個数である。一方、メモリ性能値とし
ては、ノード内の各メモリ容量の合計値が使用可能とな
っている。
【0030】移動指示部4は、定期的に負荷テーブル1
を参照して自ノードN1の負荷状況を調査し、負荷が所
定値を越えた旨(過負荷)を検出すると、自ノードN1
の各プロセスPをサービスS単位で低負荷のノードNi
(iは1〜nまでの任意の自然数(但し、自ノードの番
号を除く))に移動させる旨の指示を負荷分散部5に与
える機能をもっている。
を参照して自ノードN1の負荷状況を調査し、負荷が所
定値を越えた旨(過負荷)を検出すると、自ノードN1
の各プロセスPをサービスS単位で低負荷のノードNi
(iは1〜nまでの任意の自然数(但し、自ノードの番
号を除く))に移動させる旨の指示を負荷分散部5に与
える機能をもっている。
【0031】同様に、移動指示部4は、ノードN自体又
はプロセスPの障害発生時に、障害発生により実行不可
能となったプロセスPを含むサービスSを低負荷のノー
ドNiに移動させる旨の指示を負荷分散部5に与える機
能をもっている。
はプロセスPの障害発生時に、障害発生により実行不可
能となったプロセスPを含むサービスSを低負荷のノー
ドNiに移動させる旨の指示を負荷分散部5に与える機
能をもっている。
【0032】負荷分散部5は、移動指示部4から受けた
負荷移動指示に基づいて、自ノードN1の移動対象の負
荷(プロセス)をサービスS単位で他のノードNiに移
動させる移動機能をもっている。
負荷移動指示に基づいて、自ノードN1の移動対象の負
荷(プロセス)をサービスS単位で他のノードNiに移
動させる移動機能をもっている。
【0033】ここで、移動機能は、自ノードN1に移動
対象のプロセスPk(kは1〜mまでの任意の自然数)
があるとき、自ノードN1における移動対象のプロセス
Pkを停止させ(障害により既に停止していれば不
要)、移動対象のプロセスPkを立上げるための再開実
行指示を移動先の他ノードNiに与え、他ノードNiに
おける移動対象のプロセスPkを再開実行させることに
より、結果としてプロセスPkを自ノードN1から他ノ
ードNiに移動させるものである。
対象のプロセスPk(kは1〜mまでの任意の自然数)
があるとき、自ノードN1における移動対象のプロセス
Pkを停止させ(障害により既に停止していれば不
要)、移動対象のプロセスPkを立上げるための再開実
行指示を移動先の他ノードNiに与え、他ノードNiに
おける移動対象のプロセスPkを再開実行させることに
より、結果としてプロセスPkを自ノードN1から他ノ
ードNiに移動させるものである。
【0034】この移動機能として、負荷分散部5は、移
動指示部4から受ける指示により、実行途中のプロセス
PをサービスS単位で他ノードNiへ移送して低負荷の
他ノードNiで継続実行する技術(特願平9−2329
30号)を用いている。
動指示部4から受ける指示により、実行途中のプロセス
PをサービスS単位で他ノードNiへ移送して低負荷の
他ノードNiで継続実行する技術(特願平9−2329
30号)を用いている。
【0035】係る技術を用いる負荷分散部5は、プロセ
ス実行により更新されるプロセスファイル6の更新内容
の記録(以下、ログという)を採取して他の全ノードN
2〜Nnに分散するためのジャケットルーチン8と、ジ
ャケットルーチン8から受けたログを未確定キュー9a
として保持すると共に、チェックポイント毎に未確定キ
ュー9aを確定キュー9bとして該確定キュー9b内の
各ログに基づいてプロセスのバックアップファイル7を
更新可能なデーモン9とを備えている。
ス実行により更新されるプロセスファイル6の更新内容
の記録(以下、ログという)を採取して他の全ノードN
2〜Nnに分散するためのジャケットルーチン8と、ジ
ャケットルーチン8から受けたログを未確定キュー9a
として保持すると共に、チェックポイント毎に未確定キ
ュー9aを確定キュー9bとして該確定キュー9b内の
各ログに基づいてプロセスのバックアップファイル7を
更新可能なデーモン9とを備えている。
【0036】ここで、ログは、プロセス状態を示すもの
であり、例えば、データ等のレジスタ情報及びファイル
の更新等のシステムコール発行結果が使用可能である。
チェックポイントとしては、一定時間が経過した時点、
あるいはOSのシステムコール発行コールをフェッチし
た時点が使用可能である。
であり、例えば、データ等のレジスタ情報及びファイル
の更新等のシステムコール発行結果が使用可能である。
チェックポイントとしては、一定時間が経過した時点、
あるいはOSのシステムコール発行コールをフェッチし
た時点が使用可能である。
【0037】次に、以上のように構成された計算機シス
テムの動作を説明する。ノードN1における負荷分散部
5のジャケットルーチン8は、図3に示すように、実行
中のプロセスP1から各ログを採取し、これら各ログを
プロセスファイルに更新記憶させると共に少なくともチ
ェックポイントCPまでに他の各ノードN2〜Nnに送
信する。各ノードN2〜Nnでは、デーモン9がこのロ
グを受けて未確定キューとして保持し、チェックポイン
トCP毎にログ内のシステムコール発行結果を反映させ
て処理を実行する。例えばシステムコール発行結果がバ
ックアップファイル7の更新を示すとき、デーモン9に
よりバックアップファイル7を更新する。
テムの動作を説明する。ノードN1における負荷分散部
5のジャケットルーチン8は、図3に示すように、実行
中のプロセスP1から各ログを採取し、これら各ログを
プロセスファイルに更新記憶させると共に少なくともチ
ェックポイントCPまでに他の各ノードN2〜Nnに送
信する。各ノードN2〜Nnでは、デーモン9がこのロ
グを受けて未確定キューとして保持し、チェックポイン
トCP毎にログ内のシステムコール発行結果を反映させ
て処理を実行する。例えばシステムコール発行結果がバ
ックアップファイル7の更新を示すとき、デーモン9に
よりバックアップファイル7を更新する。
【0038】一方、ノードN1では、移動指示部4が、
定期的に負荷テーブル1の情報を監視し、一定条件(自
ノードN1の負荷が所定値を越えた時点)を満たすと、
負荷分散を開始する。
定期的に負荷テーブル1の情報を監視し、一定条件(自
ノードN1の負荷が所定値を越えた時点)を満たすと、
負荷分散を開始する。
【0039】すなわち、移動指示部4は、図4に示すよ
うに、一定時間スリープ(sleep) し(ST1)、しかる
後、負荷テーブル1を参照して自ノードN1の負荷状況
を調査する(ST2)。
うに、一定時間スリープ(sleep) し(ST1)、しかる
後、負荷テーブル1を参照して自ノードN1の負荷状況
を調査する(ST2)。
【0040】この調査において、自ノードN1について
過負荷か否かを判定し(ST3)、過負荷でないときに
はステップST1へ戻る。
過負荷か否かを判定し(ST3)、過負荷でないときに
はステップST1へ戻る。
【0041】なお、ステップST3の判定は、メモリ負
荷の場合、前述したノードN1全体のメモリ負荷値が所
定値を越えたときに過負荷とし、CPU負荷の場合、前
述したノードN1全体のCPU負荷値が所定値を越えた
ときに過負荷とする。
荷の場合、前述したノードN1全体のメモリ負荷値が所
定値を越えたときに過負荷とし、CPU負荷の場合、前
述したノードN1全体のCPU負荷値が所定値を越えた
ときに過負荷とする。
【0042】自ノードN1を過負荷と判定したとき、自
ノードN1から高負荷のサービスSを他ノードNiへの
転送対象として選択する(ST4)。
ノードN1から高負荷のサービスSを他ノードNiへの
転送対象として選択する(ST4)。
【0043】続いて、最低の負荷の例えばノードN2を
選択し(ST5)、負荷テーブル1及び性能値テーブル
3を参照しつつ、サービスSを移動可能か否かを判定す
る(ST6)。
選択し(ST5)、負荷テーブル1及び性能値テーブル
3を参照しつつ、サービスSを移動可能か否かを判定す
る(ST6)。
【0044】ステップST6の判定は、メモリ負荷と、
CPU負荷との2通りが実行される。メモリ負荷の判定
は、移動先ノードN2のメモリ性能値をMtotal とし、
移動先ノードN2で現在使用中のメモリ負荷値をMusin
g とし、移動するサービスSのメモリ負荷値をMservと
した場合、次の(1)式を満たすときに移動可能とされ
る。 Mtotal − Musing > Mserv …(1) なお、メモリ性能値はノードN2内の各メモリ容量の合
計値である。
CPU負荷との2通りが実行される。メモリ負荷の判定
は、移動先ノードN2のメモリ性能値をMtotal とし、
移動先ノードN2で現在使用中のメモリ負荷値をMusin
g とし、移動するサービスSのメモリ負荷値をMservと
した場合、次の(1)式を満たすときに移動可能とされ
る。 Mtotal − Musing > Mserv …(1) なお、メモリ性能値はノードN2内の各メモリ容量の合
計値である。
【0045】次に、CPU負荷の判定は、移動先ノード
N2の現在のCPUアイドル(遊休)量を先CPUidol
とし、移動前のノードN1でのサービスSのCPU負荷
値を前CPUloadとし、移動先ノードN2のCPU性能
値を先CPUperfとし、移動前のノードN1でのCPU
性能値を前CPUperfとした場合、次の(2)式を満た
すときに移動可能とされる。
N2の現在のCPUアイドル(遊休)量を先CPUidol
とし、移動前のノードN1でのサービスSのCPU負荷
値を前CPUloadとし、移動先ノードN2のCPU性能
値を先CPUperfとし、移動前のノードN1でのCPU
性能値を前CPUperfとした場合、次の(2)式を満た
すときに移動可能とされる。
【0046】
【数1】 なお、CPUアイドル量は、新たに使用可能なCPU負
荷値を意味している。すなわち、(2)式は、右辺の移
動前のCPU負荷から換算される移動先のCPU負荷よ
りも、左辺の移動先のCPUアイドル量が大である関係
を意味している。
荷値を意味している。すなわち、(2)式は、右辺の移
動前のCPU負荷から換算される移動先のCPU負荷よ
りも、左辺の移動先のCPUアイドル量が大である関係
を意味している。
【0047】また、サービス移動後の移動先ノードNi
の評価において、CPUアイドル量を後CPUidolと
し、メモリ負荷値を後Muse とした場合、各ノードN2
〜Nnのうち、次の(3)式の値が最高のノードN2
が、最低の負荷のノードN2として判定される。
の評価において、CPUアイドル量を後CPUidolと
し、メモリ負荷値を後Muse とした場合、各ノードN2
〜Nnのうち、次の(3)式の値が最高のノードN2
が、最低の負荷のノードN2として判定される。
【0048】
【数2】 すなわち、(3)式は、サービス移動後において、CP
U負荷の余裕分と、メモリ負荷の余裕分とを合計した値
を示している。
U負荷の余裕分と、メモリ負荷の余裕分とを合計した値
を示している。
【0049】ステップST6においては、(1)式,
(2)式を共に満たした場合、すなわち、メモリ負荷及
びCPU負荷を共に移動可能と判定したときのみ、サー
ビスSを移動可能と判定し、負荷分散部5にサービス移
動の指示を出し(ST7)、ステップST1へ戻る。
(2)式を共に満たした場合、すなわち、メモリ負荷及
びCPU負荷を共に移動可能と判定したときのみ、サー
ビスSを移動可能と判定し、負荷分散部5にサービス移
動の指示を出し(ST7)、ステップST1へ戻る。
【0050】なお、ステップ6において、高負荷のサー
ビスSを移動できないとき、中程度の負荷のサービスS
を選択し(ST8)、前述同様にサービスSを移動可能
か否かを判定する(ST9)。
ビスSを移動できないとき、中程度の負荷のサービスS
を選択し(ST8)、前述同様にサービスSを移動可能
か否かを判定する(ST9)。
【0051】また、ステップST9において移動可能な
ときにはステップST7に行くが、中程度の負荷のサー
ビスSが移動不可のとき、低負荷のサービスSを選択し
(ST10)、前述同様にサービスSを移動可能か否か
を判定する(ST11)。
ときにはステップST7に行くが、中程度の負荷のサー
ビスSが移動不可のとき、低負荷のサービスSを選択し
(ST10)、前述同様にサービスSを移動可能か否か
を判定する(ST11)。
【0052】ステップST11においても、移動可能な
ときにはステップST7に行くが、低負荷のサービスS
が移動不可のとき、ステップST1へ戻る。 (具体例1)次に、以上のような各ステップST1〜S
T11において、1つのプロセスP1のみを有する1つ
のサービスS1の移動に際し、CPU負荷のみを検討す
る場合について説明する。
ときにはステップST7に行くが、低負荷のサービスS
が移動不可のとき、ステップST1へ戻る。 (具体例1)次に、以上のような各ステップST1〜S
T11において、1つのプロセスP1のみを有する1つ
のサービスS1の移動に際し、CPU負荷のみを検討す
る場合について説明する。
【0053】具体的には、図5に示す負荷状況におい
て、ノードN1のCPU負荷値が90%を越えた際に、
サービスS1を移動させる場合の移動指示部4の動作を
述べる。
て、ノードN1のCPU負荷値が90%を越えた際に、
サービスS1を移動させる場合の移動指示部4の動作を
述べる。
【0054】ステップST3において、ノードN1のC
PU負荷は、サービスS1〜S3を足して90%である
ため、ノードN1が過負荷と判定される。また、ステッ
プST4において、ノードN1で最も高負荷のサービス
S1が転送対象として選択される。
PU負荷は、サービスS1〜S3を足して90%である
ため、ノードN1が過負荷と判定される。また、ステッ
プST4において、ノードN1で最も高負荷のサービス
S1が転送対象として選択される。
【0055】次いで、ステップST5において、最低の
負荷のノードN2が選択される。例えば、サービスS1
を他ノードN2又はN3へ移動した場合を仮定し、ノー
ドN2,N3にてサービスS1を実行する場合のCPU
負荷値を試算する。その試算結果は、ノードN2が25
%(=50%*(1/200)/(1/100))であ
り、ノードN3が16%(=50%*(1/300)/
(1/100))である。
負荷のノードN2が選択される。例えば、サービスS1
を他ノードN2又はN3へ移動した場合を仮定し、ノー
ドN2,N3にてサービスS1を実行する場合のCPU
負荷値を試算する。その試算結果は、ノードN2が25
%(=50%*(1/200)/(1/100))であ
り、ノードN3が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を移動でき
ない。
的な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を移動でき
ない。
【0057】よって、中程度の負荷であるサービスS2
の移動を検討する。サービスS2を移動した場合の計算
は、ノードN2が100%(=85%+15%)とな
り、ノードN3が85%(=75%+10%)となるの
で、サービスS2をノードCへ移動させる。
の移動を検討する。サービスS2を移動した場合の計算
は、ノードN2が100%(=85%+15%)とな
り、ノードN3が85%(=75%+10%)となるの
で、サービスS2をノードCへ移動させる。
【0058】このように負荷が高い順から、サービスS
1,…の移動を計算し、移動可能なノードN3にサービ
スを移動させる。但し、全てのサービスS1〜S3が移
動不可能(他の全ノードN2,N3が高負荷状態)のと
き、サービスS1〜S3の移動をあきらめる。
1,…の移動を計算し、移動可能なノードN3にサービ
スを移動させる。但し、全てのサービスS1〜S3が移
動不可能(他の全ノードN2,N3が高負荷状態)のと
き、サービスS1〜S3の移動をあきらめる。
【0059】このように、ノードN1では、ノードN1
自体又はプロセスPkにて障害発生あるいは高負荷の発
生により、プロセスPkの実行が困難になると、(高負
荷の発生時には予め当該プロセスPkを停止させた
後、)低負荷の例えばノードN2にプロセス移動を指示
して負荷分散を実行する。ノードN2では、プロセスの
再開を実行する。
自体又はプロセスPkにて障害発生あるいは高負荷の発
生により、プロセスPkの実行が困難になると、(高負
荷の発生時には予め当該プロセスPkを停止させた
後、)低負荷の例えばノードN2にプロセス移動を指示
して負荷分散を実行する。ノードN2では、プロセスの
再開を実行する。
【0060】ノードN2は、再開の実行時に、プロセス
Pkのmain(プログラムとしてのスタート)をフェッチ
し、チェックポイントCPのログからスタック積上げ/
レジスタ情報設定等を実行し、ノードN1で中止された
プロセスPkを最新のチェックポイントCP時点から再
開して実行する。
Pkのmain(プログラムとしてのスタート)をフェッチ
し、チェックポイントCPのログからスタック積上げ/
レジスタ情報設定等を実行し、ノードN1で中止された
プロセスPkを最新のチェックポイントCP時点から再
開して実行する。
【0061】上述したように本実施形態によれば、各ノ
ードN1〜Nnの現在の負荷値が記憶される負荷テーブ
ル1と、各ノードN1〜Nnの処理性能値が記憶される
性能値テーブル3とを有し、移動指示部4が、負荷テー
ブル1を参照して自ノードの過負荷を検出したとき、性
能値テーブル3を参照して負荷を増加可能な移動先ノー
ドを選択し、負荷移動指示を生成し、負荷分散部5が、
移動指示部4により生成された負荷移動指示に基づい
て、自ノードの負荷を所定単位毎に移動先ノードに移動
させるので、従来とは異なり、メモリリソースに無駄を
生じさせず、負荷集中時や分散要求時に負荷分散を実行
させることができる。
ードN1〜Nnの現在の負荷値が記憶される負荷テーブ
ル1と、各ノードN1〜Nnの処理性能値が記憶される
性能値テーブル3とを有し、移動指示部4が、負荷テー
ブル1を参照して自ノードの過負荷を検出したとき、性
能値テーブル3を参照して負荷を増加可能な移動先ノー
ドを選択し、負荷移動指示を生成し、負荷分散部5が、
移動指示部4により生成された負荷移動指示に基づい
て、自ノードの負荷を所定単位毎に移動先ノードに移動
させるので、従来とは異なり、メモリリソースに無駄を
生じさせず、負荷集中時や分散要求時に負荷分散を実行
させることができる。
【0062】また、プロセスの実行中の移動により、サ
ービスの継続性を保ちつつ、プログラミングによる負荷
分散の意識をせずに、分散ノード間での負荷分散システ
ムを構築することができる。 (第2の実施形態)次に、本発明の第2の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
ービスの継続性を保ちつつ、プログラミングによる負荷
分散の意識をせずに、分散ノード間での負荷分散システ
ムを構築することができる。 (第2の実施形態)次に、本発明の第2の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
【0063】本実施形態は、第1の実施形態中、各ノー
ドN1〜Nnの平均の負荷よりも高負荷のサービスSが
ある場合、この高負荷のサービスSのみが各ノードN1
〜Nnを順番に移動する(たらい回しされる)場合があ
ることを考慮し、このたらい回し動作の阻止を図るもの
である。
ドN1〜Nnの平均の負荷よりも高負荷のサービスSが
ある場合、この高負荷のサービスSのみが各ノードN1
〜Nnを順番に移動する(たらい回しされる)場合があ
ることを考慮し、このたらい回し動作の阻止を図るもの
である。
【0064】具体的には、移動指示部4は、前述した機
能に加え、図7に示すように、例えば各サービスS1〜
S9が負荷の程度に応じて配列される高、中、低の3段
階のキューQ1〜Q3を有し、各段階の負荷のサービス
を選択(ST4,8,10)する際に、各段階のキュー
の先頭にあるサービスS7(S8又はS9)を移動対象
として選択する機能と、サービスS7(S8又はS9)
が移動されたときにはこのサービスS7(S8又はS
9)を該当する段階のキューQ1(Q2又はQ3)の末
尾に接続する機能とをもっている。
能に加え、図7に示すように、例えば各サービスS1〜
S9が負荷の程度に応じて配列される高、中、低の3段
階のキューQ1〜Q3を有し、各段階の負荷のサービス
を選択(ST4,8,10)する際に、各段階のキュー
の先頭にあるサービスS7(S8又はS9)を移動対象
として選択する機能と、サービスS7(S8又はS9)
が移動されたときにはこのサービスS7(S8又はS
9)を該当する段階のキューQ1(Q2又はQ3)の末
尾に接続する機能とをもっている。
【0065】なお、図7中のサービスSの添字及び各Q
1〜Q3内のサービスSの個数は、単なる一例であり、
適宜変更可能なことは言うまでもない。次に、以上のよ
うに構成された計算機システムの動作を説明する。な
お、この説明は、第1の実施形態と比較して述べる。
1〜Q3内のサービスSの個数は、単なる一例であり、
適宜変更可能なことは言うまでもない。次に、以上のよ
うに構成された計算機システムの動作を説明する。な
お、この説明は、第1の実施形態と比較して述べる。
【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を順番に移
動する可能性がある。
一のCPU性能値のノードN1において、図8に示すC
PU負荷状況であるとする。この場合、ノードN1は、
サービスS1をノードN2に移動させる。ここで、サー
ビスS1のCPU負荷値が35%〜45%の範囲内で上
下すると、ノードN2は、サービスS1を他のノードN
3に移動させる可能性がある。また、ノードN3はサー
ビスS1をさらに他のノードN4に移動させる。以下同
様に、サービス1のみが各ノードN5〜Nnを順番に移
動する可能性がある。
【0067】一方、本実施形態では、サービス選択用の
キューを設けた構成により、移動対象のサービスS1〜
S9が図9に示すようにキューQ1〜Q3に接続され
る。
キューを設けた構成により、移動対象のサービスS1〜
S9が図9に示すようにキューQ1〜Q3に接続され
る。
【0068】ここで、ノードN1がキューQ1の先頭の
サービスS1をノードN2に移動させると、ノードN2
では、図10に示すように、このサービスS1がキュー
Q1の最後に接続される。
サービスS1をノードN2に移動させると、ノードN2
では、図10に示すように、このサービスS1がキュー
Q1の最後に接続される。
【0069】これにより、ノードN2がサービスSを移
動させる場合、高負荷のキューQ1の先頭であるサービ
スS6が移動対象となる。従って、第1の実施形態とは
異なり、サービスS1のみが順番に移動するたらい回し
動作を阻止することができる。
動させる場合、高負荷のキューQ1の先頭であるサービ
スS6が移動対象となる。従って、第1の実施形態とは
異なり、サービスS1のみが順番に移動するたらい回し
動作を阻止することができる。
【0070】上述したように本実施形態によれば、第1
の実施形態の効果に加え、あるサービス(例えば全ノー
ド中で一番負荷の高いサービス)のみがたらい回しにさ
れる動作を阻止することができる。 (第3の実施形態)次に、本発明の第3の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
の実施形態の効果に加え、あるサービス(例えば全ノー
ド中で一番負荷の高いサービス)のみがたらい回しにさ
れる動作を阻止することができる。 (第3の実施形態)次に、本発明の第3の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
【0071】本実施形態は、第1の実施形態中、通常は
低負荷で一時的に高負荷になるが直ぐに低負荷に復帰す
るサービスSがある場合、このサービスSを移動させる
場合があることを考慮し、この一時的に高負荷となるサ
ービスSの移動の阻止を図るものである。
低負荷で一時的に高負荷になるが直ぐに低負荷に復帰す
るサービスSがある場合、このサービスSを移動させる
場合があることを考慮し、この一時的に高負荷となるサ
ービスSの移動の阻止を図るものである。
【0072】具体的には、負荷テーブル1は、前述した
現在の負荷状況に加え、過去の負荷状況の平均値及び平
均2乗誤差が記憶されるものである。
現在の負荷状況に加え、過去の負荷状況の平均値及び平
均2乗誤差が記憶されるものである。
【0073】負荷管理部2は、前述した機能に加え、過
去の負荷状況の平均値及び平均2乗誤差を負荷テーブル
1に書込む機能をもっている。
去の負荷状況の平均値及び平均2乗誤差を負荷テーブル
1に書込む機能をもっている。
【0074】移動指示部4は、前述した機能に加え、ス
テップST4でノードが過負荷か否かを判定する際に、
現在の負荷値と負荷値の平均値とが著しく離れており、
且つ平均2乗誤差が小さいノードNを選択しない機能を
有している。
テップST4でノードが過負荷か否かを判定する際に、
現在の負荷値と負荷値の平均値とが著しく離れており、
且つ平均2乗誤差が小さいノードNを選択しない機能を
有している。
【0075】次に、以上のように構成された計算機シス
テムの動作を説明する。なお、この説明は、第1の実施
形態と比較して述べる。
テムの動作を説明する。なお、この説明は、第1の実施
形態と比較して述べる。
【0076】いま、図11に示すように、通常は低負荷
で一瞬だけ高負荷になるサービスS1があるとする。こ
のサービスS1は、一瞬だけ負荷が上昇したが、通常は
低負荷であるので、サービスS1を移動せずに時間の経
過を待つ方がよい。
で一瞬だけ高負荷になるサービスS1があるとする。こ
のサービスS1は、一瞬だけ負荷が上昇したが、通常は
低負荷であるので、サービスS1を移動せずに時間の経
過を待つ方がよい。
【0077】しかし、第1実施形態では、高負荷となる
時間Aにおいて、移動対象のサービスS1を選択する場
合、このサービスS1を移動対象とする可能性がある。
時間Aにおいて、移動対象のサービスS1を選択する場
合、このサービスS1を移動対象とする可能性がある。
【0078】一方、本実施形態では、負荷の平均値と平
均2乗誤差とを管理する構成により、移動対象のサービ
スSkを選択する際に、現在の負荷と負荷の平均値とが
著しく離れており、且つ平均2乗誤差が小さいサービス
S1を移動対象に選択しない。
均2乗誤差とを管理する構成により、移動対象のサービ
スSkを選択する際に、現在の負荷と負荷の平均値とが
著しく離れており、且つ平均2乗誤差が小さいサービス
S1を移動対象に選択しない。
【0079】これにより、通常は低負荷で一時的に高負
荷となるサービスS1の移動を阻止できるので、移動に
よるオーバヘッドを抑制することができる。
荷となるサービスS1の移動を阻止できるので、移動に
よるオーバヘッドを抑制することができる。
【0080】上述したように本実施形態によれば、第1
の実施形態の効果に加え、通常は低負荷値で一時的に高
負荷値となる負荷の移動を阻止できるので、移動による
オーバヘッドを抑制することができる。 (第4の実施形態)次に、本発明の第4の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
の実施形態の効果に加え、通常は低負荷値で一時的に高
負荷値となる負荷の移動を阻止できるので、移動による
オーバヘッドを抑制することができる。 (第4の実施形態)次に、本発明の第4の実施形態に係
る分散ノード間負荷分散方式の適用された計算機システ
ムについて説明する。
【0081】本実施形態は、第1の実施形態中、多数の
ノードN1〜Nnを有する計算機システムの場合、最低
の負荷をもつノードNiを選択する際に、ノード数nに
比例してノードN1〜Nnの負荷を算出する処理のオー
バヘッドを増大させることを考慮し、このオーバヘッド
の抑制を図るものである。
ノードN1〜Nnを有する計算機システムの場合、最低
の負荷をもつノードNiを選択する際に、ノード数nに
比例してノードN1〜Nnの負荷を算出する処理のオー
バヘッドを増大させることを考慮し、このオーバヘッド
の抑制を図るものである。
【0082】具体的には、移動指示部4は、前述した機
能に加え、移動対象の例えばノードN1〜N4を順番に
配列したキューQmを有し、前述したステップST5に
よるノード選択の際に、最低の負荷のノードN2を選択
するのではなく、キューQmの先頭にあるノードNsを
移動先として選択する機能と、キューQmの先頭のノー
ドNにサービスSを移動可能なとき、サービスSをその
先頭のノードNに移動させる機能と、サービスSを移動
させたノードNをキューQmの末尾に接続する機能とを
有している。
能に加え、移動対象の例えばノードN1〜N4を順番に
配列したキューQmを有し、前述したステップST5に
よるノード選択の際に、最低の負荷のノードN2を選択
するのではなく、キューQmの先頭にあるノードNsを
移動先として選択する機能と、キューQmの先頭のノー
ドNにサービスSを移動可能なとき、サービスSをその
先頭のノードNに移動させる機能と、サービスSを移動
させたノードNをキューQmの末尾に接続する機能とを
有している。
【0083】次に、以上のように構成された計算機シス
テムの動作を説明する。
テムの動作を説明する。
【0084】本実施形態では、ノード選択用のキューQ
を設けた構成により、移動先の候補としてノードN1〜
Nxが待ち行列に接続される。
を設けた構成により、移動先の候補としてノードN1〜
Nxが待ち行列に接続される。
【0085】例えば、ノードN1→ノードN2→ノード
N3→ノードN4というキューQmがあり、ノードN2
から高負荷のサービスS1をノードN1に移動するとす
る。
N3→ノードN4というキューQmがあり、ノードN2
から高負荷のサービスS1をノードN1に移動するとす
る。
【0086】ここで、移動指示部4は、ノード選択の際
に、キューQmの先頭にあるノードN1を移動先として
選択し、そのノードN1の負荷を算出してそのノードN
1にサービスSを移動可能なとき、サービスSをそのノ
ードN1に移動させる。
に、キューQmの先頭にあるノードN1を移動先として
選択し、そのノードN1の負荷を算出してそのノードN
1にサービスSを移動可能なとき、サービスSをそのノ
ードN1に移動させる。
【0087】また、移動指示部4は、サービスSの移動
により負荷の増えたノードN1をキューQmの末尾に接
続する一方、サービスSを移動して負荷の減ったノード
N2をキューQmの先頭に接続する。サービス移動後の
キューQmの状態は、ノードN1→ノードN3→ノード
N4→ノードN2のようになる。
により負荷の増えたノードN1をキューQmの末尾に接
続する一方、サービスSを移動して負荷の減ったノード
N2をキューQmの先頭に接続する。サービス移動後の
キューQmの状態は、ノードN1→ノードN3→ノード
N4→ノードN2のようになる。
【0088】このように、負荷を移動したノードがキュ
ーの先頭へ接続され、負荷の移動されたノードはキュー
の最後に接続されることにより、低負荷のノードがキュ
ーQmの先頭へ配置され、高負荷のノードがキューQm
の後半に配置される。
ーの先頭へ接続され、負荷の移動されたノードはキュー
の最後に接続されることにより、低負荷のノードがキュ
ーQmの先頭へ配置され、高負荷のノードがキューQm
の後半に配置される。
【0089】従って、次回、負荷移動先を算出する場合
もキューQmの先頭からのヒット率が高くなり、全ノー
ドN1〜Nnの負荷を算出する場合に比べ、オーバヘッ
ドを抑制することができる。
もキューQmの先頭からのヒット率が高くなり、全ノー
ドN1〜Nnの負荷を算出する場合に比べ、オーバヘッ
ドを抑制することができる。
【0090】上述したように本実施形態によれば、第1
の実施形態の効果に加え、ノードN2がサービスSの移
動先を選択する際に、他の全ノードN1,N3〜Nnの
うち、一部のノードを検索すればよいので、サービス移
動のオーバヘッドを抑制することができる。
の実施形態の効果に加え、ノードN2がサービスSの移
動先を選択する際に、他の全ノードN1,N3〜Nnの
うち、一部のノードを検索すればよいので、サービス移
動のオーバヘッドを抑制することができる。
【0091】なお、上記各第2〜第4の実施形態は、第
1の実施形態に個別に適用した場合を説明したが、これ
に限らず、適宜組合せて同時に適用する構成としても、
本発明を同様に実施して同様の効果を得ることができ
る。
1の実施形態に個別に適用した場合を説明したが、これ
に限らず、適宜組合せて同時に適用する構成としても、
本発明を同様に実施して同様の効果を得ることができ
る。
【0092】また、上記実施形態に記載した手法は、コ
ンピュータに実行させることのできるプログラムとし
て、磁気ディスク(フロッピーディスク、ハードディス
クなど)、光ディスク(CD−ROM、DVDなど)、
光磁気ディスク(MO)、半導体メモリなどの記憶媒体
に格納して頒布することもできる。
ンピュータに実行させることのできるプログラムとし
て、磁気ディスク(フロッピーディスク、ハードディス
クなど)、光ディスク(CD−ROM、DVDなど)、
光磁気ディスク(MO)、半導体メモリなどの記憶媒体
に格納して頒布することもできる。
【0093】その他、本発明はその要旨を逸脱しない範
囲で種々変形して実施できる。
囲で種々変形して実施できる。
【0094】
【発明の効果】以上説明したように本発明によれば、メ
モリリソースに無駄を生じさせず、負荷集中時や分散要
求時に負荷分散を実行できる分散ノード間負荷分散方式
を提供できる。
モリリソースに無駄を生じさせず、負荷集中時や分散要
求時に負荷分散を実行できる分散ノード間負荷分散方式
を提供できる。
【図1】本発明の第1の実施形態に係る分散ノード間負
荷分散方式の適用された計算機システムの構成を示す模
式図
荷分散方式の適用された計算機システムの構成を示す模
式図
【図2】同実施形態における負荷テーブルの構成を示す
模式図
模式図
【図3】同実施形態における動作を説明するための模式
図
図
【図4】同実施形態における移動指示部の動作を説明す
るためのフローチャート
るためのフローチャート
【図5】同実施形態における動作を説明するための負荷
状況を示す模式図
状況を示す模式図
【図6】同実施形態における動作を説明するための負荷
状況を示す模式図
状況を示す模式図
【図7】本発明の第2の実施形態に係る分散ノード間負
荷分散方式に用いられるキューの内容を示す模式図
荷分散方式に用いられるキューの内容を示す模式図
【図8】同実施形態における動作を説明するための負荷
状況を示す模式図
状況を示す模式図
【図9】同実施形態における動作を説明するためのキュ
ーの内容を示す模式図
ーの内容を示す模式図
【図10】同実施形態における動作を説明するためのキ
ューの内容を示す模式図
ューの内容を示す模式図
【図11】本発明の第3の実施形態に係る分散ノード間
負荷分散方式を説明するためのサービスの負荷値を示す
模式図
負荷分散方式を説明するためのサービスの負荷値を示す
模式図
1…負荷テーブル 2…負荷管理部 3…性能値テーブル 4…移動指示部 5…負荷分散部 6…プロセスファイル 7…バックアップファイル 8…ジャケットルーチン 9…デーモン 9a…未確定キュー 9b…確定キュー N1〜Nn…ノード P1〜Pm…プロセス
Claims (8)
- 【請求項1】 分散配置された複数のノードが互いに接
続され、前記各ノードの有する負荷を各ノード間で分散
させるための分散ノード間負荷分散方式であって、 前記各ノードの現在の負荷値が記憶される負荷記憶手段
と、 前記各ノードの処理性能値が記憶される性能値記憶手段
と、 前記負荷記憶手段を参照して自ノードの過負荷を検出し
たとき、前記性能値記憶手段を参照して負荷を増加可能
な移動先ノードを選択し、負荷移動指示を生成する移動
指示手段と、 前記移動指示手段により生成された負荷移動指示に基づ
いて、自ノードの負荷を所定単位毎に前記移動先ノード
に移動させる負荷分散手段と を備えたことを特徴とする分散ノード間負荷分散方式。 - 【請求項2】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、予め複数の度合のいずれかに負荷
が分類され、前記各度合毎に、移動対象の負荷が先頭に
あり、移動された負荷が末尾に接続されるキューを備え
たことを特徴とする分散ノード間負荷分散方式。 - 【請求項3】 請求項1に記載の分散ノード間負荷分散
方式において、 前記負荷テーブルは、前記各負荷値と、前記各負荷値に
おける時系列的な平均値と、前記各負荷値の平均2乗誤
差とが記憶されており、 前記移動指示手段は、前記自ノードの過負荷を検出した
とき、前記負荷テーブル内の平均値及び平均2乗誤差に
基づいて、現在の負荷値と前記平均値とが所定値以上離
れており、且つ前記平均2乗誤差の小さい負荷を移動対
象に選択しないことを特徴とする分散ノード間負荷分散
方式。 - 【請求項4】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、移動先対象のノードが先頭にあ
り、移動先にされたノードが末尾に接続されるキューを
備えたことを特徴とする分散ノード間負荷分散方式。 - 【請求項5】 請求項1に記載の分散ノード間負荷分散
方式において、 前記負荷テーブルは、前記負荷値がプロセス毎に記憶さ
れ、且つ1個以上のプロセスからなる集合が前記所定単
位として登録されていることを特徴とする分散ノード間
負荷分散方式。 - 【請求項6】 請求項1に記載の分散ノード間負荷分散
方式において、 前記性能値テーブルは、MIPS(100万命令/秒)
に基づいた前記処理性能値が記憶されることを特徴とす
る分散ノード間負荷分散方式。 - 【請求項7】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、自ノードにおける移動対象の負荷
の負荷値、前記移動先ノードの処理性能値及び前記自ノ
ードの処理性能値に基づいて、前記移動対象の負荷を移
動した場合に前記移動先ノードで増加する負荷値を算出
し、前記増加する負荷値が前記移動先ノードでのCPU
のアイドル量よりも小のとき、前記負荷移動指示を生成
することを特徴とする分散ノード間負荷分散方式。 - 【請求項8】 請求項1に記載の分散ノード間負荷分散
方式において、 前記移動指示手段は、予め高負荷、中負荷又は小負荷の
いずれかの度合に負荷が分類され、前記各度合毎に、移
動対象の負荷が先頭にあり、移動された負荷が末尾に接
続されるキューを備えたことを特徴とする分散ノード間
負荷分散方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10311316A JP2000137692A (ja) | 1998-10-30 | 1998-10-30 | 分散ノード間負荷分散方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10311316A JP2000137692A (ja) | 1998-10-30 | 1998-10-30 | 分散ノード間負荷分散方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000137692A true JP2000137692A (ja) | 2000-05-16 |
Family
ID=18015677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10311316A Pending JP2000137692A (ja) | 1998-10-30 | 1998-10-30 | 分散ノード間負荷分散方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000137692A (ja) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005031771A (ja) * | 2003-07-08 | 2005-02-03 | Hitachi Ltd | ジョブスケジューリング管理方法及びシステム並びにプログラム |
JP2006252111A (ja) * | 2005-03-10 | 2006-09-21 | Hitachi Ltd | 情報処理システム及び方法 |
JP2007200294A (ja) * | 2006-01-25 | 2007-08-09 | Internatl Business Mach Corp <Ibm> | 実行中のアプリケーションをトポロジ的遠隔に位置するコンピュータ・システムに再配置するためのシステムと方法 |
JP2008299509A (ja) * | 2007-05-30 | 2008-12-11 | Hitachi Ltd | 仮想計算機システム |
WO2009060530A1 (ja) * | 2007-11-09 | 2009-05-14 | Fujitsu Limited | ネットワーク処理制御装置,プログラムおよび方法 |
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 (ja) * | 2008-03-28 | 2009-10-22 | Fujitsu Ltd | 仮想マシン管理プログラム及び管理サーバ装置 |
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 (ja) * | 2011-10-17 | 2013-05-13 | Hitachi Ltd | サービス提供システム |
WO2014024612A1 (ja) * | 2012-08-06 | 2014-02-13 | 日本電気株式会社 | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 |
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 (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | スケールアウト方法、システム、情報処理装置、管理装置及びプログラム |
US10165045B2 (en) | 2015-05-20 | 2018-12-25 | Fujitsu Limited | Information processing apparatus, system, method, and computer readable medium |
JP2019040343A (ja) * | 2017-08-24 | 2019-03-14 | 富士通株式会社 | 情報処理装置、プロセス管理方法およびプロセス管理プログラム |
-
1998
- 1998-10-30 JP JP10311316A patent/JP2000137692A/ja active Pending
Cited By (22)
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 (ja) * | 2003-07-08 | 2005-02-03 | Hitachi Ltd | ジョブスケジューリング管理方法及びシステム並びにプログラム |
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 (ja) * | 2005-03-10 | 2006-09-21 | Hitachi Ltd | 情報処理システム及び方法 |
JP2007200294A (ja) * | 2006-01-25 | 2007-08-09 | Internatl Business Mach Corp <Ibm> | 実行中のアプリケーションをトポロジ的遠隔に位置するコンピュータ・システムに再配置するためのシステムと方法 |
JP2008299509A (ja) * | 2007-05-30 | 2008-12-11 | Hitachi Ltd | 仮想計算機システム |
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 (ja) * | 2007-11-09 | 2009-05-14 | Fujitsu Limited | ネットワーク処理制御装置,プログラムおよび方法 |
JP4747307B2 (ja) * | 2007-11-09 | 2011-08-17 | 富士通株式会社 | ネットワーク処理制御装置,プログラムおよび方法 |
JP2009244999A (ja) * | 2008-03-28 | 2009-10-22 | Fujitsu Ltd | 仮想マシン管理プログラム及び管理サーバ装置 |
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 (ja) * | 2011-10-17 | 2013-05-13 | Hitachi Ltd | サービス提供システム |
WO2014024612A1 (ja) * | 2012-08-06 | 2014-02-13 | 日本電気株式会社 | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 |
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 (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | スケールアウト方法、システム、情報処理装置、管理装置及びプログラム |
US10165045B2 (en) | 2015-05-20 | 2018-12-25 | Fujitsu Limited | Information processing apparatus, system, method, and computer readable medium |
JP2019040343A (ja) * | 2017-08-24 | 2019-03-14 | 富士通株式会社 | 情報処理装置、プロセス管理方法およびプロセス管理プログラム |
JP7007557B2 (ja) | 2017-08-24 | 2022-01-24 | 富士通株式会社 | 情報処理装置、プロセス管理方法およびプロセス管理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109923523B (zh) | 计算机***及用于计算机***的方法 | |
JP2000137692A (ja) | 分散ノード間負荷分散方式 | |
JP6219512B2 (ja) | 仮想ハドゥープマネジャ | |
JP4920391B2 (ja) | 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム | |
US20130061071A1 (en) | Energy Efficient Implementation Of Read-Copy Update For Light Workloads Running On Systems With Many Processors | |
US9430388B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
US9229789B2 (en) | Transparent user mode scheduling on traditional threading systems | |
JPH10187638A (ja) | クラスタ制御システム | |
JP5347451B2 (ja) | マルチプロセッサシステム、競合回避プログラム及び競合回避方法 | |
JPH0954754A (ja) | 疎結合並列処理環境における顧客情報制御システム及び方法 | |
WO2018018611A1 (zh) | 一种任务处理方法以及网卡 | |
TW200422859A (en) | Automated power control policies based on application-specific redundancy characteristics | |
CN110190991B (zh) | 一种多应用场景下的分布式流处理***的容错方法 | |
JP2003196178A (ja) | 階層構成サーバシステム | |
CN114064414A (zh) | 一种高可用的集群状态监控方法及*** | |
JPH0950418A (ja) | 疎結合並列処理環境において一時的記憶待ち行列機能を有する顧客情報制御システム及び方法 | |
CN110377664B (zh) | 数据同步方法、装置、服务器及存储介质 | |
JPH0962635A (ja) | 疎結合並列処理環境においてトランザクション直列化制御機能を有する顧客情報制御システム及び方法 | |
JP6556726B2 (ja) | コンピューティング環境においてアダプティブビジーウェイトをサポートするためのシステムおよび方法 | |
JPH0944461A (ja) | 疎結合並列処理環境においてapiスタート及びキャンセルトランザクション機能を有する顧客情報制御システム及び方法 | |
US20030204775A1 (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 | |
Lu et al. | Adaptive consistency guarantees for large-scale replicated services | |
JPH11353284A (ja) | ジョブ再実行方法 | |
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 |