JP2008198145A - 負荷分散装置 - Google Patents

負荷分散装置 Download PDF

Info

Publication number
JP2008198145A
JP2008198145A JP2007035573A JP2007035573A JP2008198145A JP 2008198145 A JP2008198145 A JP 2008198145A JP 2007035573 A JP2007035573 A JP 2007035573A JP 2007035573 A JP2007035573 A JP 2007035573A JP 2008198145 A JP2008198145 A JP 2008198145A
Authority
JP
Japan
Prior art keywords
load
computer
processing
load distribution
computers
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
JP2007035573A
Other languages
English (en)
Inventor
Kazumasa Uda
和正 宇田
Naosuke Watabe
修介 渡部
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007035573A priority Critical patent/JP2008198145A/ja
Publication of JP2008198145A publication Critical patent/JP2008198145A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ネットワーク接続された複数の計算機によって構成される分散計算機環境を用いた分散システム処理開始時点において、負荷分散を行うことを目的とする。また、本発明は、例えば、システム全体の計算能力に対する悪影響を与えることなく負荷分散を行うことを目的とする。
【解決手段】実行開始前に予め実行を分担するプログラムの処理負荷を見積もってモデル処理量見積値として設定した情報を基に、実行開始時に負荷の配分を行う。また、予め定義した計算機負荷の閾値を超えるタイミングに負荷配分を実行する。
【選択図】図3

Description

本発明は、例えば、ネットワーク接続された複数の計算機によって構成される分散計算機環境を用いた分散システムに関するものである。特に、本発明は、例えば、処理の実行開始前および実行中に各計算機の処理負荷を見積もり、各計算機の処理負荷を均等化することを目的に実行処理の配分を行うことで、分散システムの全体的な処理性能の向上と、メモリ、ハードディスク等の計算機資源の過剰な消費の回避を実現するものである。
ネットワーク接続された複数の計算機によって構成される分散計算機環境を用いた分散システムは、比較的安価な市販計算機を多数用いて並列計算を行うことで高価なスーパーコンピュータと同等以上の計算能力を得ることが可能である。また分散システムは、計算機台数を増やすことによる性能拡張も可能である。そのため、分散システムは近年では非常に多く利用されている。しかし、分散システムにおいて多数の計算機で並列計算を行う際に、少数の計算機に局所的に計算負荷が集中してしまうと、負荷が集中した計算機での処理が完了するまで他計算機の処理も待たされてしまう。この場合、システム全体の計算能力が著しく低下するという課題がある。したがって、分散システムにおいて、各計算機に対する処理負荷の均等配分が大きな技術課題である。
特許文献1は、上述したような処理負荷の均等配分に関するものである。特許文献1は、各計算機上で実行されるプログラムの負荷を監視し、動的に計算機間の負荷を調整する分散システムについての発明である。特許文献1に記載された分散システムは、次のようなものである。
(1)模擬対象となる多数の物体(オブジェクト)の模擬処理を実行するオブジェクトプログラムを各計算機で1個以上分担実行する。
(2)模擬実行処理の処理区分であるフレーム単位で各オブジェクトプログラムの処理時間を集計して比較評価する。
(3)計算機間のオブジェクトプログラム処理時間集計値の差が大きくならないように次フレームの処理開始時にオブジェクトプログラムの実行を各計算機間で配分し直す。
この(1)〜(3)の処理を、各フレームにおいて繰り返し実行することにより、各計算機間の処理負荷を均等化する。
特開2003−316754号公報
上述したように、従来の分散システムでは、フレーム毎にオブジェクトプログラムの実行を各計算機間で配分し直すことを繰り返すことにより処理負荷を均等化する。特許文献1に記載された分散システムには、以下のような課題がある。
(1)処理開始時点、すなわち第1フレームにおいて各計算機に対するオブジェクトプログラムの実行配分は任意であり、そのため処理開始時点は処理負荷が均等化されていないという課題がある。
(2)フレーム毎にオブジェクトプログラムの実行を各計算機間で配分し直すことを繰り返すため、フレームの合間にオブジェクトプログラムの実行を計算機間で切り替えるための通信処理やデータ読込み処理等のオブジェクトプログラム切り替え処理が必要となる。特に各計算機間でオブジェクトプログラムの実行配分が大きく切り替わる場合等に多大なオブジェクトプログラム切り替え処理時間を必要とする。そのため、全体的に見た場合にはこれらのオブジェクトプログラム切り替え処理がオブジェクトプログラムの模擬実行処理を圧迫し、システム全体の計算能力を向上させることが難しいという課題がある。
本発明は、例えば、処理開始時点において負荷分散を行うことを目的とする。また、本発明は、例えば、システム全体の計算能力に対する悪影響を与えることなく負荷分散を行うことを目的とする。
本発明に係る負荷分散装置は、例えば、ネットワーク接続された複数の計算機を備える分散システムの負荷分散装置において、
複数の処理を有する全体処理の実行開始前に予め見積もられた、上記複数の処理の各処理の処理負荷の見積値を記憶装置に記憶する処理量見積値記憶部と、
上記処理量見積値記憶部が記憶した上記各処理の処理負荷の見積値に基づき、所定のスケジューリングアルゴリズムにより、上記全体処理の実行開始前に上記各処理を実行する計算機を上記複数の計算機の中から処理装置により決定する負荷配分部と
を備えることを特徴とする。
本発明に係る負荷分散装置は、実行開始前に利用者が予め実行を分担するプログラムの処理負荷を見積もってモデル処理量見積値として設定した情報を基に、実行開始時に負荷の配分を行うことにより、処理開始時点において処理負荷を均等化することが可能である。
さらに、本発明に係る負荷分散装置は、負荷配分のタイミングを周期的に行うのではなく、予め利用者が定義した計算機負荷の閾値を超えるタイミングによって負荷配分を実行することで、必要な場合にのみ負荷配分処理の処理コストが発生するため、システム全体の計算能力に対する悪影響を少なくすることが可能である。
図1は、実施の形態における負荷分散システム100の外観の一例を示す図である。
図1において、負荷分散システム100は、PC909(Personal Computer)、1台以上のサーバ917を備える。また、PC909は、LCD(液晶)901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disc・Drive)、CDD905(コンパクトディスク装置)、などのハードウェア資源を備え、これらのハードウェア資源はケーブルや信号線で接続されている。
PC909、サーバ917は、コンピュータであり、ローカルエリアネットワーク942(LAN)やインターネット940により接続されている。
ここで、サーバ917は、後述する計算機101及び負荷分散装置110のハードウェア構成の一例である。
図2は、実施の形態における計算機101及び負荷分散装置110の一例を示す図である。
図2において、計算機101及び負荷分散装置110は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード915、キーボード902、FDD904、CDD905などは、入力装置の一例である。
通信ボード915は、LAN942等に接続されている。
磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
上記プログラム群923には、以下に述べる実施の形態の説明において「モデル処理部102」、「負荷配分部105」、「シナリオファイル記憶部106」、「モデル処理量見積値設定ファイル記憶部107」、「初期設定ファイル記憶部108」、「負荷監視部109」として説明する機能を実行するプログラムがそれぞれ記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「シナリオファイル」、「モデル処理量見積値設定ファイル」、「初期設定ファイル」として説明する情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶されている。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、コンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disc)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
実施の形態1.
実施の形態1では、処理実行開始時点における処理負荷の均等化について説明する。実施の形態1では、分散システム(負荷分散システム100)の一例として分散シミュレーションシステムを用いて説明する。
図3は、実施の形態1に係る分散シミュレーション方式に基づき実行される、分散シミュレーションシステムの機能を示す機能ブロック図である。
図3において、分散シミュレーションシステムは、1台以上の計算機101(計算機1〜計算機n)を備える。計算機101には、シミュレーションの実行のために利用することが予め決められている計算機と、必要な場合にシミュレーションに参加させる予備計算機の2種類がある。いずれの計算機101も内部の構成は原則として同じである。
各計算機101は、モデル処理部102を備える。また、負荷分散機能を備えた計算機101(負荷分散装置110)は、さらに、負荷配分部105、シナリオファイル記憶部106、モデル処理量見積値設定ファイル記憶部107(処理量見積値記憶部)、初期設定ファイル記憶部108(許容量記憶部)を備える。
モデル処理部102は、計算機101内においてシミュレーション処理を実行する。モデル処理部102は、分散シミュレーションシステムの標準アーキテクチャであるHLA(High Level Architecture:IEEE Std 1516−2000)に基づき、機能が構成されている。モデル処理部102は、1つ以上のフェデレート機能103、RTI(Run−Time Infrastructure)機能104を備える。フェデレート機能103は、HLAで定義された機能であり、分散シミュレーションにおける模擬処理等の応用に依存する機能を分散実装した機能である。フェデレート機能103は、1計算機に対して1つ以上実行される。RTI機能104は、HLAで定義された機能であり、分散シミュレーションにおけるデータ交換や時刻管理等の応用に依存しない基盤機能を実装した機能である。図3ではRTI機能104を計算機101毎に実行機能を持つ形態で例示したが、RTI機能104の実行形態はHLA規約には定められていない。したがって、RTI機能104は、フェデレート機能103毎に実行機能を持つ形態(分散型実行形態)や、またはシステム全体で1つの実行機能を持つ形態(サーバ型実行形態)等としても構わない。ここでは、RTI機能104がどのような形態であっても、全て、あるいはどれか1つのモデル処理部102に含まれるものとする。
負荷配分部105は、計算機101毎に、モデル処理部102における実行状態を管理することにより、処理負荷が均等になるように配分する機能である。
シナリオファイル記憶部106は、シミュレーションの模擬処理を実行するフェデレート機能103や、負荷配分部105が読み込むシナリオデータが設定されたシナリオファイルを記憶装置に記憶する。
モデル処理量見積値設定ファイル記憶部107は、個々のフェデレート機能103が実行する個別の模擬処理の処理負荷の見積値が設定されたモデル処理量見積値設定ファイルを記憶装置に記憶する。
初期設定ファイル記憶部108は、個々の計算機101のCPU性能、メモリ性能、ハードディスク性能等のリソースに対する消費量を計算機負荷とした場合の計算機101毎の最大許容負荷量を記憶装置に記憶する。また、初期設定ファイル記憶部108は、個々の計算機101において必ず実行される機能(例えばオペレーティングシステムや、システム全体で1つのサーバ型実行形態により実行される場合のRTI機能104)によって消費される計算機101毎の初期負荷量とを設定した初期設定ファイルを記憶装置に記憶する。
図4は、シナリオファイル記憶部106が記憶するシナリオファイルの設定例である。シナリオファイルにはシミュレーションを実行するための様々な情報が定義されているがここでは負荷配分部105が読込む情報について説明する。シナリオファイルは、登場オブジェクト名201、オブジェクト実行フェデレート名202、オブジェクト模擬開始時刻203、オブジェクト模擬終了時刻204を有する。これらの4種の情報は、どのようなシミュレーションであっても必ずシナリオに定義されているか、または暗黙のうちに決められている情報である。また、シナリオファイルは、全体模擬終了時刻205を有する。
登場オブジェクト名201は、シミュレーションにおいて模擬実行される対象物であるオブジェクト名称である。
オブジェクト実行フェデレート名202は、オブジェクトが実行されるフェデレートの名称である。
オブジェクト模擬開始時刻203は、オブジェクトがシミュレーションにおいて生成(模擬開始)されるシミュレーションにおけるの時刻である。
オブジェクト模擬終了時刻204は、オブジェクトがシミュレーションにおいて破棄(模擬終了)されるシミュレーションにおけるの時刻である。
全体模擬終了時刻205は、シナリオファイルに設定された情報のうち負荷配分部105が読み込む情報には、シミュレーション全体が終了するシミュレーション時刻である。シミュレーションの種類により、オブジェクト模擬終了時刻204が決められていない場合も考えられるが、その場合はオブジェクト模擬終了時刻204の設定値のうち、最大の設定値を全体模擬終了時刻205と仮定する。
図5は、モデル処理量見積値設定ファイル記憶部107が記憶するモデル処理量見積値設定ファイルの設定例である。モデル処理量見積値設定ファイルは、登場オブジェクト名301、CPU処理量見積値302、メモリ使用量見積値303、ディスク使用量見積値304を有する。
登場オブジェクト名301は、シナリオファイルの登場オブジェクト名201と同様、シミュレーションにおいて模擬実行される対象物であるオブジェクト名称である。
CPU処理量見積値302とメモリ使用量見積値303とディスク使用量見積値304とは、それぞれ個々のフェデレート機能103が実行する個別の模擬処理の処理負荷の見積値である。CPU処理量見積値302は、CPUの使用率の見積値である。メモリ使用量見積値303は、メモリ使用量の見積値である。ディスク使用量見積値304は、ディスク使用量の見積値である。
図6は、初期設定ファイル記憶部108が記憶する初期設定ファイルの設定例である。初期設定ファイルは、各計算機101における最大許容負荷量(図6の(a))、個々の計算機101において必ず実行される機能によって消費される計算機101毎の初期負荷量(図6の(b))、全計算機101では実行されないが特定の計算機101で実行される可能性がある機能に関する負荷量(図6の(c))とを有する。
各計算機101における最大許容負荷量について、初期設定ファイルは、計算機名401、CPU処理量リミット値402、メモリ使用量リミット値403、ディスク使用量リミット値404を有する。計算機名401は、分散シミュレーションシステムに使用される個々の計算機101の名称である。CPU処理量リミット値402は、CPUの使用率の最大許容値である。メモリ使用量リミット値403は、メモリ使用量の最大許容値である。ディスク使用量リミット値404は、ディスク使用量の最大許容値である。
個々の計算機101において必ず実行される機能によって消費される計算機101毎の初期負荷量について、初期設定ファイルは、計算機名401、CPU処理量初期値405、メモリ使用量初期値406、ディスク使用量初期値407を有する。計算機名401は上記と同様である。CPU処理量初期値405とメモリ使用量初期値406とディスク使用量初期値407とは、それぞれCPU、メモリ、ディスクの必ず消費される初期負荷量である。
全計算機101では実行されないが特定の計算機101で実行される可能性がある機能に関する負荷量について、計算機名401、CPU処理量初期値(RTI)408、メモリ使用量初期値(RTI)409、ディスク使用量初期値(RTI)410を有する。ここで、全計算機101では実行されないが特定の計算機101で実行される可能性がある機能とは、システム全体で1つのサーバ型実行形態により実行される場合のRTI機能等である。計算機名401は上記と同様である。CPU処理量初期値(RTI)408とメモリ使用量初期値(RTI)409とディスク使用量初期値(RTI)410とは、それぞれシステム全体で1つのサーバ型実行形態により実行される場合のRTI機能である。
次に図7に基づき、分散シミュレーションシステムがシミュレーション実行開始時点における処理負荷の均等化を行う処理実行前負荷分散処理について説明する。図7は、処理実行前負荷分散処理の動作を示すフローチャートである。
まず、読込処理(S101)では、負荷配分部105は、シミュレーション実行開始時点において、シナリオファイル、モデル処理量見積値設定ファイル及び初期設定ファイルを読み込む。
ここで、シナリオファイルには、オブジェクトが実行されるフェデレートと、実行開始または終了されるタイミングが設定されている。また、モデル処理量見積値設定ファイルには、各オブジェクトが実行されることによって生じる負荷の量が設定されている。また、初期設定ファイルには、各計算機101の負荷の最大許容量と、初期値としての負荷の量が設定されている。
次に、負荷配分処理(S102)では、負荷配分部105は、(S101)で読込んだ情報を基に、どの計算機101で、どの時間において、どのフェデレートを実行するのかのスケジューリング情報を作成する。
ここで、スケジューリング情報を作成するアルゴリズムはどのようなアルゴリズムであっても構わない。例えば、所定の期間における処理負荷の平均値が高い順にフェデレートの情報をソートしておき、最も処理負荷が高いフェデレートから順に各計算機101に割り当てていくような、単純で短時間に結果を得られる方式でも構わない。また、遺伝的アルゴリズムにより最適解に近いスケジューリングを求めるような、結果が得られるまでに時間がかかる方式でも構わない。つまり、負荷配分部105は、どの計算機101で、どの時間において、どのフェデレートを実行するのかといった情報が作成されれば良く、スケジューリング情報の作成手段としてはどのようなアルゴリズムを用いても良い。
そして、実行処理(S103)では、負荷配分部105は、作成したスケジューリング情報に基づき、各計算機101のモデル処理部102に対して、フェデレート機能103やRTI機能104の起動を行う。
図8、図9は、図4に示すシナリオファイルと、図5に示すモデル処理量見積値設定ファイルとの設定情報を基に、スケジューリングを行い、計算機101に対して負荷配分を行う例を示す。ここでは、説明の簡単のためCPU処理負荷のみに基づき負荷配分を行った例を示す。しかし、実際には、その他のメモリやディスクの処理負荷なども考慮して負荷配分を行うとしても構わない。
ここでは、まず、オブジェクト毎のCPU処理量見積値302と実行時間(オブジェクト模擬終了時刻204からオブジェクト模擬開始時刻203を引いた時間)とから時間的な平均値を求めて、フェデレート毎に集計したフェデレートCPU処理負荷量平均値を算出する。図8の例ではパーセンテージ値を用いているため、集計値が100%以上の場合には100%を用いることとする。つまり、以下の2つの式で算出する。
(1)フェデレートCPU処理負荷量平均値 = min(オブジェクトCPU処理負荷量平均値集計値,100)
(2)オブジェクトCPU処理負荷量平均値集計値 = sum(オブジェクトCPU処理量見積値302 / オブジェクト模擬終了時刻204 − オブジェクト模擬開始時刻203)
次に、ここでは、フェデレートCPU処理負荷量平均値が高いフェデレートから順に各計算機101に割り当てたスケジューリング情報を作成する。
そして、作成したスケジューリング情報を用いて3台の計算機101に対して負荷配分を行った。
ここで、図8は、フェデレートCPU処理負荷量平均値の高い順にフェデレートをソートした状態を示す図である。また、図9は、最終的にフェデレートを各計算機101に割当した状態を示す図である。
図8、図9に示す例では、各計算機101に割り当てられたフェデレートのフェデレートCPU処理負荷量平均値の計算機101単位の合計値は、図6の(b)、(c)に示す初期設定ファイルに設定された当該計算機101のCPU処理量初期値405とCPU処理量初期値(RTI)408とを加算しても、図6の(a)に設定された当該計算機101のCPU処理量リミット値402を超えない。したがって、予備計算機を追加することなく、そのまま実行開始される。図8、図9に示す例と異なり、各計算機101に割り当てられたフェデレートのフェデレートCPU処理負荷量平均値の計算機101単位の合計値に、当該計算機101のCPU処理量初期値405やCPU処理量初期値(RTI)408を加算した値が、当該計算機101のCPU処理量リミット値402を超える場合には、分散シミュレーションシステムに追加可能な予備計算機を追加し、その予備計算機に対して割り当てを行う。
以上のように、実施の形態1に係る分散シミュレーションシステムでは、実行開始前に利用者等が予め実行を分担するプログラムの処理負荷を見積もってモデル処理量見積値として設定した情報を基に、実行開始時に負荷の配分を行うことにより、処理開始時点において処理負荷を均等化することができる。
また、負荷の配分を行った結果、許容量を超えた場合、予備計算機に対して処理を割り当てることができる。予備計算機を複数の分散シミュレーションシステムで共有することや、予備計算機を通常は他の用途に使用することで、コストを抑えることができる。
図10は、図3に示す分散シミュレーションシステムとは異なる構成の分散シミュレーションシステムの機能を示す機能ブロック図である。図10に示す分散シミュレーションシステムは、図3に示す分散シミュレーションシステムとは異なり、処理を実施する計算機101とは別に負荷分散装置110を備える。つまり、図3に示す分散シミュレーションシステムでは、ある計算機101が負荷分散機能(負荷配分部105、シナリオファイル記憶部106、モデル処理量見積値設定ファイル記憶部107、初期設定ファイル記憶部108)を備えていたが、図10に示す分散シミュレーションシステムでは、負荷分散機能のみを備えた負荷分散装置110を有し、各計算機101は処理の実行を行う機能のみを備える。
具体的には、負荷分散装置110は、負荷配分部105、シナリオファイル記憶部106、モデル処理量見積値設定ファイル記憶部107、初期設定ファイル記憶部108を備える。そして、計算機101は、モデル処理部102を備える。
実施の形態2.
実施の形態2では、処理実行中における、計算機101の負荷状況監視に基づいた処理負荷の均等化について説明する。実施の形態2では、実施の形態1と同様に分散システム(負荷分散システム100)の一例として分散シミュレーションシステムを用いて説明する。
シミュレーションの実行中において、シミュレーションの実行内容に応じて当初の見積値を超えた負荷が発生する場合や、シミュレーション以外の割り込み処理等が実行される場合等、不測の事態により特定の計算機101の負荷が高くなることがある。その結果、全体のシミュレーション実行速度性能等に影響を及ぼすような場合がある。実施の形態2では、このような場合に、シミュレーションの実行中に動的に負荷の均等化を行う処理について説明する。
図11は、実施の形態2に係る分散シミュレーション方式に基づき実行される、分散シミュレーションシステム(負荷分散システム100)の機能を示す機能ブロック図である。
実施の形態2に係る分散シミュレーションシステムでは、実施の形態1に係る分散シミュレーションシステムの機能に加え、計算機101は負荷監視部109を備える。
負荷監視部109は、各計算機101の負荷状況を監視する機能である。負荷監視部109は、自己が動作している計算機101の負荷状況を監視し、計算機全体として監視した結果である計算機負荷情報と、フェデレートプログラム個別に監視した結果であるフェデレート負荷情報とを、例えば定期的に負荷配分部105に通知する。負荷監視部109が計算機101の負荷状況を監視する手段としては、例えば、OSの機能として利用可能な手段を用いることができる。例えば、Linux(登録商標) OS等では、vmstatコマンド、freeコマンド、dfコマンド等を実行することにより、システム全体のCPU負荷状況、メモリ使用量、ディスク使用量等に関する情報を取得することができる。また、Linux OS等では、pstatコマンド等により、個々のプログラムが実行する際のプロセス、スレッド単位でのCPU負荷状況、メモリ使用量、ディスク使用量等を取得することができる。なお、その他のOSでも同様のコマンドやシステムコール等を利用することが可能である。
次に図12に基づき、分散シミュレーションシステムがシミュレーション実行中における処理負荷の均等化を行う処理実行中負荷分散処理について説明する。図12は、処理実行中負荷分散処理の動作を示すフローチャートである。
まず、負荷監視処理(S201)では、負荷監視部109は、各計算機101の負荷状況を監視し、計算機負荷情報とフェデレート負荷情報とを負荷配分部105へ送信する。
次に、負荷判定処理(S202)では、負荷配分部105は、各計算機101の負荷監視部109から計算機負荷情報の通知を受けると、その計算機負荷情報に含まれる計算機全体の負荷量の値(CPU処理量、メモリ使用量、ディスク使用量等)と、初期設定ファイルに設定された各計算機101における最大許容負荷量の値を比較する。ここで、計算機負荷情報に含まれる計算機全体の負荷量の値ではなく、計算機負荷情報を用いた演算により得られた負荷量の値と最大許容負荷量の値を比較するとしても構わない。比較の結果、計算機全体の負荷量の値が最大許容負荷量の値を超えていると負荷配分部105が判定した場合(S202でYes)、(S203)へ進む。一方、比較の結果、計算機全体の負荷量の値が最大許容負荷量の値を超えていないと負荷配分部105が判定した場合(S202でNo)、負荷配分部105は次の負荷情報が送信されるのを待つ。
次に、負荷配分処理(S203)では、負荷配分部105は、フェデレートの再割り当てを実行するために、どの計算機101で、どの時間において、どのフェデレートを実行するのかのスケジューリング情報を再作成する。負荷配分部105は、実施の形態1で用いたモデル処理量見積値設定ファイルに設定された見積値の代わりに、負荷監視部109から通知されたフェデレート負荷情報を用いて、実施の形態1で説明したような方式によりスケジューリング情報を再作成する。
そして、実行処理(S204)では、負荷配分部105は、再作成されたスケジューリング情報に基づき、各計算機101のモデル処理部102に対して、必要に応じてフェデレート機能103やRTI機能104の起動、終了等の制御を行う。
なお、スケジューリングの再作成を行っても、初期設定ファイルに設定された各計算機101における最大許容負荷量を超えてしまうような場合は、実施の形態1で説明したように、分散シミュレーションシステムに追加可能な予備計算機を追加し、その予備計算機に対しても割り当てを行う。シミュレーションを実行中の分散シミュレーションシステムに予備計算機を追加する処理は、HLAで定義されたRTI機能の、Federation Management、Declaration Management、Object Management等の機能を用いることにより実行する。
以上のように、実施の形態2に係る分散シミュレーションシステムでは、予め利用者等が定義した計算機負荷の閾値を超えるタイミングに負荷配分を実行する。そのため、必要な場合にのみ負荷配分処理の処理コストが発生するので、システム全体の計算能力に対する悪影響を少なくすることができる。
図13は、図11に示す分散シミュレーションシステムとは異なる構成の分散シミュレーションシステムの機能を示す機能ブロック図である。図13に示す分散シミュレーションシステムは、図11に示す分散シミュレーションシステムとは異なり、処理を実施する計算機101とは別に負荷分散装置110を備える。つまり、図11に示す分散シミュレーションシステムでは、ある計算機101が負荷分散機能を備えていたが、図13に示す分散シミュレーションシステムでは、負荷分散機能のみを備えた負荷分散装置110を有し、各計算機101は処理の実行を行う機能と負荷を監視する機能のみを備える。
具体的には、負荷分散装置110は、負荷配分部105、シナリオファイル記憶部106、モデル処理量見積値設定ファイル記憶部107、初期設定ファイル記憶部108を備える。そして、計算機101は、モデル処理部102、負荷監視部109を備える。
また、負荷分散装置110は、上記に加え、さらに各計算機101の負荷を監視する負荷監視部109を備えるとしても構わない。この場合、各計算機101は、モデル処理部102のみを備えれば足りる。この場合には、負荷分散装置110が備える負荷監視部109は、監視する計算機101毎に存在するとしても、1つの負荷監視部109が全ての計算機101を監視するとしても構わない。
ここで、上記実施の形態に係る分散シミュレーションシステムは、ネットワーク接続された複数の計算機101を備える分散システム(負荷分散システム100)の一例である。つまり、上記実施の形態に係る分散シミュレーションシステムは必ずしもシミュレーションシステムである必要はなく、その他のシステムであっても構わない。すなわち、上記実施の形態に係る分散シミュレーションシステムが備える計算機101により実行される処理は、シミュレーションプログラムに限られず、いかなるプログラムでも構わない。つまり、上記実施の形態に係る分散シミュレーションシステムは、モジュール、関数、サブルーチン、サブプログラム、プログラム、機能等とよばれる処理を複数有するプログラム(全体処理)を実行する際、所定のスケジューリングアルゴリズムにより、各処理を実行する計算機101を決定する。
つまり、上記実施の形態に係る分散シミュレーションシステムは、
複数の処理を有する全体処理の実行開始前に予め見積もられた、上記複数の処理の各処理の処理負荷の見積値を記憶装置に記憶するモデル処理量見積値設定ファイル記憶部107(処理量見積値記憶部)と、
モデル処理量見積値設定ファイル記憶部107(処理量見積値記憶部)が記憶した上記各処理の処理負荷の見積値に基づき、所定のスケジューリングアルゴリズムにより、上記全体処理の実行開始前に上記各処理を実行する計算機101を上記複数の計算機101の中から処理装置により決定する負荷配分部105と
を備える負荷分散装置110(負荷分散機能)を有することを特徴とする。
また、上記実施の形態に係る分散シミュレーションシステムが備える負荷分散装置110は、さらに、
上記各計算機101の負荷に対する許容量を記憶装置に記憶する初期設定ファイル記憶部108(許容量記憶部)と、
上記全体処理の実行中における上記各計算機101の負荷を処理装置により監視して上記負荷配分部105へ通知する負荷監視部109とを備え、
上記負荷配分部105は、上記負荷監視部109が通知した上記各計算機101の負荷の中の少なくとも1つの計算機101の負荷が、初期設定ファイル記憶部108(許容量記憶部)が記憶した上記計算機101の負荷に対する許容量を超えた場合、改めて上記各処理を実行する計算機101を上記複数の計算機101の中から決定する
ことを特徴とする。
さらに、上記負荷配分部105は、上記各処理を実行する計算機101を決定した場合に、上記複数の計算機101の少なくとも1つの計算機101の負荷が、初期設定ファイル記憶部108(許容量記憶部)が記憶した上記計算機101の負荷に対する許容量を超えた場合、上記各処理を実行する計算機101を上記複数の計算機101と上記複数の計算機101以外の予備の計算機との中から決定する
ことを特徴とする。
実施の形態における負荷分散システム100の外観の一例を示す図。 実施の形態における計算機101及び負荷分散装置110の一例を示す図。 実施の形態1に係る分散シミュレーション方式に基づき実行される、分散シミュレーションシステム(負荷分散システム100)の機能を示す機能ブロック図。 シナリオファイル記憶部106が記憶するシナリオファイルの設定例。 モデル処理量見積値設定ファイル記憶部107が記憶するモデル処理量見積値設定ファイルの設定例。 初期設定ファイル記憶部108が記憶する初期設定ファイルの設定例。 処理実行前負荷分散処理の動作を示すフローチャート。 図4に示すシナリオファイルと、図5に示すモデル処理量見積値設定ファイルとの設定情報を基に、スケジューリングを行い、3台の計算機101に対して負荷配分を行う例。 図4に示すシナリオファイルと、図5に示すモデル処理量見積値設定ファイルとの設定情報を基に、スケジューリングを行い、3台の計算機101に対して負荷配分を行う例。 図3に示す分散シミュレーションシステムとは異なる構成の分散シミュレーションシステムの機能ブロック図。 実施の形態2に係る分散シミュレーション方式に基づき実行される、分散シミュレーションシステム(負荷分散システム100)の機能を示す機能ブロック図。 処理実行中負荷分散処理の動作を示すフローチャート。 図11に示す分散シミュレーションシステムとは異なる構成の分散シミュレーションシステムの機能を示す機能ブロック図。
符号の説明
100 負荷分散システム、101 計算機、102 モデル処理部、103 フェデレート機能、104 RTI機能、105 負荷配分部、106 シナリオファイル記憶部、107 モデル処理量見積値設定ファイル記憶部、108 初期設定ファイル記憶部、109 負荷監視部、201 登場オブジェクト名、202 オブジェクト実行フェデレート名、203 オブジェクト模擬開始時刻、204 オブジェクト模擬終了時刻、205 全体模擬終了時刻、301 登場オブジェクト名、302 CPU処理量見積値、303 メモリ使用量見積値、304 ディスク使用量見積値、401 計算機名、402 CPU処理量リミット値、403 メモリ使用量リミット値、404 ディスク使用量リミット値、405 CPU処理量初期値、406 メモリ使用量初期値、407 ディスク使用量初期値、408 CPU処理量初期値(RTI)、409 メモリ使用量初期値(RTI)、410 ディスク使用量初期値(RTI)、901 LCD、902 K/B、903 マウス、904 FDD、905 CDD、909 PC、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (4)

  1. ネットワーク接続された複数の計算機を備える分散システムの負荷分散装置において、
    複数の処理を有する全体処理の実行開始前に予め見積もられた、上記複数の処理の各処理の処理負荷の見積値を記憶装置に記憶する処理量見積値記憶部と、
    上記処理量見積値記憶部が記憶した上記各処理の処理負荷の見積値に基づき、所定のスケジューリングアルゴリズムにより、上記全体処理の実行開始前に上記各処理を実行する計算機を上記複数の計算機の中から処理装置により決定する負荷配分部と
    を備えることを特徴とする負荷分散装置。
  2. 上記負荷分散装置は、さらに、
    上記各計算機の負荷に対する許容量を記憶装置に記憶する許容量記憶部と、
    上記全体処理の実行中における上記各計算機の負荷を処理装置により監視して上記負荷配分部へ通知する負荷監視部とを備え、
    上記負荷配分部は、上記負荷監視部が通知した上記各計算機の負荷の中の少なくとも1つの計算機の負荷が、上記許容量記憶部が記憶した上記計算機の負荷に対する許容量を超えた場合、改めて上記各処理を実行する計算機を上記複数の計算機の中から決定する
    ことを特徴とする請求項1記載の負荷分散装置。
  3. 上記負荷分散装置は、さらに、
    上記各計算機の負荷に対する許容量を記憶装置に記憶する許容量記憶部を備え、
    上記負荷配分部は、上記各処理を実行する計算機を決定した場合に、上記複数の計算機の少なくとも1つの計算機の負荷が、上記許容量記憶部が記憶した上記計算機の負荷に対する許容量を超えた場合、上記各処理を実行する計算機を上記複数の計算機と上記複数の計算機以外の予備の計算機との中から決定する
    ことを特徴とする請求項1記載の負荷分散装置。
  4. 上記負荷配分部は、改めて上記各処理を実行する計算機を決定した場合に、上記複数の計算機の少なくとも1つの計算機の負荷が、上記許容量記憶部が記憶した上記計算機の負荷に対する許容量を超えた場合、上記各処理を実行する計算機を上記複数の計算機と上記複数の計算機以外の予備の計算機との中から決定する
    ことを特徴とする請求項2記載の負荷分散装置。
JP2007035573A 2007-02-16 2007-02-16 負荷分散装置 Pending JP2008198145A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007035573A JP2008198145A (ja) 2007-02-16 2007-02-16 負荷分散装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007035573A JP2008198145A (ja) 2007-02-16 2007-02-16 負荷分散装置

Publications (1)

Publication Number Publication Date
JP2008198145A true JP2008198145A (ja) 2008-08-28

Family

ID=39756993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007035573A Pending JP2008198145A (ja) 2007-02-16 2007-02-16 負荷分散装置

Country Status (1)

Country Link
JP (1) JP2008198145A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079670A (ja) * 2008-09-26 2010-04-08 Oki Electric Ind Co Ltd Sipアプリケーションサーバのロードバランサおよびその動作方法
JP2014154059A (ja) * 2013-02-13 2014-08-25 Mitsubishi Electric Corp 時空管理装置及び時空管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079670A (ja) * 2008-09-26 2010-04-08 Oki Electric Ind Co Ltd Sipアプリケーションサーバのロードバランサおよびその動作方法
JP2014154059A (ja) * 2013-02-13 2014-08-25 Mitsubishi Electric Corp 時空管理装置及び時空管理プログラム

Similar Documents

Publication Publication Date Title
KR102506605B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
CN108733509B (zh) 用于在集群系统中备份和恢复数据的方法和系统
US9934098B2 (en) Automatic serial order starting of resource groups on failover systems based on resource group usage prediction
US10649518B2 (en) Adaptive power control loop
JP5602851B2 (ja) 最適ネットワーク・トポロジの識別を用いた分散データ処理システム内のジョブ・スケジューリングのための方法及びシステム
Zhou et al. Reducing energy costs for IBM Blue Gene/P via power-aware job scheduling
Sampaio et al. PIASA: A power and interference aware resource management strategy for heterogeneous workloads in cloud data centers
US9588813B1 (en) Determining cost of service call
US20100251254A1 (en) Information processing apparatus, storage medium, and state output method
US20180157539A1 (en) Tail latency-based job offloading in load-balanced groups
Choi et al. Task classification based energy-aware consolidation in clouds
KR20100138885A (ko) 라우팅 워크로드들 및 그 계산방법
US20150378782A1 (en) Scheduling of tasks on idle processors without context switching
WO2017123271A1 (en) Performance-based migration among data storage devices
CN104461673B (zh) 一种虚拟机迁移判定方法及装置
US10114438B2 (en) Dynamic power budgeting in a chassis
US8457805B2 (en) Power distribution considering cooling nodes
Vengerov et al. A Reinforcement Learning Framework for Dynamic Resource Allocation: First Results.
Wu et al. An integrated security-aware job scheduling strategy for large-scale computational grids
US11249817B2 (en) Autoscaling of data processing computing systems based on predictive queue length
JP2008198145A (ja) 負荷分散装置
JP2013222459A (ja) 負荷に基づくプロセッサ数のプログラム管理
US10599479B2 (en) Resource sharing management of a field programmable device
JP6412462B2 (ja) トランザクション管理方法、トランザクション管理装置
JP2014206805A (ja) 制御装置