(57)【特許請求の範囲】
【請求項１】
分散サーバ群を形成するいずれかの分散サーバ装置に、管理サーバ装置から発行されたコマンドを送信する振分制御装置であって、
前記管理サーバ装置によって特定のコマンドが発行された時間までの所定時間ごとに、前記分散サーバ群の処理状況を示す処理状況データを保持する保持部と、
前記分散サーバ群の処理状況データを前記所定時間ごとに収集する収集部と、
前記収集部によって収集された処理状況データと前記保持部に保持される処理状況データとを比較して、前記特定のコマンドが発生するか否かを予測する予測部と、
前記予測部によって前記特定のコマンドが発生すると予測された場合に、前記分散サーバ群を形成するいずれかの分散サーバ装置に処理を振り分ける負荷分散装置に対して、前記分散サーバ群を形成するいずれかの分散サーバ装置に対する、前記特定のコマンド以外のコマンドの送信を抑止する指示を送信する抑止制御部と、
を有することを特徴とする振分制御装置。
【請求項２】
前記保持部は、前記所定時間における前記分散サーバ群の処理状況データの変化を保持し、
前記収集部は、前記分散サーバ群から収集した処理状況データから、収集された所定時間における処理状況データの変化を検出して保持し、
前記予測部は、前記収集部によって保持される処理状況データの変化と前記保持部に保持される処理状況データの変化とを比較して、前記特定のコマンドが発生するか否かを予測することを特徴とする請求項１に記載の振分制御装置。
【請求項３】
前記予測部は、複数の処理項目を有する各処理状況データを比較し、前記処理状況データが一致する時間および処理項目の組み合わせに設定される、一致することを示す値に、一致する処理項目または時間に対応する重みを乗算して前記処理状況データの類似度を算出し、算出した類似度に基づいて、前記特定のコマンドが発生するか否かを予測することを特徴とする請求項１に記載の振分制御装置。
【請求項４】
前記予測部によって予測された特定のコマンドが、予測された時間から所定時間内に前記管理サーバ装置から発行された場合に、前記一致する処理項目または時間に対応する重みを重くするとともに、一致しない処理項目または時間に対応する重みを軽くする学習部をさらに有することを特徴とする請求項３に記載の振分制御装置。
【請求項５】
前記予測部は、前記処理状況データの類似度に、前記特定のコマンドに対する過去の予測成功率を乗算した結果に基づいて、前記特定のコマンドが発生するか否かを予測することを特徴とする請求項３に記載の振分制御装置。
【請求項６】
前記予測部によって予測された前記特定のコマンドが、予測された時間から所定時間内に前記管理サーバ装置から発行されたか否かに基づいて、前記予測された時間を基準にして前記過去の予測成功率を算出しなおす学習部をさらに有することを特徴とする請求項５に記載の振分制御装置。
【請求項７】
前記予測部によって予測された前記特定のコマンドが、予測された時間から所定時間内に前記管理サーバ装置から発行された否かに基づいて、前記保持部に保持される前記分散サーバ群の処理状況データを更新する学習部をさらに有することを特徴とする請求項１に記載の振分制御装置。
【請求項８】
分散サーバ群を形成するいずれかの分散サーバ装置に、管理サーバ装置から発行されたコマンドを送信するコンピュータが、
前記分散サーバ群の処理状況を示す処理状況データを所定時間ごとに収集し、
前記収集した処理状況データと、前記管理サーバ装置によって特定のコマンドが発行された時間までの所定時間ごとに保持される前記分散サーバ群の処理状況を示す処理状況データとを比較して、前記特定のコマンドが発生するか否かを予測し、
前記特定のコマンドが発生すると予測した場合に、前記分散サーバ群を形成するいずれかの分散サーバ装置に処理を振り分ける負荷分散装置に対して、前記分散サーバ群を形成するいずれかの分散サーバ装置に対する、前記特定のコマンド以外のコマンドの送信を抑止する指示を送信する、
処理を実行することを特徴とする振分制御方法。
【請求項９】
分散サーバ群を形成するいずれかの分散サーバ装置に、管理サーバ装置から発行されたコマンドを送信するコンピュータに、
前記分散サーバ群の処理状況を示す処理状況データを所定時間ごとに収集し、
前記収集した処理状況データと、前記管理サーバ装置によって特定のコマンドが発行された時間までの所定時間ごとに保持される前記分散サーバ群の処理状況を示す処理状況データとを比較して、前記特定のコマンドが発生するか否かを予測し、
前記特定のコマンドが発生すると予測した場合に、前記分散サーバ群を形成するいずれかの分散サーバ装置に処理を振り分ける負荷分散装置に対して、前記分散サーバ群を形成するいずれかの分散サーバ装置に対する、前記特定のコマンド以外のコマンドの送信を抑止する指示を送信する、
処理を実行させることを特徴とする振分制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、振分制御装置、振分制御方法および振分制御プログラムに関する。
【背景技術】
【０００２】
従来、ネットワーク上に存在するネットワーク機器にアクセスする処理を行う場合に、複数のサーバに処理を分散して実行する技術が知られている。例えば、複数のサーバに順番に処理を割り当てたり、最もレスポンスの早いサーバに処理を割り当てるなど、全体の負荷を均等にする制御が知られている。
【０００３】
図１９は、従来技術に係る負荷分散を説明する図である。図１９に示すように、このシステムは、管理サーバ１と、コマンドロードバランサ２と、分散サーバ５と、分散サーバ６と、イベントロードバランサ７と、管理対象機器とを有する。
【０００４】
管理サーバ１は、管理対象のネットワーク機器に対して、管理コマンドをコマンドロードバランサ２経由で発行する。コマンドロードバランサ２は、管理サーバ１から発行されたコマンドを分散サーバ５または分散サーバ６に振り分けて、分散サーバの負荷を分散させる。分散サーバ５または分散サーバ６は、コマンドロードバランサ２から受信したコマンドを管理対象のネットワーク機器に対して実行し、イベントロードバランサ７から受信したイベントを集約して管理サーバ１へ送信する。
【０００５】
イベントロードバランサ７は、管理対象のネットワーク機器から受信した各種イベントを分散サーバ５または分散サーバ６に振り分けて、分散サーバの負荷を分散させる。管理対象ネットワーク機器は、例えばルータ、Ｌ３スイッチ、スイッチングハブ、Ｌ２スイッチなどのネットワーク機器であり、障害通知やログ情報などのイベントを管理サーバ１に送信する。
【０００６】
このように、従来技術に係るシステムでは、コマンドロードバランサ２が管理サーバ１から発行されたコマンドを負荷分散し、イベントロードバランサ７が管理対象のネットワーク機器から発行されたイベントを負荷分散する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭６２−１７５８３２号公報
【特許文献２】特開２００２−２７８７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の技術では、緊急性がある緊急コマンドを緊急に実行できない場合があり、特定のコマンドの実行効率が劣化するという問題がある。
【０００９】
例えば、従来の負荷分散では、処理が増えるにつれて全体の負荷を平均的にする制御が働き、全体的に高負荷となるので、緊急コマンドを高負荷なサーバに割り振るしかなく、緊急コマンドなど特定のコマンドの実行待ち時間が長くなり、緊急に実行できない。また、常時負荷の低いサーバをシステム内に別途用意する方法も考えられるが、用意するサーバに対してコストがかかるので、好ましい方法ではない。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、緊急コマンドなど特定のコマンドの実行効率の劣化を防止できる振分制御装置、振分制御方法および振分制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する振分制御装置、振分制御方法および振分制御プログラムは、一つの態様において、分散サーバ群を形成するいずれかの分散サーバ装置に、管理サーバ装置から発行されたコマンドを送信する振分制御装置である。振分制御装置は、前記管理サーバ装置によって特定のコマンドが発行された時間までの所定時間ごとに、前記分散サーバ群の処理状況を保持する保持部を有する。振分制御装置は、前記分散サーバ群の処理状況を前記所定時間ごとに収集する収集部と、前記収集部によって収集された処理状況と前記保持部に保持される処理状況とを比較して、前記特定のコマンドの発生を予測する予測部とを有する。振分制御装置は、前記予測部によって特定のコマンドの発生が予測された場合に、前記分散サーバ群を形成するいずれかの分散サーバ装置に対する、前記特定のコマンド以外のコマンドの送信を抑止する抑止制御部を有する。
【発明の効果】
【００１２】
本願の開示する振分制御装置、振分制御方法および振分制御プログラムの一つの態様によれば、特定のコマンドの実行効率の劣化を防止できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るシステムの全体構成例を示す図である。
【図２】図２は、実施例１に係る振分制御装置の構成を示す機能ブロック図である。
【図３】図３は、緊急コマンド情報テーブルに記憶される情報の例を示す図である。
【図４】図４は、統計情報テーブルに記憶される情報の例を示す図である。
【図５】図５は、パターン情報テーブルに記憶される情報の例を示す図である。
【図６】図６は、緊急パターン情報テーブルに記憶される情報の例を示す図である。
【図７】図７は、重み付け情報テーブルに記憶される情報の例を示す図である。
【図８】図８は、予測結果テーブルに記憶される情報の例を示す図である。
【図９】図９は、構成情報テーブルに記憶される情報の例を示す図である。
【図１０】図１０は、予測処理におけるパターン情報の比較例を説明する図である。
【図１１】図１１は、予測処理における重み付けを説明する図である。
【図１２】図１２は、予測判定例を説明する図である。
【図１３】図１３は、実施例１に係る振分制御装置におけるコマンド実行時の処理の流れを示すフローチャートである。
【図１４】図１４は、実施例１に係る振分制御装置における予測処理の流れを示すフローチャートである。
【図１５】図１５は、実施例２に係る振分制御装置の構成を示す機能ブロック図である。
【図１６】図１６は、重みの学習例を示す図である。
【図１７】図１７は、実施例２に係る振分制御装置における学習処理の流れを示すフローチャートである。
【図１８】図１８は、振分制御プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【図１９】図１９は、従来技術に係る負荷分散を説明する図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する振分制御装置、振分制御方法および振分制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
［全体構成］
図１は、実施例１に係るシステムの全体構成例を示す図である。図１に示すように、このシステムは、管理サーバ１０と、振分制御装置２０と、分散サーバ５０と、分散サーバ６０と、イベントロードバランサ７０と、管理対象機器とを有する。なお、実施例では、特定のコマンドとして、通常のコマンドより優先して緊急に実行することが望まれる緊急コマンドを例にして説明する。なお、緊急コマンドに限定されるものではなく、管理者等が指定する他のコマンドにも同様に適用することができる。
【００１６】
管理サーバ１０は、管理対象のネットワーク機器に対して、管理コマンドを振分制御装置２０経由で発行するサーバ装置である。振分制御装置２０は、管理サーバ１０から発行されたコマンドを分散サーバ５０または分散サーバ６０に振り分けて、分散サーバの負荷を分散させる負荷分散装置である。分散サーバ５０または分散サーバ６０は、振分制御装置２０から受信したコマンドを管理対象のネットワーク機器に対して実行し、イベントロードバランサ７０から受信したイベントを集約して管理サーバ１０へ送信するサーバ装置である。
【００１７】
イベントロードバランサ７０は、管理対象のネットワーク機器から受信した各種イベントを分散サーバ５０または分散サーバ６０に振り分けて、分散サーバの負荷を分散させる負荷分散装置である。管理対象ネットワーク機器は、例えばルータ、Ｌ３スイッチ、スイッチングハブ、Ｌ２スイッチなどのネットワーク機器であり、障害通知やログ情報などのイベントを管理サーバ１０に送信するサーバ装置である。
【００１８】
このようなシステムにおいて、振分制御装置２０は、管理サーバ１０によって緊急コマンドが発行された時間までの所定時間ごとに、分散サーバ群の処理状況を保持する。そして、振分制御装置２０は、分散サーバ群の処理状況を所定時間ごとに収集し、収集された処理状況と保持される処理状況とを比較して、緊急コマンドの発生を予測する。その後、振分制御装置２０は、緊急コマンドの発生が予測された場合に、分散サーバ群を形成するいずれかの分散サーバに対して、緊急コマンド以外のコマンドの送信を抑止する。
【００１９】
例えば、振分制御装置２０は、管理サーバ１０が緊急コマンドを発行すると予測した場合には、分散サーバ５０への振分を抑止するとともに、分散サーバ５０への振分を抑止する指示をイベントロードバランサ７０に送信する。したがって、分散サーバ５０への振分を抑止でき、分散サーバ５０の負荷が高くなることを抑止できる。このため、振分制御装置２０は、管理サーバ１０から緊急コマンドが発行された場合でも、通常コマンドの分散先から除外されている分散サーバ５０へ振り分けることができるので、緊急コマンドの実行効率の劣化を防止できる。
【００２０】
［装置の構成］
図２は、実施例１に係る振分制御装置の構成を示す機能ブロック図である。図２に示すように、この振分制御装置２０は、通信制御Ｉ／Ｆ部２１と記憶部２２とプロセッサ２５とを有する。
【００２１】
通信制御Ｉ／Ｆ部２１は、他の通信との間を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部２１は、通常コマンドや緊急コマンドを管理サーバ１０から受信する。なお、緊急コマンドとは、例えば、管理対象機器からアラームを検知した場合に、トラフィック量の超過箇所を特定し、トラフィックの一部を迂回させるような経路を設定するコマンドであり、緊急に実行したいコマンドである。通常コマンドとは、緊急コマンド以外のコマンドであり、例えば経路情報の取得や負荷情報の取得を実行するコマンドなどである。
【００２２】
また、通信制御Ｉ／Ｆ部２１は、通常コマンドや緊急コマンドを分散サーバ５０または分散サーバ６０に送信する。また、通信制御Ｉ／Ｆ部２１は、分散サーバ５０または分散サーバ６０からイベント情報やコマンド実行結果を受信する。同様に、通信制御Ｉ／Ｆ部２１は、イベント情報やコマンド実行結果を管理サーバ１０に送信する。なお、イベント情報とは、例えばＳＮＭＰ（Simple  Network  Management  Protocol）で監視する監視情報、ＳＮＭＰトラップで検出された障害情報、管理対象機器のイベントログなどである。
【００２３】
記憶部２２は、半導体メモリ素子やハードディスクなどの記憶装置であり、緊急コマンド情報テーブル２２ａと統計情報テーブル２２ｂとパターン情報テーブル２２ｃとを有する。また、記憶部２２は、緊急パターン情報テーブル２２ｄと重み付け情報テーブル２２ｅと予測結果テーブル２２ｆと構成情報テーブル２２ｇとを有する。
【００２４】
緊急コマンド情報テーブル２２ａは、管理者等によって設定された緊急コマンドに関する情報を記憶する。図３は、緊急コマンド情報テーブルに記憶される情報の例を示す図である。図３に示すように、緊急コマンド情報テーブル２２ａは、「コマンド名、緊急度ｅ、適用日時帯」を対応付けて記憶する。ここで記憶される「コマンド名」は、緊急コマンドの名称である。「緊急度ｅ」は、例えば０から７で表される緊急度であり、７が最も緊急性が高く、０が最も緊急性が低い。「適用日時帯」は、緊急コマンドとして扱われる日時帯を示す。
【００２５】
例えば、図３の場合、緊急度が「７」であるコマンド「ChangeRoute」は、終日緊急コマンドと認識されることを示す。また、緊急度が「５」であるコマンド「BlockTraffic」は、21：00〜24：00の間に発行されたものだけ緊急コマンドと認識され、それ以外の時間帯に発行されたものは通常コマンドとして扱われることを示す。
【００２６】
統計情報テーブル２２ｂは、分散サーバに発行されたコマンドの数、分散サーバから受信したイベント数のうち所定の条件に一致する特定イベントの数、各分散サーバのＣＰＵ（Central  Processing  Unit）負荷を記憶する。図４は、統計情報テーブルに記憶される情報の例を示す図である。図４に示すように、統計情報テーブル２２ｂは、「収集項目（実行コマンド数、実行コマンド種類数、特定イベント受信数、平均ＣＰＵ負荷（Ａ）、平均ＣＰＵ負荷（Ｂ））、収集時間、収集値」を対応付けて記憶する。
【００２７】
ここで記憶される「実行コマンド数」は、管理サーバ１０から発行されたコマンドの数、言い換えると、分散サーバ５０または分散サーバ６０が実行したコマンドの数を示す。「実行コマンド種類数」は、管理サーバ１０から発行されたコマンドの種類の数、言い換えると、分散サーバ５０または分散サーバ６０が実行したコマンドの種類の数を示す。「特定イベント受信数」は、分散サーバ５０または分散サーバ６０から受信されたイベントのうち、特定の条件に一致するイベントの数を示す。「平均ＣＰＵ負荷（Ａ）」は、収集時間における分散サーバ５０のＣＰＵ負荷の平均値を示し、「平均ＣＰＵ負荷（Ｂ）」は、収集時間における分散サーバ６０のＣＰＵ負荷の平均値を示す。
【００２８】
また、「収集値」は、各収集項目に対して収集された値であり、「収集時間」は、収集値が収集された時刻である。なお、実行コマンド数、実行コマンド種類数は、振分制御装置２０内で収集され、特定イベント数、平均ＣＰＵ負荷（Ａ）、平均ＣＰＵ負荷（Ｂ）は、分散サーバから収集される。また、実行コマンド数や実行コマンド種類数には、通常のコマンド以外に緊急コマンドを含んでもよい。
【００２９】
図４の場合、例えば、振分制御装置は、「10：06」に、５つの実行コマンドが分散サーバで実行され、実行されたコマンドの種類数が２であったことを示す。また、振分制御装置は、「10：06」に受信した特定イベントの数が４００個であり、「10：06」における分散サーバ５０の平均ＣＰＵ負荷が８０％、分散サーバ６０の平均ＣＰＵ負荷が８０％であったことを示す。なお、図４では、収集時間を１分単位としているが、これに限定されるものではなく任意に設定できる。また、図４の場合、緊急コマンドの予測を開始した時間が「10：10」であることを示す。
【００３０】
パターン情報テーブル２２ｃは、統計情報テーブル２２ｂに記憶される情報から各収集項目の傾向を示した情報を記憶する。図５は、パターン情報テーブルに記憶される情報の例を示す図である。図５に示すように、パターン情報テーブル２２ｃは、「収集項目（実行コマンド数、実行コマンド種類数、特定イベント受信数、平均ＣＰＵ負荷（Ａ）、平均ＣＰＵ負荷（Ｂ））、収集時間、傾向」を対応付けて記憶する。ここで記憶される「収集項目（実行コマンド数、実行コマンド種類数、特定イベント受信数、平均ＣＰＵ負荷（Ａ）、平均ＣＰＵ負荷（Ｂ））、収集時間」は、図４と同様なので説明を省略する。「傾向」は、各収集項目が全体からみてその時間にどのような傾向にあるかを示す。
【００３１】
図５の場合、例えば収集時間「10：08」に収集された「実行コマンド数」は、増加傾向にあり、「実行コマンド種類数」は、変化無しの「維持傾向」にあり、「特定イベント受信数」と「平均ＣＰＵ負荷（Ａ）」と「平均ＣＰＵ負荷（Ｂ）」は、「減少傾向」にある。
【００３２】
緊急パターン情報テーブル２２ｄは、緊急コマンドごとに、緊急コマンドが実行される一定時間前の変化傾向を示す情報を記憶する。図６は、緊急パターン情報テーブルに記憶される情報の例を示す図である。図６に示すように、緊急パターン情報テーブル２２ｄは、「実行コマンド名、収集項目（実行コマンド数、実行コマンド種類数、特定イベント受信数、平均ＣＰＵ負荷（Ａ）、平均ＣＰＵ負荷（Ｂ））、収集時間、傾向」を対応付けて記憶する。
【００３３】
ここで記憶される各収集項目の値は、緊急コマンドが実行される一定時間ごとに収集された値である。例えば、図６の場合、「ChangeRoute」が実行された１分前の「9：15」から３分前の「9：12」では、実行コマンド数が増加傾向、実行コマンド種類数が減少傾向、特定イベント受信数と平均ＣＰＵ負荷（Ａ）と平均ＣＰＵ負荷（Ｂ）が増減傾向にあったことを示す。なお、実行コマンド数や実行コマンド種類数は、緊急コマンドを含んでいてもよい。また、収集時間の間隔は、任意に設定することができるが、図４や図５に示した収集時間の間隔と同じであることが望ましい。
【００３４】
重み付け情報テーブル２２ｅは、緊急コマンドごとに重み付け情報を記憶する。図７は、重み付け情報テーブルに記憶される情報の例を示す図である。図７に示すように、重み付け情報テーブル２２ｅは、各収集項目ごとの重みや収集時間に対する重みを記憶する。ここで記憶される「収集項目」や「収集時間」は、図４等で説明したので詳細な説明を省略する。「収集項目重み」は、各収集項目に対して与える重みを示し、「収集時間重み」は、各収集時間に与える重みを示す。
【００３５】
図７の場合、緊急コマンドの予測を開始した時間、言い換えると統計情報を生成した時間から１分前の時間には重み「１」、２分前の時間には重み「０．７」、３分前の時間には重み「０．５」が与えられることを示す。また、緊急コマンドの予測を開始した時間から４分前の時間には重み「０．３」、５分前の時間には重み「０．２」が与えられることを示す。また、収集項目である「実行コマンド」には重み「１」、「実行コマンド種類数」には重み「０．５」、「特定イベント受信数」には重み「１」、「平均ＣＰＵ負荷（Ａ）」には重み「０．２」、「平均ＣＰＵ負荷（Ｂ）」には重み「０．２」が与えられることを示す。
【００３６】
予測結果テーブル２２ｆは、緊急コマンドが実行されるか否かを予測した結果を記憶する。図８は、予測結果テーブルに記憶される情報の例を示す図である。図８に示すように、予測結果テーブル２２ｆは、「実行コマンド名、過去判定回予測結果、予測成功率」を対応付けて記憶する。ここで記憶される「実行コマンド名」は、予測対象の緊急コマンドを示す情報である。「過去判定回予測結果」は、過去の所定回数の予測判定結果を示す情報である。例えば、予測が成功した場合つまり予測どおり緊急コマンドが発行された場合には「○」が格納され、予測が失敗した場合つまり緊急コマンドが発行されなかった場合には「×」が格納される。「予測成功率」は、過去判定回予測結果から算出した予測の成功率である。
【００３７】
例えば、図８の場合、緊急コマンド「ChangeRoute」については、予測された過去５回全てが成功しているので、予測成功率が１であることを示す。また、緊急コマンド（Shutdown）については、予測された過去５回のうち４回が成功しているので、予測成功率は４／５＝０．８であることを示す。
【００３８】
構成情報テーブル２２ｇは、図１に示したシステムを形成する各装置の構成情報を記憶する。図９は、構成情報テーブルに記憶される情報の例を示す図である。図９に示すように、構成情報テーブル２２ｇは、「サーバ名、ＩＰ、役割、振り分け可否」を対応付けて記憶する。
【００３９】
ここで記憶される「サーバ名」は、例えばホスト名など装置の名称を示し、「ＩＰ」は、サーバのＩＰ（Internet  Protocol）アドレスを示し、「役割」は、装置が実行するシステム内の役割を示し、「振り分け可否」は、負荷分散可能か否かを示す。例えば、サーバ名「ＭＮＧ」は、ＩＰ（Ａ）が割り当てられた、負荷分散の対象外である管理サーバを示す。「ＤＳＰ１」は、ＩＰ（Ｂ）が割り当てられた、負荷分散の対象であり、負荷分散可能な分散サーバ５０を示す。
【００４０】
同様に、「ＤＳＰ２」は、ＩＰ（Ｃ）が割り当てられた、負荷分散の対象であり、負荷分散可能な分散サーバ６０を示す。また、「ＥＬＢ」は、ＩＰ（Ｄ）が割り当てられた、負荷分散の対象外であるイベントロードバランサ７０を示す。「ＣＥＤ」は、ＩＰ（Ｅ）が割り当てられた、負荷分散の対象外である振分制御装置２０を示す。なお、「振り分け可否」に「○」が格納されている場合には振り分け可能なことを示し、「振り分け可否」に「−」が格納されている場合には振り分け対象外であることを示し、「×」が格納されている場合には振り分け不可能なことを示す。
【００４１】
プロセッサ２５は、振分制御装置２０全体の制御を司るＣＰＵなどの電子回路であり、解析部２５ａと記録部２５ｂと予測部２５ｃと負荷回避部２５ｄとタイマ制御部２５ｅとを有する。
【００４２】
解析部２５ａは、管理サーバ１０から受信したコマンドを負荷回避部２５ｄに転送するとともに、受信したコマンドが緊急コマンドか通常コマンドかなどを判定するコマンド解析を実行して、記録部２５ｂにコマンドの情報を通知する処理部である。
【００４３】
例えば、解析部２５ａは、管理サーバ１０からコマンドを受信した場合に、当該コマンドのヘッダ等に記憶される情報と、緊急コマンド情報テーブル２２ａに記憶される情報を比較して、当該コマンドが緊急コマンドか否かを判定する。そして、解析部２５ａは、緊急コマンドであると判定した場合には、受信したコマンドに緊急コマンドフラグを付加して負荷回避部２５ｄに転送する。また、解析部２５ａは、通常コマンドであると判定した場合には、受信したコマンドを負荷回避部２５ｄに転送するとともに、受信したコマンドの種類等を特定して記録部２５ｂに通知する。
【００４４】
一例を挙げると、解析部２５ａは、受信したコマンドに「ChangeRoute」を識別する識別子等が含まれている場合には、当該コマンドを緊急コマンドと判定する。また、解析部２５ａは、受信したコマンドに「ConfigBackup」を識別する識別子等が含まれているとともに、受信時刻が0：00から6：00の間である場合には、当該コマンドを緊急コマンドと判定する。また、解析部２５ａは、受信したコマンドに「BlockTraffic」を識別する識別子等が含まれているとともに、受信時刻が21：00から24：00の間でない場合には、当該コマンドを通常コマンドと判定する。
【００４５】
記録部２５ｂは、解析部２５ａから通知されたコマンド情報の履歴を記憶し、分散サーバから統計情報を収集してパターン情報を生成する。例えば、記録部２５ｂは、解析部２５ａから通知されたコマンド情報を記憶部２２の作業領域等に順次格納する。そして、記録部２５ｂは、タイマ制御部２５ｅから予測開始指示を受信すると、記憶部２２の作業領域に記憶されるコマンド情報を参照し、予測開始指示を受信した時間の１分前から５分前までの実行コマンド数と実行コマンド種類数を生成する。また、記録部２５ｂは、各分散サーバから平均ＣＰＵ負荷とともに特定イベント数を受信する。そして、記録部２５ｂは、これらを対応付けた統計情報を生成して統計情報テーブル２２ｂに格納する。なお、分散サーバは、監視ソフトウェア等を用いて、平均ＣＰＵ負荷や特定イベント数を所定間隔で収集し、記録部２５ｂは、分散サーバ各々が収集した情報を取得する。
【００４６】
その後、記録部２５ｂは、統計情報として収集した各収集項目の５回分の収集値を２次の最小二乗法等を用いてフィッティングした結果から、この５回分の間で増加傾向か、減少傾向か、維持傾向か、増減傾向か、減増傾向かを示す変化パターンを判定する。そして、記録部２５ｂは、上記した例では１分前から５分前までの各収集時間ごとに、判定結果を対応付けたパターン情報を生成して、パターン情報テーブル２２ｃに格納する。なお、ここでは２次関数を用いた例を説明したが、１次関数を用いてもよく、その場合は判定結果が増加または減少のいずれかになる。
【００４７】
予測部２５ｃは、タイマ制御部２５ｅによって起動され、パターン情報テーブル２２ｃに記憶される情報と緊急パターン情報テーブル２２ｄに記憶される情報とを比較する。そして、予測部２５ｃは、比較結果に重み付けを加味して類似度を算出し、パターン予測結果を評価して、緊急コマンドの発生を予測する処理部である。
【００４８】
例えば、予測部２５ｃは、緊急コマンドごとに記憶される緊急パターン情報各々とパターン情報テーブル２２ｃに記憶されるパターン情報とを比較し、収集時間ごとにどのくらい情報が一致するかを示した採点表を生成する。続いて、予測部２５ｃは、生成した採点表に対して、重み付けテーブル２２ｅに記憶される収集時間および収集項目ごとの重み付けを加算した重付採点表を生成する。その後、予測部２５ｃは、緊急コマンドごとに算出した重付採点表から各緊急コマンドの重付類似度を算出し、算出した重付類似度各々に予測成功率を加味した予測評価値を算出する。そして、予測部２５ｃは、予測評価値が所定値以上の緊急コマンドが存在する場合に、現時点以降に緊急コマンドの発生が起こりうると予測する。
【００４９】
図１０から図１２を用いて一例を説明する。図１０は、予測処理におけるパターン情報の比較例を説明する図である。図１１は、予測処理における重み付けを説明する図である。図１２は、予測判定例を説明する図である。図１０に示すように、予測部２５ｃは、緊急コマンド「ChangeRoute」の過去のパターン情報と、現時点のパターン情報とを比較して、一致する時間には「１」を格納し、不一致の時間には「０」を格納した採点表を生成する。具体的には、予測部２５ｃは、緊急コマンドが実行された時間から２分前の実行コマンド数が「増減」であり、現時点から２分前のパターン情報が「増加」であることから、現時点から２分前の採点結果を「０」とする。
【００５０】
続いて、図１１に示すように、予測部２５ｃは、図１０の処理によって生成した採点表の収集時間と収集項目の各々に対して、重み付けテーブル２２ｅに格納される重みを乗算した重付採点表を生成する。具体的には、予測部２５ｃは、現時点から３分前の収集時間を示す「−３」の採点結果である「１」に対して、収集時間の重み「０．５」と収集項目の重み「０．５」を乗算して、重付採点結果として「０．２５」を算出する。そして、予測部２５ｃは、採点表に格納される各収集項目の各収集時間ごとに、上述した重みの乗算を実行して重付採点結果を生成し、重付採点結果各々を加算した値を「重付類似度」として算出する。図１１の場合では、予測部２５ｃは、「重付類似度」として「６．１５」を算出する。なお、予測部２５ｃは、図１０から図１１の各処理を、各緊急コマンドごとに実行する。
【００５１】
その後、図１２に示すように、予測部２５ｃは、各緊急コマンドごとに算出した重付類似度に対して、予測結果テーブル２２ｆに格納される過去の予測成功率を乗算し、予測評価値を算出する。具体的には、予測部２５ｃは、重付類似度が「６．１５」と算出された「ChangeRoute」の予測成功率が「１」であることから、「６．１５」に「１」を乗算した「６．１５」を「ChangeRoute」の「予測評価値」として算出する。同様に、予測部２５ｃは、重付類似度が「２．１２」と算出された「Shutdown」の予測成功率が「０．８」であることから、「２．１２」に「０．８」を乗算した「１．６９６」を四捨五入した「１．７」を「Shutdown」の「予測評価値」として算出する。
【００５２】
そして、予測部２５ｃは、このようにして算出された「予測評価値」の最大値が、例えば「５」など所定値以上であれば、緊急コマンドが発生すると予測する。図１２の場合、予測部２５ｃは、「ChangeRoute」が発行される可能性が高いと予測する。そして、予測部２５ｃは、緊急コマンドの発生を予測した場合に、負荷回避指示を負荷回避部２５ｄに通知する。
【００５３】
図２に戻り、負荷回避部２５ｄは、解析部２５ａから転送されたコマンドを振り分け可能な分散サーバに振り分ける処理部である。また、負荷回避部２５ｄは、緊急コマンドが予測されたことが予測部２５ｃから通知された場合には、振り分けを抑止する分散サーバを決定し、決定した分散サーバへの振り分けを抑止する。また、負荷回避部２５ｄは、決定した分散サーバへのイベントの振り分けを抑止させる指示をイベントロードバランサ７０へ通知する。
【００５４】
例えば、負荷回避部２５ｄは、解析部２５ａからコマンドを受信した場合、構成情報テーブル２２ｇを参照して、振り分け可否が「○」である分散サーバのいずれかにコマンドを送信する。そして、負荷回避部２５ｄは、緊急コマンドが予測されたことが予測部２５ｃから通知され、各分散サーバの振り分け可否が「○」である場合に、負荷回避を実行する。なお、負荷回避部２５ｄは、緊急コマンドが予測されたことが予測部２５ｃから通知され、いずれかの分散サーバの振り分け可否が「×」である場合に、既に負荷回避中であるので新たな負荷回避を実行しない。
【００５５】
負荷回避を具体的に説明すると、負荷回避部２５ｄは、各分散サーバのＣＰＵ負荷を各分散サーバから取得し、最もＣＰＵ負荷が小さい分散サーバを負荷回避対象のサーバと特定する。ここでは、分散サーバ５０を負荷回避対象サーバとする。すると、負荷回避部２５ｄは、構成情報テーブル２２ｇにおける分散サーバ５０の振り分け可否を「○」から「×」に変更して、分散サーバ５０を負荷回避中に変更する。また、負荷回避部２５ｄは、分散サーバ５０への振り分けを抑止することをイベントロードバランサ７０へ通知する。こうすることで、負荷回避部２５ｄは、分散サーバ５０へ通常のコマンドが発行されることを抑止するとともに、イベントロードバランサ７０がイベントを分散サーバ５０に振り分けることを抑止する。
【００５６】
この状態で、つまり、分散サーバ５０の振り分け可否が「×」かつ分散サーバ６０の振り分け可否が「○」である状態でのコマンド振り分けについて説明する。例えば、負荷回避部２５ｄは、解析部２５ａから通常コマンドを受信した場合、振り分け可否が「○」である分散サーバ６０にコマンドを振り分ける。また、負荷回避部２５ｄは、解析部２５ａから緊急コマンドを受信した場合、振り分け可否が「×」である分散サーバ５０に緊急コマンドを振り分ける。また、上記状態で、例えば１分など一定時間が経過した後、負荷回避部２５ｄは、分散サーバ５０の振り分け可否を「○」に変更し、分散サーバ５０の振り分け抑止を解除して、両分散サーバへの振り分けを可能にする。
【００５７】
なお、負荷回避部２５ｄは、解析部２５ａから受信したコマンドが緊急コマンドであるか否かを、当該コマンドに緊急コマンドフラグが付加されているか否かによって判定する。つまり、負荷回避部２５ｄは、コマンドに緊急コマンドフラグが付加されている場合は、当該コマンドを緊急コマンドと判定する。
【００５８】
タイマ制御部２５ｅは、記録部２５ｂや予測部２５ｃの予測処理を定期的に起動する処理部である。例えば、タイマ制御部２５ｅは、時間を計時し、例えば５分間隔など所定時間に到達したことを、記録部２５ｂや予測部２５ｃに通知する。この通知を受けることで、記録部２５ｂや予測部２５ｃは、統計情報の収集や予測処理を開始する。
【００５９】
［処理の流れ］
次に、図１３と図１４を用いて、実施例１に係る振分制御装置が実行する処理を説明する。ここでは、コマンド実行時の動作フローおよび予測処理時の動作フローについて説明する。
【００６０】
（コマンド実行時の動作フロー）
図１３は、実施例１に係る振分制御装置におけるコマンド実行時の処理の流れを示すフローチャートである。図１３に示すように、振分制御装置２０の解析部２５ａは、緊急コマンド情報テーブル２２ａを参照し、管理サーバ１０から受信したコマンドが緊急コマンドであるか否かを判定する（Ｓ１０１）。
【００６１】
そして、解析部２５ａは、緊急コマンドであると判定した場合（Ｓ１０１肯定）、当該コマンドに緊急コマンドフラグをセットする（Ｓ１０２）。一方、解析部２５ａが緊急コマンドでないと判定した場合（Ｓ１０１否定）、記録部２５ｂは、当該コマンドの情報を記憶部２２等に記録する（Ｓ１０３）。
【００６２】
その後、負荷回避部２５ｄは、解析部２５ａから転送されたコマンドに緊急コマンドフラグがセットされている場合（Ｓ１０４肯定）、構成情報テーブル２２ｇを参照して、負荷回避中の分散サーバが存在するか否かを判定する（Ｓ１０５）。
【００６３】
そして、負荷回避部２５ｄは、負荷回避中の分散サーバが存在すると判定した場合（Ｓ１０５肯定）、緊急コマンドと判定されたコマンドを負荷回避中の分散サーバに振り分ける（Ｓ１０６）。一方、負荷回避部２５ｄは、負荷回避中の分散サーバが存在しないと判定した場合（Ｓ１０５否定）、一般的な負荷分散処理を用いて特定されたいずれかの分散サーバに、緊急コマンドと判定されたコマンドを振り分ける（Ｓ１０７）。
【００６４】
また、負荷回避部２５ｄは、解析部２５ａから転送されたコマンドに緊急コマンドフラグがセットされていない場合も（Ｓ１０４否定）、構成情報テーブル２２ｇを参照して、負荷回避中の分散サーバが存在するか否かを判定する（Ｓ１０８）。
【００６５】
そして、負荷回避部２５ｄは、負荷回避中の分散サーバが存在すると判定した場合（Ｓ１０８肯定）、通常コマンドと判定されたコマンドを、負荷回避中の分散サーバ以外の分散サーバに振り分ける（Ｓ１０９）。一方、負荷回避部２５ｄは、負荷回避中の分散サーバが存在しないと判定した場合（Ｓ１０８否定）、一般的な負荷分散処理を用いて特定されたいずれかの分散サーバに、通常コマンドと判定されたコマンドを振り分ける（Ｓ１０７）。
【００６６】
（予測処理時の動作フロー）
図１４は、実施例１に係る振分制御装置における予測処理の流れを示すフローチャートである。図１４に示すように、振分制御装置２０の記録部２５ｂは、タイマ制御部２５ｅから予測契機に到達したことが通知される（Ｓ２０１肯定）。すると、記録部２５ｂは、統計情報テーブル２２ｂに統計情報を生成し、生成した統計情報からパターン情報を生成してパターン情報テーブル２２ｃに格納する（Ｓ２０２）。
【００６７】
続いて、予測部２５ｃは、記録部２５ｂによって生成されたパターン情報と、緊急パターン情報テーブル２２ｄに格納される緊急パターン情報各々とを比較して、各緊急コマンドごとの採点表を生成する（Ｓ２０３）。そして、予測部２５ｃは、重み付け情報テーブル２２ｅに記憶される重み付け情報を用いて、Ｓ２０３で生成した各緊急コマンドごとの採点表に重み付けを実行し、各緊急コマンドごとに重付採点表を生成する（Ｓ２０４）。
【００６８】
続いて、予測部２５ｃは、生成した各緊急コマンドごとの重付採点表の各項目を加算して、各緊急コマンドごとに重付類似度を算出する（Ｓ２０５）。そして、予測部２５ｃは、各緊急コマンドごとの重付類似度各々に対して、予測結果テーブル２２ｆに記憶される予測成功率を乗算して、各緊急コマンドごとの予測評価値を算出する（Ｓ２０６）。
【００６９】
その後、負荷回避部２５ｄは、所定値以上の予測評価値がある場合（Ｓ２０７肯定）、構成情報テーブル２２ｇを参照して、負荷回避中の分散サーバがあるか否かを判定する（Ｓ２０８）。そして、負荷回避部２５ｄは、負荷回避中の分散サーバがない場合（Ｓ２０８否定）、各分散サーバからＣＰＵ負荷を取得して、ＣＰＵ負荷が所定値未満の分散サーバがあるか否かを判定する（Ｓ２０９）。
【００７０】
そして、負荷回避部２５ｄは、ＣＰＵ負荷が所定値未満の分散サーバがある場合（Ｓ２０９肯定）、最もＣＰＵ負荷が小さい分散サーバへの負荷回避を実行する（Ｓ２１０）。つまり、負荷回避部２５ｄは、構成情報テーブル２２ｇにおいて、最もＣＰＵ負荷が小さい分散サーバの「振り分け可否」を「×」に変更する。
【００７１】
また、所定値以上の予測評価値がない場合（Ｓ２０７否定）、負荷回避中の分散サーバがある場合（Ｓ２０８肯定）、ＣＰＵ負荷が所定値未満の分散サーバがない場合（Ｓ２０９否定）、振分制御装置２０は、予測処理を終了する。
【００７２】
［実施例１による効果］
実施例１に係る振分制御装置２０は、全体が高負荷な状況においても緊急コマンドが実行可能となるように、特定の分散サーバの処理負荷を他の分散サーバへ回避させ、特定の分散サーバで即時実行したいコマンドの実行を実現できる。また、実施例１に係る振分制御装置２０は、緊急コマンド用の特別なサーバを用意することもないので、サーバリソースを有効活用でき、システム構築にかかるコストも削減することができる。
【００７３】
また、振分制御装置２０は、採点表を生成する際に、処理負荷や処理状況そのものではなく、処理負荷の変化や処理状況の変化を比較するので、緊急コマンドが発生した状況だけでなく発生しそうな状況も検出することができる。この結果、振分制御装置２０は、緊急コマンドの発生する可能性に幅を持たせて予測することができるので、緊急コマンドの発生回数が比較的少ない状況も検出することができ、緊急コマンドの発生する可能性が低くても漏れなく検出することができる。
【実施例２】
【００７４】
実施例２では、実施例１で説明した予測が成功したか否かに基づいて予測結果や重みを学習する例を説明する。図１５は、実施例２に係る振分制御装置の構成を示す機能ブロック図である。図１５に示すように、振分制御装置２０は、通信制御Ｉ／Ｆ部２１と記憶部２２とプロセッサ２５とを有する。なお、通信制御Ｉ／Ｆ部２１と記憶部２２とプロセッサ２５の解析部２５ａと記録部２５ｂと予測部２５ｃと負荷回避部２５ｄとタイマ制御部２５ｅは、実施例１と同様の機能を有するので、詳細な説明は省略する。
【００７５】
［装置の構成］
ここでは、実施例１とは異なる機能である学習部２６について説明する。学習部２６は、解析部２５ａからの通知を元に緊急パターン情報テーブル２２ｄを更新し、予測部２５ｃから通知された予測判定の成否を判定して予測成功率を再算出し、予測判定の成否に基づいて各種重みを最適化する処理部である。ここで、学習部２６が実行する各学習を具体的に説明する。
【００７６】
（予測判定結果の更新）
学習部２６は、解析部２５ａから緊急コマンドのコマンド情報として、例えばコマンド種別等を受信する。そして、学習部２６は、受信したコマンド識別が緊急パターン情報テーブル２２ｄ等に格納される緊急コマンドと一致する場合には、予測成功と判定し、一致しない場合には、予測失敗と判定する。なお、学習部２６は、予測部２５ｃによって予測が完了してから、例えば１分など所定時間内に受信しなかった場合には、予測失敗と判定する。
【００７７】
そして、学習部２６は、予測成功または予測失敗と判定した場合に、予測された時間を基準にして、予測結果テーブル２２ｆを更新する。図８に示したテーブルの状態から更新する一例を挙げると、学習部２６が予測成功と判定した場合に、実際に実行された緊急コマンドが「ChangeRoute」と「ConfigBachup」であったとする。この場合、学習部２６は、「−１、○、×、×、○」を新たな予測結果とし、ここから４分前までの予測結果から予測成功率を算出する。
【００７８】
具体的には、学習部２６は、「−１、ChangeRoute：○、BlockTraffic：×、Shutdown：×、ConfigBackup：○」、「−２、ChangeRoute：○、BlockTraffic：○、Shutdown：○、ConfigBackup：×」に更新する。同様に、学習部２６は、「−３、ChangeRoute：○、BlockTraffic：○、Shutdown：○、ConfigBackup：×」、「−４、ChangeRoute：○、BlockTraffic：×、Shutdown：○、ConfigBackup：×」に更新する。同様に、学習部２６は、「−５、ChangeRoute：○、BlockTraffic：○、Shutdown：×、ConfigBackup：×」に更新する。
【００７９】
そして、学習部２６は、各緊急コマンドごとに、予測が成功した割合を算出する。上記例の場合、学習部２６は、「ChangeRoute」については予測した５回中に５回とも予測が成功しているので、「予測成功率」を「１」とする。同様に、学習部２６は、「BlockTraffic」については予測した５回中に３回だけ予測が成功しているので、「予測成功率」を「０．６」とする。同様に、学習部２６は、「Shutdow」については予測した５回中に３回だけ予測が成功しているので、「予測成功率」を「０．６」とする。同様に、学習部２６は、「ConfigBackup」については予測した５回中に１回だけ予測が成功しているので、「予測成功率」を「０．２」とする。なお、学習部２６は、予測失敗と判定した場合には、「−１、×、×、×、×」を新たな予測結果とし、ここから４分前までの予測結果から予測成功率を算出する。そして、予測部２５ｃは、学習部２６によって更新された予測結果テーブル２２ｆを用いて、以降の緊急コマンドの予測処理を実行する。
【００８０】
（緊急パターンの更新）
学習部２６は、緊急コマンドが新たに実行された時間を基準にして、緊急パターン情報テーブル２２ｄを更新する。例えば、学習部２６は、負荷回避部２５ｄによって「11：03」に緊急コマンドが分散サーバに分散された場合、または、分散サーバが「11：03」に緊急コマンドを実行した場合、「11：03」から５分前までの緊急パターンを生成する。
【００８１】
具体的には、学習部２６は、「11：02」、「11：01」、「11：00」、「10：59」、「10：58」各々の実行コマンド数、実行コマンド種類数、特定イベント受信数、各平均ＣＰＵ負荷を、記録部２５ｂが記憶部２２に格納した情報から収集する。そして、学習部２６は、収集した情報を実施例１の記録部２５ｂと同様の手法を用いてパターン化して、緊急パターン情報テーブル２２ｄを更新する。その後、予測部２５ｃは、学習部２６によって更新された緊急パターン情報テーブル２２ｄを用いて、以降の緊急コマンドの予測処理を実行する。
【００８２】
（重みの更新）
学習部２６は、予測された緊急コマンドの予測成否に基づいて、重み付けテーブル２２ｅの情報を更新する。例えば、学習部２６は、予測部２５ｃが予測処理時に生成した緊急コマンドごとの採点表を予測部２５ｃから取得する。そして、学習部２６は、予測が成功したと判定された場合、採点表の収集時間または収集項目のうち、最も一致していた項目の重みを重くし、最も一致していなかった項目の重みを軽くする。
【００８３】
図１６は、重みの学習例を示す図である。例えば、学習部２６は、重み情報が図１６の左図に示す状態で、予測成功と判定したとする。そのときの採点表が図１０の右図であったとする。この場合、学習部２６は、図１０の右図の収集時間を参照し、収集時間「−１」が全て１であるので最も比較結果が一致していたと判定し、収集時間「−５」が最も比較結果が一致していないと判定する。
【００８４】
すると、学習部２６は、図１６に示すように、収集時間「−１」の重みを「０．１」重くし、収集時間「−５」の重みを「０．１」軽くする。なお、ここでは、収集時間の重みを更新する例を説明したが、収集項目の重みを同様の手法で更新してもよい。
【００８５】
［処理の流れ］
図１７は、実施例２に係る振分制御装置における学習処理の流れを示すフローチャートである。図１７に示すように、学習部２６は、緊急コマンドが実行されると、すなわち、緊急コマンドの情報を解析部２５ａが受信すると（Ｓ３０１肯定）、緊急パターン情報テーブル２２ｄを再生成する（Ｓ３０２）。つまり、学習部２６は、緊急コマンドが実行された時間を基準として新たな緊急パターン情報を生成して緊急パターン情報テーブル２２ｄを更新する。
【００８６】
そして、学習部２６は、実行された緊急コマンドが採点表が通知されているコマンド、言い換えると、当該緊急コマンドが採点表に記載されているコマンドである場合（Ｓ３０３肯定）、当該採点表の有効期限が経過していないかを判定する（Ｓ３０４）。
【００８７】
採点表の有効期限が経過していない場合（Ｓ３０４肯定）、学習部２６は、予測成功として予測結果テーブル２２ｆを更新し（Ｓ３０５）、重み付け情報テーブル２２ｅを更新する（Ｓ３０６）。また、採点表の有効期限が経過している場合（Ｓ３０４否定）、学習部２６は、予測失敗として予測結果テーブル２２ｆを更新する（Ｓ３０７）。
【００８８】
なお、Ｓ３０３において、実行された緊急コマンドが採点表に記載されていないコマンドである場合（Ｓ３０３否定）、学習部２６は、処理を終了する。
【００８９】
［実施例２による効果］
このように、実施例２に係る振分制御装置２０は、緊急コマンドを予測するだけでなく、予測が成功したか失敗したかによって、緊急パターン、重み、予測判定結果など予測部２５ｃが予測に使用する情報を更新する。この結果、予測処理の精度を随時向上させることができ、より精度の高い予測処理を実行できる。
【実施例３】
【００９０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００９１】
（処理状況）
実施例１や２では、分散サーバの処理状況として「実行コマンド数、実行コマンド種類数、特定イベント受信数、平均ＣＰＵ負荷」を収集する例を説明したが、処理状況はこれに限定されるものではない。例えば、処理状況としてメモリ使用率などを収集してもよく、分散サーバの処理負荷を検出できる任意の情報を収集することができる。
【００９２】
（数値等の指定）
実施例１や２では、収集時間として１分単位を例にして説明したが、これに限定されるものではなく、任意の時間間隔を設定することができる。また、収集項目の数や緊急コマンドの種別等を任意に設定することができる。また、学習する項目等は任意に設定することができる。例えば、重みだけを学習したり、重みと予測結果だけを学習するなど、任意の数、任意の組み合わせで学習することができる。
【００９３】
（緊急パターンとの比較）
実施例１では、予測回避時の統計情報のパターンと、過去の緊急コマンドの実行時のパターンとを比較する例を説明したが、これに限定されるものではない。例えば、予測回避時の統計情報そのものと、過去の緊急コマンドの実行時の統計情報そのものとを比較して、一致する数等を検索し、検索した結果が所定値以上であれば、緊急コマンドが実行されると予測することもできる。
【００９４】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、例えば、タイマ制御部２５ｅを有しない構成など、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９６】
（ハードウェア構成）
図１８は、振分制御プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図１８に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図１８に示した各部は、バス１０１で相互に接続される。
【００９７】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、図２に示した各テーブルに記憶される各情報を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。ＣＰＵ１０２は、図２に示した各機能を実行する。
【００９８】
また、ＨＤＤ１０７に、図２に示した各処理部の制御を実行する振分制御プログラム１０７ａを格納しておく。そして、ＣＰＵ１０２が、振分制御プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図２等で説明した各機能を実行する振分制御プロセス１０８ａを動作させることもできる。すなわち、振分制御プロセス１０８ａは、図２や図５に記載した解析部２５ａ、記録部２５ｂ、予測部２５ｃ、負荷回避部２５ｄ、タイマ制御部２５ｅ、学習部２６と同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することで振分制御装置の機能を実行する情報処理装置として動作する。
【００９９】
また、コンピュータ１００は、媒体読取装置１０６によって記録媒体から振分制御プログラム１０７ａを読み出し、読み出された振分制御プログラム１０７ａを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１００】
１０  管理サーバ
２０  振分制御装置
２１  通信制御Ｉ／Ｆ部
２２  記憶部
２２ａ  緊急コマンド情報テーブル
２２ｂ  統計情報テーブル
２２ｃ  パターン情報テーブル
２２ｄ  緊急パターン情報テーブル
２２ｅ  重み付け情報テーブル
２２ｆ  予測結果テーブル
２２ｇ  構成情報テーブル
２５  プロセッサ
２５ａ  解析部
２５ｂ  記録部
２５ｃ  予測部
２５ｄ  負荷回避部
２５ｅ  タイマ制御部
２６  学習部
５０、６０  分散サーバ
７０  イベントロードバランサ
【図１】
0005729179.tif 000002
【図２】
0005729179.tif 000003
【図３】
0005729179.tif 000004
【図４】
0005729179.tif 000005
【図５】
0005729179.tif 000006
【図６】
0005729179.tif 000007
【図７】
0005729179.tif 000008
【図８】
0005729179.tif 000009
【図９】
0005729179.tif 000010
【図１０】
0005729179.tif 000011
【図１１】
0005729179.tif 000012
【図１２】
0005729179.tif 000013
【図１３】
0005729179.tif 000014
【図１４】
0005729179.tif 000015
【図１５】
0005729179.tif 000016
【図１６】
0005729179.tif 000017
【図１７】
0005729179.tif 000018
【図１８】
0005729179.tif 000019
【図１９】
0005729179.tif 000020