JP6825323B2 - 情報処理装置、情報処理システム、および状態情報収集プログラム - Google Patents

情報処理装置、情報処理システム、および状態情報収集プログラム Download PDF

Info

Publication number
JP6825323B2
JP6825323B2 JP2016221968A JP2016221968A JP6825323B2 JP 6825323 B2 JP6825323 B2 JP 6825323B2 JP 2016221968 A JP2016221968 A JP 2016221968A JP 2016221968 A JP2016221968 A JP 2016221968A JP 6825323 B2 JP6825323 B2 JP 6825323B2
Authority
JP
Japan
Prior art keywords
information processing
processing device
information
aggregation
node
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.)
Active
Application number
JP2016221968A
Other languages
English (en)
Other versions
JP2018081392A (ja
Inventor
篤史 田代
篤史 田代
真一 亀山
真一 亀山
友市 高川
友市 高川
文彦 河野
文彦 河野
前田 実
実 前田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016221968A priority Critical patent/JP6825323B2/ja
Priority to US15/807,731 priority patent/US10379902B2/en
Priority to CN201711104809.9A priority patent/CN108073456B/zh
Publication of JP2018081392A publication Critical patent/JP2018081392A/ja
Application granted granted Critical
Publication of JP6825323B2 publication Critical patent/JP6825323B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、情報処理装置、情報処理システム、および状態情報収集プログラムに関する。
従来、複数の情報処理装置から、1つのシステムを構築することがある。また、複数の情報処理装置の状態情報を収集、集計して、ある情報処理装置の記憶領域に格納することがある。関連する先行技術として、例えば、分散サーバに、センターサーバの稼働状態の情報を取得し、クライアントとなる多数のPC(Personal Computer)の各PCの処理要求に対し、センターサーバが負荷超過の状態になっていれば直ちにその旨を各PCへ回答するものがある。また、サーバ管理装置が、仮想サーバ群を稼働する物理サーバ群を管理し、物理サーバ群に配置された複数の仮想サーバを含んでなるクラスタシステムを運用する際に、仮想サーバ群の負荷状態により仮想サーバの配置状態を管理する技術がある。また、情報処理装置を制御する制御装置が、各情報処理装置の負荷を収集し、いずれかの負荷が第1の閾値を超えた頻度が第1の比率を超えた場合、第1の比率を超えた情報処理部上で動作する仮想マシンを終了させる技術がある。
特開平9−269925号公報 特開2011−90594号公報 特開2015−210576号公報
しかしながら、従来技術によれば、情報処理装置の数が増えるほど、複数の情報処理装置の各情報処理装置の状態情報を集計する集計処理の負荷分散の判断にかかる負荷が増大する。具体的には、負荷分散を行う指標として、各情報処理装置の負荷を参照することになるが、各情報処理装置の負荷を示す情報は、ある情報処理装置の記憶領域に格納されているため、ある情報処理装置にかかる負荷が増大してしまう。
1つの側面では、本発明は、複数の情報処理装置の各情報処理装置の状態情報を集計する集計処理の負荷分散の判断にかかる負荷を抑制することができる情報処理装置、情報処理システム、および状態情報収集プログラムを提供することを目的とする。
1つの実施態様では、情報処理装置、情報処理システム、および状態情報収集プログラムは、複数の情報処理装置で構築され、複数の情報処理装置の各情報処理装置で取得された各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムに含まれる、状態情報を収集する情報処理装置であって、情報処理装置の負荷と、情報処理装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、第1の集計処理を分散させると判断した場合、集計対象の情報処理装置群のうちの情報処理装置を除く2以上の情報処理装置の各情報処理装置に、集計対象の情報処理装置群を各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を情報処理装置に送信する指示を送信する。
一つの側面では、本発明は、複数の情報処理装置の各情報処理装置の状態情報を集計する集計処理の負荷分散の判断にかかる負荷を抑制することが可能となる。
図1は、本実施の形態にかかる情報処理システム100の動作例を示す説明図である。 図2は、情報処理システム100の利用例を示す説明図である。 図3は、ノード#1のハードウェア構成例を示す説明図である。 図4は、情報処理システム100の機能構成例を示す説明図である。 図5は、情報処理システム100の初期状態における性能情報112の収集例を示す説明図である。 図6は、ノード#1の負荷が増加した場合の一例を示す説明図である。 図7は、時系列DB110の記憶内容の他の例を示す説明図である。 図8は、集計部403−Bを作成した後の性能情報112の収集例を示す説明図である。 図9は、ノード#3の負荷が増加した場合の一例を示す説明図である。 図10は、集計部403−Cを作成した後の性能情報112の収集例を示す説明図である。 図11は、ノード#3の負荷が減少した場合の一例を示す説明図である。 図12は、ノード#3の負荷が大幅に増加した場合の一例を示す説明図である。 図13は、子集計部における性能情報収集処理手順の一例を示すフローチャート(その1)である。 図14は、子集計部における性能情報収集処理手順の一例を示すフローチャート(その2)である。 図15は、代表ノードの親集計部における性能情報収集処理手順の一例を示すフローチャートである。 図16は、親集計部における担当変更依頼受け付け時処理手順の一例を示すフローチャートである。 図17は、親集計部における消滅依頼受け付け時処理手順の一例を示すフローチャートである。 図18は、代表ノードにおけるノード増減設時処理手順の一例を示すフローチャートである。
以下に図面を参照して、開示の情報処理装置、情報処理システム、および状態情報収集プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかる情報処理システム100の動作例を示す説明図である。情報処理システム100は、SDS(Software Defined Storage)と呼ばれる技術によって、複数の情報処理装置で構築されるシステムである。情報処理装置は、例えば、サーバや、ストレージ装置といったコンピュータである。以下、情報処理装置を、「ノード」と呼称する。例えば、複数のノードは、あるDC(Data Center)内にある。そして、情報処理システム100には、複数のノードを1つのストレージ装置としてみたてる、分散アーキテクチャが適用できる。また、情報処理システム100は、スケールアウトにより、性能を向上させることができる。
分散アーキテクチャでは、複数のノードの各ノードの状態情報を記憶する時系列DB(DataBase)を利用した性能監視機能を有することができる。性能監視機能は、例えば、各ノードの状態情報の収集、蓄積、参照を行う。また、時系列DBは、複数のノードのうちのある一つのノードが有する。時系列DBを有するノードを、「代表ノード」と呼称する。代表ノードは、情報処理システム100の運用中、基本的に変化しないが、例えば、代表ノードが故障した場合に、他のノードが代表ノードとなることがある。
各ノードの状態情報には、各ノードの性能情報や、各ノードの構成情報、各ノードの処理情報が含まれる。各ノードの性能情報は、例えば、CPU(Central Processing Unit)使用率、ネットワーク利用率、IOPS(Input/Output Per Second)、ディスク使用率である。各ノードの構成情報は、各ノードの物理リソースの構成や、各ノード上で動作する仮想マシンの構成を示す情報である。各ノードの処理情報は、例えば、各ノードのコピー処理等の進捗状況を示す情報である。各ノードの状態情報は、例えば、OSが用意しているstatコールや、ファイル参照により得ることができる。以下では、説明の簡略化のため、各ノードの状態情報が、各ノードの性能情報であるとして説明する。
ここで、実際のシステムでは、単位時間ごとに時系列DBに格納される性能情報は、物理リソースと仮想リソースとを合わせて、数千〜数十万単位となることがある。このとき、時刻ごとの性能情報の合計や平均といった集計値、例えば、全ディスクの合計IOPS、平均IOPSの情報は、参照の度に計算すると処理負荷と時間がかかる、また、集計値が参照される頻度も比較的高い。
例えば、集計値に関して、代表ノードが、各ノードの性能情報を集計したうえで、時系列DBに格納する方法が考えられる。しかしながら、該当の方法では、集計対象の性能情報を全て代表ノードに集め、代表ノードが集計値の計算を行う集計処理を実行するため、代表ノードのCPUまたはネットワークがボトルネックとなり、ディスク書き込みなどの通常業務に影響がでる可能性がある。
そこで、集計値の計算を行う集計処理を分散させて、複数のノードに負荷を分散させることが考えられる。しかしながら、該当の方法では、ノードの数が増えるほど、負荷分散の判断にかかる負荷が増大する。具体的には、動的に負荷分散を行う指標として、各ノードのCPU負荷やネットワーク負荷を参照することになるが、各ノードのCPU負荷やネットワーク負荷という情報は、時系列DBに保持されている。従って、時系列DBを有する代表ノードの負荷や、負荷分散先のノードと代表ノードとの間のネットワークの負荷が増大することになる。また、代表ノードが、どのノードに負荷分散させるかを決定することになるため、代表ノードの負荷が増大することになる。
そこで、本実施の形態では、自ノードの負荷と、送信された各ノードの負荷とから集計処理の負荷分散を決めることについて説明する。
図1を用いて、情報処理システム100の動作例について説明する。図1で示す情報処理システム100は、複数のノードとして、ノード#1、2、3、4、…で構築される。ここで、以下の説明において、「#x」が付与された符号は、ノード#xに関することを示す。xは、自然数である。また、図1では、太い矢印は、他のノードへの指示を示し、通常の矢印は、データの送信を示す。
図1で示すように、ノード#1が時系列DB110を有するため、ノード#1が代表ノードとなる。また、情報処理システム100は、複数のノードの各ノードで取得された各ノードの負荷を示す負荷情報111を含む性能情報112を集計する。負荷情報111は、例えば、CPU使用率やネットワーク使用率である。図1の例では、負荷情報111は、CPU使用率であるとする。
図1の上部では、集計処理が、第0の集計処理120と、第1の集計処理121とに分散されている。そして、代表ノードとなるノード#1が、第0の集計処理120を実行し、ノード#3が、第1の集計処理121を実行する。図1では省略しているが、ノード#4以降のいずれかのノードが、第1の集計処理121を実行する。
第1の集計処理は、集計対象として、ノード#1〜3の性能情報112#1〜3を収集し、集計した集計値を、第0の集計処理120を実行するノード#1に送信する。第0の集計処理120は、第1の集計処理121から送信された集計値を、さらに集計し、得られた集計値を、時系列DB110に格納する。図1では、ノード#3の第1の集計処理121を分散する例を示す。
図1の(1)で示すように、ノード#3は、ノード#3自身の負荷と、ノード#3の集計対象となるノード#1〜3の性能情報112#1〜3に含まれる負荷情報111#1〜3が示す負荷とに基づいて、第1の集計処理121を分散させるか否かを判断する。ここで、負荷情報111#1〜3は、ノード#3に集計される情報であるから、ノード#3は、負荷分散の判断のために時系列DB110を参照しなくてよい。
例えば、ノード#3は、ノード#3自身の負荷が、集計対象となるノード#1〜3の平均の負荷と、所定の値として負荷判定値との合計値より大きい場合、第1の集計処理121を分散させると判断する。図1の例では、負荷情報111#1は、ノード#1のCPU使用率が10[%]であることを示す。また、負荷情報111#2は、ノード#2のCPU使用率が20[%]であることを示す。また、負荷情報111#3は、ノード#3のCPU使用率が40[%]であることを示す。また、負荷判定値が10[%]であるとする。この場合、ノード#3自身の負荷40[%]>(10[%]+20[%]+40[%])/3+10[%]=33.3[%]となるため、ノード#3は、第1の集計処理121を分散させると判断する。
第1の集計処理121を分散させると判断した場合、ノード#3は、図1の(2)で示すように、集計対象のノード群のうちのノード#3を除く2以上のノードの各ノードに、第2の集計処理122の実行要求を送信する。ここで、第2の集計処理122は、集計対象のノード群を該当の2以上のノードの数で分割した各グループに属するノードの性能情報112を集計する処理である。また、第2の集計処理122の実行要求を送信するノードの数は、2以上でよいが、負荷が高ければさらに分散させればよいため、2つが好ましい。また、集計対象のノード群のうち、第2の集計処理122の実行要求を送信するノードの決め方は、例えば、負荷が最も低いノードと、次に低いノードとの2つのノードとしてもよい。また、集計対象のノード群の分割方法は、どのように分割してもよいが、負荷を均等に分散させるために、可能な限り均等に分割することが好ましい。
例えば、図1の下部で示すように、ノード#3は、ノード#1、2のそれぞれに、第2の集計処理122#1、2の実行要求を送信する。ここで、第2の集計処理122#1は、ノード#1の性能情報112#1を集計する処理である。また、第2の集計処理122#2は、ノード#2、3の性能情報112#2、3を集計する処理である。
そして、ノード#3は、図1の(3)で示すように、各グループに属するノードに対して、該当のノードの性能情報112の送信先を、該当の各グループに対して第2の集計処理122を実行するノードに変更する指示を送信する。例えば、図1の下部で示すように、ノード#3は、ノード#1に対して、ノード#1に性能情報112#1を送信するように指示し、ノード#2、3に対して、ノード#2に性能情報112#2を送信するように指示する。また、ノード#3は、第2の集計処理122の実行要求が送信されたノード#1、2のそれぞれに、各グループに属するノードに対して、性能情報112の送信先を変更するように指示してもよい。
また、ノード#3は、図1の(4)で示すように、第2の集計処理122の実行要求が送信されたノードに対して、該当のノードが実行する第2の集計処理122の処理結果を、ノード#3に送信する指示を送信する。例えば、図1の下部で示すように、ノード#3は、ノード#1に対して、第2の集計処理122#1の処理結果を、ノード#3に送信するように指示し、ノード#2に対して、第2の集計処理122#2の処理結果を、ノード#3に送信するように指示する。
そして、ノード#3は、第1の集計処理121として、第2の集計処理122#1、2の処理結果となる集計値をさらに集計し、第1の集計処理121の処理結果となる集計値をノード#1に送信する。
これにより、図1の上部で示す第1の集計処理121は、図1の下部で示す第1の集計処理121と、第2の集計処理121#1、2とに分散されるため、ノード#3にかかる負荷を分散させることができる。さらに、ノード#3が負荷分散を判断する際に、時系列DB110を参照していないため、負荷分散の判断にかかる負荷を抑制することができる。
また、図1の説明では、複数のノードが、あるDC内にあることを説明したが、これに限らない。例えば、複数のノードのいくつかのノードがあるDCにあり、残りのノードが、あるノードから離れた遠隔地のDCにあってもよい。そして、この場合、集計対象のノード群を分割する際には、分割を行うノードは、集計対象のノード群を、あるDCに含まれるノードが属する1つ目のグループと、遠隔地のDCに含まれるノードが属する2つ目のグループとに分割してもよい。そして、分割を行うノードは、1つ目のグループに含まれるノードのうち負荷が最も低いノードと、2つ目のグループに含まれるノードのうち負荷が最も低いノードと、第2の集計処理122の処理要求を送信してもよい。次に、情報処理システム100の利用例について、図2を用いて説明する。
図2は、情報処理システム100の利用例を示す説明図である。図2に示すように、情報処理システム100は、利用者端末201と、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワーク202と接続する。
利用者端末201は、情報処理システム100を利用する利用者Uが操作するコンピュータである。利用者端末201は、例えば、PCである。例えば、情報処理システム100内の各ノードは、業務システムを運用しており、利用者Uは、利用者端末201を操作することにより、情報処理システム100にアクセスすることにより、業務システムを利用し、業務を行う。
次に、情報処理システム100に含まれるノード#1のハードウェア構成例を、図3を用いて説明する。なお、ノード#1以外の他のノードのハードウェアも、ノード#1と同様のハードウェアを有するため、説明を省略する。
図3は、ノード#1のハードウェア構成例を示す説明図である。図3において、ノード#1は、CPU301と、ROM(Read−Only Memory)302と、RAM(Random Access Memory)303と、を含む。また、ノード#1は、ディスクドライブ304およびディスク305と、NIC(Network Interface Card)306と、を含む。また、CPU301〜ディスクドライブ304、NIC306はバス307によってそれぞれ接続される。
CPU301は、ノード#1の全体の制御を司る演算処理装置である。ROM302は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM303は、CPU301のワークエリアとして使用される揮発性メモリである。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ304には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ304が磁気ディスクドライブである場合、ディスク305には、磁気ディスクを採用することができる。また、ディスクドライブ304が光ディスクドライブである場合、ディスク305には、光ディスクを採用することができる。また、ディスクドライブ304がソリッドステートドライブである場合、ディスク305には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
NIC306は、ネットワーク202と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、NIC306は、通信回線を通じてネットワーク202を介して他の装置に接続される。NIC306には、例えば、LANアダプタなどを採用することができる。
また、情報処理システム100の管理者が、ノード#1を直接操作する場合、ノード#1は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
(情報処理システム100の機能構成例)
図4は、情報処理システム100の機能構成例を示す説明図である。各ノードは、制御部400を有する。制御部400は、取得部401と、ノード集計部402と、集計部403と、書き込み部404と、を含む。制御部400は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したROM302、RAM303、ディスク305などである。また、各部の処理結果は、RAM303や、CPU301のレジスタ、CPU301のキャッシュメモリ等に格納される。
取得部401は、一定時間間隔で、statシステムコールやファイル参照により、CPU使用率、IOPS、ディスク使用率といった性能情報112を取得する。
ノード集計部402は、各ノードにおいて、時刻ごとの性能情報112を計算する。そして、ノード集計部402は、集計部403に性能情報112を送信する。
集計部403は、各ノードの性能情報112を集計する。ここで、本実施の形態では、分散アーキテクチャの性能監視において、集計部403を動的に分散配置し、負荷を分散させる。このとき、集計部403は、集計の過程で利用したCPU、ネットワークといった性能情報112を判断基準として、集計部403の配置ノードと、分散階層の深さを動的に決定する。これにより集計部403は、負荷の集中を防ぎ、利用者Uの通常業務に与える影響を最小限に抑える。
そして、集計部403の種別として、親集計部と、子集計部とを定義する。親集計部は、既に存在していた集計部403を示す。子集計部は、親から新たに生成される集計部403を示す。また、「集計担当ノード」を定義する。集計担当ノードは、集計部403が性能情報112の集計の対象となるノード、すなわち集計部403に性能情報112を送信するノードと定義する。なお、集計部403の負荷分散をしていない場合、言い換えると、情報処理システム100内に集計部403が代表ノードの1つしかない場合には、該当の集計部403の種別は、子集計部であるとする。
また、以下の説明では、親子関係の把握を容易にするため、最初に存在する集計部403を、集計部403−Aとする。そして、集計部403−Aから新たに生成される集計部403を、集計部403−Bとし、集計部403−Bから新たに生成される集計部403を、集計部403−Cとする。また、図4以降の図では、親子関係の把握をより容易にするため、集計部403−A内の文字列を「集計部A」と表示し、集計部403−B内の文字列を「集計部B」と表示し、集計部403−C内の文字列を「集計部C」と表示する。さらに、集計部403が配置されたノードの把握を容易にするため、集計部403に、ノードの符号を付与することがある。例えば、集計部403−B#3は、集計部403−Aから新たに生成される集計部403であって、ノード#3に配置された集計部403であることを示す。
そして、集計部403は、集計処理実行部411と、処理結果送信部412と、負荷分散判断部413と、変更先ノード決定部414と、実行要求送信部415と、消滅判断部416と、指示部417とを有する。ここで、図4では、集計部403−B#3が、集計処理実行部411〜指示部417を有するように示したが、集計部403−A#1も、集計処理実行部411〜指示部417を有する。また、集計部403は、どのノードにも生成される可能性がある。
集計処理実行部411は、集計担当ノードのノード集計部402から送信された性能情報112や性能情報112の集計値を集計する。例えば、集計処理実行部411は、性能情報112の集計値として、合計値や平均値を算出する。集計部403−A#1の集計処理実行部411は、図1に示した第0の集計処理120に相当する。また、集計処理実行部411#3は、図1に示した第1の集計処理121に相当する。
処理結果送信部412は、集計処理実行部411の処理結果を、自身の親集計部となる集計部403に送信する。また、処理結果送信部412は、時系列DB110の各フィールドを埋めるため、集計担当ノードからの性能情報112そのものの値を、自身の親集計部となる集計部403に送信する。また、代表ノードにある処理結果送信部412は、集計処理実行部411の処理結果を、書き込み部404に送る。
負荷分散判断部413は、自ノードの負荷と、自ノードが集計する集計担当ノード群の各ノードの性能情報112に含まれる負荷情報111が示す負荷とに基づいて、各ノードの性能情報112を集計する集計処理を分散させるか否かを判断する。ここで、該当の集計処理は、負荷分散判断部413#3であれば、図1で示した第1の集計処理121となり、負荷分散判断部413#1であれば、図1で示した第0の集計処理120となる。例えば、負荷分散判断部413#3は、自ノードとなるノード#3の負荷から集計担当ノード群の負荷の平均値を減じた値が、負荷判定値より大きい場合、集計処理実行部411による第1の集計処理121を分散させると判断する。
そして、負荷分散判断部413が、集計処理を分散させると判断したとする。この場合、実行要求送信部415は、集計担当ノード群のうちの自ノードを除く2以上のノードの各ノードに、集計担当ノード群を各ノードの数で分割した各グループに属するノードの性能情報を集計する集計処理の実行要求を送信する。ここで、該当の集計処理は、実行要求送信部415#3であれば、図1で示した第2の集計処理121となり、実行要求送信部415#1であれば、図1で示した第0の集計処理120となる。
指示部417は、他のノードに指示する。具体的には、実行要求送信部415が実行要求を送信したとする。この場合、指示部417は、集計担当ノード群を各ノードの数で分割した各グループに属するノードに対して、該当のノードの性能情報112の送信先を各グループに対して該当の集計処理を実行するノードに変更する指示を送信する。さらに、指示部417は、2以上のノードの各ノードに対して、当該各ノードが実行する集計処理の処理結果を自ノードに送信する指示を送信する。
また、種別が親集計部である集計部403は、自身の第1の集計処理121の負荷を分散させた2以上のノードのうちの第1のノードから、第1のノードが実行する第2の集計処理122を他のノードに変更する変更依頼を受け付けることがある。ここで、第1のノードは、該当の集計部403自身の負荷を分散させた先のノードであり、子集計部となるが、新たな子を生成している場合には、親集計部となる。また、変更依頼を、以下、「担当変更依頼」と称する。
担当変更依頼を受け付けた場合、変更先ノード決定部414は、集計担当ノード群の性能情報112に含まれる負荷情報111が示す負荷に基づいて、集計担当ノード群から、第1のノードが実行する第2の集計処理122を実行させる第2のノードを決定する。ここで、第2のノードは、集計担当ノード群のうちの自ノードおよび集計部403を有するノード以外のノードである。例えば、第2のノードは、集計担当ノード群のうちの自ノードおよび集計部403を有するノード以外のうち、負荷が最も低いノードである。また、第2のノードは、集計担当ノード群のうちの自ノード以外のうち、負荷が最も低いノードが第1のノードである場合、変更先ノード決定部414は、第1のノードが実行する第2の集計処理122の実行先を変更せず、第1のノードが実行するとしてもよい。
そして、実行要求送信部415は、第1のノードが実行する第2の集計処理122を、第1のノードから第2のノードに変更する。そして、指示部417は、集計担当ノード群の各ノードに対して、各ノードの性能情報の送信先を第2のノードに変更する指示を送信する。さらに、指示部417は、第2のノードに対して、第2のノードが実行する第2の集計処理122の処理結果を自ノードに送信する指示を送信する。担当変更依頼については、図12でより詳細に説明する。
また、種別が親集計部である集計部403は、自身の第1の集計処理121の負荷を分散させた2以上のノードのうちの第3のノードから、第3のノードが実行する第2の集計処理122を消滅させる消滅依頼を受け付けることがある。消滅依頼を受け付けた場合、消滅判断部416は、自ノードの負荷に基づいて、第3のノードが実行する第2の集計処理122を消滅させるか否かを判断する。例えば、消滅判断部416は、自ノードの負荷が所定の閾値以下ならば、第3のノードが実行する第2の集計処理122を消滅させると判断してもよい。または、消滅判断部416は、自ノードの負荷に、第3のノードの負荷を加えた値が、所定の閾値以下ならば、第3のノードが実行する第2の集計処理122を消滅させると判断してもよい。
そして、消滅判断部416が、第3のノードが実行する第2の集計処理122を消滅させると判断したとする。この場合、指示部417は、第3のノードが集計する集計担当ノード群の各ノードに対して、該当の各ノードの性能情報112の送信先を第2のノードに変更する指示を送信する。さらに、指示部417は、第3のノードに対して、第3のノードが実行する第2の集計処理122を消滅させる指示を送信する。
また、集計処理実行部411は、複数のノードのうちの第4のノードから、第1の集計処理の実行要求を受け付けた場合、第1の集計処理121を実行する。第4のノードは、例えば、集計処理実行部411#3であれば、ノード#1となる。
また、複数のノードに新たなノードが追加された場合、または、複数のノードのうちのいずれかのノードが除かれたとする。この場合、代表ノードにある指示部417は、集計処理を分散させているならば、子集計部となる集計部403に対して、集計処理の分散を解除する指示を送信する。ここで、ノードが追加されることを、「増設」と呼称し、ノードが除かれることを「減設」と呼称する。
書き込み部404は、集計部403からの集計値や、各ノードの性能情報112に時刻情報を対応付けて、時系列DB110に書き込む。時系列DB110の記憶内容の一例については、図6、図7等で示す。
次に、情報処理システム100における性能情報112の集計に関するデータの流れについて、図5〜図12を用いて説明する。
図5は、情報処理システム100の初期状態における性能情報112の収集例を示す説明図である。図5で示す初期状態では、情報処理システム100内には集計部403ーA#1が、代表ノードとなるノード#1だけに存在する。各ノードのノード集計部402は、各ノードで取得した性能情報112を集計し、集計値を集計部403−A#1へ送信する。
集計部403−A#1は、図5の(A−1)で示すように、送信された集計値をさらに集計する。また、集計部403−A#1は、図5の(A−2)で示すように、自ノードのCPU負荷とネットワーク負荷を、集計担当ノードのCPU平均負荷とネットワーク平均負荷とそれぞれ比較する。集計部403−A#1は、図5の(A−3)で示すように、比較の結果、自ノードの負荷が平均より一定値を上回る場合フラグをたてる。その後、集計部403−A#1は、図5の(A−4)で示すように、計算した値を書き込み部404に送信する。
ここで、各ノードのCPU負荷情報として、以下に示すCPU使用率が送信される場合について、集計部403−A#1が図5の(A−1)〜(A−4)で示す処理を実行する例を示す。ノード#1〜6のCPU使用率が、それぞれ、60[%]、50[%]、10[%]、90[%]、20[%]、60[%]であるとする。
集計部403−A#1は、図5の(A−1)において、下記計算式によりCPU使用率の平均を計算する。
(60+50+10+90+20+60)/6=48.3
そして、集計部403−A#1は、図5の(A−2)において、下記不等式により自ノードのCPU負荷と、集計担当ノードのCPU負荷とを比較する。ここで、負荷判定値を、10[%]とする。
60>48.3+10
上述した不等式は真となるため、集計部403−A#1は、図5の(A−3)において、フラグをたてる。そして、集計部403−A#1は、図5の(A−4)において、計算した値として、48.3[%]を書き込み部404に送る。
図6は、ノード#1の負荷が増加した場合の一例を示す説明図である。図6では、ノード#1の負荷が増加し、フラグをたてた本数が一定時間内に一定数を超えた場合である。この場合、集計部403−A#1は、時系列DB110を参照して、集計担当ノードの中で負荷の低い2つのノードに集計部403−Bを生成する。
ここで、図6では、時系列DB110の記憶内容の一例を示す。図6に示す時系列DB110には、CPU使用率に関する情報が格納されている。そして、図6に示す時系列DB110は、レコード601−1〜4を有する。具体的には、図6に示す時系列DB110は、時間と、CPU平均と、各CPUの使用率というフィールドを含む。ここで、図6では、各CPUの使用率フィールドは、表示の簡略化のため、各ノードのCPUの符号だけを表示する。時間フィールドには、CPU使用率を計測した時間が格納される。CPU平均フィールドには、情報処理システム100内の全てのCPU使用率の平均値が格納される。各CPUの使用率フィールドには、各CPUの使用率が格納される。また、時系列DB110の記憶内容は、図6の例に限られない。図7では、時系列DB110に、ネットワークの利用率に関する情報が格納される例を示す。
図6で示す時系列DB110の破線で区切った領域が、各集計担当ノードのCPUの使用率を示す。そして、各集計担当ノードの中で負荷の低い2つのノードは、一点鎖線で囲ったノード#3、5であるため、集計部403−A#1は、ノード#3に集計部403−B#3を生成し、ノード#5に集計部403−B#5を生成する。そして、集計部403−A#1は、集計部403−B#3、5のそれぞれの集計担当ノードを決定し、集計部403−B#3、5に通知する。例えば、図6の例では、集計部403−A#1は、集計部403−B#3の集計担当ノードを、ノード#1、2、3と決定し、集計部403−B#5の集計担当ノードを、ノード#4、5、6と決定する。そして、集計部403−B#3、5は、性能情報112の送信先を自ノードに変更するように、集計担当ノードとして受け付けたノードに通知する。また、集計部403−A#1と、集計部403−B#3、5との関係は、集計部403−A#1が親集計部となり、集計部403−B#3、5が子集計部という親子関係となる。
図7は、時系列DB110の記憶内容の他の例を示す説明図である。図7に示す時系列DB110には、ネットワークに関する情報が格納されている。そして、図7に示す時系列DB110は、レコード701−1〜4を有する。具体的には、図7に示す時系列DB110は、時間と、NIC平均と、各NICの利用率というフィールドを含む。ここで、図7では、各NICの利用率フィールドは、表示の簡略化のため、各ノードのNICの符号だけを表示する。時間フィールドには、ネットワーク利用率を計測した時間が格納される。NIC平均フィールドには、情報処理システム100内の全てのNICの利用率の平均値が格納される。各CPUの利用率フィールドには、各NICの利用率が格納される。
図7で示す時系列DB110の破線で区切った領域が、各集計担当ノードのネットワークの利用率を示す。そして、集計担当ノードの中で負荷の低い2つのノードは、一点鎖線で囲ったノード#3、5である。従って、集計部403−A#1は、図7で示す時系列DB110を参照して、ノード#3に集計部403−B#3を生成し、ノード#5に集計部403−B#5を生成する。
図8は、集計部403−Bを作成した後の性能情報112の収集例を示す説明図である。図8では、集計部403−B#3、5を生成した後の状態を示す。各ノードのノード集計部402は、各ノードで取得した性能情報112を集計し、集計値をノード#3、5のうちの送信先として通知されたノードへ送信する。
集計部403−B#3、5は、それぞれ、図8の(B−1)で示すように、送信された集計値から、時刻ごとの集計値の合計や平均を計算する。また、集計部403−B#3、5は、それぞれ、図8の(B−2)で示すように、自ノードのCPU負荷とネットワーク負荷を、集計担当ノードのCPU平均負荷とネットワーク平均負荷とそれぞれ比較する。集計部403−B#3、5は、図8の(B−3)で示すように、比較の結果、自ノードの負荷が平均より一定値を上回る場合フラグをたてる。その後、集計部403−B#3、5は、それぞれ、図8の(B−4)で示すように、計算した値を集計部403−A#1に送信する。
ここで、各ノードのCPU負荷情報として、以下に示すCPU使用率が送信される場合について、集計部403−B#3が図8の(B−1)〜(B−4)で示す処理を実行する例を示す。ノード#1〜3のCPU使用率が、それぞれ、10[%]、20[%]、40[%]であるとする。
集計部403−B#3は、図8の(B−1)において、下記計算式によりCPU使用率の平均を計算する。
(10+20+40)/3=23.3
そして、集計部403−B#3は、図8の(B−2)において、下記不等式により自ノードのCPU負荷と、集計担当ノードのCPU負荷とを比較する。ここで、負荷判定値を、10[%]とする。
40>23.3+10
上述した不等式は真となるため、集計部403−B#3は、図8の(B−3)において、フラグをたてる。そして、集計部403−B#3は、図8の(B−4)において、計算した値として、23.3[%]を集計部403−A#1に送信する。
また、集計部403−A#1は、図8の(A−1)で示すように、送信された集計値から、時刻ごとの集計値の合計や平均を計算する。そして、集計部403−A#1は、図8の(A−2)で示すように、計算した値を書き込み部404に送る。
図9は、ノード#3の負荷が増加した場合の一例を示す説明図である。図9では、ノード#3の負荷が増加し、フラグをたてた本数が一定時間内に一定数を超えた場合である。この場合、集計部403−B#3は、時系列DB110を参照して、集計担当ノードの中で負荷の低い2つのノードに集計部403−Cを生成する。
ここで、図9では、時系列DB110の記憶内容の一例を示す。図9に示す時系列DB110には、CPU使用率に関する情報が格納されている。そして、図9に示す時系列DB110は、レコード901−1〜4を有する。
図6で示す時系列DB110の破線で区切った領域が、ノード#3の各集計担当ノードのCPUの使用率を示す。そして、各集計担当ノードの中で負荷の低い2つのノードは、一点鎖線で囲ったノード#1、2であるため、集計部403−B#3は、ノード#1に集計部403−C#1を生成し、ノード#2に集計部403−C#2を生成する。集計部403−B#3は、集計部403−C#1、2のそれぞれの集計担当ノードを決定し、集計部403−C#1、2に通知する。例えば、図9の例では、集計部403−B#3は、集計部403−C#1の集計担当ノードを、ノード#1と決定し、集計部403−C#2の集計担当ノードを、ノード#2、3と決定する。そして、集計部403−C#1、2は、性能情報112の送信先を自ノードに変更するように、集計担当ノードとして受け付けたノードに通知する。また、集計部403−B#3と、集計部403−C#1、2との関係は、集計部403−B#3が親集計部となり、集計部403−C#1、2が子集計部という親子関係となる。
図10は、集計部403−Cを作成した後の性能情報112の収集例を示す説明図である。図10では、集計部403−C#1、2を生成した後の状態を示す。各ノードのノード集計部402は、各ノードで取得した性能情報112を集計し、集計値をノード#1、2のうちの送信先として通知されたノードへ送信する。
集計部403−C#1、2は、それぞれ、図10の(C−1)で示すように、送信された集計値から、時刻ごとの集計値の合計や平均を計算する。また、集計部403−C#1、2は、それぞれ、図10の(C−2)で示すように、自ノードのCPU負荷とネットワーク負荷を、集計担当ノードのCPU平均負荷とネットワーク平均負荷とそれぞれ比較する。集計部403−C#1、2は、図10の(C−3)で示すように、比較の結果、自ノードの負荷が平均より一定値を上回る場合フラグをたてる。その後、集計部403−C#1、2は、それぞれ、図10の(C−4)で示すように、計算した値を集計部403−B#3に送信する。
また、集計部403−B#3は、図10の(B−1)で示すように、送信された集計値から、時刻ごとの集計値の合計や平均を計算する。そして、集計部403−B#3は、図10の(B−2)で示すように、計算した値を集計部403−A#1に送信する。
図11は、ノード#3の負荷が減少した場合の一例を示す説明図である。図11では、図8で示した状態の後、ノード#3の負荷が減少し、低負荷フラグをたてた本数が一定時間内に一定数を超えた場合である。この場合、集計部403−B#3は、集計部403−B#3の親集計部となる集計部403−A#1に、集計部403の消滅の依頼を示す消滅依頼を送信する。消滅依頼を受け取った集計部403−A#1は、時系列DB110を参照して、自身の負荷が低ければ、子集計部となる集計部403−B#3を消滅させる。
集計部403−B#3は、集計担当ノードに送付先を親集計部となる集計部403−A#1に変更するように通知したのち、消滅する。一方、集計部403−A#1は、自身の負荷が低い状態でなければ、子集計部を消滅させない。
ここで、図11では、時系列DB110の記憶内容の一例を示す。図11に示す時系列DB110には、CPU使用率に関する情報が格納されている。そして、図11に示す時系列DB110は、レコード1101−1〜4を有する。
図11で示す例では、レコード1101−1〜4が示すように、ノード#1のCPU負荷が低い状態であるため、集計部403−B#3を消滅させる。集計部403−B#3は、自身の集計担当ノードとなるノード#1〜3に、性能情報112の送信先をノード#1に変更するように通知する。
図12は、ノード#3の負荷が大幅に増加した場合の一例を示す説明図である。図12では、図8で示した状態の後、ノード#3の負荷が大幅に増加し、高負荷フラグをたてた本数が一定時間内に一定数を超えた場合である。この場合、集計部403−B#3は、集計部403−B#3の親集計部となる集計部403−A#1に、性能情報112を集計する担当変更の依頼を示す担当変更依頼を送信する。担当変更依頼を受け取った集計部403−A#1は、時系列DB110を参照して、集計部403−B#3の集計担当ノードとなるノード#1〜3のうちの最も低いノードに改めて子集計部を生成する。集計部403−A#1は、新しい子集計部を生成後、古い子集計部を消滅させる。
ここで、図12では、時系列DB110の記憶内容の一例を示す。図12に示す時系列DB110には、CPU使用率に関する情報が格納されている。そして、図12に示す時系列DB110は、レコード1201−1〜4を有する。
図12で示す例では、レコード1201−3、4の二重丸が示すように、ノード#3の負荷が大幅に増加している。そして、集計部403−A#1は、時系列DB110を参照して、ノード#1〜3のうち負荷が最も低いノード#2に、新しい子集計部として、集計部403−B#2を生成する。そして、集計部403−A#1は、集計部403−B#3を消滅させる。図12では、集計部403−B#3が消滅したことを、集計部403−B#3の輪郭を破線とすることにより模式的に示す。
また、図示していないが、ノード増設および減設があった場合、最上位の親集計部となる集計部403−A#1は、自身以外の集計部403を消滅させ、全ノードのノード集計部402に、送信先を集計部403−A#1に変更するように通知する。通知後、集計部403−A#1は、図5〜図12で示した処理を繰り返す。
次に、情報処理システム100が行う処理を示すフローチャートを、図13〜図18を用いて説明する。
図13は、子集計部における性能情報収集処理手順の一例を示すフローチャート(その1)である。また、図14は、子集計部における性能情報収集処理手順の一例を示すフローチャート(その2)である。図13と図14とで示す子集計部における性能情報収集処理は、種別が子集計部となる集計部403が実行する処理である。また、図13と図14とで示す子集計部における性能情報収集処理は、定期的に実行される。
集計部403は、集計担当ノードから、各ノードの集計値を受け取る(ステップS1301)。次に、集計部403は、受け取った集計値をさらに集計する(ステップS1302)。そして、集計部403は、自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より負荷判定値以上高いか否かを判断する(ステップS1303)。自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より負荷判定値以上高い場合(ステップS1303:Yes)、集計部403は、自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より高負荷判定値以上高いか否かを判断する(ステップS1304)。
自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より高負荷判定値以上高い場合(ステップS1304:Yes)、集計部403は、高負荷フラグをたてる(ステップS1305)。そして、ステップS1305の処理終了後、または、自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より高負荷判定値以上高くない場合(ステップS1304:No)、集計部403は、フラグをたてる(ステップS1306)。
一方、自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より負荷判定値以上高くない場合(ステップS1303:No)、集計部403は、自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より負荷判定値以上低いか否かを判断する(ステップS1307)。
自ノードのCPUまたは/およびネットワーク負荷が集計ノード平均より負荷判定値以上低い場合(ステップS1307:Yes)、集計部403は、低負荷フラグをたてる(ステップS1308)。ステップS1306、S1308の処理終了後、集計部403は、たてたフラグの本数を集計する(ステップS1309)。
ステップS1309の処理終了後、または、自ノードまたは/およびネットワーク負荷が集計ノード平均より負荷判定値以上低くない場合(ステップS1307:No)、集計部403は、親集計部へ集計値を送信する(ステップS1310)。そして、集計部403は、高負荷フラグが一定数以上か否かを判断する(ステップS1401)。
高負荷フラグが一定数以上である場合(ステップS1401:Yes)、集計部403は、親集計部に担当変更依頼を送信する(ステップS1402)。一方、高負荷フラグが一定数未満である場合(ステップS1401:No)、集計部403は、フラグが一定数以上か否かを判断する(ステップS1403)。フラグが一定数以上である場合(ステップS1403:Yes)、集計部403は、時系列DB110を参照して、集計担当ノードのうちの負荷の低い2ノードに子集計部を生成する(ステップS1404)。そして、集計部403は、自身の種別を親集計部に設定する(ステップS1405)。
一方、フラグが一定数未満である場合(ステップS1403:No)、集計部403は、低負荷フラグが一定数以上か否かを判断する(ステップS1406)。低負荷フラグが一定数以上である場合(ステップS1406:Yes)、集計部403は、親集計部に消滅依頼を送信する(ステップS1407)。
一方、低負荷フラグが一定数未満である場合(ステップS1406:No)、集計部403は、古いフラグを削除する(ステップS1408)。ここで、古いフラグは、例えば、たててから一定時間以上が経過したフラグである。
ステップS1402、S1405、S1407、S1408のいずれかの処理終了後、集計部403は、子集計部における性能情報収集処理を終了する。
ここで、図4で説明したように、情報処理システム100内に集計部403が1つしかない場合には、該当の集計部403は、代表ノードにあるものであり、種別は子集計部であるから、図13と図14とで示す処理を行う。そして、該当の集計部403は、ステップS1310の処理の代わりに、書き込み部404に集計値を書き込む。また、該当の集計部403は、ステップS1401:Yes、ステップS1406:Yesとなっても、ステップS1402の処理、ステップS1407の処理を行わない。
図15は、代表ノードの親集計部における性能情報収集処理手順の一例を示すフローチャートである。代表ノードの親集計部における性能情報収集処理は、代表ノードの集計部403の種別が親集計部であるときの性能情報収集処理である。代表ノードの親集計部における性能情報収集処理は、定期的に実行される。
集計部403は、子集計部から集計値を受け取る(ステップS1501)。次に、集計部403は、受け取った集計値を集計する(ステップS1502)。そして、集計部403は、集計した集計値を書き込み部404に送る(ステップS1503)。ステップS1503の処理終了後、集計部403は、代表ノードの親集計部における性能情報収集処理を終了する。
また、代表ノード以外の親集計部となる集計部403も、図15で示した処理とほぼ同一の処理を行う。差異としては、ステップS1503の処理において、該当の集計部403は、自身の親集計部に、集計した集計値を送信する。
図16は、親集計部における担当変更依頼受け付け時処理手順の一例を示すフローチャートである。親集計部における担当変更依頼受け付け時処理は、親集計部となる集計部403が、自身の子集計部となる集計部403から、担当変更依頼を受け付けた際の処理である。このように、親集計部における担当変更依頼受け付け時処理の実行主体は、親集計部となる集計部403であり、下記の説明では、単に、集計部403と記載する。
集計部403は、子集計部から担当変更依頼を受け取る(ステップS1601)。次に、集計部403は、時系列DB110を参照して、依頼元集計部の集計担当ノードの負荷を取得する(ステップS1602)。そして、集計部403は、依頼元集計部の集計担当ノードのうち、依頼のあった子集計部ノードの負荷が一番低いか否かを判断する(ステップS1603)。依頼のあった子集計部ノードの負荷が一番低くない場合(ステップS1603:No)、集計部403は、負荷が一番低いノードに子集計部を生成する(ステップS1604)。そして、集計部403は、生成した子集計部に依頼元と同じ集計担当ノードを通知する(ステップS1605)。次に、集計部403は、依頼元の子集計部を削除する(ステップS1606)。
一方、依頼のあった子集計部ノードの負荷が一番低い場合(ステップS1603:Yes)、集計部403は、依頼元集計部の高負荷フラグを全削除する(ステップS1607)。そして、集計部403は、担当変更不可であることを依頼元の子集計部に通知する(ステップS1608)。
ステップS1606、またはステップS1608の処理終了後、集計部403は、親集計部における担当変更依頼受け付け時処理を終了する。
図17は、親集計部における消滅依頼受け付け時処理手順の一例を示すフローチャートである。親集計部における消滅依頼受け付け時処理は、親集計部となる集計部403が、自身の子集計部となる集計部403から、消滅依頼を受け付けた際の処理である。このように、親集計部における消滅依頼受け付け時処理の実行主体は、親集計部となる集計部403であり、下記の説明では、単に、集計部403と記載する。
集計部403は、子集計部から消滅依頼を受け取る(ステップS1701)。次に、集計部403は、時系列DBを参照して、親集計部自身の負荷を取得する(ステップS1702)。そして、集計部403は、自身の負荷が高い状態が続いているか否かを判断する(ステップS1703)。自身の負荷が高い状態が続いていない場合(ステップS1703:No)、集計部403は、子集計部経由で集計担当ノードの送信先を通知する(ステップS1704)。そして、集計部403は、依頼元の子集計部を削除する(ステップS1705)。ステップS1705の処理終了後、集計部403は、親集計部における消滅依頼受け付け時処理を終了する。
一方、自身の負荷が高い状態が続いている場合(ステップS1703:Yes)、集計部403は、依頼元集計部の低負荷フラグを全削除する(ステップS1706)。そして、集計部403は、子集計部を消滅させずに、親集計部における消滅依頼受け付け時処理を終了する。
図18は、代表ノードにおけるノード増減設時処理手順の一例を示すフローチャートである。代表ノードにおけるノード増減設時処理は、情報処理システム100に対してノードが増設したり減設したりする際に、代表ノードの集計部403が行う処理である。このように、代表ノードにおけるノード増減設時処理の実行主体は、代表ノードの集計部403であり、下記の説明では、単に、集計部403と記載する。
ノードの増減設が実施された後、集計部403は、子集計部が存在するか否かを判断する(ステップS1801)。子集計部が存在する場合(ステップS1801:Yes)、集計部403は、子集計部経由で、全ノードのノード集計部402に送付先を代表ノードの集計部403に変更するように通知する(ステップS1802)。そして、集計部403は、全子集計部を削除し(ステップS1803)、代表ノードにおけるノード増減設時処理を終了する。
一方、子集計部が存在しない場合(ステップS1801:No)、集計部403は、特に変更を行わず、代表ノードにおけるノード増減設時処理を終了する。
以上説明したように、本実施の形態における各ノードは、自ノードの負荷と、送信された各ノードの負荷とから集計処理の負荷分散を決めることで、DBを用いて決めないため負荷分散の判断にかかる負荷を抑制することができる。また、情報処理システム100は、代表ノードに負荷が集中しないため、性能情報112の集計値を収集する際のボトルネックを回避することができる。また、情報処理システム100は、利用者Uの業務への影響を最小限に抑えることができる。
また、本実施の形態における各ノードは、担当変更依頼を受け付けた場合、自ノードの集計担当ノード群のうちの負荷の低いノードに、集計部403を生成してもよい。これにより、本実施の形態における各ノードは、負荷が高くなったノードの負荷を減少させて、負荷の低いノードに集計処理を行わせるため、負荷分散を行うことができる。
また、本実施の形態における各ノードは、消滅依頼を受け付けた場合、自ノードの負荷が低い場合に、消滅依頼の送信元の集計部403を消滅させ、自身が、集計処理を実行してもよい。これにより、本実施の形態における各ノードは、負荷分散をする必要がなくなった場合には、自身の子集計部となる集計部403を消滅させて、過剰な負荷分散を抑制することができる。
また、本実施の形態における各ノードは、他ノードの親集計部となる集計部403から、集計部403が生成させられた場合に、自身の集計部403によって集計処理を実行し、処理結果を親集計部となる集計部403に送信する。そして、前述したように、本実施の形態における各ノードは、他ノードに子集計部となる集計部403を生成することがある。従って、情報処理システム100の各ノードは、親子孫というように、3世代以上の負荷分散を構築することができる。
また、代表ノードの集計部403は、増設または減設があった際には、情報処理システム100内の代表ノードの集計部403以外の集計部403を消滅させてもよい。増設または減設があると、各ノードの負荷が変化することがある。従って、代表ノードの集計部403以外を全て消滅させて負荷分散を再度行うことにより、代表ノードの集計部403は、増設または減設があっても、適切な負荷分散を行うことができる。
なお、本実施の形態で説明した状態情報を収集する方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本状態情報収集プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本状態情報収集プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムに含まれる、前記状態情報を収集する情報処理装置であって、
前記情報処理装置の負荷と、前記情報処理装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、前記各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、
前記第1の集計処理を分散させると判断した場合、前記集計対象の情報処理装置群のうちの前記情報処理装置を除く2以上の情報処理装置の各情報処理装置に、前記集計対象の情報処理装置群を前記各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、
前記各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を前記各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、
前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を前記情報処理装置に送信する指示を送信する、
制御部を有することを特徴とする情報処理装置。
(付記2)前記制御部は、
前記2以上の情報処理装置のうちの第1の情報処理装置から、前記第1の情報処理装置が実行する第2の集計処理を他の情報処理装置に変更する変更依頼を受け付けた場合、前記集計対象の情報処理装置群の状態情報に含まれる負荷情報が示す負荷に基づいて、前記情報処理装置群のうちの前記情報処理装置および前記2以上の情報処理装置以外から、前記第1の情報処理装置が実行する第2の集計処理を実行させる第2の情報処理装置を決定し、
前記第1の情報処理装置が実行する第2の集計処理を、前記第1の情報処理装置から前記第2の情報処理装置に変更し、
当該各情報処理装置に対して、当該各情報処理装置の状態情報の送信先を前記第2の情報処理装置に変更する指示を送信し、
前記第2の情報処理装置に対して、前記第2の情報処理装置が実行する第2の集計処理の処理結果を前記情報処理装置に送信する指示を送信する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記制御部は、
前記2以上の情報処理装置のうちの第3の情報処理装置から、前記第3の情報処理装置が実行する第2の集計処理を消滅させる消滅依頼を受け付けた場合、前記情報処理装置の負荷に基づいて、前記第3の情報処理装置が実行する第2の集計処理を消滅させるか否かを判断し、
前記第3の情報処理装置が実行する第2の集計処理を消滅させると判断した場合、前記第3の情報処理装置が集計する集計対象の情報処理装置群の各情報処理装置に対して、当該各情報処理装置の状態情報の送信先を前記第2の情報処理装置に変更する指示を送信し、
前記第3の情報処理装置に対して、前記第3の情報処理装置が実行する第2の集計処理を消滅させる指示を送信する、
ことを特徴とする付記1または2に記載の情報処理装置。
(付記4)前記制御部は、
前記複数の情報処理装置のうちの第4の情報処理装置から、前記第1の集計処理の実行要求を受け付けた場合、前記第1の集計処理を実行し、
前記第1の集計処理の処理結果を、前記第4の情報処理装置に送信する、
ことを特徴とする付記1〜3のいずれか一つに記載の情報処理装置。
(付記5)前記情報処理装置は、前記複数の情報処理装置の全ての情報処理装置の状態情報を集計した情報を有しており、
前記制御部は、
前記複数の情報処理装置に新たな情報処理装置が追加された場合、または、前記複数の情報処理装置のうちのいずれかの情報処理装置が除かれた場合、前記第1の集計処理を分散させているならば、前記第1の集計処理の分散を解除する、
ことを特徴とする付記1〜4のいずれか一つに記載の情報処理装置。
(付記6)複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムであって、
前記状態情報を収集する情報処理装置は、
前記情報処理装置の負荷と、前記情報処理装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、前記各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、
前記第1の集計処理を分散させると判断した場合、前記集計対象の情報処理装置群のうちの前記情報処理装置を除く2以上の情報処理装置の各情報処理装置に、前記集計対象の情報処理装置群を前記各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、
前記各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を前記各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、
前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を前記情報処理装置に送信する指示を送信する、
ことを特徴とする情報処理システム。
(付記7)複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムに含まれる、前記状態情報を収集する情報処理装置に、
前記情報処理装置の負荷と、前記情報処理装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、前記各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、
前記第1の集計処理を分散させると判断した場合、前記集計対象の情報処理装置群のうちの前記情報処理装置を除く2以上の情報処理装置の各情報処理装置に、前記集計対象の情報処理装置群を前記各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、
前記各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を前記各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、
前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を前記情報処理装置に送信する指示を送信する、
処理を実行させることを特徴とする状態情報収集プログラム。
#1〜#6 ノード
100 情報処理システム
110 時系列DB
111 負荷情報
112 性能情報
120〜122 集計処理
400 制御部
401 取得部
402 ノード集計部
403 集計部
404 書き込み部
411 集計処理実行部
412 処理結果送信部
413 負荷分散判断部
414 変更先ノード決定部
415 実行要求送信部
416 消滅判断部
417 指示部

Claims (6)

  1. 複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムに含まれる、前記状態情報を収集する情報処理装置であって、
    自装置の負荷と、自装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、前記各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、
    前記第1の集計処理を分散させると判断した場合、前記集計対象の情報処理装置群のうちの自装置を除く2以上の情報処理装置の各情報処理装置に、前記集計対象の情報処理装置群を前記各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、
    前記各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を前記各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、
    前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を自装置に送信する指示を送信する、
    制御部を有することを特徴とする情報処理装置。
  2. 前記制御部は、
    前記2以上の情報処理装置のうちの第1の情報処理装置から、前記第1の情報処理装置が実行する第2の集計処理を他の情報処理装置に変更する変更依頼を受け付けた場合、前記集計対象の情報処理装置群の状態情報に含まれる負荷情報が示す負荷に基づいて、前記情報処理装置群のうちの自装置および前記2以上の情報処理装置以外から、前記第1の情報処理装置が実行する第2の集計処理を実行させる第2の情報処理装置を決定し、
    前記第1の情報処理装置が実行する第2の集計処理を、前記第1の情報処理装置から前記第2の情報処理装置に変更し、
    前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置の状態情報の送信先を前記第2の情報処理装置に変更する指示を送信し、
    前記第2の情報処理装置に対して、前記第2の情報処理装置が実行する第2の集計処理の処理結果を自装置に送信する指示を送信する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、
    前記2以上の情報処理装置のうちの第3の情報処理装置から、前記第3の情報処理装置が実行する第2の集計処理を消滅させる消滅依頼を受け付けた場合、自装置の負荷に基づいて、前記第3の情報処理装置が実行する第2の集計処理を消滅させるか否かを判断し、
    前記第3の情報処理装置が実行する第2の集計処理を消滅させると判断した場合、前記第3の情報処理装置が集計する集計対象の情報処理装置群の各情報処理装置に対して、当該各情報処理装置の状態情報の送信先を前記第2の情報処理装置に変更する指示を送信し、
    前記第3の情報処理装置に対して、前記第3の情報処理装置が実行する第2の集計処理を消滅させる指示を送信する、
    ことを特徴とする請求項に記載の情報処理装置。
  4. 前記制御部は、
    前記複数の情報処理装置のうちの第4の情報処理装置から、前記第1の集計処理の実行要求を受け付けた場合、前記第1の集計処理を実行し、
    前記第1の集計処理の処理結果を、前記第4の情報処理装置に送信する、
    ことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムであって、
    前記状態情報を収集する情報処理装置は、
    自装置の負荷と、自装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、前記各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、
    前記第1の集計処理を分散させると判断した場合、前記集計対象の情報処理装置群のうちの自装置を除く2以上の情報処理装置の各情報処理装置に、前記集計対象の情報処理装置群を前記各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、
    前記各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を前記各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、
    前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を自装置に送信する指示を送信する、
    ことを特徴とする情報処理システム。
  6. 複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の負荷を示す負荷情報を含む状態情報を集計する情報処理システムに含まれる、前記状態情報を収集する情報処理装置に、
    自装置の負荷と、自装置が集計する集計対象の情報処理装置群の各情報処理装置の状態情報に含まれる負荷情報が示す負荷とに基づいて、前記各情報処理装置の状態情報を集計する第1の集計処理を分散させるか否かを判断し、
    前記第1の集計処理を分散させると判断した場合、前記集計対象の情報処理装置群のうちの自装置を除く2以上の情報処理装置の各情報処理装置に、前記集計対象の情報処理装置群を前記各情報処理装置の数で分割した各グループに属する情報処理装置の状態情報を集計する第2の集計処理の実行要求を送信し、
    前記各グループに属する情報処理装置に対して、当該情報処理装置の状態情報の送信先を前記各グループに対して第2の集計処理を実行する情報処理装置に変更する指示を送信し、
    前記2以上の情報処理装置の各情報処理装置に対して、当該各情報処理装置が実行する第2の集計処理の処理結果を自装置に送信する指示を送信する、
    処理を実行させることを特徴とする状態情報収集プログラム。
JP2016221968A 2016-11-14 2016-11-14 情報処理装置、情報処理システム、および状態情報収集プログラム Active JP6825323B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016221968A JP6825323B2 (ja) 2016-11-14 2016-11-14 情報処理装置、情報処理システム、および状態情報収集プログラム
US15/807,731 US10379902B2 (en) 2016-11-14 2017-11-09 Information processing device for aggregating load information, information processing system for aggregating load information, and non-transitory computer-readable storage medium recording program for aggregating load information
CN201711104809.9A CN108073456B (zh) 2016-11-14 2017-11-10 信息处理装置和信息处理***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016221968A JP6825323B2 (ja) 2016-11-14 2016-11-14 情報処理装置、情報処理システム、および状態情報収集プログラム

Publications (2)

Publication Number Publication Date
JP2018081392A JP2018081392A (ja) 2018-05-24
JP6825323B2 true JP6825323B2 (ja) 2021-02-03

Family

ID=62107973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016221968A Active JP6825323B2 (ja) 2016-11-14 2016-11-14 情報処理装置、情報処理システム、および状態情報収集プログラム

Country Status (3)

Country Link
US (1) US10379902B2 (ja)
JP (1) JP6825323B2 (ja)
CN (1) CN108073456B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6807354B2 (ja) 2018-07-13 2021-01-06 株式会社日立製作所 ストレージシステムおよび情報管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3573386B2 (ja) 1996-04-02 2004-10-06 株式会社野村総合研究所 負荷制御を行う大規模クライアントサーバーシステム
JP2003186765A (ja) * 2001-12-20 2003-07-04 Fuji Xerox Co Ltd ネットワーク接続デバイス、ネットワーク接続デバイス管理システム、ネットワーク接続デバイス管理方法
US9081620B1 (en) * 2003-09-11 2015-07-14 Oracle America, Inc. Multi-grid mechanism using peer-to-peer protocols
JP2006085372A (ja) * 2004-09-15 2006-03-30 Toshiba Corp 情報処理システム
JP2009251660A (ja) * 2008-04-01 2009-10-29 Canon Inc ネットワークシステム及びその管理構成変更方法、デバイス装置及びその制御方法、並びにプログラム
JP5378946B2 (ja) 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
CN105930289A (zh) * 2010-07-30 2016-09-07 富士通株式会社 多核处理器***、分配程序、控制程序、分配方法以及控制方法
US8886781B2 (en) * 2011-12-13 2014-11-11 Microsoft Corporation Load balancing in cluster storage systems
GB2504737B (en) * 2012-08-08 2016-06-01 Basis Tech Int Ltd Load balancing in data processing system
CN102938790B (zh) * 2012-11-20 2015-10-21 无锡城市云计算中心有限公司 云计算***中的资源分配方法
JP6059558B2 (ja) * 2013-02-26 2017-01-11 日本電信電話株式会社 負荷分散判定システム
US20150236974A1 (en) * 2013-04-26 2015-08-20 Hitachi, Ltd. Computer system and load balancing method
JP6221584B2 (ja) * 2013-09-30 2017-11-01 日本電気株式会社 処理の並列化装置、処理の並列化方法及びプログラム
GB2516995B (en) * 2013-12-18 2015-08-19 Imagination Tech Ltd Task execution in a SIMD processing unit
JP6354290B2 (ja) 2014-04-24 2018-07-11 富士通株式会社 情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム
CN105450537A (zh) * 2014-09-02 2016-03-30 阿尔卡特朗讯 确定节点负载信息及据此进行负载均衡和过载控制

Also Published As

Publication number Publication date
CN108073456B (zh) 2021-10-26
CN108073456A (zh) 2018-05-25
US20180136973A1 (en) 2018-05-17
JP2018081392A (ja) 2018-05-24
US10379902B2 (en) 2019-08-13

Similar Documents

Publication Publication Date Title
JP7166982B2 (ja) トポロジマップ提示システム、トポロジマップ提示方法及びコンピュータプログラム
JP5286192B2 (ja) ストレージシステムの容量を管理する管理計算機及びストレージシステムの容量管理方法
JP2015001828A (ja) 割当プログラム、割当装置および割当方法
EP2248003A1 (en) System and method for automatic storage load balancing in virtual server environments
CN103377285A (zh) 用于增强对存储云去重技术的可靠性的方法与***
JP2009080671A (ja) 計算機システム、管理計算機、及びファイル管理方法
US20160203069A1 (en) Mechanism for providing real time replication status information in a networked virtualization environment for storage management
JP2017507415A (ja) クラウド環境におけるitインフラ管理のための方法とその装置
US20190317787A1 (en) Rebuilding a virtual infrastructure based on user data
US20210271583A1 (en) Hyper-converged infrastructure (hci) log system
US20160048344A1 (en) Distributed caching systems and methods
Sigovan et al. A visual network analysis method for large-scale parallel i/o systems
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US8700572B2 (en) Storage system and method for controlling storage system
JP6825323B2 (ja) 情報処理装置、情報処理システム、および状態情報収集プログラム
JP2012221049A (ja) データセンタシステム管理方法、データセンタシステム、及び管理装置
WO2016103314A1 (ja) 計算機システムの管理システム及び管理方法
US10931750B1 (en) Selection from dedicated source volume pool for accelerated creation of block data volumes
JP5867008B2 (ja) ノード決定プログラム、ノード決定装置およびノード決定方法
US20170308554A1 (en) Auto-determining backup level
JP6878369B2 (ja) ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム
JP2022133993A (ja) ストレージシステム、リソース制御方法、及びリソース制御プログラム
US20180165380A1 (en) Data processing system and data processing method
US10789139B2 (en) Method of rebuilding real world storage environment
JP2022107464A (ja) 情報収集プログラム、情報収集方法および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201228

R150 Certificate of patent or registration of utility model

Ref document number: 6825323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150