(57)【要約】【課題】処理ノードにおけるタスクの異常を、処理ノードのリソースを利用することなく正しく検出する。【解決手段】電力使用量統計記憶部２４０は、処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶する。電力使用量比較部２５０は、新たに取得した、処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量と、電力使用量統計記憶部２４０に記憶された当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおけるタスクの異常を検出する。【選択図】      図１
2015121963.tif 000002
【特許請求の範囲】
【請求項１】
処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶する電力使用量統計記憶手段と、
新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの当該処理ノードの電力使用量と、前記電力使用量統計記憶手段に記憶された当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおける前記タスクの異常を検出する、電力使用量比較手段と、
を備える情報処理システム。
【請求項２】
前記電力使用量比較手段は、前記新たに取得した前記処理ノードの電力使用量と、前記電力使用量記憶手段に記憶された当該処理ノードの電力使用量の統計値との差分が、所定の範囲外の場合、前記処理ノードにおける前記タスクの異常と判定する、
請求項１に記載の情報処理システム。
【請求項３】
前記電力使用量比較手段は、前記処理ノードにおいて前記タスクの実行を開始してから所定周期ごとの電力使用量の統計値の系列を記憶し、
前記電力使用量比較手段は、新たに取得した、前記処理ノードにおいて前記タスクの実行を開始してから所定周期ごとの電力使用量の各々を、前記電力使用量統計記憶手段に記憶された当該処理ノードの電力使用量の統計値の系列の対応する統計値と比較する、
請求項１または２に記載の情報処理システム。
【請求項４】
前記電力使用量比較手段は、前記新たに取得した前記処理ノードの電力使用量と、前記電力使用量記憶手段に記憶された当該処理ノードの電力使用量の統計値との差分が、前記所定の範囲を前記処理ノードで実行されている前記タスクの数に応じて補正した補正範囲外の場合、前記処理ノードにおける前記タスクの異常と判定する、
請求項１乃至３のいずれかに記載の情報処理システム。
【請求項５】
前記電力使用量記憶手段は、さらに、前記処理ノードにおいて前記タスクが実行されたときの、当該タスクが利用する他ノードの電力使用量の統計値を記憶し、
前記電力使用量比較手段は、さらに、新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの、当該タスクが利用する他ノードの電力使用量と、前記電力使用量記憶手段に記憶された当該タスクが利用する他ノードの電力使用量の統計値と、を比較することにより、当該他ノードの異常を検出する、
請求項１乃至４のいずれかに記載の情報処理システム。
【請求項６】
さらに、元タスクを複数の前記タスクに分割し、前記複数の前記タスクの実行を、複数の前記処理ノードへ、それぞれ指示するタスク分散管理手段と、
前記複数の前記処理ノードの各々について、当該処理ノードの電力使用量を取得する、電力使用量取得手段と、
を含み、
前記電力使用量統計記憶手段は、前記複数の前記処理ノードの各々について、当該処理ノードの電力使用量の統計値を記憶し、
前記電力使用量比較手段は、前記電力使用量取得手段が取得した、前記複数の前記処理ノードの各々の電力使用量と、前記電力使用量統計記憶手段に記憶された当該処理ノードの電力使用量の統計値と、を比較する
請求項１乃至５のいずれかに記載の情報処理システム。
【請求項７】
処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶し、
新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの当該処理ノードの電力使用量と、当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおける前記タスクの異常を検出する、
監視方法。
【請求項８】
前記タスクの異常を検出する場合、前記新たに取得した前記処理ノードの電力使用量と、当該処理ノードの電力使用量の統計値との差分が、所定の範囲外の場合、前記処理ノードにおける前記タスクの異常と判定する、
請求項７に記載の監視方法。
【請求項９】
コンピュータに、
処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶し、
新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの当該処理ノードの電力使用量と、当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおける前記タスクの異常を検出する、
処理を実行させるプログラム。
【請求項１０】
前記タスクの異常を検出する場合、前記新たに取得した前記処理ノードの電力使用量と、当該処理ノードの電力使用量の統計値との差分が、所定の範囲外の場合、前記処理ノードにおける前記タスクの異常と判定する、
処理を実行させる、請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、監視方法、及び、プログラムに関する。
【背景技術】
【０００２】
ネットワークを介して複数の処理ノードで処理を分散して実行する分散処理システムでは、処理ノードの異常が検知された場合に、管理ノードが分割したタスクを正常な処理ノードへ割り振ることにより、システム全体の可用性を向上させている。
【０００３】
処理ノードの異常の検知の手法としては、管理ノードが処理ノードへ正常性を問い合わせ、その応答が正常でない場合に異常を検知するポーリング方式や、処理ノードが所定の時間間隔で、管理ノードへ自身の状態を通知るハートビート方式等がある。これらの手法では、ネットワークの遅延や、処理ノード上のリソースを大量に必要とするタスクの処理に起因した応答や通知の遅延等により、処理ノードが正常にタスクを実行できているにもかかわらず、当該処理ノードの異常が誤って検知される可能性がある。
【０００４】
このような誤検知を低減するために、処理ノードにおいて、ポーリングへの応答処理に割り当てるリソースやハートビート通知処理に割り当てるリソースを十分に予約しておく手法も考えられる。しかしながら、この場合、予約されたリソースの分、タスク処理に用いることができるリソースが減少する。
【０００５】
なお、関連技術として、特許文献１には、複数の機器の電力消費量を取得し、各機器の運転状態を確認する技術が開示されている。特許文献１に開示されている技術を、上述の処理ノードの異常検知に適用した場合、処理ノードの通電状態は検知できるが、処理ノード上でタスクが正常に実行されているかどうかは検知できない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−０８６５７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、上述の課題を解決し、処理ノードにおけるタスクの異常を、処理ノードのリソースを利用することなく正しく検出できる、情報処理システム、監視方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の情報処理システムは、処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶する電力使用量統計記憶手段と、新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの当該処理ノードの電力使用量と、前記電力使用量統計記憶手段に記憶された当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおける前記タスクの異常を検出する、電力使用量比較手段と、を備える。
【０００９】
本発明の監視方法は、処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶し、新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの当該処理ノードの電力使用量と、当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおける前記タスクの異常を検出する。
【００１０】
本発明のプログラムは、コンピュータに、処理ノードにおいてタスクが実行されたときの当該処理ノードの電力使用量の統計値を記憶し、新たに取得した、前記処理ノードにおいて前記タスクが実行されたときの当該処理ノードの電力使用量と、当該処理ノードの電力使用量の統計値と、を比較することにより、当該処理ノードにおける前記タスクの異常を検出する、処理を実行させる。
【発明の効果】
【００１１】
本発明の効果は、処理ノードにおけるタスクの異常を、処理ノードのリソースを利用することなく正しく検出できることである。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、分散処理システム１の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、分散処理システム１の他の構成を示すブロック図である。
【図４】本発明の第１の実施の形態における、分散処理システム１の動作を示すフローチャートである。
【図５】本発明の第１の実施の形態における、タスク開始電文の例を示す図である。
【図６】本発明の第１の実施の形態における、タスク終了電文の例を示す図である。
【図７】本発明の第１の実施の形態における、タスク開始電文の電文パターンの例を示す図である。
【図８】本発明の第１の実施の形態における、タスク終了電文の電文パターンの例を示す図である。
【図９】本発明の第１の実施の形態における、統計データの例を示す図である。
【図１０】本発明の第１の実施の形態における、電力使用量の比較例を示す図である。
【図１１】本発明の第２の実施の形態における、タスク開始電文の例を示す図である。
【図１２】本発明の第２の実施の形態における、タスク終了電文の例を示す図である。
【図１３】本発明の第３の実施の形態における、統計データの例を示す図である。
【図１４】本発明の第３の実施の形態における、電力使用量の比較例を示す図である。
【図１５】本発明の第４の実施の形態における、分散処理システム１の構成を示すブロック図である。
【図１６】本発明の第４の実施の形態における、タスク利用ノード情報の例を示す図である。
【図１７】本発明の第４の実施の形態における、統計データの例を示す図である。
【図１８】本発明の第４の実施の形態における、電力使用量の比較例を示す図である。
【発明を実施するための形態】
【００１３】
（第１の実施の形態）
本発明の第１の実施の形態について説明する。
【００１４】
はじめに、本発明の第１の実施の形態の構成について説明する。
【００１５】
図２は、本発明の第１の実施の形態における、分散処理システム１の構成を示すブロック図である。
【００１６】
図２を参照すると、分散処理システム１は、管理ノード１００「Ｍ」、ネットワークスイッチ（または、監視装置）２００「Ｓ」、及び、処理ノード３００「Ｎ１」〜「Ｎｎ」を含む。ここで、符号の後の「」内は、識別子を示す。
【００１７】
分散処理システム１は、本発明の情報処理システムの一実施形態である。
【００１８】
管理ノード１００と処理ノード３００は、ネットワークスイッチ２００を介して接続される。ネットワークスイッチ２００は、管理ノード１００、または、処理ノード３００から電文を受信し、電文の宛先に対応するポートに、電文を転送する。また、ネットワークスイッチ２００は、例えば、ＰｏＥ（Ｐｏｗｅｒ  ｏｖｅｒ  Ｅｔｈｅｒｎｒｔ（登録商標））等の規格に従って、ポートを介して、処理ノード３００に電力を供給する。また、電源ユニット（図示せず）が、電源ポートを介して、処理ノード３００に電力を供給してもよい。
【００１９】
管理ノード１００は、タスク分散管理部１１０、及び、ノード管理部１２０を含む。
【００２０】
タスク分散管理部１１０は、分散処理システム１の処理対象の元タスクを複数のタスクに分割し、分割されたタスクのそれぞれの実行を処理ノード３００に要求する。また、タスク分散管理部１１０は、分割されたタスクのそれぞれの実行結果を管理する。
【００２１】
図５は、本発明の第１の実施の形態における、タスクの実行開始を指示する電文（タスク開始電文）の例を示す図である。図５の例では、タスク開始電文は、タスクを実行すべき処理ノード３００の識別子を示す宛先、及び、タスクの実行開始を示すコマンドを含む。
【００２２】
タスク分散管理部１１０は、図５のタスク開始電文により、処理ノード３００にタスクの実行を要求する。
【００２３】
図６は、本発明の第１の実施の形態における、タスクの実行終了を通知する電文（タスク終了電文）の例を示す図である。図６の例では、タスク終了電文は、タスクを実行した処理ノード３００の識別子を示す送信元、タスクの実行終了を示すコマンド、及び、タスク実行の結果を含む。
【００２４】
処理ノード３００は、管理ノード１００から要求されたタスクの実行が終了した場合、図６のタスク終了電文により、管理ノード１００にタスクの実行結果を送信する。
【００２５】
ノード管理部１２０は、各処理ノード３００の状態を管理する。
【００２６】
ネットワークスイッチ２００は、電文解析設定記憶部２１０、電文解析部２２０、電力使用量取得部２３０、電力使用量統計記憶部２４０、及び、電力使用量比較部２５０を含む。
【００２７】
電文解析設定記憶部２１０は、タスク開始電文、及び、タスク終了電文を検出するための電文パターンを記憶する。電文パターンは、管理者等により予め設定される。
【００２８】
図７は、本発明の第１の実施の形態における、タスク開始電文の電文パターンの例を示す図である。図８は、本発明の第１の実施の形態における、タスク終了電文の電文パターンの例を示す図である。
【００２９】
図７、図８の例では、電文パターンとして、それぞれ、コマンド＝"タスク開始"、コマンド＝"タスク完了"が設定されている。この場合、電文におけるコマンドフィールドの値が、それぞれ"タスク開始"、"タスク完了"である場合に、電文がタスク開始電文、タスク終了電文と判定される。
【００３０】
電文解析部２２０は、電文解析設定記憶部２１０に記憶されている電文パターンをもとに、管理ノード１００または処理ノード３００から受信した電文を解析し、タスク開始電文、及び、タスク終了電文を検出する。電文解析部２２０は、タスク開始電文を検出したときに、タスク開始電文の宛先で示される処理ノード３００を指定した「電力使用量の取得開始」（以下、「取得開始」）を、電力使用量取得部２３０に指示する。電文解析部２２０は、タスク終了電文を検出したときに、タスク終了電文の送信元で示される処理ノード３００を指定した「電力使用量の取得終了」（以下、「取得終了」）を、電力使用量取得部２３０に指示する。
【００３１】
電力使用量取得部２３０は、「取得開始」が指示された場合、「取得開始」で指定された処理ノード３００の電力使用量を、「取得終了」が指示されるまで取得する。そして、電力使用量取得部２３０は、取得した電力使用量の時系列をもとに、電力使用量の統計データを生成、更新する。電力使用量取得部２３０は、例えば、ＰｏＥにより供給している電力使用量を取得する。また、電力使用量取得部２３０は、電源ユニット（図示せず）により供給されている電力使用量を取得してもよい。
【００３２】
電力使用量統計記憶部２４０は、処理ノード３００の識別子に関連づけて、電力使用量の統計データを記憶する。
【００３３】
電力使用量比較部２５０は、新たに取得した、「取得開始」で指定された処理ノード３００の電力使用量と、電力使用量統計記憶部２４０に保存されている、「取得開始」で指定された処理ノード３００の統計データとを比較し、当該処理ノード３００におけるタスクの異常を検出する。また、電力使用量比較部２５０は、所定の通知先に、検出された処理ノード３００におけるタスクの異常を通知する。
【００３４】
処理ノード３００は、管理ノード１００から要求されたタスクを実行する。
【００３５】
なお、管理ノード１００、ネットワークスイッチ２００、及び、処理ノード３００は、それぞれ、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、ネットワークスイッチ２００の電文解析設定記憶部２１０と電力使用量統計記憶部２４０とは、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。
【００３６】
また、電文解析設定記憶部２１０、電文解析部２２０、電力使用量取得部２３０、電力使用量統計記憶部２４０、及び、電力使用量比較部２５０は、ネットワークスイッチ２００とは異なる装置に含まれていてもよい。
【００３７】
図３は、本発明の第１の実施の形態における、分散処理システム１の他の構成を示すブロック図である。
【００３８】
図３を参照すると、分散処理システム１は、管理ノード１００、ネットワークスイッチ２００、処理ノード３００、電文監視装置２０１、及び、電力監視装置２０２を含む。電文監視装置２０１は、電文解析設定記憶部２１０、及び、電文解析部２２０を含む。電力監視装置２０２は、電力使用量取得部２３０、電力使用量統計記憶部２４０、及び、電力使用量比較部２５０を含む。
【００３９】
次に、本発明の第１の実施の形態の動作について説明する。
【００４０】
ここでは、図７、図８のような電文パターンが電文解析設定記憶部２１０に記憶されていると仮定する。また、処理ノード３００「Ｎ１」〜「Ｎｎ」の全てにおいて、タスクの実行が可能であると仮定する。
【００４１】
図４は、本発明の第１の実施の形態における、分散処理システム１の動作を示すフローチャートである。
【００４２】
ユーザ等が、処理対象の元タスクの実行を指示した場合、管理ノード１００のタスク分散管理部１１０は、元タスクを複数のタスクに分割する（ステップＳ１０１）。
【００４３】
タスク分散管理部１１０は、分割された各タスクを割り当てる処理ノード３００を決定する（ステップＳ１０２）。
【００４４】
ここで、タスク分散管理部１１０は、ノード管理部１２０から取得した、タスクを実行可能な処理ノード３００の識別子の中から、各タスクを割り当てる処理ノード３００を決定する。なお、処理ノード３００の決定方法は、タスクを実行可能な処理ノード３００が割り当てられれば、どのような方法でもよい。
【００４５】
例えば、タスク分散管理部１１０は、元タスクを２つのタスクに分割し、各々を処理ノード３００「Ｎ１」、「Ｎ２」へ割り当てる。
【００４６】
タスク分散管理部１１０は、タスク開始電文を生成し、ネットワークスイッチ２００へ送信する（ステップＳ１０３）。ここで、タスク分散管理部１１０は、各タスクが割り当てられた処理ノード３００の識別子を、タスク開始電文の宛先に設定する。
【００４７】
例えば、タスク分散管理部１１０は、図５のタスク開始電文の宛先に、処理ノード３００「Ｎ１」、「Ｎ２」を設定して送信する。
【００４８】
ネットワークスイッチ２００は、受信したタスク開始電文を、宛先に従って、処理ノード３００へ転送する（ステップＳ２０１）。
【００４９】
例えば、ネットワークスイッチ２００は、管理ノード１００から受信したタスク開始電文を、処理ノード３００「Ｎ１」、「Ｎ２」へ転送する。
【００５０】
処理ノード３００は、タスク開始電文を受信すると（ステップＳ３０１）、タスクの実行を開始する（ステップＳ３０２）。
【００５１】
例えば、処理ノード３００「Ｎ１」、「Ｎ２」は、それぞれ、タスクの実行を開始する。
【００５２】
ネットワークスイッチ２００の電文解析部２２０は、電文解析設定記憶部２１０に記憶されている電文パターンをもとに、タスク開始電文を受信したかどうかを判定する（ステップＳ２０２）。
【００５３】
例えば、電文解析部２２０は、図７の電文パターンをもとに、タスク開始電文を受信したかどうかどうかを判定する。
【００５４】
ステップＳ２０２で、タスク開始電文を受信した場合（ステップＳ２０２／Ｙ）、電文解析部２２０は、タスク開始電文の宛先で示される処理ノード３００を指定した「取得開始」を、電力使用量取得部２３０へ指示する。
【００５５】
例えば、電文解析部２２０は、処理ノード３００「Ｎ１」、「Ｎ２」を指定し、「取得開始」を、電力使用量取得部２３０へ指示する。
【００５６】
電力使用量取得部２３０は、「取得開始」で指定された処理ノード３００の電力使用量を取得する（ステップＳ２０３）。
【００５７】
例えば、電力使用量取得部２３０は、処理ノード３００「Ｎ１」、「Ｎ２」の電力使用量を取得する。
【００５８】
電力使用量比較部２５０は、電力使用量統計記憶部２４０に、電力使用量を取得した処理ノード３００の統計データが存在するかどうかを判定する（ステップＳ２０４）。
【００５９】
ステップＳ２０４で、統計データが存在する場合（ステップＳ２０４／Ｙ）、電力使用量比較部２５０は、後述するように、取得した電力量と統計データとを比較し、タスクの異常を検出する（ステップＳ２０５、Ｓ２０６）。一方、ステップＳ２０４で、統計データが存在しない場合（ステップＳ２０４／Ｎ）、ステップＳ２０５、Ｓ２０６は省略される。
【００６０】
例えば、初期状態では、統計データは存在しないため、ステップＳ２０５、Ｓ２０６は省略される。
【００６１】
電文解析部２２０は、電文解析設定記憶部２１０に記憶されている電文パターンをもとに、タスク終了電文を受信したかどうかを判定する（ステップＳ２０８）。
【００６２】
例えば、電文解析部２２０は、図８の電文パターンをもとに、タスク終了電文を受信したかどうかどうかを判定する。
【００６３】
ステップＳ２０４で、タスク終了電文を受信していない場合（ステップＳ２０８／Ｎ）、所定長の時間周期のサンプル区間ごとに、ステップＳ２０３からの処理が繰り返される。
【００６４】
処理ノード３００は、タスクの実行を終了すると（ステップＳ３０３）、タスク終了電文を生成し、ネットワークスイッチ２００へ送信する（ステップＳ３０４）。
【００６５】
例えば、処理ノード３００「Ｎ１」、「Ｎ２」は、図６のタスク終了電文の送信元に、それぞれ、処理ノード３００「Ｎ１」、「Ｎ２」を設定して送信する。
【００６６】
ネットワークスイッチ２００は、受信したタスク終了電文を管理ノード１００へ転送する（ステップＳ２０７）。
【００６７】
例えば、ネットワークスイッチ２００は、処理ノード３００「Ｎ１」、「Ｎ２」から受信したタスク終了電文を、管理ノード１００へ転送する。
【００６８】
ステップＳ２０８で、タスク終了電文を受信した場合（ステップＳ２０８／Ｙ）、電文解析部２２０は、タスク終了電文の送信元で示される処理ノード３００を指定した「取得終了」を、電力使用量取得部２３０へ指示する。
【００６９】
例えば、電文解析部２２０は、処理ノード３００「Ｎ１」、「Ｎ２」を指定した「取得終了」を、電力使用量取得部２３０へ指示する。
【００７０】
電力使用量取得部２３０は、電力使用量統計記憶部２４０における、「取得終了」で指定された処理ノード３００の統計データを更新する（ステップＳ２０９）。
【００７１】
図９は、本発明の第１の実施の形態における、統計データの例を示す図である。図９の例では、統計データは、処理ノード３００ごとに生成される。統計データは、値（統計値）として、タスクの開始時刻からのサンプル区間ごとの、電力使用量の平均値を含む。
【００７２】
例えば、電力使用量取得部２３０は、処理ノード３００「Ｎ１」に対する統計データを、図９のように更新する。
【００７３】
ステップＳ２０４で、統計データが存在する場合（ステップＳ２０４／Ｙ）、電力使用量比較部２５０は、ステップＳ２０２で取得した処理ノード３００の電力使用量と、当該処理ノード３００の統計データとを比較して、タスクの異常を検出する（ステップＳ２０５）。
【００７４】
例えば、管理ノード１００が、再度、分割されたタスクの各々を処理ノード３００「Ｎ１」、「Ｎ２」に割り当てた場合、処理ノード３００「Ｎ１」、「Ｎ２」は、それぞれ、タスクの実行を開始する。ネットワークスイッチ２００の電力使用量取得部２３０は、処理ノード３００「Ｎ１」、「Ｎ２」のそれぞれの電力使用量を取得する。そして、電力使用量比較部２５０は、各処理ノード３００について、サンプル区間ごとに、取得した電力使用量と統計データの値（平均値）とを比較する。
【００７５】
図１０は、本発明の第１の実施の形態における、電力使用量の比較例を示す図である。
【００７６】
図１０の例では、処理ノード３００「Ｎ１」について、タスクの開始時刻からのサンプル区間ごとに、取得した電力使用量と統計データの値（平均値）との間の差分がされている。そして、差分が所定の範囲（判定範囲）外の場合、タスクの異常と判定される。
【００７７】
例えば、判定範囲が、「統計データの値（平均値）±２０％」であると仮定する。サンプル区間１において、処理ノード３００「Ｎ１」の電力使用量「４５」が取得された場合、統計データ（平均値）「５０」との差分は「−１０％」である。この値は、判定範囲内であるため、電力使用量比較部２５０は、タスクは正常に実行されていると判定する。
【００７８】
ここで、例えば、処理ノード３００「Ｎ１」に接続されたＩ／Ｏ（Input/Output）装置に障害が発生し、処理ノード３００「Ｎ１」で実行されるタスクのＩ／Ｏ待ちが継続したと仮定する。Ｉ／Ｏ待ちの実装が、ＣＰＵを消費しない実装であれば、処理ノード３００の電力使用量は、正常にタスクが実行されている場合の電力使用量に比べて低下する。
【００７９】
例えば、サンプル区間３において、処理ノード３００「Ｎ１」の電力使用量「３０」が取得された場合、統計データ（平均値）「１２０」との差分は「−７５％」である。この値は、判定範囲外であるため、電力使用量比較部２５０は、処理ノード３００「Ｎ１」におけるタスクの異常と判定する。
【００８０】
また、逆に、データ異常やアプリケーションバグなどの要因で、タスクの処理が無限ループに陥った場合、処理ノード３００の消費電力は、正常にタスクが実行されている場合の消費電力に比べて増加する。この場合も、差分が判定範囲内にあるかどうかにより、タスクの異常を検出できる。
【００８１】
タスクの異常が検出された場合（ステップＳ２０６／Ｙ）、電力使用量比較部２５０は、管理ノード１００等、所定の通知先へ、処理ノード３００におけるタスクの異常を通知する（ステップＳ２１０）。
【００８２】
例えば、電力使用量比較部２５０は、管理ノード１００へ、処理ノード３００「Ｎ１」におけるタスクの異常を通知する。
【００８３】
異常通知を受信した管理ノード１００は、例えば、異常が検出された処理ノード３００に割り当てたタスクの取り消しや、正常に動作している他の処理ノード３００へのタスクの再割り当て等、異常に対する対処を行う（ステップＳ１０５）。また、管理ノード１００は、ユーザ等への表示やログファイ等への書き込みにより、異常が検出された処理ノード３００の識別子を出力してもよい。
【００８４】
以上により、本発明の第１の実施の形態の動作が完了する。
【００８５】
なお、本発明の第１の実施の形態では、電力使用量の統計データとして、サンプル区間ごとの電力使用量の平均値を用い、取得した電力使用量と平均値との差分が判定範囲外にある場合、タスクの異常と判定した。しかしながら、タスクの異常を判定できれば、他の統計値を用いてもよい。また、タスクの異常を判定できれば、取得した電力使用量と統計データを、他の方法で比較してもよい。
【００８６】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【００８７】
図１を参照すると、分散処理システム１（情報処理システム）は、電力使用量統計記憶部２４０、及び、電力使用量比較部２５０を含む。
【００８８】
電力使用量統計記憶部２４０は、処理ノード３００においてタスクが実行されたときの当該処理ノード３００の電力使用量の統計値を記憶する。
【００８９】
電力使用量比較部２５０は、新たに取得した、処理ノード３００においてタスクが実行されたときの当該処理ノード３００の電力使用量と、電力使用量統計記憶部２４０に記憶された当該処理ノード３００の電力使用量の統計値と、を比較することにより、当該処理ノード３００におけるタスクの異常を検出する。
【００９０】
本発明の第１の実施の形態によれば、処理ノードにおけるタスクの異常を、処理ノードのリソースを利用することなく正しく検出できる。
【００９１】
その理由は、電力使用量比較部２５０が、処理ノード３００においてタスクが実行されたときの当該処理ノード３００の電力使用量と、電力使用量統計記憶部２４０に記憶された当該処理ノード３００の電力使用量の統計値と、を比較することにより、当該処理ノード３００におけるタスクの異常を検出するためである。
【００９２】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００９３】
本発明の第２の実施の形態では、処理ノード３００とタスクの組について、電力使用量の統計データの生成、比較が行われる点において、本発明の第１の実施の形態と異なる。
【００９４】
管理ノード１００のタスク分散管理部１１０は、元データを分割した場合に、同一のワークロードを有するタスクに対して同じタスク識別子を付与する。例えば、エンタープライズバッチ処理では、同一バッチジョブは、近似のワークロードを有するため、バッチジョブの名称がタスク識別子に付与できる。
【００９５】
図１１は、本発明の第２の実施の形態における、タスク開始電文の例を示す図である。タスク開始電文は、さらに、処理ノード３００で実行すべきタスクの識別子を含む。
【００９６】
タスク分散管理部１１０は、図１１のタスク開始電文により、実行すべきタスクを指定する。
【００９７】
図１２は、本発明の第２の実施の形態における、タスク終了電文の例を示す図である。タスク終了電文は、さらに、処理ノード３００で実行したタスクの識別子を含む。
【００９８】
処理ノード３００は、図１２のタスク終了電文により、実行が終了したタスクを通知する。
【００９９】
ネットワークスイッチ２００の電文解析部２２０は、タスク開始電文、タスク終了電文における処理ノード３００とタスクを指定した「取得開始」、「取得終了」を、電力使用量取得部２３０へ指示する。
【０１００】
電力使用量取得部２３０は、「取得開始」で指定された処理ノード３００の電力使用量を取得する。電力使用量取得部２３０は、「取得開始」で指定された処理ノード３００とタスクの組に対して、電力使用量の統計データを生成、更新する。
【０１０１】
電力使用量統計記憶部２４０は、処理ノード３００の識別子とタスクの識別子の組に関連づけて、電力使用量の統計データを記憶する。
【０１０２】
また、電力使用量比較部２５０は、新たに取得した、「取得開始」で指定された処理ノード３００の電力使用量と、電力使用量統計記憶部２４０に記憶されている、「取得開始」で指定された処理ノード３００とタスクの組に対する統計データの値（平均値）とを比較し、当該処理ノード３００におけるタスクの異常を検出する。
【０１０３】
例えば、管理ノード１００が、処理ノード３００「Ｎ１」にタスク「Ｔ１」を割り当てた場合、ネットワークスイッチ２００の電力使用量取得部２３０は、処理ノード３００「Ｎ１」とタスク「Ｔ１」の組に対する統計データを生成する。
【０１０４】
そして、管理ノード１００が、再度、処理ノード３００「Ｎ１」にタスク「Ｔ１」を割り当てた場合、ネットワークスイッチ２００の電力使用量比較部２５０は、新たに取得した処理ノード３００「Ｎ１」の電力使用量と、処理ノード３００「Ｎ１」とタスク「Ｔ１」の組に対する統計データの値（平均値）とを比較する。
【０１０５】
なお、本発明の第２の実施の形態では、管理ノード１００が同じ処理ノード３００に割り当てるタスクの数を１つとしたが、管理ノード１００が同じ処理ノード３００に複数のタスクを割り当てる場合、ネットワークスイッチ２００の電力使用量取得部２３０は、処理ノード３００と複数のタスクの組に対して、電力使用量の統計データを生成、更新してもよい。
【０１０６】
この場合、電力使用量比較部２５０は、新たに取得した、処理ノード３００の電力使用量と、処理ノード３００と複数のタスクの組に対する統計データの値（平均値）とを比較し、当該処理ノード３００におけるタスクの異常を検出する。
【０１０７】
本発明の第２の実施の形態によれば、処理ノードにおいて、統計データが異なるタスクが実行される場合でも、処理ノードにおけるタスクの異常を正しく検出できる。
【０１０８】
その理由は、電力使用量取得部２３０が、処理ノード３００とタスクの組に対して、統計データを生成、更新し、電力使用量比較部２５０が、取得した処理ノード３００の電力使用量と、処理ノード３００とタスクの組に対する統計データの値（平均値）とを比較するためである。
【０１０９】
（第３の実施の形態）
次に、本発明の第３の実施の形態について説明する。
【０１１０】
本発明の第３の実施の形態においては、タスクの異常を判定するための判定範囲を、処理ノード３００で実行されるタスクの数に応じて補正する点において、本発明の第１の実施形態と異なる。
【０１１１】
ネットワークスイッチ２００の電文解析部２２０は、タスク開始電文を検出したときに、当該タスク開始電文の宛先の処理ノード３００において、既に実行中のタスクがある場合、電力使用量取得部２３０に「取得開始」を指示するに代わり、電力使用量比較部２５０に「追加負荷発生」を通知する。また、電文解析部２２０は、タスク終了電文を検出したときに、当該タスク終了電文の送信元の処理ノード３００において、複数のタスクが実行されている場合、電力使用量取得部２３０に「取得終了」を指示する代わりに、電力使用量比較部２５０に「追加負荷終了」を通知する。
【０１１２】
電力使用量比較部２５０は、初期値が０である追加負荷カウンタを含む。電力使用量比較部２５０は、電文解析部２２０から「追加負荷発生」を受信した場合、追加負荷カウンタに１を加算する。また、電力使用量比較部２５０は、電文解析部２２０から「追加負荷終了」を受信した場合、追加負荷カウンタから１を減算する。
【０１１３】
また、電力使用量比較部２５０は、追加負荷カウンタの値に応じて、タスクの異常を判定するための判定範囲を補正する。例えば、判定範囲が「統計データの値（平均値）±Ｐ０％」の場合、電力使用量比較部２５０は、判定範囲を追加負荷カウンタの値に応じて正方向に広げ、「統計データの値（平均値）−Ｐ０〜＋Ｐ０×（追加負荷カウンタの値＋１）％」に補正する。
【０１１４】
次に、本発明の第３の実施の形態の動作の具体例を説明する。
【０１１５】
図１３は、本発明の第３の実施の形態における、統計データの例を示す図である。
【０１１６】
ここでは、図１３のような統計データが、電力使用量統計記憶部２４０に保存されていると仮定する。また、判定範囲の初期値は、「統計データの値（平均値）±２０％」であると仮定する。
【０１１７】
図１４は、本発明の第３の実施の形態における、電力使用量の比較例を示す図である。
【０１１８】
はじめに、管理ノード１００は、処理ノード３００「Ｎ１」に１つめのタスクを割り当てる。
【０１１９】
図１４のサンプル区間１において、追加負荷カウンタの値は「０」（初期値）であるため、判定範囲は「統計データの値（平均値）±２０％」（初期値）である。サンプル区間１では、処理ノード３００「Ｎ１」の電力使用量「５５」が取得されている。ここで、取得した電力使用量と統計データ（平均値）「５０」との差分は「＋１０％」である。この値は、判定範囲内であるため、電力使用量比較部２５０は、タスクは正常に実行されていると判定する。
【０１２０】
サンプル区間２において、管理ノード１００が処理ノード３００「Ｎ１」に２つめのタスクを割り当てる。電文解析部２２０は、電力使用量比較部２５０に「追加負荷発生」を通知する。電力使用量比較部２５０は追加負荷カウンタを加算し、判定範囲を「統計データの値（平均値）−２０％〜＋４０％」に補正する。サンプル区間２では、２つめのタスクの実行に伴う電力使用量の増加により、処理ノード３００「Ｎ１」の電力使用量「１４０」が取得される。ここで、取得した電力使用量と統計データ（平均値）「１００」との差分は「＋４０％」である。この値は、判定範囲の初期値に対しては、判定範囲外と判定される値である。しかしながら、この値は、補正された判定範囲内であるため、電力使用量比較部２５０は、タスクは正常に実行されていると判定する。
【０１２１】
サンプル区間３において、管理ノード１００が処理ノード３００「Ｎ１」に３つめのタスクを割り当てる。電文解析部２２０は、電力使用量比較部２５０に「追加負荷発生」を通知する。電力使用量比較部２５０は追加負荷カウンタを加算し、判定範囲を「統計データの値（平均値）−２０％〜＋６０％」に補正する。サンプル区間３では、３つめのタスクの実行に伴う電力使用量の増加により、処理ノード３００「Ｎ１」の電力使用量「１９０」が取得される。ここで、取得した電力使用量と統計データ（平均値）「１３０」との差分は「＋５９％」である。この値も、判定範囲の初期値に対しては、判定範囲外と判定される値である。しかしながら、この値は、補正された判定範囲内であるため、電力使用量比較部２５０は、タスクは正常に実行されていると判定する。
【０１２２】
サンプル区間４において、処理ノード３００「Ｎ１」が２つめ、及び、３つめのタスクの実行を終了する。電文解析部２２０は、電力使用量比較部２５０に「追加負荷終了」を通知する。電力使用量比較部２５０は追加負荷カウンタを減算し、判定範囲を「統計データの値（平均値）−２０％〜＋２０％」（初期値）に戻す。サンプル区間４では、２つのタスクの終了に伴う電力使用量の減少により、処理ノード３００「Ｎ１」の電力使用量「４５」が取得される。ここで、取得した電力使用量と統計データ（平均値）「５０」との差分は「−１０％」である。この値も、判定範囲内であるため、電力使用量比較部２５０は、タスクは正常に実行されていると判定する。
【０１２３】
サンプル区間５では、処理ノード３００「Ｎ１」の電力使用量「１５」が取得される。ここで、取得した電力使用量と統計データ「５０」との差分は「−７０％」である。この値は判定範囲外であるため、電力使用量比較部２５０は、タスクが異常であると判定する。
【０１２４】
本発明の第３の実施の形態によれば、処理ノード３００において、タスクが複数実行される場合でも、タスクが１つ実行された場合の統計データを用いて、処理ノードにおけるタスクの異常を正しく検出できる。
【０１２５】
その理由は、電力使用量比較部２５０が、処理ノード３００で実行されるタスクの数に応じて、タスクの異常を判定するための判定範囲を補正するためである。
【０１２６】
（第４の実施の形態）
次に、本発明の第４の実施の形態について説明する。
【０１２７】
本発明の第４の実施の形態においては、タスクが利用する他ノードの電力使用量を用いて、当該他ノードにおける異常を検出する点において、本発明の第２の実施形態と異なる。
【０１２８】
図１５は、本発明の第４の実施の形態における、分散処理システム１の構成を示すブロック図である。
【０１２９】
図１５を参照すると、分散処理システムは、さらに、他ノードとして、ストレージノード３１０「Ｓ１」、「Ｓ２」を含む。処理ノード３００とストレージノード３１０は、ネットワークスイッチ２００を介して接続される。また、ネットワークスイッチ２００は、ポートを介して、ストレージノード３１０にも電力を供給する。
【０１３０】
ネットワークスイッチ２００は、さらに、タスク利用ノード記憶部２６０を含む。タスク利用ノード記憶部２６０は、タスクが利用する他ノードを示すタスク利用ノード情報を記憶する。タスク利用ノード情報は、管理者等により、予め設定される。
【０１３１】
図１６は、本発明の第４の実施の形態における、タスク利用ノード情報の例を示す図である。タスク利用ノード情報では、各タスク識別子に、当該タスクが利用する他ノードの識別子が関連づけられている。
【０１３２】
図１６の例では、各タスク識別子に、当該タスクが利用する（例えば、当該タスクで処理されるデータが格納された）ストレージノード３１０の識別子が関連づけられている。
【０１３３】
ネットワークスイッチ２００の電文解析部２２０は、タスク開始電文、タスク終了電文における処理ノード３００、タスク、及び、他ノードを指定した「取得開始」、「取得終了」を、電力使用量取得部２３０へ指示する。
【０１３４】
電力使用量取得部２３０は、「取得開始」で指定された処理ノード３００と他ノードの電力使用量を取得する。電力使用量取得部２３０は、「取得開始」で指定された処理ノード３００とタスクの組に加えて、「取得開始」で指定されたタスクと他ノードの組に対して、電力使用量の統計データを生成、更新する。
【０１３５】
電力使用量統計記憶部２４０は、処理ノード３００の識別子とタスクの識別子の組に加えて、タスクの識別子と他ノードの識別子の組に関連づけて、電力使用量の統計データを記憶する。
【０１３６】
電力使用量比較部２５０は、新たに取得した、「取得開始」で指定された処理ノード３００の電力使用量と、電力使用量統計記憶部２４０に記憶されている、「取得開始」で指定された処理ノード３００とタスクの組に対する統計データの値（平均値）とを比較し、当該処理ノード３００におけるタスクの異常を検出する。また、電力使用量比較部２５０は、新たに取得した、「取得開始」で指定された他ノードの電力使用量と、電力使用量統計記憶部２４０に記憶されている、「取得開始」で指定されたタスクと他ノードの組に対する統計データの値（平均値）とを比較し、当該他ノードの異常を検出する。
【０１３７】
次に、本発明の第４の実施の形態の動作の具体例を説明する。
【０１３８】
ここでは、図１６のようなタスク利用ノード情報が、タスク利用ノード記憶部２６０に保存されていると仮定する。
【０１３９】
管理ノード１００は、処理ノード３００「Ｎ１」にタスク「Ｔ１」を割り当て、タスク開始電文を送信する。ネットワークスイッチ２００の電文解析部２２０は、図１６のタスク利用ノード情報を参照し、タスク「Ｔ１」が利用するストレージノード３１０の識別子「Ｓ１」、「Ｓ２」を取得する。電文解析部２２０は、電力使用量取得部２３０に、処理ノード３００「Ｎ１」、タスク「Ｔ１」、ストレージノード３１０「Ｓ１」、「Ｓ２」を指定した「取得開始」を指示する。電力使用量取得部２３０は、処理ノード３００「Ｎ１」、ストレージノード３１０「Ｓ１」、「Ｓ２」の電力使用量を取得する。
【０１４０】
図１７は、本発明の第４の実施の形態における、統計データの例を示す図である。
【０１４１】
電力使用量取得部２３０は、処理ノード３００「Ｎ１」とタスク「Ｔ１」の組、タスク「Ｔ１」とストレージノード３１０「Ｓ１」の組、及び、タスク「Ｔ１」とストレージノード３１０「Ｓ２」の組に対する統計データを、図１７のように生成する。
【０１４２】
管理ノード１００が、再度、処理ノード３００「Ｎ１」にタスク「Ｔ１」を割り当てた場合、ネットワークスイッチ２００の電力使用量比較部２５０は、処理ノード３００「Ｎ１」とタスク「Ｔ１」の組、タスク「Ｔ１」とストレージノード３１０「Ｓ１」の組、及び、タスク「Ｔ１」とストレージノード３１０「Ｓ２」の組の各々について、取得した電力使用量と図１７の統計データの値（平均値）とを比較する。
【０１４３】
図１８は、本発明の第４の実施の形態における、電力使用量の比較例を示す図である。
【０１４４】
例えば、図１８のサンプル区間４において、処理ノード３００「Ｎ１」、ストレージノード３１０「Ｓ１」、「Ｓ２」の電力使用量「８０」、「１５」、「９０」が取得されている。ここで、取得した処理ノード３００「Ｎ１」の電力使用量と統計データ（平均値）「１００」との差分は「−２０％」である。この値は、判定範囲内であるため、電力使用量比較部２５０は、処理ノード３００「Ｎ１」上のタスク「Ｔ１」は正常に実行されていると判定する。また、取得したストレージノード３１０「Ｓ２」の電力使用量と統計データ（平均値）「９０」との差分は「０％」である。この値も、判定範囲内であるため、電力使用量比較部２５０は、ストレージノード３１０「Ｓ２」は正常であると判定する。
【０１４５】
一方、取得したストレージノード３１０「Ｓ１」の電力使用量と統計データ（平均値）「５０」との差分は「−７０％」である。この値は、判定範囲外であるため、電力使用量比較部２５０は、ストレージノード３１０「Ｓ１」において異常が発生していると判定する。
【０１４６】
電力使用量比較部２５０は、管理ノード１００へ、ストレージノード３１０「Ｓ１」の異常を通知する。
【０１４７】
本発明の第４の実施の形態によれば、処理ノード３００におけるタスクの異常に加えて、当該タスクが利用する他ノードの異常も検出できる。
【０１４８】
その理由は、電力使用量取得部２３０が、タスクが利用する他ノードに対して統計データを生成、更新し、電力使用量比較部２５０が、タスクが利用する他ノードの電力使用量と、当該他ノードの統計データの値（平均値）とを比較するためである。
【０１４９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１５０】
例えば、本発明の第３の実施の形態で示した、タスクの数に応じた判定範囲の補正に、本発明の第４の実施形態で示した、他ノードの異常検出を組み合わせてもよい。
【符号の説明】
【０１５１】
１    分散処理システム
１００    管理ノード
１１０    タスク分散管理部
１２０    ノード管理部
２００    ネットワークスイッチ
２０１    電文監視装置
２０２    電力監視装置
２１０    電文解析設定記憶部
２２０    電文解析部
２３０    電力使用量取得部
２４０    電力使用量統計記憶部
２５０    電力使用量比較部
２６０    タスク利用ノード記憶部
３００    処理ノード
３１０    ストレージノード
【図１】
2015121963.tif 000003
【図２】
2015121963.tif 000004
【図３】
2015121963.tif 000005
【図４】
2015121963.tif 000006
【図５】
2015121963.tif 000007
【図６】
2015121963.tif 000008
【図７】
2015121963.tif 000009
【図８】
2015121963.tif 000010
【図９】
2015121963.tif 000011
【図１０】
2015121963.tif 000012
【図１１】
2015121963.tif 000013
【図１２】
2015121963.tif 000014
【図１３】
2015121963.tif 000015
【図１４】
2015121963.tif 000016
【図１５】
2015121963.tif 000017
【図１６】
2015121963.tif 000018
【図１７】
2015121963.tif 000019
【図１８】
2015121963.tif 000020