(57)【要約】【課題】集計処理を実行する情報処理装置を、各情報処理装置が動的に決定すること。【解決手段】図１の（＃３−１）で示すように、ノード＃３が、ノード＃２に、性能情報１１２＃３を送信する。ノード＃２は、ノード＃３の性能情報１１２＃３を受け付けた場合、図１の（＃２−１）で示すように、性能情報受信可能数と、性能情報１１２を受け付けた数とに基づいて、性能情報１１２＃３を集計する第１の集計処理１２１＃２が実行可能か否かを判断する。性能情報１１２＃３を集計する第１の集計処理１２１＃２が実行可能でないと判断した場合、ノード＃２は、図１の（＃２−２）で示すように「受信不可」を送信する。そして、ノード＃３は、「受信不可」をノード＃２から受け付けたことに応じて、図１の（＃３−２）で示すように、ノード＃２とは異なるノードに性能情報１１２＃３を送信する。【選択図】図１
2018165956.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置であって、
前記複数の情報処理装置のいずれかの第１の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第１の情報処理装置とは異なる第２の情報処理装置に、前記各情報処理装置の状態情報を送信する、
制御部を有することを特徴とする情報処理装置。
【請求項２】
前記各情報処理装置は、前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数を記憶しており、
前記制御部は、
前記複数の情報処理装置のいずれかの第３の情報処理装置から前記第３の情報処理装置の状態情報を受け付けたことに応じて、前記第３の情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記第３の情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記第３の情報処理装置に、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記状態情報には、前記各情報処理装置の負荷を示す負荷情報を含み、
前記制御部は、
前記各情報処理装置の状態情報を集計する集計処理の処理結果を記憶する情報処理装置から前記複数の情報処理装置の負荷の平均値を受信したことに応じて、前記複数の情報処理装置の負荷の平均値と前記各情報処理装置の負荷との差に基づいて、前記集計処理を実行可能な状態情報の数を算出し、
前記第３の情報処理装置から前記第３の情報処理装置の状態情報を受け付けた場合、算出した前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記各情報処理装置には、前記各情報処理装置を識別する番号が対応付けられており、
前記制御部は、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記第２の情報処理装置として前記各情報処理装置に対応付けられた番号の次の番号または前の番号が対応付けられた情報処理装置に、前記各情報処理装置の状態情報を送信する、
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムであって、
前記各情報処理装置は、
前記各情報処理装置の負荷に対応する前記各情報処理装置の状態情報を集計する集計処理を実行可能な状態情報の数を記憶し、
前記複数の情報処理装置のいずれかの第１の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記第１の情報処理装置は、
前記各情報処理装置から前記各情報処理装置の状態情報を受け付けたことに応じて、前記各情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記各情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記各情報処理装置に、前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信し、
前記各情報処理装置は、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第１の情報処理装置とは異なる第２の情報処理装置に、前記各情報処理装置の状態情報を送信する、
ことを特徴とする情報処理システム。
【請求項６】
複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置に、
前記複数の情報処理装置のいずれかの第１の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第１の情報処理装置とは異なる第２の情報処理装置に、前記各情報処理装置の状態情報を送信する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来、複数の情報処理装置から、１つのシステムを構築することがある。また、複数の情報処理装置の状態情報を収集、集計して、ある情報処理装置の記憶領域に格納することがある。
【０００３】
関連する先行技術として、例えば、状態情報を収集する収集装置を識別する収集装置情報に基づいて、複数の収集装置の負荷情報を取得し、負荷情報に基づいて収集装置を選択し、選択した収集装置へ監視装置を識別する監視装置情報を通知するものがある。また、複数のノード上に分散配置される複数のＤＢ（ＤａｔａＢａｓｅ）サーバにおいて、各ノードに関する負荷を監視し、目標より負荷が大きなノード上のＤＢサーバから、目標より負荷が小さなノード上のＤＢサーバへとコネクションを移動させ、負荷を均衡させる技術がある。外部ネットワーク、負荷管理装置、内部ネットワークなどから得られる情報から、複数のサーバ群の稼動状況が示された指標を算出し、算出した指標に基づいて、複数のサーバ群の状態を制御する技術がある。また、基本部分から要求を受け取り、サーバコンポーネントをクライアントまたはサーバのいずれで実行するかを決定し、サーバコンポーネントを取得するとともに、決定結果に従ってサーバコンポーネントをクライアントまたはサーバに引き渡す技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１９４８３５号公報
【特許文献２】国際公開第２０１２／７０２９２号
【特許文献３】特開２０１１−２１０２２５号公報
【特許文献４】特開２０００−０７６１７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、複数の情報処理装置の各情報処理装置の状態情報を集計する集計処理を負荷分散する際に、情報処理装置の数が増えるほど、集計処理を実行する情報処理装置を決定することが困難になる。例えば、集計処理を実行する情報処理装置を決定する指標として、各情報処理装置の負荷を参照する場合、各情報処理装置の負荷を示す情報は、ある情報処理装置が有する記憶領域に格納されている。従って、情報処理装置の数が増えるほど上述の記憶領域へのアクセスが増加し、ある情報処理装置の負荷が増大する。
【０００６】
１つの側面では、本発明は、集計処理を実行する情報処理装置を、各情報処理装置が動的に決定することができる情報処理装置、情報処理システム、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、情報処理装置、情報処理システム、および情報処理プログラムは、複数の情報処理装置で構築され、複数の情報処理装置の各情報処理装置で取得された各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる各情報処理装置が、複数の情報処理装置のいずれかの第１の情報処理装置に、各情報処理装置の状態情報を送信し、各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を第１の情報処理装置から受け付けたことに応じて、複数の情報処理装置のうち第１の情報処理装置とは異なる第２の情報処理装置に、各情報処理装置の状態情報を送信する。
【発明の効果】
【０００８】
一つの側面では、本発明は、集計処理を実行する情報処理装置を、各情報処理装置が動的に決定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかる情報処理システム１００の動作例を示す説明図である。
【図２】図２は、情報処理システム１００の利用例を示す説明図である。
【図３】図３は、ノード＃１のハードウェア構成例を示す説明図である。
【図４】図４は、情報処理システム１００の機能構成例を示す説明図である。
【図５】図５は、時系列ＤＢ１１０の記憶内容の一例を示す説明図である。
【図６】図６は、取得部４０１の処理手順を示すフローチャートである。
【図７】図７は、取得部４０１の処理の動作例を示す説明図（その１）である。
【図８】図８は、取得部４０１の処理の動作例を示す説明図（その２）である。
【図９】図９は、子集計部４０２の性能情報受信可能数更新処理手順を示すフローチャートである。
【図１０】図１０は、子集計部４０２の性能情報受信可能数更新処理の動作例を示す説明図である。
【図１１】図１１は、子集計部４０２の性能情報受信処理手順を示すフローチャートである。
【図１２】図１２は、子集計部４０２の性能情報受信処理の動作例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示の情報処理装置、情報処理システム、および情報処理プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかる情報処理システム１００の動作例を示す説明図である。情報処理システム１００は、ＳＤＳ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｓｔｏｒａｇｅ）と呼ばれる技術によって、複数の情報処理装置で構築されるシステムである。ここで、ＳＤＳが注目される理由として、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の普及により、様々な端末から測定情報が取得されることによりデータ量が増加しており、このようなデータの増加に柔軟に対応するためである。
【００１２】
情報処理装置は、例えば、サーバや、ストレージ装置といったコンピュータである。以下、情報処理装置を、「ノード」と呼称する。そして、情報処理システム１００には、複数のノードを１つのストレージ装置としてみたてる、分散アーキテクチャが適用できる。また、情報処理システム１００は、スケールアウトにより、性能を向上させることができる。
【００１３】
分散アーキテクチャでは、複数のノードの各ノードの状態情報を記憶する時系列ＤＢ（ＤａｔａＢａｓｅ）を利用した性能監視機能を有することができる。性能監視機能は、例えば、各ノードの状態情報の収集、蓄積、参照を行う。また、時系列ＤＢは、複数のノードのうちのある一つのノードが有する。時系列ＤＢを有するノードを、「代表ノード」と呼称する。代表ノードは、情報処理システム１００の運用中、基本的に変化しないが、例えば、代表ノードが故障した場合に、他のノードが代表ノードとなることがある。
【００１４】
各ノードの状態情報には、各ノードの性能情報や、各ノードの構成情報、各ノードの処理情報が含まれる。各ノードの性能情報は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率、ネットワーク利用率、ＩＯＰＳ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）、ディスク使用率である。各ノードの構成情報は、各ノードの物理リソースの構成や、各ノード上で動作する仮想マシンの構成を示す情報である。各ノードの処理情報は、例えば、各ノードのコピー処理等の進捗状況を示す情報である。各ノードの状態情報は、例えば、ＯＳが用意しているｓｔａｔコールや、ファイル参照により得ることができる。以下では、説明の簡略化のため、各ノードの状態情報が、各ノードの性能情報であるとして説明する。
【００１５】
ここで、実際のシステムでは、単位時間ごとに時系列ＤＢに格納される性能情報は、物理リソースと仮想リソースとを合わせて、数千〜数十万単位となることがある。このとき、時刻ごとの性能情報の合計値や平均値といった集計値、例えば、全ディスクの合計ＩＯＰＳ、平均ＩＯＰＳの情報は、参照の度に計算すると処理負荷と時間がかかるうえ、集計値が参照される頻度も比較的高い。
【００１６】
例えば、集計値に関して、代表ノードが、各ノードの性能情報を集計したうえで、時系列ＤＢに格納する方法が考えられる。従って、時系列ＤＢには、集計値の計算を行う集計処理の処理結果が記憶されることになる。しかしながら、該当の方法では、集計対象の性能情報を全て代表ノードに集め、代表ノードが集計処理を実行するため、代表ノードのＣＰＵまたはネットワークがボトルネックとなり、ディスク書き込みなどの通常業務に影響がでる可能性がある。
【００１７】
そこで、集計値の計算を行う集計処理を分散させて、複数のノードに負荷を分散させる方法が考えられる。しかしながら、この方法では、ノードの数が増えるほど、集計処理を実行するノードを決定することが困難になる。例えば、集計処理を実行するノードを決定する指標として、時系列ＤＢを参照する場合、ノードの数が増えるほど時系列ＤＢへのアクセスが増加し、代表ノードの負荷が増大する。
【００１８】
また、所定時間ごとにラウンドロビンで集計処理を実行するノードを変更することが考えられる。しかしながら、この方法では、負荷が低いノードが集計処理を実行するように決定されても、所定時間経過後には集計処理を実行するノードを変更することになるため、負荷が高いノードが集計処理を実行するように変更される場合がある。この場合、通常業務に影響がでる可能性がある。
【００１９】
そこで、本実施の形態では、各ノードが、あるノードに性能情報を送信して集計処理が実行不可であることを示す通知を受けた場合、あるノード以外の他のノードに性能情報を送信することについて説明する。
【００２０】
図１を用いて、情報処理システム１００の動作例について説明する。図１で示す情報処理システム１００は、複数のノードとして、ノード＃１、２、３、４、…で構築される。このように、各ノードには、各ノードを識別する番号が対応付けられてもよい。以下、ノードに対応付けられた番号を、単に、「ノードの番号」と称する。また、以下の説明において、「＃ｘ」が付与された符号は、ノード＃ｘに関することを示す。ｘは、ノードの番号を示し、自然数である。また、同種の要素を区別しない場合には、＃ｘが付与されない符号を使用することがある。また、図１では、太い矢印は、他のノードへの指示または処理を示し、通常の矢印は、性能情報または集計値の送信を示す。
【００２１】
図１で示すように、ノード＃１が時系列ＤＢ１１０を有するため、ノード＃１が代表ノードとなる。また、情報処理システム１００は、各ノードの性能情報１１２を集計する。ここで、性能情報１１２には、各ノードの負荷を示す負荷情報１１１が含まれてもよい。負荷情報１１１は、例えば、ＣＰＵ使用率やネットワーク使用率である。図１の例では、負荷情報１１１は、ＣＰＵ使用率であるとする。
【００２２】
図１の上部では、集計処理が、第０の集計処理１２０と、第１の集計処理１２１とに分散されている。そして、代表ノードとなるノード＃１が、第０の集計処理１２０を実行し、ノード＃２が、第１の集計処理１２１を実行する。図１では省略しているが、ノード＃４以降のいずれかのノードが、第１の集計処理１２１を実行する。
【００２３】
第１の集計処理１２１は、集計対象として、ノード＃１〜３の性能情報１１２＃１〜３を収集し、集計した集計値を、第０の集計処理１２０を実行するノード＃１に送信する。第０の集計処理１２０は、第１の集計処理１２１から送信された集計値を、さらに集計し、得られた集計値を、時系列ＤＢ１１０に格納する。図１では、ノード＃２のＣＰＵ使用率が高くなった場合を用いて説明する。なお、ノード＃１、＃３、＃４のＣＰＵ使用率は低であるとする。
【００２４】
図１の上部では、ノード＃１、＃２が、それぞれ性能情報１１２＃１、＃２をノード＃２に送信した後に、図１の（＃３−１）で示すように、ノード＃３が、複数のノードのうちのいずれかの第１のノードとして、ノード＃２に、性能情報１１２＃３を送信する。第２のノードについては、図１の下部で示す。また、第１のノードは、自ノードになってもよい。
【００２５】
ノード＃２は、複数のノードのうちのいずれかの第３のノードとしてノード＃３の性能情報１１２＃３を受け付ける。この場合、ノード＃２は、図１の（＃２−１）で示すように、第１の集計処理１２１＃２を実行可能な性能情報１１２の数と、性能情報１１２を受け付けた数とに基づいて、性能情報１１２＃３を集計する第１の集計処理１２１＃２が実行可能か否かを判断する。第１の集計処理１２１＃２を実行可能な性能情報１１２の数を、以下、「性能情報受信可能数」と称する。そして、性能情報受信可能数は、性能情報１１２を受け付けた際のノードの負荷に対応する値でもよい。例えば、各ノードは、自身の負荷ごとの性能情報受信可能数を記憶してもよい。例えば、各ノードは、ＣＰＵ使用率が１０［％］、２０［％］、…のそれぞれの性能情報受信可能数を記憶する表を有してもよい。
【００２６】
または、各ノードは、全ノードの負荷の平均値と、自身の負荷との差に基づいて、性能情報受信可能数を算出してもよい。全ノードの負荷の平均値について、例えば、代表ノードが定期的に、全ノードの負荷の平均値を各ノードに送信すればよい。
【００２７】
図１の上部の例では、ノード＃２の負荷が高く、性能情報受信可能数が２であり、性能情報１１２を受け付けた数が３であるとする。この場合、ノード＃２は、性能情報１１２＃３を集計する第１の集計処理１２１＃２が実行可能でないと判断する。
【００２８】
性能情報１１２＃３を集計する第１の集計処理１２１＃２が実行可能でないと判断した場合、図１の（＃２−２）で示すように、性能情報１１２＃３を集計する第１の集計処理１２１＃２が実行可能でないことを示す通知を送信する。以下、第１の集計処理１２１＃２が実行可能でないことを示す通知を、「受信不可」と称する。
【００２９】
そして、ノード＃３は、「受信不可」をノード＃２から受け付けたことに応じて、図１の（＃３−２）で示すように、複数のノードのうち第１のノードとなるノード＃２とは異なる第２のノードに、性能情報１１２＃３を送信する。第２のノードは、第１のノードと異なればどのノードでもよいが、第１のノードの番号の次の番号または前の番号のノードであることが好ましい。また、第２のノードが自ノードになってもよい。図１の下部の例では、ノード＃３は、自ノードとなるノード＃３に、性能情報１１２＃３を送信する。そして、ノード＃３は、性能情報１１２＃３を集計する第１の集計処理１２１＃３を実行し、処理結果となる集計値を、ノード＃１に送信する。
【００３０】
以上により、情報処理システム１００は、第１の集計処理１２１を実行するノードを各ノードが動的に変更することができる。従って、情報処理システム１００は、１つのノードに負荷が集中することを防ぐことができる。また、情報処理システム１００は、通常業務によって各ノードの負荷が増加または減少した場合、高負荷なノードに性能情報１１２の送信が集中することによる通常業務の影響を抑えることができる。
【００３１】
また、図１の（＃３−２）では、ノード＃３は、「受信不可」をノード＃２から受け付けたことに応じて、第２のノードに、性能情報１１２＃３を送信するが、これに限らない。例えば、ノード＃３は、ノード＃２と通信不可である場合にも、第２のノードに、性能情報１１２＃３を送信してもよい。これにより、情報処理システム１００は、災害等によるノードの減少時の影響を最小限に抑えることができる。次に、情報処理システム１００の利用例について、図２を用いて説明する。
【００３２】
図２は、情報処理システム１００の利用例を示す説明図である。図２に示すように、情報処理システム１００は、利用者端末２０１と、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク２０２と接続する。
【００３３】
利用者端末２０１は、情報処理システム１００を利用する利用者Ｕが操作するコンピュータである。利用者端末２０１は、例えば、ＰＣである。例えば、情報処理システム１００内の各ノードは、業務システムを運用しており、利用者Ｕは、利用者端末２０１を操作することにより、情報処理システム１００にアクセスすることにより、業務システムを利用し、業務を行う。
【００３４】
次に、情報処理システム１００に含まれるノード＃１のハードウェア構成例を、図３を用いて説明する。なお、ノード＃１以外の他のノードのハードウェアも、ノード＃１と同様のハードウェアを有するため、説明を省略する。
【００３５】
図３は、ノード＃１のハードウェア構成例を示す説明図である。図３において、ノード＃１は、ＣＰＵ３０１と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、ノード＃１は、ディスクドライブ３０４およびディスク３０５と、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）３０６と、を含む。また、ＣＰＵ３０１〜ディスクドライブ３０４、ＮＩＣ３０６はバス３０７によってそれぞれ接続される。
【００３６】
ＣＰＵ３０１は、ノード＃１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３７】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４が光ディスクドライブである場合、ディスク３０５には、光ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３８】
ＮＩＣ３０６は、ネットワーク２０２と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、ＮＩＣ３０６は、通信回線を通じてネットワーク２０２を介して他の装置に接続される。ＮＩＣ３０６には、例えば、ＬＡＮアダプタなどを採用することができる。
【００３９】
また、情報処理システム１００の管理者が、ノード＃１を直接操作する場合、ノード＃１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００４０】
図４は、情報処理システム１００の機能構成例を示す説明図である。各ノードは、制御部４００を有する。制御部４００は、取得部４０１と、子集計部４０２と、書き込み部４０４と、を含む。また、代表ノードの制御部４００は、さらに、集計部４０３を有する。制御部４００は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。また、各部の処理結果は、ＲＡＭ３０３や、ＣＰＵ３０１のレジスタ、ＣＰＵ３０１のキャッシュメモリ等に格納される。
【００４１】
代表ノードは、時系列ＤＢ１１０を有する。時系列ＤＢ１１０の記憶内容の一例は、図５で示す。また、代表ノード以外のノードは、子時系列ＤＢ４２１を有する。子時系列ＤＢ４２１には、自身のノードの性能情報１１２そのものが格納される。
【００４２】
取得部４０１は、一定時間間隔で、ｓｔａｔシステムコールやファイル参照により、ＣＰＵ使用率、ＩＯＰＳ、ディスク使用率といった性能情報１１２を取得する。そして、代表ノード以外の取得部４０１は、取得した性能情報１１２そのものを、書き込み部４０４に送信する。
【００４３】
また、取得部４０１は、複数のノードのいずれかの第１のノードに、取得した性能情報１１２を送信する。そして、取得部４０１は、「受信不可」を第１のノードから受け付けたことに応じて、複数のノードのうち第１のノードとは異なる第２のノードに、取得した性能情報１１２を送信する。ここで、第２のノードは、第１のノードの番号の次の番号または前の番号を有するノードであることが好ましい。
【００４４】
子集計部４０２は、各時刻の性能情報の一部の合計値や平均値を算出し、算出結果を、集計部４０３に送信する。具体的には、子集計部４０２は、集計処理実行部４１１と、処理結果送信部４１２と、算出部４１３と、判断部４１４と、送信部４１５とを有する。ここで、図４では、子集計部４０２＃３が、集計処理実行部４１１〜送信部４１５を有するように示したが、他の子集計部４０２も、集計処理実行部４１１〜送信部４１５を有する。
【００４５】
集計処理実行部４１１は、取得部４０１から送信された性能情報１１２を集計する。例えば、集計処理実行部４１１は、性能情報１１２の集計値として、合計値や平均値を算出する。集計処理実行部４１１は、図１に示した第１の集計処理１２１に相当する。また、集計部４０３は、図１に示した第０の集計処理１２０に相当する。
【００４６】
処理結果送信部４１２は、集計処理実行部４１１の処理結果を、集計部４０３に送信する。
【００４７】
算出部４１３は、性能情報受信可能数を算出する。具体的には、算出部４１３は、代表ノードから複数のノードの負荷の平均値を受け付ける。そして、算出部４１３は、複数のノードの負荷の平均値と、自ノードの負荷との差に基づいて、性能情報受信可能数を算出する。例えば、算出部４１３は、複数のノードのＣＰＵ使用率の平均値と、自ノードのＣＰＵ使用率との差を、１つの性能情報１１２の集計にかかるＣＰＵ使用率で除した値を、性能情報受信可能数として算出してもよい。より具体的な算出方法については、図６で示す。
【００４８】
判断部４１４について、判断部４１４は、複数のノードのいずれかの第３のノードから第３のノードの性能情報１１２を受け付けたとする。この場合、判断部４１４は、第３のノードの性能情報１１２を受け付けた際の性能情報受信可能数と、性能情報１１２を受け付けた数とに基づいて、第３のノードの性能情報１１２を集計する集計処理が実行可能か否かを判断する。ここで、第３のノードの性能情報１１２を受け付けた際の性能情報受信可能数は、算出部４１３によって算出した値でもよい。または、算出部４１３は、自ノードの負荷に応じた性能情報受信可能数を記憶する表を参照して、第３のノードの性能情報１１２を受け付けた際の自ノードの負荷に対応する性能情報受信可能数を取得してもよい。
【００４９】
送信部４１５は、第３のノードの性能情報１１２を集計する集計処理が実行可能でないと判断した場合、第３のノードに、「受信不可」を送信する。
【００５０】
集計部４０３は、子集計部４０２からの集計結果から、複数のノード全体における各時刻の性能情報１１２の合計値や、平均値を算出し、書き込み部４０４に集計結果を送信する。
【００５１】
代表ノードの書き込み部４０４は、集計部４０３からの集計値に時刻情報を対応付けて、時系列ＤＢ１１０に書き込む。また、代表ノード以外の書き込み部４０４は、各ノードの性能情報１１２に時刻情報を対応付けて、子時系列ＤＢ４２１に書き込む。
【００５２】
図５は、時系列ＤＢ１１０の記憶内容の一例を示す説明図である。図５に示す時系列ＤＢ１１０には、ＣＰＵ使用率に関する情報が格納されている。そして、図５に示す時系列ＤＢ１１０は、レコード５０１−１〜４を有する。
【００５３】
具体的には、図５に示す時系列ＤＢ１１０は、時間と、ＣＰＵ平均と、各ＣＰＵ使用率というフィールドを含む。ここで、図５では、各ＣＰＵ使用率フィールドは、表示の簡略化のため、各ノードのＣＰＵの符号だけを表示する。時間フィールドには、ＣＰＵ使用率を計測した時間が格納される。ＣＰＵ平均フィールドには、情報処理システム１００内の全てのＣＰＵ使用率の平均値が格納される。各ＣＰＵ使用率フィールドには、各ＣＰＵの使用率が格納される。
【００５４】
また、時系列ＤＢ１１０には、ネットワークに関する情報が格納されてもよい。ネットワークに関する情報が格納されている場合、時系列ＤＢ１１０は、時間と、ＮＩＣ平均と、各ＮＩＣの利用率というフィールドを含む。時間フィールドには、ネットワーク利用率を計測した時間が格納される。ＮＩＣ平均フィールドには、情報処理システム１００内の全てのＮＩＣの利用率の平均値が格納される。各ＮＩＣの利用率フィールドには、各ＮＩＣの利用率が格納される。
【００５５】
（取得部４０１の処理について）
次に、取得部４０１が行う処理について、図６〜図８を用いて説明する。
【００５６】
図６は、取得部４０１の処理手順を示すフローチャートである。取得部４０１は、性能情報送信先ノード＃ｎを自ノードの番号に設定する（ステップＳ６０１）。次に、取得部４０１は、自ノードの性能情報を取得し、ノード＃ｎの子集計部４０２に性能情報を送信する（ステップＳ６０２）。
【００５７】
そして、取得部４０１は、ノード＃ｎの子集計部４０２と通信不可、またはノード＃ｎの子集計部４０２の応答が「受信不可」か否かを判断する（ステップＳ６０３）。ノード＃ｎの子集計部４０２と通信不可、またはノード＃ｎの子集計部４０２の応答が「受信不可」である場合（ステップＳ６０３：Ｙｅｓ）、取得部４０１は、性能情報送信先ノード＃ｎを、隣のノードへ変更する（ステップＳ６０４）。具体的には、取得部４０１は、下記（１）式を実行することにより、性能情報送信先ノード＃ｎを、隣のノードへ変更する。
【００５８】
ｎ＝（ｎ  ｍｏｄ  情報処理システム１００のノード数）＋１  …（１）
【００５９】
ここで、ｍｏｄは、割り算の余りを取得する計算であることを示す。例えば、情報処理システム１００の数が６であり、ｎ＝６である場合、取得部４０１は、（１）式を用いて、下記のようにｎを更新する。
【００６０】
ｎ＝（６  ｍｏｄ  ６）＋１＝０＋１＝１
【００６１】
一方、ノード＃ｎの子集計部４０２と通信不可でなく、かつ、ノード＃ｎの子集計部４０２の応答が「受信不可」でない場合（ステップＳ６０３：Ｎｏ）、または、ステップＳ６０４の処理終了後、取得部４０１は、利用者端末２０１から性能情報の取得終了を受け付けたか否かを判断する（ステップＳ６０５）。利用者端末２０１から性能情報の取得終了を受け付けていない場合（ステップＳ６０５：Ｎｏ）、取得部４０１は、次の時刻の性能情報について、ステップＳ６０２の処理に移行する。一方、利用者端末２０１から性能情報の取得終了を受け付けた場合（ステップＳ６０５：Ｙｅｓ）、取得部４０１は、一連の処理を終了する。
【００６２】
次に、図６で示した取得部４０１の処理の具体的な動作例を、図７、図８を用いて説明する。
【００６３】
図７は、取得部４０１の処理の動作例を示す説明図（その１）である。また、図８は、取得部４０１の処理の動作例を示す説明図（その２）である。図７と図８とでは、図６で示した取得部４０１の処理を、取得部４０１＃２が実行する例を示す。また、図７と図８とでは、処理主体となる取得部４０１＃２や、処理対象となる機能部やデータを黒の塗りつぶしで、かつ、文字を白として表示する。
【００６４】
図７の上部は、取得部４０１＃２がステップＳ６０１の処理を実行する際の情報処理システム１００の状態を示す。取得部４０１＃２は、性能情報送信先ノード＃ｎを自ノードの番号ｎを、自ノードの番号２に設定する。図７の下部は、取得部４０１＃２がステップＳ６０２の処理を実行する際の情報処理システム１００の状態を示す。取得部４０１＃２は、性能情報１１２＃２を取得し、設定されている性能情報送信先、この場合ではノード＃２の子集計部４０２＃２に、取得した性能情報を送信する。
【００６５】
図８の上部は、ノード＃ｎの子集計部に通信不可、またはノード＃ｎの子集計部の応答が「受信不可」となり、取得部４０１＃２がステップＳ６０４の処理を実行する際の情報処理システム１００の状態を示す。ステップＳ６０４の処理が実行されるときとは、送信先の子集計部４０２が負荷状況などの理由で性能情報を受信できないとなった場合の処理である。従って、ステップＳ６０４の処理は、送信先の子集計部４０２の負荷が高い場合、隣のノードの子集計部４０２へ性能情報送信先を移すという処理を意味する。具体的には、取得部４０１＃２は、下記のように（１）式を実行する。
【００６６】
ｎ＝（２  ｍｏｄ  ６）＋１＝３
【００６７】
上述したように、ｎ＝３が得られたため、取得部４０１＃２は、ｎを３に更新する。
【００６８】
図８の下部は、取得部４０１＃２がステップＳ６０４の処理を実行し、ステップＳ６０５：Ｎｏとなり、取得部４０１＃２が再びステップＳ６０２の処理を実行する際の情報処理システム１００の状態を示す。取得部４０１＃２は、性能情報１１２＃２を取得し、設定されている性能情報送信先、この場合ではノード＃３の子集計部４０２＃３に、取得した性能情報を送信する。
【００６９】
（子集計部４０２の処理について）
子集計部４０２は、性能情報受信可能数更新処理と、性能情報受信処理とを実行する。性能情報受信可能数更新処理について、図９、図１０を用いて説明し、性能情報受信処理について、図１１、図１２を用いて説明する。
【００７０】
図９は、子集計部４０２の性能情報受信可能数更新処理手順を示すフローチャートである。子集計部４０２は、単位時間が経過したか否かを判断する（ステップＳ９０１）。単位時間は、どのような時間間隔でもよく、例えば、１分間である。単位時間が経過していない場合（ステップＳ９０１：Ｎｏ）、ステップＳ９０１の処理をもう一度実行する。
【００７１】
一方、単位時間が経過した場合（ステップＳ９０１：Ｙｅｓ）、子集計部４０２は、集計部４０３＃１から全ノードの負荷平均を受信する（ステップＳ９０２）。全ノードの負荷平均は、情報処理システム１００内の全ノードのＣＰＵ使用率の平均値でもよいし、情報処理システム１００内の全ノードのネットワーク利用率でもよい。また、集計部４０３＃１は、全ノードに対して定期的に、全ノードの負荷平均を送信する。
【００７２】
次に、子集計部４０２は、性能情報を受信可能なノードの最大数、すなわち性能情報受信可能数ｎ＿ｍａｘを算出する（ステップＳ９０３）。具体的には、子集計部４０２は、下記（２）式を実行することにより、ｎ＿ｍａｘを算出する。
【００７３】
ｎ＿ｍａｘ＝ｆｌｏｏｒ（（ａｌｌ−ｓｅｌｆ−ｍａｒｇｉｎ）／ｏｆｆｓｅｔ）  …（２）
【００７４】
ここで、ｎ＿ｍａｘの初期値は、例えば、正の無限大である。また、ｆｌｏｏｒ（）は、引数の数値を、引数より小さいか等しい整数のうち最大の値を返す関数である。また、ａｌｌは、全ノードの負荷平均である。ｓｅｌｆは、自ノードの負荷平均である。また、ｍａｒｇｉｎは、１ノードの性能情報収集に用いると予測される負荷である。また、ｏｆｆｓｅｔは、負荷目標幅と平均値との差である。そして、ａｌｌは、ステップＳ９０２の処理で得られる値であり、ｓｅｌｆは、子時系列ＤＢ４２１から得られる値である。ｍａｒｇｉｎは、例えば、事前に計測した結果、１ノードの性能情報収集に用いたＣＰＵ使用率を代入してもよいし、情報処理システム１００の管理者等によって予め決められた値でもよい。ｏｆｆｓｅｔは、例えば、情報処理システム１００の管理者等によって予め決められた値である。
【００７５】
そして、子集計部４０２は、利用者端末２０１から性能情報の取得終了を受け付けたか否かを判断する（ステップＳ９０４）。利用者端末２０１から性能情報の取得終了を受け付けていない場合（ステップＳ９０４：Ｎｏ）、子集計部４０２は、ステップＳ９０１の処理に移行する。一方、利用者端末２０１から性能情報の取得終了を受け付けた場合（ステップＳ９０４：Ｙｅｓ）、子集計部４０２は、性能情報受信可能数更新処理を終了する。
【００７６】
図１０は、子集計部４０２の性能情報受信可能数更新処理の動作例を示す説明図である。図１０では、図９で示した性能情報受信可能数更新処理の動作について説明する。図１０では、負荷平均として、ＣＰＵ使用率の平均値を用いるとする。また、図１０では、子集計部４０２＃２が性能情報受信可能数更新処理を実行する例を用いて説明する。
【００７７】
図１０の上部は、子集計部４０２がステップＳ９０２の処理を実行する際の情報処理システム１００の状態を示す。集計部４０３＃１は、単位時間範囲の全ＣＰＵ使用率平均値を算出し、算出した全ＣＰＵ使用率平均値を全ての子集計部４０２に送信し、子集計部４０２は、全ＣＰＵ使用率平均値を受信する。例えば、集計部４０３＃１は、全ＣＰＵ使用率平均値を５０と算出し、５０を子集計部４０２＃１〜６に送信する。そして、子集計部４０２＃１〜６は、５０を受信する。
【００７８】
図１０で示す表１００１は、子集計部４０２＃２によるステップＳ９０２の処理実行後における（２）式の引数と戻り値との一覧を示す。表１００１が示すように、５０を受信することにより、（２）式の引数の１つであるａｌｌの値が決定する。
【００７９】
図１０の下部は、子集計部４０２がステップＳ９０３の処理を実行する際の情報処理システム１００の状態を示す。子集計部４０２＃２は、子時系列ＤＢ４２１から、単位時間範囲の自身のＣＰＵ使用率平均値を算出し、（２）式の引数の１つであるｓｅｌｆの値を得る。そして、子集計部４０２＃２は、（２）式を実行し、ｎ＿ｍａｘの値を得る。例えば、子集計部４０２＃２は、自身のＣＰＵ使用率平均値を１５と算出する。
【００８０】
図１０で示す表１００２は、子集計部４０２＃２によるステップＳ９０３の処理実行後における（２）式の引数と戻り値との一覧を示す。表１００２が示すように、１５を算出することにより、（２）式の引数の１つであるｓｅｌｆの値が決定し、（２）式により、下記のようにｎ＿ｍａｘを算出する。
【００８１】
ｎ＿ｍａｘ＝ｆｌｏｏｒ（（ａｌｌ−ｓｅｌｆ−ｍａｒｇｉｎ）／ｏｆｆｓｅｔ）
⇔ｎ＿ｍａｘ＝ｆｌｏｏｒ（（５０−１５−１０）／８）＝ｆｌｏｏｒ（３．１２５）＝３
【００８２】
図１１は、子集計部４０２の性能情報受信処理手順を示すフローチャートである。子集計部４０２は、ノード＃ｎの取得部４０１から時刻ｔの性能情報を受信する（ステップＳ１１０１）。次に、子集計部４０２は、時刻ｔが初期時刻、または１つ前の時刻の性能情報の集計済みか否かを判断する（ステップＳ１１０２）。
【００８３】
時刻ｔが初期時刻でなく、かつ、１つ前の時刻の性能情報の集計済みでない場合（ステップＳ１１０２：Ｎｏ）、子集計部４０２は、一つ前の時刻（ｔ−１）の性能情報を集計し、集計した性能情報を集計部４０３＃１へ送信する（ステップＳ１１０３）。ステップＳ１１０３の処理として、具体的には、子集計部４０２は、Ａｇｇｒｅｇａｔｅｄ（ｔ−１）＝ｔｒｕｅとする。ここで、Ａｇｇｒｅｇａｔｅｄ（ｔ）は、時刻ｔの性能情報収集済みフラグである。Ａｇｇｒｅｇａｔｅｄ（ｔ）の初期値は、ｆａｌｓｅである。
【００８４】
時刻ｔが初期時刻である、または１つ前の時刻の性能情報の集計済みである場合（ステップＳ１１０２：Ｙｅｓ）、または、ステップＳ１１０３の処理終了後、子集計部４０２は、性能情報受信数を更新する（ステップＳ１１０４）。ステップＳ１１０４の処理として、具体的には、子集計部４０２は、ｒｅｃｅｉｖｅｄ（ｔ）＝ｒｅｃｅｉｖｅｄ（ｔ）＋１を行う。ここで、ｒｅｃｅｉｖｅｄ（ｔ）は、時刻ｔの性能情報を受信した数である。ｒｅｃｅｉｖｅｄ（ｔ）の初期値は、０である。
【００８５】
次に、子集計部４０２は、ノード減設などで将来性能情報が受信できない状況になる、または受信数が性能情報受信可能数を超えるか否かを判断する（ステップＳ１１０５）。ステップＳ１１０５の処理として、子集計部４０２は、例えば、利用者がノードの保守を行うため、ノード減設の予約を行うコマンドを利用者端末２０１から受け付けた場合に、将来性能情報が受信できない状況になると判断する。また、子集計部４０２は、受信数が性能情報受信可能数を超えるかについては、（ｒｅｃｅｉｖｅｄ（ｔ）＞ｎ＿ｍａｘ）となった場合、受信数が性能情報受信可能数を超えたと判断する。
【００８６】
ノード減設などで将来性能情報が受信できない状況になる、または受信数が性能情報受信可能数を超える場合（ステップＳ１１０５：Ｙｅｓ）、子集計部４０２は、ノード＃ｎの取得部に「受信不可」を通知する（ステップＳ１１０６）。
【００８７】
ノード減設などで将来性能情報が受信できない状況ではない、かつ受信数が性能情報受信可能数以下である場合（ステップＳ１１０５：Ｎｏ）、または、ステップＳ１１０６の処理終了後、子集計部４０２は、利用者端末２０１から性能情報の取得終了を受け付けたか否かを判断する（ステップＳ１１０７）。利用者端末２０１から性能情報の取得終了を受け付けていない場合（ステップＳ１１０７：Ｎｏ）、子集計部４０２は、ステップＳ１１０１の処理に移行する。一方、利用者端末２０１から性能情報の取得終了を受け付けた場合（ステップＳ１１０７：Ｙｅｓ）、子集計部４０２は、性能情報受信処理を終了する。
【００８８】
図１２は、子集計部４０２の性能情報受信処理の動作例を示す説明図である。図１２では、処理主体となる子集計部４０２＃２や、処理対象となる機能部を黒の塗りつぶしで、かつ、文字を白として表示する。また、図１２では、図１２の上部で示すように、取得部４０１＃１、＃２が、子集計部４０２＃２に性能情報を送信するとする。
【００８９】
図１２の中部では、子集計部４０２＃２のｎ＿ｍａｘが２であり、子集計部４０２＃２が、取得部４０１＃１、２から、ある時刻ｔにおける性能情報を受信した状態を示す。この場合、ステップＳ１１０５の処理において、ｒｅｃｅｉｖｅｄ（ｔ）＝２≦２となるため、子集計部４０２＃２は、ステップＳ１１０５：Ｎｏと判断する。そして、子集計部４０２＃２は、ステップＳ１１０３において、時刻ｔの性能情報を集計し、集計した性能情報を集計部４０３＃１に送信する。
【００９０】
図１２の下部では、子集計部４０２＃２の負荷が上昇した結果、子集計部４０２＃２のｎ＿ｍａｘが１となり、子集計部４０２＃２が、取得部４０１＃１から時刻ｔ＋１における性能情報を受信した後、子集計部４０２＃２から性能情報を受信した状態を示す。この場合、ステップＳ１１０５の処理において、ｒｅｃｅｉｖｅｄ（ｔ）＝２＞１となるため、子集計部４０２＃２は、ステップＳ１１０５：Ｙｅｓと判断する。そして、子集計部４０２＃２は、ステップＳ１１０６において、ノード＃２の取得部４０１＃２に「受信不可」を通知する。
【００９１】
以上説明したように、本実施の形態における各ノードは、第１のノードに性能情報１１２を送信して「受信不可」を受け付けた場合、第１のノード以外の第２のノードに性能情報１１２を送信する。これにより、各ノードは、子集計部４０２を実行するノードを、各ノードが動的に変更することができる。
【００９２】
また、本実施の形態における各ノードは、第３のノードから性能情報１１２を受け付けたことに応じて、性能情報受信可能数と、性能情報を受け付けた数とに基づいて、第３のノードに「受信不可」を送信するか判断してもよい。これにより、各ノードの負荷が高い場合には、各ノードは、第３のノードの性能情報１１２の集計を行わなくてよくなるため、負荷が高いときにこれ以上負荷が高くなることを抑制することができる。
【００９３】
また、本実施の形態における各ノードは、全ノードの負荷の平均値と、自身のノードの負荷の平均値との差に基づいて、性能情報受信可能数を算出してもよい。これにより、情報処理システム１００内で負荷の低いノードに、性能情報１１２の集計をさせることができるため、各ノードに均等になるような負荷分散を行うことができる。
【００９４】
また、本実施の形態における各ノードは、第１のノードから「受信不可」を受け付けた場合、第２のノードとして、第１のノードの番号の次の番号または前の番号のノードに、性能情報１１２を送信してもよい。これにより、各ノードは、複数のノードのうち性能情報１１２を送信する機会がないノードがないようにすることができる。具体的には、（１）式では、１を加算しているが、情報処理システム１００のノード数と約数を持つ値、言い換えれば、互いに素とならない数を加算すると、複数のノードのうち性能情報１１２を送信することがないノードが発生してしまう。また、情報処理システム１００のノード数と互いに素となる１以外の数を加算する場合は、情報処理システム１００のノード数が変化しなければ、複数のノードのうち性能情報１１２を送信する機会がないノードがないようにできる。しかしながら、情報処理システム１００のノード数は、増設、減設によって変化する値であり、複数のノードのうち性能情報１１２を送信する機会がないノードが発生する可能性がある。従って、第２のノードとして第１のノードの番号の次の番号または前の番号のノードに性能情報１１２を送信することにより、各ノードは、複数のノードのうち性能情報１１２を送信する機会がないノードがないようにすることができる。
【００９５】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置であって、
前記複数の情報処理装置のいずれかの第１の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第１の情報処理装置とは異なる第２の情報処理装置に、前記各情報処理装置の状態情報を送信する、
制御部を有することを特徴とする情報処理装置。
【００９８】
（付記２）前記各情報処理装置は、前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数を記憶しており、
前記制御部は、
前記複数の情報処理装置のいずれかの第３の情報処理装置から前記第３の情報処理装置の状態情報を受け付けたことに応じて、前記第３の情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記第３の情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記第３の情報処理装置に、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信する、
ことを特徴とする付記１に記載の情報処理装置。
【００９９】
（付記３）前記状態情報には、前記各情報処理装置の負荷を示す負荷情報を含み、
前記制御部は、
前記各情報処理装置の状態情報を集計する集計処理の処理結果を記憶する情報処理装置から前記複数の情報処理装置の負荷の平均値を受信したことに応じて、前記複数の情報処理装置の負荷の平均値と前記各情報処理装置の負荷との差に基づいて、前記集計処理を実行可能な状態情報の数を算出し、
前記第３の情報処理装置から前記第３の情報処理装置の状態情報を受け付けた場合、算出した前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断する、
ことを特徴とする付記２に記載の情報処理装置。
【０１００】
（付記４）前記各情報処理装置には、前記各情報処理装置を識別する番号が対応付けられており、
前記制御部は、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記第２の情報処理装置として前記各情報処理装置に対応付けられた番号の次の番号または前の番号が対応付けられた情報処理装置に、前記各情報処理装置の状態情報を送信する、
ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【０１０１】
（付記５）複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムであって、
前記各情報処理装置は、
前記各情報処理装置の負荷に対応する前記各情報処理装置の状態情報を集計する集計処理を実行可能な状態情報の数を記憶し、
前記複数の情報処理装置のいずれかの第１の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記第１の情報処理装置は、
前記各情報処理装置から前記各情報処理装置の状態情報を受け付けたことに応じて、前記各情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記各情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記各情報処理装置に、前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信し、
前記各情報処理装置は、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第１の情報処理装置とは異なる第２の情報処理装置に、前記各情報処理装置の状態情報を送信する、
ことを特徴とする情報処理システム。
【０１０２】
（付記６）前記状態情報には、前記各情報処理装置の負荷を示す負荷情報を含み、
前記第１の情報処理装置は、
前記各情報処理装置の状態情報を集計する集計処理の処理結果を記憶する情報処理装置から前記複数の情報処理装置の負荷の平均値を受信したことに応じて、前記複数の情報処理装置の負荷の平均値と前記各情報処理装置の負荷との差に基づいて、前記集計処理を実行可能な状態情報の数を算出し、
前記各情報処理装置から前記各情報処理装置の状態情報を受け付けた場合、算出した前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記各情報処理装置の状態情報を集計可能か否かを判断する、
ことを特徴とする付記５に記載の情報処理システム。
【０１０３】
（付記７）複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置に、
前記複数の情報処理装置のいずれかの第１の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第１の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第１の情報処理装置とは異なる第２の情報処理装置に、前記各情報処理装置の状態情報を送信する、
処理を実行させることを特徴とする情報処理プログラム。
【０１０４】
（付記８）前記各情報処理装置は、前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数を記憶しており、
前記各情報処理装置に、
前記複数の情報処理装置のいずれかの第３の情報処理装置から前記第３の情報処理装置の状態情報を受け付けたことに応じて、前記第３の情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記第３の情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記第３の情報処理装置に、前記第３の情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信する、
処理を実行させることを特徴とする付記７に記載の情報処理プログラム。
【符号の説明】
【０１０５】
＃１〜＃６  ノード
１００  情報処理システム
１１０  時系列ＤＢ
１１１  負荷情報
１１２  性能情報
１２０、１２１  集計処理
４００  制御部
４０１  取得部
４０２  子集計部
４０３  集計部
４１１  集計処理実行部
４１２  処理結果送信部
４１３  算出部
４１４  判断部
４１５  送信部
【図１】
2018165956.tif 000003
【図２】
2018165956.tif 000004
【図３】
2018165956.tif 000005
【図４】
2018165956.tif 000006
【図５】
2018165956.tif 000007
【図６】
2018165956.tif 000008
【図７】
2018165956.tif 000009
【図８】
2018165956.tif 000010
【図９】
2018165956.tif 000011
【図１０】
2018165956.tif 000012
【図１１】
2018165956.tif 000013
【図１２】
2018165956.tif 000014