(57)【要約】      （修正有）【課題】複数の計算機が協調して処理を行う計算機システムにおいて、個々の計算機の負荷情報による判断だけでは最適なタスクの割当ができず、結果として実行効率の悪いタスク割当をしてしまうことがある。【解決手段】個々の計算機の負荷情報２１１だけでなく、個々の計算機で実行中のタスク２１２、割り当てられるタスクと他のタスク間の関連度２１３、計算機のネットワーク上での距離２１４も考慮してタスクの割当を行う。【選択図】図２
2005310120.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された複数の計算機により、ユーザからの要求（タスク）を処理する計算機システムであって、タスク割当処理部を有し、
当該タスク割当処理部は、
各計算機の負荷情報、各計算機で実行中のタスク情報、タスク間の関連度情報、計算機間のネットワーク上での距離情報に基づいて、割当適正度を算出する機能と、
前記割当適正度に基づいて、当該タスクの処理を行う計算機を選択する機能と、
を有することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムにおいて、
前記タスク間の関連度情報は、タスク間の通信データ量に基づいて算出される計算機システム。
【請求項３】
請求項１に記載の計算機システムにおいて、
前記ネットワーク上の距離情報は、タスク処理を行う各計算機間の中継機器の数量の情報、タスク処理を行う各計算機間のタスク回線帯域情報の少なくとも１つに基づいて算出される計算機システム。
【請求項４】
請求項１に記載の計算機システムにおいて、
前記割当適正度は、
割当対象の全ての計算機に対して計算するのではなく、あらかじめ前記各情報に下限または上限を設定し、その制限を越えていない計算機に対して為される計算機システム。
【請求項５】
請求項２に記載の計算機システムにおいて、
前記タスク間の関連度情報は、一定時間内のタスク間の通信データ量情報に基づき、定期的に更新される計算機システム。
【請求項６】
ネットワークで接続された複数の計算機により、ユーザからの要求（タスク）を処理する計算機システムにおける、タスク割当て方法であって、
各計算機の負荷情報、各計算機で実行中のタスク情報、タスク間の関連度情報、計算機間のネットワーク上での距離情報に基づいて、割当適正度を算出するステップと、
当該割当適正度に基づいて、当該タスクの処理を行う計算機を選択するステップと、
を有することを特徴とするタスク割当て方法。
【請求項７】
請求項６に記載のタスク割当て方法において、
前記タスク間の関連度情報は、タスク間の通信データ量に基づいて算出されるタスク割当て方法。
【請求項８】
請求項６に記載のタスク割当て方法において、
前記ネットワーク上の距離情報は、タスク処理を行う各計算機間の中継機器の数量の情報、タスク処理を行う各計算機間のタスク回線帯域情報の少なくとも１つに基づいて算出されるタスク割当て方法。
【請求項９】
請求項６に記載のタスク割当て方法において、
前記割当適正度は、
割当対象の全ての計算機に対して計算するのではなく、あらかじめ前記各情報に下限または上限を設定し、その制限を越えていない計算機に対して為されるタスク割当て方法。
【請求項１０】
請求項７に記載のタスク割当て方法において、
前記タスク間の関連度情報は、一定時間内のタスク間の通信データ量情報に基づき、定期的に更新されるタスク割当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機から構成される計算機システムにおいて、複数のタスクを処理する際に、特定のタスクをどの計算機に割り当てて処理を行うかを決定する技術に関するものである。
【背景技術】
【０００２】
複数の計算機から構成される計算機システムにおいて、複数のタスクを処理する際に、個々の計算機の負荷情報（ＣＰＵ利用率）を利用して、なるべく利用されていない計算機に処理を割り当て負荷の平準化を図ることで、システム全体の処理性能を向上する技術が知られている。
【０００３】
【特許文献１】特開平５−２１６８４５公報
【特許文献２】特開２００２−１４０３１３公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、個々の計算機の負荷情報だけによる判断では最適なタスクの割当ができず、結果として実行効率の悪いタスク割当をしてしまうことがある。例えば、頻繁にデータのやり取りを行う２つのタスクがネットワーク上で遠い位置にある計算機に分散して割当てられた場合などがこれに相当する。ネットワーク上の距離がボトルネックとなりシステム全体としての処理効率が悪くなってしまう。
【課題を解決するための手段】
【０００５】
本発明では個々の計算機の負荷情報だけでなく、個々の計算機で実行中のタスク、割り当てられるタスクと他のタスク間の関連度、計算機のネットワーク上での距離も考慮してタスクの割当を行う。これにより、個々の計算機の負荷情報だけからタスク割当先計算機を選択した場合よりも、より実行効率の高いタスクの配置を行うことができる。
【発明の効果】
【０００６】
本発明により、複数の計算機が協調して処理を行う計算機システムにおけるシステム全体の処理効率が向上する。
【発明を実施するための最良の形態】
【０００７】
以下に、本発明の実施の形態を説明する。
【実施例１】
【０００８】
以下本発明の実施例を図により説明する。
【０００９】
本発明は図１に示したように、ネットワーク（１１１、１１２）で接続された複数の計算機（１０２、１０３、１０４、１０５、１０６）がユーザ（１０１）からの処理要求を受けて、協調して処理を実行する計算機システムにおいて、システム全体の処理性能を向上させるのに役立つ。ここではユーザ計算機（１０１）をひとつしか記載していないが、複数のユーザからの要求でも構わない。また、ユーザではなく計算機システム管理者からの要求も同様に受け付けられる。さらに、システム初期化時に自動的に実行されるタスクが存在していても構わない。
【００１０】
ユーザ（１０１）からの処理要求をタスク割当計算機（１０２）で受け付けると、タスク割当計算機は実際に処理を行う計算機の集合（タスク処理計算機：１０２、１０３、１０４、１０５、１０６）から要求された処理を行うのに適した計算機を選び出し、その計算機に処理を振り分ける。処理を振り分けられたタスク処理計算機は必要であれば他の計算機上のタスク（例えばＤＢマネージャ）とデータのやり取りを行いながら、要求された処理を行い処理結果を返す。タスクには瞬時に終了するものから長期にわたるものまで様々なものがある。また、処理要求元に結果を返さないタスクも許容される。
【００１１】
図２にタスク割当計算機（１０２）の構成を示す。タスク割当計算機（１０２）はＣＰＵ（２０１）、メモリ（２０２）、表示装置（２０３）、入力装置（２０４）、通信装置（２０５、２０６）、記憶装置（２０７）からなり、ネットワーク（１１１、１１２）に接続されている。該記憶装置（２０７）にはユーザからの処理要求を最適な計算機に割当てる「タスク割当処理部（２２１）」、タスク処理計算機から管理情報を受け取ってタスク割当処理に利用する情報を動的に更新する「情報更新処理部（２２２）」、タスク割当計算機が処理を割り当てる候補とする計算機（タスク処理計算機）に関する、負荷情報（２１１）、実行中タスク情報（２１２）、計算機間の距離情報（２１４）および、タスク間の関連度情報（２１３）、タスクの割り当て結果を記録する割当履歴情報（２１５）、各タスクが利用する通信ポート番号情報（２１６）が格納される。ここでは１台のタスク割当計算機が全ての情報を保持している場合を示したが、各情報を複数の計算機で分散して保持しても良い。負荷情報（２１１）はタスク処理計算機から新たな負荷情報を受け取った時に、実行中タスク情報（２１２）は新たなタスクを割当てた時およびタスク処理計算機からタスク終了通知を受け取った時、タスク間の関連度情報（２１３）はあらかじめ定められた一定時間毎に、それぞれ情報更新処理部により更新される。タスク間の関連度情報（２１３）については必ずしも動的に更新する必要はない。
【００１２】
本発明は記憶装置に格納された前記処理プログラム（タスク割当処理部、負荷情報更新処理部など）がメモリに読み込まれ、ＣＰＵで実行されることにより実現される。
【００１３】
タスク処理計算機には当該計算機の負荷情報、タスクの終了、通信履歴情報をタスク割当計算機に通知するプログラムが稼動している。
【００１４】
図３にタスク処理計算機（１０３、１０４、１０５、１０６）の構成を示す。タスク処理計算機はタスク割当計算機同様、ＣＰＵ（３０１）、メモリ（３０２）、表示装置（３０３）、入力装置（３０４）、通信装置（３０５）、記憶装置（３０７）からなり、ネットワーク（１１２）に接続されている。該記憶装置（３０７）には他の計算機との通信量を記録する「通信履歴記録部（３２１）」と、タスク割当計算機に該計算機の負荷情報、実行中タスク情報、通信履歴情報を送信する「管理情報送信部（３２２）」、ユーザからの要求を処理する「処理プログラム（３１１）」、該計算機の負荷情報、実行中タスク情報を記憶する「管理情報（３１２）」、他の計算機との通信履歴情報（３１３）が格納される。
【００１５】
図４に本実施例で想定するタスク処理側の接続形態を示す。４０１は外部ネットワークとの接続ルータ、４０２はタスク割当計算機、４０３および４０４はルータ、ハブ、スイッチのようなネットワーク中継機器、４１１から４１６が処理計算機を表す。ユーザからの処理要求は外部ネットワークからルータ（４０１）を経由してタスク割当計算機（４０２）に到達し、処理計算機（４１１、４１２、４１３、４１４、４１５、４１６）のいずれかに振り分けられ、処理が行われる。これらの処理計算機は必ずしも同じ構成の計算機である必要はない。異なるＣＰＵやＯＳが稼動する計算機の集合でも構わない。また、内部ネットワークの計算機（例えばS１）から管理用のタスク処理要求をタスク割当計算機に送信することも考えられる。
【００１６】
図５に、ある時点での各処理計算機の負荷情報（２１１）の例を示す。５０１は計算機のＩＤを、５０２は計算機の負荷を示す。例えば５１１は処理計算機Ｓ１（４１１）の負荷が「０」であることを、５１２は処理計算機Ｓ２（４１２）の負荷が「２」であることを示している。計算機のＩＤとしてIPアドレスなど計算機を特定可能な情報を利用することも可能である。
【００１７】
本負荷情報（２１１）は、各処理計算機が自身の負荷情報を管理情報送信部（３２２）からタスク割当計算機（１０２）に一定間隔毎（例えば1分毎）に送信し、これを受信したタスク割当計算機の情報更新処理部（２２２）によって計算機負荷情報（２１１）に記録される。各計算機の負荷情報は標準的なＯＳに備わったコマンド（例えば「ｕｐｔｉｍｅ」など）で取得可能である。また、逆にタスク割当計算機から一定間隔毎に、各処理計算機の負荷情報を要求して取得する方法を採用しても構わない。これには標準的なＯＳに備わったリモートシェルコマンド（例えば「ｒｓｈ」など）が利用可能である。
【００１８】
図６に図５と同じ時点での各計算機で処理中のタスク情報（２１２）を示す。６０１は計算機のＩＤを、６０２は処理中のタスクを表す。例えば６１１は計算機Ｓ１（４１１）で実行中のタスクがないことを、６１２は計算機Ｓ３（４１３）で実行中のタスクが「Ｔ２」と「Ｔ３」であることを示している。
【００１９】
図７にタスク間の関連度情報（２１３）を示す。ここではＴ１からＴ６までの６種類のタスクを処理することができ、縦軸と横軸の交差部分の数値がそれらのタスク間の関連度を表す。例えば７０１はタスクＴ１とＴ６の関連度が「１」であることを、７０２はタスクＴ４とＴ６の関連度が「５」であることを、７０３はタスクＴ６とＴ６の関連度が「３」であることを意味する。タスク関連度情報として、人間が手動で設定／更新した値を利用する単純な方法も考えられるが、タスク間でやり取りされるデータ量からタスク関連度情報を動的に更新する方法を後に説明する。
【００２０】
図８に計算機間のネットワーク上の距離情報を示す。Ｓ１からＳ６までの６台の計算機の距離が示されている。例えば８０１は計算機Ｓ１とＳ６のネットワーク上の距離が「３」であることを、８０２は計算機Ｓ４とＳ６のネットワーク上の距離が「２」であることを示す。ネットワーク上の距離とは計算機間の最短経路上の中継機器の数や回線の帯域、回線の込み具合などを考慮して手動または自動で設定する。中継機の数で自動的に設定する場合は、標準的なＯＳが備えるコマンド（例えば「ｔｒａｃｅｒｔ」など）を利用する。また、関連を持たせたくない計算機間の距離を意図的に遠く（本実施例では大きな値）設定しても構わない。
【００２１】
図９にタスク割当処理手順を示す。はじめにステップ９０１でユーザからの処理要求を受け付け、実行すべきタスクの種別を認識する。図１１にユーザからの処理要求データの例を示す。この例では1行目でタスクの種別が「Ｔ６」（１１０１）であること、２行目（１１１１）でタスクに与える引数のＩＤが「ｕｓｒ」（１１２１）、型が「ｉｎｔ」（１１２２）、値が「７」（１１２３）であることを示している。ここではＸＭＬ形式の処理要求データ例を示したが、これ以外にもＵＲＬ形式やバイナリ形式などの表現方法がある。ユーザからの処理要求はタスクを識別するための情報を含む。また、タスクへの引数情報を含むこともある。
【００２２】
次にステップ９０２で、各計算機がタスクを担当するのにどれくらい適しているかを示す「割当指数」を計算する。タスクの割当は「負荷が低く、処理するタスクと関連の強い他のタスクを実行中の計算機とのネットワーク上の距離が近い計算機」が適しているので、ここでは計算式として以下を採用して評価している（図１０）。
【００２３】
計算機ＳｎにタスクＴｍを割当てた時の割当指数＝Σ（割当対象の計算機（Ｓｐ）で実行中の全タスク（Ｔｑ）とＴｍとの関連度の総和／ＳｎとＳｐのネットワーク上の距離）−（Ｓｎの負荷）
この評価式では割当指数が大きいタスク処理計算機が、新規タスクの割当てに適したタスク処理計算機であることを意味する。タスク間の関連度と計算機負荷情報の重み付けをするために負荷情報を定数倍しても良い。
【００２４】
例えば、図４、図５、図６、図７、図８の状態で図１１の処理要求（Ｔ６）を受けた場合、計算機Ｓ１の割当指数＝（Ｓ１には実行中タスクがないので０）＋（Ｓ２で実行中のタスクＴ１とＴ６の関連度「１」／Ｓ１とＳ２のネットワーク上での距離「２」）＋（Ｓ３で実行中のタスクＴ２およびＴ３それぞれとＴ６との関連度「０」「１」の和／Ｓ１とＳ３のネットワーク上での距離「２」）＋（Ｓ４で実行中のタスクＴ４とＴ６の関連度「５」／Ｓ１とＳ４のネットワーク上での距離「３」）＋（Ｓ５には実行中タスクがないので０）＋（Ｓ６で実行中のタスクＴ５とＴ６の関連度「３」／Ｓ１とＳ６のネットワーク上での距離「３」）−（Ｓ１の負荷「０」）＝３．６７となる。同様にＳ２、Ｓ３、Ｓ４、Ｓ５、Ｓ６の割当指数を計算した結果を図１２に示す。１２０１が計算機のＩＤを、１２０２が割当指数を表す。ここで最も大きな割当指数（１２１１）を獲得した計算機Ｓ５が現時点でタスクＴ６を割当てるのに最も適した計算機であることがわかる。また、処理計算機の負荷情報のみに基づいて割当てを行う場合（従来方法）では、負荷のないＳ１又はＳ５（図５参照）が割当てられるところ、図１２に示す本実施の形態では、割当てに２番目に適した処理計算機はＳ６と異なる結果となった。これは、負荷の高い処理計算機であっても、タスクＴ６の処理に適した処理計算機として割当て可能であることを示している。
【００２５】
最後にステップ９０３で割当指数が最も大きい計算機（Ｓ５）に当該タスク（Ｔ６）を割当てる。割当て後に計算機Ｓ５のタスク情報にタスクＴ６を追加する。
【００２６】
ステップ９０２の割当指数計算前にあらかじめ負荷の低い計算機をいくつか（例えば３つ）選択し、これらについてのみ割当指数を計算することにより、割当指数の計算負荷低減を図ると同時に、負荷の低い計算機への割当傾向を強めることも可能である。
【００２７】
本実施例では全てのタスク処理計算機が全種類のタスクを実行可能である場合の例を示したが、特定の計算機のみが特定のタスクを処理するように限定しても構わない。その場合には、各計算機が処理可能なタスクの一覧情報（図１３）をタスク割当計算機に保持し、ステップ９０２で当該タスクを処理可能な計算機に対してのみ割当指数を計算するようにする。図１３に各タスク処理計算機が処理可能なタスクの一覧情報を示す。１３０１はタスク処理計算機「Ｓ６」がタスク「Ｔ１」を実行できないことを、また、１３０２はタスク処理計算機「Ｓ６」がタスク「Ｔ４」を処理可能であることを意味する。これは各サーバ上で実行可能なタスクを、当該サーバにあらかじめインストール／配備されたタスクだけに制限する場合などに利用できる。
【００２８】
タスク間の関連度情報（２１３）の動的更新は各タスク処理計算機で記録される通信履歴情報（３１３、図１７、図１８）、タスク割当計算機で記録されるタスク割当履歴情報（２１５、図１９）、各タスクが利用する通信ポート番号情報（２１６、図２０）を分析することで計算可能なタスク間の通信データ量の合計を利用して行う。
【００２９】
図１７にタスク計算機（Ｓ４）で記録された通信履歴情報の例を示す。１７０１は通信を行った時刻、１７０２は送信元のＩＰアドレスとポート番号、１７０３は送信先のＩＰアドレスとポート番号、１７０４は送信データサイズを意味する。このような情報は、一般に「パケットキャプチャ」と呼ばれるソフトウェア（例えば、Ｐｃａｐ、ＷｉｎＰｃａｐなど）を利用して収集することができる。図１８は別のタスク処理計算機（Ｓ２）で記録された通信履歴情報の例である。
【００３０】
図１９にタスク割当計算機（４０２）で記録された記録割当履歴情報の例を示す。１９０１は割り当てを行った時刻、１９０２は当該タスクが終了した時刻、１９０３は割り当て先計算機名とＩＰアドレスとポート番号、１９０４は割り当てたタスク名を意味する。例えば、１９１１は「２００５／０１／１０  １２：２３：３４．００２」にタスク処理計算機「Ｓ４」にタスク「Ｔ３」を割り当て、その処理が「２００５／０１／１０  １２：２３：３６．７８０」に終了したことを意味する。
【００３１】
図２０に各タスクが利用する通信ポート番号情報の例を示す。２００１はタスク名、２００２はタスク割当計算機がタスクの開始／終了をタスク処理計算機に要求する通信ポート番号、２００３は当該タスクが他の計算機からの要求を待ち受けるための通信ポート番号を意味する。例えば、２０１１はタスク「Ｔ１」が通信ポート「２３４５」で開始／停止要求を受け付け、通信ポート「５４３２」を利用して他の計算機からの処理要求を受け付けることを意味する。また、２０１２はタスク「Ｔ２」が通信ポート「８０８０」で開始要求を受け付けるが、他の計算機からの処理要求を待つことはないことを意味する。Ｔ１のように他の計算機からの処理要求を特定の通信ポートで受け付けるタスクを「サービスタスク」と呼ぶ。タスク割当計算機からのサービスタスクの開始要求はサービス開始直後に返信されるが、タスク自体は要求待ち状態となる。タスク割当履歴には開始時刻が記録され、サービス停止要求時に終了時刻が記録される。サービスタスクではない通常のタスクのタスク開始要求はタスク終了まで返信されない。タスク割当計算機はタスク開始要求直前に開始時刻を記録し、返信（応答）を受けた直後に終了時刻を記録する。
【００３２】
図２１にタスク間の通信データ量の合計を計算する手順を示す。各タスク処理計算機は一定時間毎に、または、要求があった時に前回送付後の通信履歴情報をタスク割当計算機に送付する。タスク処理計算機はこれらの通信履歴情報を合わせて通信履歴集合を作る（２１０１）。次に通信履歴集合が空集合であるかを調べ（２１０２）、空集合である場合は終了、そうでない場合、通信履歴をひとつ取り出す（２１０３）。次に、取り出した通信履歴の時刻に、送信元／送信先計算機で動作中であったタスクをタスク割当履歴から特定する（２１０４）。例えば通信履歴の１項目「１７１１」の場合、当該時刻「２００５／０１／１０ １２：２３：３４．５６７」に送信元アドレス「１９２．１６８．２．１０」にはタスク割当履歴の１項目「１９１１」からタスク「Ｔ３」が実行中で、かつ、他のタスクが実行されていなかったことがわかる。さらに、１７１１の送信先アドレス「１９２．１６８．５．１２」にはタスク割当履歴１９１２からタスク「Ｔ１」が実行中で、かつ、２０１１からポート番号「５４３２」はタスク「Ｔ１」が利用することがわかる。以上の事から１７１１はタスクＴ３からＴ１への送信データであることが特定できる。
【００３３】
タスクを区別する粒度を非常に細かくすると、ある時刻に複数のタスクが同時に動作中で、通信を行ったタスクがひとつに特定できない場合が発生する。このような場合、可能性のあるタスクで当該履歴サイズを等分した値を加算する方法が考えられる。
【００３４】
最後に特定したタスク間の通信データ量情報に当該通信履歴のデータサイズを加算（２１０５）して、ステップ２１０２へ戻る。
【００３５】
図１４に各タスク処理計算機間の通信データ量の合計を計算した例を示す。例えば、１４０１はタスクＴ１とＴ６の間の通信データ量が３６７ＫＢであった事を意味する。タスク割当計算機の情報更新処理部（２２２）ではこの情報を利用してタスク間の関連度情報（２１３）を更新する。ここでは通信データ量１００ＫＢを１と換算した結果を図１５に示す。例えば、１５０１はタスクＴ１とＴ６の新たな関連度が「３」であることを意味する。値の急激な変化を抑えるために、これまで利用していた値との平均値を新たな値として採用するなどしても良い。別の方法として、上記の「通信データ量」を「通信パケット数」に置き換えて、1000パケットを１に換算する方法も考えられる。また、通信データ量情報が全く得られていない、または、十分に得られていない運用初期段階においては人手によって初期値を与えることも可能である。
【００３６】
図８では「各計算機間の中継機器の数＋１」をネットワーク上の距離として利用する例を示したが、中継機器の数だけでなく回線の帯域情報も加味して距離を定義した例を図１６に示す。ここでは通信を中継する2つのハブ４０３、４０４間の通信帯域が10Mbps、ハブ４０３と処理計算機４１１、４１２、４１３間、および、ハブ４０４と処理計算機４１４、４１５、４１６間の通信帯域を100Mbpsである場合を想定している。ハブ間の通信帯域が狭いためここを経由する全ての経路（１６０１）の数値が、図８に比べ大きく（＋３）設定されている。この例では狭い帯域の経路を経由する場合に距離指数に「３加算する」というルールを適用したが、「５加算する」や「2乗する」、「3加算してから2倍する」などのルールを適用しても構わない。中継機器数との組み合わせではなく、帯域情報を単独で利用する場合には「100Mbpsには１」、「10Mbpsには２」、「5Mbps以上10Mbps未満には４」などというように帯域毎に値を割り当てる方法が考えられる。
【００３７】
また同様に、過去の運用時に計測されたネットワークのパケット衝突率を「混み具合情報」として利用し、混雑している経路を経由する場合に距離指数に特定の値を加算することも考えられる。例えば、ハブ４０４と処理計算機４１６間のパケット衝突率が「1%」、その他の経路のパケット衝突率が「0.1%未満」である場合、ハブ４０４と処理計算機４１６間の経路を経由する全経路のネットワーク上の距離を遠く（本実施例では大きな値に）設定する。他の情報との組み合わせではなく、パケット衝突率を単独で利用する場合には「0.1%未満は１」、「0.1%から1%未満には２」などというようにパケット衝突率を数値に変換する方法が考えられる。
【００３８】
ネットワーク上の距離を定義する際にはこれらの情報のいずれか、または、2つ以上を組み合わせて利用することも可能である。ここで利用した通信データ量、通信パケット数、パケット衝突率などの情報は標準的なＯＳが備えるコマンド（例えば「ｎｅｔｓｔａｔ」など）で容易に計算できることが知られている。
【実施例２】
【００３９】
実施例１では、タスク割当計算機が全てのタスク処理計算機の個々の情報を管理し、タスクを割り当てる例を示したが、本実施例では、複数のタスク処理計算機の集合（サーバリソースプール）をひとつの仮想的なタスク処理計算機とみなして、サーバリソースプール全体の負荷、割当履歴等を管理し、タスク割当を行う例を示す。なお、以下では実施例１と異なる部分について説明する。
【００４０】
サーバリソースプールは特定の計算機から見て、ネットワーク上で同じ条件（中継機器の数が同じ、または、共通の中継機器に直接接続されているなど）にある計算機の集合で、サーバリソースプールにはタスク割当計算機とタスク処理計算機の機能をあわせ持つサーバリソースプール管理計算機が存在する。サーバリソースプール管理計算機はタスク割当計算機に、自身の負荷情報ではなく、当該サーバリソースプール内の計算機全体の負荷情報、通信履歴をタスク割当計算機に送付する。サーバリソースプール内のタスク処理計算機はタスク割当計算機ではなく、当該サーバリソースプール管理計算機に負荷情報、通信履歴を送付する。サーバリソースプール全体の負荷を決定するには個々のタスク処理計算機の負荷の合計をタスク処理計算機の数で割って計算する、または、最も負荷の低いタスク処理計算機の負荷情報をサーバリソースプール全体の負荷とみなすなどの方法がある。
【００４１】
タスク割当計算機には図２で示した機能および情報以外にサーバリソースプール情報が格納される。サーバリソースプール情報の例を図２４に示す。２４０１はサーバリソースプール管理計算機の名前およびＩＰアドレス、２４０２は当該サーバリソースプール内のタスク処理計算機に割り当てられる計算記名およびＩＰアドレスの集合を表す。例えば、２４１１はサーバリソースプール管理計算機（S５）のＩＰアドレスが「１９２．１６８．３．１１」で、当該サーバリソースプール内のタスク処理計算機名が「Ｓ５＿」と番号を組み合わせたもので、ＩＰアドレスが「１９２．１６８．３．２０」から「１９２．１６８．３．３１」までの範囲にあることを意味する。
【００４２】
図２２にサーバリソースプールを含むシステム構成例を示す。２２０１がサーバリソースプール、２２０２がサーバリソースプール管理計算機、２２１１、２２１２、２２１３が当該サーバリソースプール内のタスク処理計算機を表す。
【００４３】
図２３にサーバリソースプールを含む場合のタスク割当処理手順を示す。処理要求種別を特定（９０１）後、割当対象となるタスク処理計算機またはサーバリソースプール毎に割当指数を計算する（２３０２）。次に、割当指数が最も良いものがサーバリソースプールかどうかを調べ（２３０３）、サーバリソースプールでない場合は通常の割当処理を行う。サーバリソースプールである場合はサーバリソースプール管理計算機がサーバリソースプール内のタスク処理計算機から最適な計算機を選択する。ここでの選択方法として、負荷の最も低い計算機を選択する方法や、ラウンドロビン方式で選択する方法などがある。
【産業上の利用可能性】
【００４４】
複数の計算機が協調して処理を行う計算機システムに適用でき、そのシステム全体の処理効率を向上できる。
【図面の簡単な説明】
【００４５】
【図１】計算機システム全体を表す図である。
【図２】タスク割当計算機の構成を示す図である。
【図３】タスク処理計算機の構成を表す図である。
【図４】実施例の計算機システムのネットワーク接続構成を表す図である。
【図５】計算機毎の負荷情報を表す表である。
【図６】各計算機で処理中のタスクを表す表である。
【図７】各タスク間の関連度を表す表である。
【図８】各計算機間のネットワーク上の距離を表す表である。
【図９】タスク割当処理フローを表す図である。
【図１０】実施例で使用した、割当指数を計算するための評価式の例である。
【図１１】タスクの処理要求の例である。
【図１２】割当指数を計算した例である。
【図１３】各計算機が処理可能なタスクの一覧情報の例である。
【図１４】各タスク間の通信データ量を表す表である。
【図１５】各タスク間の通信データ量を元にタスク間の関連度を計算した例である。
【図１６】帯域情報を加味して計算機間のネットワーク上の距離を計算した例である。
【図１７】タスク処理計算機で記録された通信履歴情報の例である。
【図１８】サービスタスク実行中のタスク処理計算機の通信履歴情報の例である。
【図１９】タスク割当履歴の例である。
【図２０】各タスクが利用する通信ポート番号情報の例である。
【図２１】タスク間の通信データ合計量計算処理フローを表す図である。
【図２２】サーバリソースプールを含む場合のシステム構成を表す図である。
【図２３】サーバリソースプールを含む場合のタスク割当処理手順である。
【図２４】サーバリソースプール情報の例である。
【符号の説明】
【００４６】
１０１．ユーザ計算機、
１０２．タスク割当計算機、
１０３．タスク処理計算機、
２１１．計算機負荷情報、
２１２．実行中タスク情報、
２１３．タスク関連度情報、
２１４．計算機間距離情報、
２１５．割当履歴情報、
２２１．タスク割当処理部、
２２２．情報更新処理部、
３１１．処理プログラム、
３１２．管理情報、
３１３．通信履歴情報、
３２１．通信データ量記録部、
３２２．管理情報送信部。
【図１】
2005310120.tif 000003
【図２】
2005310120.tif 000004
【図３】
2005310120.tif 000005
【図４】
2005310120.tif 000006
【図５】
2005310120.tif 000007
【図６】
2005310120.tif 000008
【図７】
2005310120.tif 000009
【図８】
2005310120.tif 000010
【図９】
2005310120.tif 000011
【図１０】
2005310120.tif 000012
【図１１】
2005310120.tif 000013
【図１２】
2005310120.tif 000014
【図１３】
2005310120.tif 000015
【図１４】
2005310120.tif 000016
【図１５】
2005310120.tif 000017
【図１６】
2005310120.tif 000018
【図１７】
2005310120.tif 000019
【図１８】
2005310120.tif 000020
【図１９】
2005310120.tif 000021
【図２０】
2005310120.tif 000022
【図２１】
2005310120.tif 000023
【図２２】
2005310120.tif 000024
【図２３】
2005310120.tif 000025
【図２４】
2005310120.tif 000026