JP2018165956A - 情報処理装置、情報処理システム、および情報処理プログラム - Google Patents

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

Info

Publication number
JP2018165956A
JP2018165956A JP2017063772A JP2017063772A JP2018165956A JP 2018165956 A JP2018165956 A JP 2018165956A JP 2017063772 A JP2017063772 A JP 2017063772A JP 2017063772 A JP2017063772 A JP 2017063772A JP 2018165956 A JP2018165956 A JP 2018165956A
Authority
JP
Japan
Prior art keywords
information processing
information
processing device
node
state
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.)
Pending
Application number
JP2017063772A
Other languages
English (en)
Inventor
文彦 河野
Fumihiko Kono
文彦 河野
真一 亀山
Shinichi Kameyama
真一 亀山
篤史 田代
Atsushi Tashiro
篤史 田代
友市 高川
Tomoichi Takagawa
友市 高川
前田 実
Minoru Maeda
実 前田
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 JP2017063772A priority Critical patent/JP2018165956A/ja
Priority to US15/877,426 priority patent/US20180285168A1/en
Priority to CN201810107331.3A priority patent/CN108664326A/zh
Publication of JP2018165956A publication Critical patent/JP2018165956A/ja
Pending legal-status Critical Current

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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】集計処理を実行する情報処理装置を、各情報処理装置が動的に決定すること。【解決手段】図1の(#3−1)で示すように、ノード#3が、ノード#2に、性能情報112#3を送信する。ノード#2は、ノード#3の性能情報112#3を受け付けた場合、図1の(#2−1)で示すように、性能情報受信可能数と、性能情報112を受け付けた数とに基づいて、性能情報112#3を集計する第1の集計処理121#2が実行可能か否かを判断する。性能情報112#3を集計する第1の集計処理121#2が実行可能でないと判断した場合、ノード#2は、図1の(#2−2)で示すように「受信不可」を送信する。そして、ノード#3は、「受信不可」をノード#2から受け付けたことに応じて、図1の(#3−2)で示すように、ノード#2とは異なるノードに性能情報112#3を送信する。【選択図】図1

Description

本発明は、情報処理装置、情報処理システム、および情報処理プログラムに関する。
従来、複数の情報処理装置から、1つのシステムを構築することがある。また、複数の情報処理装置の状態情報を収集、集計して、ある情報処理装置の記憶領域に格納することがある。
関連する先行技術として、例えば、状態情報を収集する収集装置を識別する収集装置情報に基づいて、複数の収集装置の負荷情報を取得し、負荷情報に基づいて収集装置を選択し、選択した収集装置へ監視装置を識別する監視装置情報を通知するものがある。また、複数のノード上に分散配置される複数のDB(DataBase)サーバにおいて、各ノードに関する負荷を監視し、目標より負荷が大きなノード上のDBサーバから、目標より負荷が小さなノード上のDBサーバへとコネクションを移動させ、負荷を均衡させる技術がある。外部ネットワーク、負荷管理装置、内部ネットワークなどから得られる情報から、複数のサーバ群の稼動状況が示された指標を算出し、算出した指標に基づいて、複数のサーバ群の状態を制御する技術がある。また、基本部分から要求を受け取り、サーバコンポーネントをクライアントまたはサーバのいずれで実行するかを決定し、サーバコンポーネントを取得するとともに、決定結果に従ってサーバコンポーネントをクライアントまたはサーバに引き渡す技術がある。
特開2012−194835号公報 国際公開第2012/70292号 特開2011−210225号公報 特開2000−076172号公報
しかしながら、従来技術によれば、複数の情報処理装置の各情報処理装置の状態情報を集計する集計処理を負荷分散する際に、情報処理装置の数が増えるほど、集計処理を実行する情報処理装置を決定することが困難になる。例えば、集計処理を実行する情報処理装置を決定する指標として、各情報処理装置の負荷を参照する場合、各情報処理装置の負荷を示す情報は、ある情報処理装置が有する記憶領域に格納されている。従って、情報処理装置の数が増えるほど上述の記憶領域へのアクセスが増加し、ある情報処理装置の負荷が増大する。
1つの側面では、本発明は、集計処理を実行する情報処理装置を、各情報処理装置が動的に決定することができる情報処理装置、情報処理システム、および情報処理プログラムを提供することを目的とする。
1つの実施態様では、情報処理装置、情報処理システム、および情報処理プログラムは、複数の情報処理装置で構築され、複数の情報処理装置の各情報処理装置で取得された各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる各情報処理装置が、複数の情報処理装置のいずれかの第1の情報処理装置に、各情報処理装置の状態情報を送信し、各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を第1の情報処理装置から受け付けたことに応じて、複数の情報処理装置のうち第1の情報処理装置とは異なる第2の情報処理装置に、各情報処理装置の状態情報を送信する。
一つの側面では、本発明は、集計処理を実行する情報処理装置を、各情報処理装置が動的に決定することが可能となる。
図1は、本実施の形態にかかる情報処理システム100の動作例を示す説明図である。 図2は、情報処理システム100の利用例を示す説明図である。 図3は、ノード#1のハードウェア構成例を示す説明図である。 図4は、情報処理システム100の機能構成例を示す説明図である。 図5は、時系列DB110の記憶内容の一例を示す説明図である。 図6は、取得部401の処理手順を示すフローチャートである。 図7は、取得部401の処理の動作例を示す説明図(その1)である。 図8は、取得部401の処理の動作例を示す説明図(その2)である。 図9は、子集計部402の性能情報受信可能数更新処理手順を示すフローチャートである。 図10は、子集計部402の性能情報受信可能数更新処理の動作例を示す説明図である。 図11は、子集計部402の性能情報受信処理手順を示すフローチャートである。 図12は、子集計部402の性能情報受信処理の動作例を示す説明図である。
以下に図面を参照して、開示の情報処理装置、情報処理システム、および情報処理プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかる情報処理システム100の動作例を示す説明図である。情報処理システム100は、SDS(Software Defined Storage)と呼ばれる技術によって、複数の情報処理装置で構築されるシステムである。ここで、SDSが注目される理由として、IoT(Internet of Things)の普及により、様々な端末から測定情報が取得されることによりデータ量が増加しており、このようなデータの増加に柔軟に対応するためである。
情報処理装置は、例えば、サーバや、ストレージ装置といったコンピュータである。以下、情報処理装置を、「ノード」と呼称する。そして、情報処理システム100には、複数のノードを1つのストレージ装置としてみたてる、分散アーキテクチャが適用できる。また、情報処理システム100は、スケールアウトにより、性能を向上させることができる。
分散アーキテクチャでは、複数のノードの各ノードの状態情報を記憶する時系列DB(DataBase)を利用した性能監視機能を有することができる。性能監視機能は、例えば、各ノードの状態情報の収集、蓄積、参照を行う。また、時系列DBは、複数のノードのうちのある一つのノードが有する。時系列DBを有するノードを、「代表ノード」と呼称する。代表ノードは、情報処理システム100の運用中、基本的に変化しないが、例えば、代表ノードが故障した場合に、他のノードが代表ノードとなることがある。
各ノードの状態情報には、各ノードの性能情報や、各ノードの構成情報、各ノードの処理情報が含まれる。各ノードの性能情報は、例えば、CPU(Central Processing Unit)使用率、ネットワーク利用率、IOPS(Input/Output Per Second)、ディスク使用率である。各ノードの構成情報は、各ノードの物理リソースの構成や、各ノード上で動作する仮想マシンの構成を示す情報である。各ノードの処理情報は、例えば、各ノードのコピー処理等の進捗状況を示す情報である。各ノードの状態情報は、例えば、OSが用意しているstatコールや、ファイル参照により得ることができる。以下では、説明の簡略化のため、各ノードの状態情報が、各ノードの性能情報であるとして説明する。
ここで、実際のシステムでは、単位時間ごとに時系列DBに格納される性能情報は、物理リソースと仮想リソースとを合わせて、数千〜数十万単位となることがある。このとき、時刻ごとの性能情報の合計値や平均値といった集計値、例えば、全ディスクの合計IOPS、平均IOPSの情報は、参照の度に計算すると処理負荷と時間がかかるうえ、集計値が参照される頻度も比較的高い。
例えば、集計値に関して、代表ノードが、各ノードの性能情報を集計したうえで、時系列DBに格納する方法が考えられる。従って、時系列DBには、集計値の計算を行う集計処理の処理結果が記憶されることになる。しかしながら、該当の方法では、集計対象の性能情報を全て代表ノードに集め、代表ノードが集計処理を実行するため、代表ノードのCPUまたはネットワークがボトルネックとなり、ディスク書き込みなどの通常業務に影響がでる可能性がある。
そこで、集計値の計算を行う集計処理を分散させて、複数のノードに負荷を分散させる方法が考えられる。しかしながら、この方法では、ノードの数が増えるほど、集計処理を実行するノードを決定することが困難になる。例えば、集計処理を実行するノードを決定する指標として、時系列DBを参照する場合、ノードの数が増えるほど時系列DBへのアクセスが増加し、代表ノードの負荷が増大する。
また、所定時間ごとにラウンドロビンで集計処理を実行するノードを変更することが考えられる。しかしながら、この方法では、負荷が低いノードが集計処理を実行するように決定されても、所定時間経過後には集計処理を実行するノードを変更することになるため、負荷が高いノードが集計処理を実行するように変更される場合がある。この場合、通常業務に影響がでる可能性がある。
そこで、本実施の形態では、各ノードが、あるノードに性能情報を送信して集計処理が実行不可であることを示す通知を受けた場合、あるノード以外の他のノードに性能情報を送信することについて説明する。
図1を用いて、情報処理システム100の動作例について説明する。図1で示す情報処理システム100は、複数のノードとして、ノード#1、2、3、4、…で構築される。このように、各ノードには、各ノードを識別する番号が対応付けられてもよい。以下、ノードに対応付けられた番号を、単に、「ノードの番号」と称する。また、以下の説明において、「#x」が付与された符号は、ノード#xに関することを示す。xは、ノードの番号を示し、自然数である。また、同種の要素を区別しない場合には、#xが付与されない符号を使用することがある。また、図1では、太い矢印は、他のノードへの指示または処理を示し、通常の矢印は、性能情報または集計値の送信を示す。
図1で示すように、ノード#1が時系列DB110を有するため、ノード#1が代表ノードとなる。また、情報処理システム100は、各ノードの性能情報112を集計する。ここで、性能情報112には、各ノードの負荷を示す負荷情報111が含まれてもよい。負荷情報111は、例えば、CPU使用率やネットワーク使用率である。図1の例では、負荷情報111は、CPU使用率であるとする。
図1の上部では、集計処理が、第0の集計処理120と、第1の集計処理121とに分散されている。そして、代表ノードとなるノード#1が、第0の集計処理120を実行し、ノード#2が、第1の集計処理121を実行する。図1では省略しているが、ノード#4以降のいずれかのノードが、第1の集計処理121を実行する。
第1の集計処理121は、集計対象として、ノード#1〜3の性能情報112#1〜3を収集し、集計した集計値を、第0の集計処理120を実行するノード#1に送信する。第0の集計処理120は、第1の集計処理121から送信された集計値を、さらに集計し、得られた集計値を、時系列DB110に格納する。図1では、ノード#2のCPU使用率が高くなった場合を用いて説明する。なお、ノード#1、#3、#4のCPU使用率は低であるとする。
図1の上部では、ノード#1、#2が、それぞれ性能情報112#1、#2をノード#2に送信した後に、図1の(#3−1)で示すように、ノード#3が、複数のノードのうちのいずれかの第1のノードとして、ノード#2に、性能情報112#3を送信する。第2のノードについては、図1の下部で示す。また、第1のノードは、自ノードになってもよい。
ノード#2は、複数のノードのうちのいずれかの第3のノードとしてノード#3の性能情報112#3を受け付ける。この場合、ノード#2は、図1の(#2−1)で示すように、第1の集計処理121#2を実行可能な性能情報112の数と、性能情報112を受け付けた数とに基づいて、性能情報112#3を集計する第1の集計処理121#2が実行可能か否かを判断する。第1の集計処理121#2を実行可能な性能情報112の数を、以下、「性能情報受信可能数」と称する。そして、性能情報受信可能数は、性能情報112を受け付けた際のノードの負荷に対応する値でもよい。例えば、各ノードは、自身の負荷ごとの性能情報受信可能数を記憶してもよい。例えば、各ノードは、CPU使用率が10[%]、20[%]、…のそれぞれの性能情報受信可能数を記憶する表を有してもよい。
または、各ノードは、全ノードの負荷の平均値と、自身の負荷との差に基づいて、性能情報受信可能数を算出してもよい。全ノードの負荷の平均値について、例えば、代表ノードが定期的に、全ノードの負荷の平均値を各ノードに送信すればよい。
図1の上部の例では、ノード#2の負荷が高く、性能情報受信可能数が2であり、性能情報112を受け付けた数が3であるとする。この場合、ノード#2は、性能情報112#3を集計する第1の集計処理121#2が実行可能でないと判断する。
性能情報112#3を集計する第1の集計処理121#2が実行可能でないと判断した場合、図1の(#2−2)で示すように、性能情報112#3を集計する第1の集計処理121#2が実行可能でないことを示す通知を送信する。以下、第1の集計処理121#2が実行可能でないことを示す通知を、「受信不可」と称する。
そして、ノード#3は、「受信不可」をノード#2から受け付けたことに応じて、図1の(#3−2)で示すように、複数のノードのうち第1のノードとなるノード#2とは異なる第2のノードに、性能情報112#3を送信する。第2のノードは、第1のノードと異なればどのノードでもよいが、第1のノードの番号の次の番号または前の番号のノードであることが好ましい。また、第2のノードが自ノードになってもよい。図1の下部の例では、ノード#3は、自ノードとなるノード#3に、性能情報112#3を送信する。そして、ノード#3は、性能情報112#3を集計する第1の集計処理121#3を実行し、処理結果となる集計値を、ノード#1に送信する。
以上により、情報処理システム100は、第1の集計処理121を実行するノードを各ノードが動的に変更することができる。従って、情報処理システム100は、1つのノードに負荷が集中することを防ぐことができる。また、情報処理システム100は、通常業務によって各ノードの負荷が増加または減少した場合、高負荷なノードに性能情報112の送信が集中することによる通常業務の影響を抑えることができる。
また、図1の(#3−2)では、ノード#3は、「受信不可」をノード#2から受け付けたことに応じて、第2のノードに、性能情報112#3を送信するが、これに限らない。例えば、ノード#3は、ノード#2と通信不可である場合にも、第2のノードに、性能情報112#3を送信してもよい。これにより、情報処理システム100は、災害等によるノードの減少時の影響を最小限に抑えることができる。次に、情報処理システム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は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
図4は、情報処理システム100の機能構成例を示す説明図である。各ノードは、制御部400を有する。制御部400は、取得部401と、子集計部402と、書き込み部404と、を含む。また、代表ノードの制御部400は、さらに、集計部403を有する。制御部400は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したROM302、RAM303、ディスク305などである。また、各部の処理結果は、RAM303や、CPU301のレジスタ、CPU301のキャッシュメモリ等に格納される。
代表ノードは、時系列DB110を有する。時系列DB110の記憶内容の一例は、図5で示す。また、代表ノード以外のノードは、子時系列DB421を有する。子時系列DB421には、自身のノードの性能情報112そのものが格納される。
取得部401は、一定時間間隔で、statシステムコールやファイル参照により、CPU使用率、IOPS、ディスク使用率といった性能情報112を取得する。そして、代表ノード以外の取得部401は、取得した性能情報112そのものを、書き込み部404に送信する。
また、取得部401は、複数のノードのいずれかの第1のノードに、取得した性能情報112を送信する。そして、取得部401は、「受信不可」を第1のノードから受け付けたことに応じて、複数のノードのうち第1のノードとは異なる第2のノードに、取得した性能情報112を送信する。ここで、第2のノードは、第1のノードの番号の次の番号または前の番号を有するノードであることが好ましい。
子集計部402は、各時刻の性能情報の一部の合計値や平均値を算出し、算出結果を、集計部403に送信する。具体的には、子集計部402は、集計処理実行部411と、処理結果送信部412と、算出部413と、判断部414と、送信部415とを有する。ここで、図4では、子集計部402#3が、集計処理実行部411〜送信部415を有するように示したが、他の子集計部402も、集計処理実行部411〜送信部415を有する。
集計処理実行部411は、取得部401から送信された性能情報112を集計する。例えば、集計処理実行部411は、性能情報112の集計値として、合計値や平均値を算出する。集計処理実行部411は、図1に示した第1の集計処理121に相当する。また、集計部403は、図1に示した第0の集計処理120に相当する。
処理結果送信部412は、集計処理実行部411の処理結果を、集計部403に送信する。
算出部413は、性能情報受信可能数を算出する。具体的には、算出部413は、代表ノードから複数のノードの負荷の平均値を受け付ける。そして、算出部413は、複数のノードの負荷の平均値と、自ノードの負荷との差に基づいて、性能情報受信可能数を算出する。例えば、算出部413は、複数のノードのCPU使用率の平均値と、自ノードのCPU使用率との差を、1つの性能情報112の集計にかかるCPU使用率で除した値を、性能情報受信可能数として算出してもよい。より具体的な算出方法については、図6で示す。
判断部414について、判断部414は、複数のノードのいずれかの第3のノードから第3のノードの性能情報112を受け付けたとする。この場合、判断部414は、第3のノードの性能情報112を受け付けた際の性能情報受信可能数と、性能情報112を受け付けた数とに基づいて、第3のノードの性能情報112を集計する集計処理が実行可能か否かを判断する。ここで、第3のノードの性能情報112を受け付けた際の性能情報受信可能数は、算出部413によって算出した値でもよい。または、算出部413は、自ノードの負荷に応じた性能情報受信可能数を記憶する表を参照して、第3のノードの性能情報112を受け付けた際の自ノードの負荷に対応する性能情報受信可能数を取得してもよい。
送信部415は、第3のノードの性能情報112を集計する集計処理が実行可能でないと判断した場合、第3のノードに、「受信不可」を送信する。
集計部403は、子集計部402からの集計結果から、複数のノード全体における各時刻の性能情報112の合計値や、平均値を算出し、書き込み部404に集計結果を送信する。
代表ノードの書き込み部404は、集計部403からの集計値に時刻情報を対応付けて、時系列DB110に書き込む。また、代表ノード以外の書き込み部404は、各ノードの性能情報112に時刻情報を対応付けて、子時系列DB421に書き込む。
図5は、時系列DB110の記憶内容の一例を示す説明図である。図5に示す時系列DB110には、CPU使用率に関する情報が格納されている。そして、図5に示す時系列DB110は、レコード501−1〜4を有する。
具体的には、図5に示す時系列DB110は、時間と、CPU平均と、各CPU使用率というフィールドを含む。ここで、図5では、各CPU使用率フィールドは、表示の簡略化のため、各ノードのCPUの符号だけを表示する。時間フィールドには、CPU使用率を計測した時間が格納される。CPU平均フィールドには、情報処理システム100内の全てのCPU使用率の平均値が格納される。各CPU使用率フィールドには、各CPUの使用率が格納される。
また、時系列DB110には、ネットワークに関する情報が格納されてもよい。ネットワークに関する情報が格納されている場合、時系列DB110は、時間と、NIC平均と、各NICの利用率というフィールドを含む。時間フィールドには、ネットワーク利用率を計測した時間が格納される。NIC平均フィールドには、情報処理システム100内の全てのNICの利用率の平均値が格納される。各NICの利用率フィールドには、各NICの利用率が格納される。
(取得部401の処理について)
次に、取得部401が行う処理について、図6〜図8を用いて説明する。
図6は、取得部401の処理手順を示すフローチャートである。取得部401は、性能情報送信先ノード#nを自ノードの番号に設定する(ステップS601)。次に、取得部401は、自ノードの性能情報を取得し、ノード#nの子集計部402に性能情報を送信する(ステップS602)。
そして、取得部401は、ノード#nの子集計部402と通信不可、またはノード#nの子集計部402の応答が「受信不可」か否かを判断する(ステップS603)。ノード#nの子集計部402と通信不可、またはノード#nの子集計部402の応答が「受信不可」である場合(ステップS603:Yes)、取得部401は、性能情報送信先ノード#nを、隣のノードへ変更する(ステップS604)。具体的には、取得部401は、下記(1)式を実行することにより、性能情報送信先ノード#nを、隣のノードへ変更する。
n=(n mod 情報処理システム100のノード数)+1 …(1)
ここで、modは、割り算の余りを取得する計算であることを示す。例えば、情報処理システム100の数が6であり、n=6である場合、取得部401は、(1)式を用いて、下記のようにnを更新する。
n=(6 mod 6)+1=0+1=1
一方、ノード#nの子集計部402と通信不可でなく、かつ、ノード#nの子集計部402の応答が「受信不可」でない場合(ステップS603:No)、または、ステップS604の処理終了後、取得部401は、利用者端末201から性能情報の取得終了を受け付けたか否かを判断する(ステップS605)。利用者端末201から性能情報の取得終了を受け付けていない場合(ステップS605:No)、取得部401は、次の時刻の性能情報について、ステップS602の処理に移行する。一方、利用者端末201から性能情報の取得終了を受け付けた場合(ステップS605:Yes)、取得部401は、一連の処理を終了する。
次に、図6で示した取得部401の処理の具体的な動作例を、図7、図8を用いて説明する。
図7は、取得部401の処理の動作例を示す説明図(その1)である。また、図8は、取得部401の処理の動作例を示す説明図(その2)である。図7と図8とでは、図6で示した取得部401の処理を、取得部401#2が実行する例を示す。また、図7と図8とでは、処理主体となる取得部401#2や、処理対象となる機能部やデータを黒の塗りつぶしで、かつ、文字を白として表示する。
図7の上部は、取得部401#2がステップS601の処理を実行する際の情報処理システム100の状態を示す。取得部401#2は、性能情報送信先ノード#nを自ノードの番号nを、自ノードの番号2に設定する。図7の下部は、取得部401#2がステップS602の処理を実行する際の情報処理システム100の状態を示す。取得部401#2は、性能情報112#2を取得し、設定されている性能情報送信先、この場合ではノード#2の子集計部402#2に、取得した性能情報を送信する。
図8の上部は、ノード#nの子集計部に通信不可、またはノード#nの子集計部の応答が「受信不可」となり、取得部401#2がステップS604の処理を実行する際の情報処理システム100の状態を示す。ステップS604の処理が実行されるときとは、送信先の子集計部402が負荷状況などの理由で性能情報を受信できないとなった場合の処理である。従って、ステップS604の処理は、送信先の子集計部402の負荷が高い場合、隣のノードの子集計部402へ性能情報送信先を移すという処理を意味する。具体的には、取得部401#2は、下記のように(1)式を実行する。
n=(2 mod 6)+1=3
上述したように、n=3が得られたため、取得部401#2は、nを3に更新する。
図8の下部は、取得部401#2がステップS604の処理を実行し、ステップS605:Noとなり、取得部401#2が再びステップS602の処理を実行する際の情報処理システム100の状態を示す。取得部401#2は、性能情報112#2を取得し、設定されている性能情報送信先、この場合ではノード#3の子集計部402#3に、取得した性能情報を送信する。
(子集計部402の処理について)
子集計部402は、性能情報受信可能数更新処理と、性能情報受信処理とを実行する。性能情報受信可能数更新処理について、図9、図10を用いて説明し、性能情報受信処理について、図11、図12を用いて説明する。
図9は、子集計部402の性能情報受信可能数更新処理手順を示すフローチャートである。子集計部402は、単位時間が経過したか否かを判断する(ステップS901)。単位時間は、どのような時間間隔でもよく、例えば、1分間である。単位時間が経過していない場合(ステップS901:No)、ステップS901の処理をもう一度実行する。
一方、単位時間が経過した場合(ステップS901:Yes)、子集計部402は、集計部403#1から全ノードの負荷平均を受信する(ステップS902)。全ノードの負荷平均は、情報処理システム100内の全ノードのCPU使用率の平均値でもよいし、情報処理システム100内の全ノードのネットワーク利用率でもよい。また、集計部403#1は、全ノードに対して定期的に、全ノードの負荷平均を送信する。
次に、子集計部402は、性能情報を受信可能なノードの最大数、すなわち性能情報受信可能数n_maxを算出する(ステップS903)。具体的には、子集計部402は、下記(2)式を実行することにより、n_maxを算出する。
n_max=floor((all−self−margin)/offset) …(2)
ここで、n_maxの初期値は、例えば、正の無限大である。また、floor()は、引数の数値を、引数より小さいか等しい整数のうち最大の値を返す関数である。また、allは、全ノードの負荷平均である。selfは、自ノードの負荷平均である。また、marginは、1ノードの性能情報収集に用いると予測される負荷である。また、offsetは、負荷目標幅と平均値との差である。そして、allは、ステップS902の処理で得られる値であり、selfは、子時系列DB421から得られる値である。marginは、例えば、事前に計測した結果、1ノードの性能情報収集に用いたCPU使用率を代入してもよいし、情報処理システム100の管理者等によって予め決められた値でもよい。offsetは、例えば、情報処理システム100の管理者等によって予め決められた値である。
そして、子集計部402は、利用者端末201から性能情報の取得終了を受け付けたか否かを判断する(ステップS904)。利用者端末201から性能情報の取得終了を受け付けていない場合(ステップS904:No)、子集計部402は、ステップS901の処理に移行する。一方、利用者端末201から性能情報の取得終了を受け付けた場合(ステップS904:Yes)、子集計部402は、性能情報受信可能数更新処理を終了する。
図10は、子集計部402の性能情報受信可能数更新処理の動作例を示す説明図である。図10では、図9で示した性能情報受信可能数更新処理の動作について説明する。図10では、負荷平均として、CPU使用率の平均値を用いるとする。また、図10では、子集計部402#2が性能情報受信可能数更新処理を実行する例を用いて説明する。
図10の上部は、子集計部402がステップS902の処理を実行する際の情報処理システム100の状態を示す。集計部403#1は、単位時間範囲の全CPU使用率平均値を算出し、算出した全CPU使用率平均値を全ての子集計部402に送信し、子集計部402は、全CPU使用率平均値を受信する。例えば、集計部403#1は、全CPU使用率平均値を50と算出し、50を子集計部402#1〜6に送信する。そして、子集計部402#1〜6は、50を受信する。
図10で示す表1001は、子集計部402#2によるステップS902の処理実行後における(2)式の引数と戻り値との一覧を示す。表1001が示すように、50を受信することにより、(2)式の引数の1つであるallの値が決定する。
図10の下部は、子集計部402がステップS903の処理を実行する際の情報処理システム100の状態を示す。子集計部402#2は、子時系列DB421から、単位時間範囲の自身のCPU使用率平均値を算出し、(2)式の引数の1つであるselfの値を得る。そして、子集計部402#2は、(2)式を実行し、n_maxの値を得る。例えば、子集計部402#2は、自身のCPU使用率平均値を15と算出する。
図10で示す表1002は、子集計部402#2によるステップS903の処理実行後における(2)式の引数と戻り値との一覧を示す。表1002が示すように、15を算出することにより、(2)式の引数の1つであるselfの値が決定し、(2)式により、下記のようにn_maxを算出する。
n_max=floor((all−self−margin)/offset)
⇔n_max=floor((50−15−10)/8)=floor(3.125)=3
図11は、子集計部402の性能情報受信処理手順を示すフローチャートである。子集計部402は、ノード#nの取得部401から時刻tの性能情報を受信する(ステップS1101)。次に、子集計部402は、時刻tが初期時刻、または1つ前の時刻の性能情報の集計済みか否かを判断する(ステップS1102)。
時刻tが初期時刻でなく、かつ、1つ前の時刻の性能情報の集計済みでない場合(ステップS1102:No)、子集計部402は、一つ前の時刻(t−1)の性能情報を集計し、集計した性能情報を集計部403#1へ送信する(ステップS1103)。ステップS1103の処理として、具体的には、子集計部402は、Aggregated(t−1)=trueとする。ここで、Aggregated(t)は、時刻tの性能情報収集済みフラグである。Aggregated(t)の初期値は、falseである。
時刻tが初期時刻である、または1つ前の時刻の性能情報の集計済みである場合(ステップS1102:Yes)、または、ステップS1103の処理終了後、子集計部402は、性能情報受信数を更新する(ステップS1104)。ステップS1104の処理として、具体的には、子集計部402は、received(t)=received(t)+1を行う。ここで、received(t)は、時刻tの性能情報を受信した数である。received(t)の初期値は、0である。
次に、子集計部402は、ノード減設などで将来性能情報が受信できない状況になる、または受信数が性能情報受信可能数を超えるか否かを判断する(ステップS1105)。ステップS1105の処理として、子集計部402は、例えば、利用者がノードの保守を行うため、ノード減設の予約を行うコマンドを利用者端末201から受け付けた場合に、将来性能情報が受信できない状況になると判断する。また、子集計部402は、受信数が性能情報受信可能数を超えるかについては、(received(t)>n_max)となった場合、受信数が性能情報受信可能数を超えたと判断する。
ノード減設などで将来性能情報が受信できない状況になる、または受信数が性能情報受信可能数を超える場合(ステップS1105:Yes)、子集計部402は、ノード#nの取得部に「受信不可」を通知する(ステップS1106)。
ノード減設などで将来性能情報が受信できない状況ではない、かつ受信数が性能情報受信可能数以下である場合(ステップS1105:No)、または、ステップS1106の処理終了後、子集計部402は、利用者端末201から性能情報の取得終了を受け付けたか否かを判断する(ステップS1107)。利用者端末201から性能情報の取得終了を受け付けていない場合(ステップS1107:No)、子集計部402は、ステップS1101の処理に移行する。一方、利用者端末201から性能情報の取得終了を受け付けた場合(ステップS1107:Yes)、子集計部402は、性能情報受信処理を終了する。
図12は、子集計部402の性能情報受信処理の動作例を示す説明図である。図12では、処理主体となる子集計部402#2や、処理対象となる機能部を黒の塗りつぶしで、かつ、文字を白として表示する。また、図12では、図12の上部で示すように、取得部401#1、#2が、子集計部402#2に性能情報を送信するとする。
図12の中部では、子集計部402#2のn_maxが2であり、子集計部402#2が、取得部401#1、2から、ある時刻tにおける性能情報を受信した状態を示す。この場合、ステップS1105の処理において、received(t)=2≦2となるため、子集計部402#2は、ステップS1105:Noと判断する。そして、子集計部402#2は、ステップS1103において、時刻tの性能情報を集計し、集計した性能情報を集計部403#1に送信する。
図12の下部では、子集計部402#2の負荷が上昇した結果、子集計部402#2のn_maxが1となり、子集計部402#2が、取得部401#1から時刻t+1における性能情報を受信した後、子集計部402#2から性能情報を受信した状態を示す。この場合、ステップS1105の処理において、received(t)=2>1となるため、子集計部402#2は、ステップS1105:Yesと判断する。そして、子集計部402#2は、ステップS1106において、ノード#2の取得部401#2に「受信不可」を通知する。
以上説明したように、本実施の形態における各ノードは、第1のノードに性能情報112を送信して「受信不可」を受け付けた場合、第1のノード以外の第2のノードに性能情報112を送信する。これにより、各ノードは、子集計部402を実行するノードを、各ノードが動的に変更することができる。
また、本実施の形態における各ノードは、第3のノードから性能情報112を受け付けたことに応じて、性能情報受信可能数と、性能情報を受け付けた数とに基づいて、第3のノードに「受信不可」を送信するか判断してもよい。これにより、各ノードの負荷が高い場合には、各ノードは、第3のノードの性能情報112の集計を行わなくてよくなるため、負荷が高いときにこれ以上負荷が高くなることを抑制することができる。
また、本実施の形態における各ノードは、全ノードの負荷の平均値と、自身のノードの負荷の平均値との差に基づいて、性能情報受信可能数を算出してもよい。これにより、情報処理システム100内で負荷の低いノードに、性能情報112の集計をさせることができるため、各ノードに均等になるような負荷分散を行うことができる。
また、本実施の形態における各ノードは、第1のノードから「受信不可」を受け付けた場合、第2のノードとして、第1のノードの番号の次の番号または前の番号のノードに、性能情報112を送信してもよい。これにより、各ノードは、複数のノードのうち性能情報112を送信する機会がないノードがないようにすることができる。具体的には、(1)式では、1を加算しているが、情報処理システム100のノード数と約数を持つ値、言い換えれば、互いに素とならない数を加算すると、複数のノードのうち性能情報112を送信することがないノードが発生してしまう。また、情報処理システム100のノード数と互いに素となる1以外の数を加算する場合は、情報処理システム100のノード数が変化しなければ、複数のノードのうち性能情報112を送信する機会がないノードがないようにできる。しかしながら、情報処理システム100のノード数は、増設、減設によって変化する値であり、複数のノードのうち性能情報112を送信する機会がないノードが発生する可能性がある。従って、第2のノードとして第1のノードの番号の次の番号または前の番号のノードに性能情報112を送信することにより、各ノードは、複数のノードのうち性能情報112を送信する機会がないノードがないようにすることができる。
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置であって、
前記複数の情報処理装置のいずれかの第1の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第1の情報処理装置とは異なる第2の情報処理装置に、前記各情報処理装置の状態情報を送信する、
制御部を有することを特徴とする情報処理装置。
(付記2)前記各情報処理装置は、前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数を記憶しており、
前記制御部は、
前記複数の情報処理装置のいずれかの第3の情報処理装置から前記第3の情報処理装置の状態情報を受け付けたことに応じて、前記第3の情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記第3の情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記第3の情報処理装置に、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記状態情報には、前記各情報処理装置の負荷を示す負荷情報を含み、
前記制御部は、
前記各情報処理装置の状態情報を集計する集計処理の処理結果を記憶する情報処理装置から前記複数の情報処理装置の負荷の平均値を受信したことに応じて、前記複数の情報処理装置の負荷の平均値と前記各情報処理装置の負荷との差に基づいて、前記集計処理を実行可能な状態情報の数を算出し、
前記第3の情報処理装置から前記第3の情報処理装置の状態情報を受け付けた場合、算出した前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断する、
ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記各情報処理装置には、前記各情報処理装置を識別する番号が対応付けられており、
前記制御部は、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記第2の情報処理装置として前記各情報処理装置に対応付けられた番号の次の番号または前の番号が対応付けられた情報処理装置に、前記各情報処理装置の状態情報を送信する、
ことを特徴とする付記1〜3のいずれか一つに記載の情報処理装置。
(付記5)複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムであって、
前記各情報処理装置は、
前記各情報処理装置の負荷に対応する前記各情報処理装置の状態情報を集計する集計処理を実行可能な状態情報の数を記憶し、
前記複数の情報処理装置のいずれかの第1の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記第1の情報処理装置は、
前記各情報処理装置から前記各情報処理装置の状態情報を受け付けたことに応じて、前記各情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記各情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記各情報処理装置に、前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信し、
前記各情報処理装置は、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第1の情報処理装置とは異なる第2の情報処理装置に、前記各情報処理装置の状態情報を送信する、
ことを特徴とする情報処理システム。
(付記6)前記状態情報には、前記各情報処理装置の負荷を示す負荷情報を含み、
前記第1の情報処理装置は、
前記各情報処理装置の状態情報を集計する集計処理の処理結果を記憶する情報処理装置から前記複数の情報処理装置の負荷の平均値を受信したことに応じて、前記複数の情報処理装置の負荷の平均値と前記各情報処理装置の負荷との差に基づいて、前記集計処理を実行可能な状態情報の数を算出し、
前記各情報処理装置から前記各情報処理装置の状態情報を受け付けた場合、算出した前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記各情報処理装置の状態情報を集計可能か否かを判断する、
ことを特徴とする付記5に記載の情報処理システム。
(付記7)複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置に、
前記複数の情報処理装置のいずれかの第1の情報処理装置に、前記各情報処理装置の状態情報を送信し、
前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第1の情報処理装置とは異なる第2の情報処理装置に、前記各情報処理装置の状態情報を送信する、
処理を実行させることを特徴とする情報処理プログラム。
(付記8)前記各情報処理装置は、前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数を記憶しており、
前記各情報処理装置に、
前記複数の情報処理装置のいずれかの第3の情報処理装置から前記第3の情報処理装置の状態情報を受け付けたことに応じて、前記第3の情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
前記第3の情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記第3の情報処理装置に、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信する、
処理を実行させることを特徴とする付記7に記載の情報処理プログラム。
#1〜#6 ノード
100 情報処理システム
110 時系列DB
111 負荷情報
112 性能情報
120、121 集計処理
400 制御部
401 取得部
402 子集計部
403 集計部
411 集計処理実行部
412 処理結果送信部
413 算出部
414 判断部
415 送信部

Claims (6)

  1. 複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置であって、
    前記複数の情報処理装置のいずれかの第1の情報処理装置に、前記各情報処理装置の状態情報を送信し、
    前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第1の情報処理装置とは異なる第2の情報処理装置に、前記各情報処理装置の状態情報を送信する、
    制御部を有することを特徴とする情報処理装置。
  2. 前記各情報処理装置は、前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数を記憶しており、
    前記制御部は、
    前記複数の情報処理装置のいずれかの第3の情報処理装置から前記第3の情報処理装置の状態情報を受け付けたことに応じて、前記第3の情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
    前記第3の情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記第3の情報処理装置に、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記状態情報には、前記各情報処理装置の負荷を示す負荷情報を含み、
    前記制御部は、
    前記各情報処理装置の状態情報を集計する集計処理の処理結果を記憶する情報処理装置から前記複数の情報処理装置の負荷の平均値を受信したことに応じて、前記複数の情報処理装置の負荷の平均値と前記各情報処理装置の負荷との差に基づいて、前記集計処理を実行可能な状態情報の数を算出し、
    前記第3の情報処理装置から前記第3の情報処理装置の状態情報を受け付けた場合、算出した前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記第3の情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断する、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記各情報処理装置には、前記各情報処理装置を識別する番号が対応付けられており、
    前記制御部は、
    前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記第2の情報処理装置として前記各情報処理装置に対応付けられた番号の次の番号または前の番号が対応付けられた情報処理装置に、前記各情報処理装置の状態情報を送信する、
    ことを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムであって、
    前記各情報処理装置は、
    前記各情報処理装置の負荷に対応する前記各情報処理装置の状態情報を集計する集計処理を実行可能な状態情報の数を記憶し、
    前記複数の情報処理装置のいずれかの第1の情報処理装置に、前記各情報処理装置の状態情報を送信し、
    前記第1の情報処理装置は、
    前記各情報処理装置から前記各情報処理装置の状態情報を受け付けたことに応じて、前記各情報処理装置の状態情報を受け付けた際の前記各情報処理装置の負荷に対応する前記集計処理を実行可能な状態情報の数と、前記状態情報を受け付けた数とに基づいて、前記各情報処理装置の状態情報を集計する集計処理が実行可能か否かを判断し、
    前記各情報処理装置の状態情報を集計する集計処理が実行可能でないと判断した場合、前記各情報処理装置に、前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を送信し、
    前記各情報処理装置は、
    前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第1の情報処理装置とは異なる第2の情報処理装置に、前記各情報処理装置の状態情報を送信する、
    ことを特徴とする情報処理システム。
  6. 複数の情報処理装置で構築され、前記複数の情報処理装置の各情報処理装置で取得された前記各情報処理装置の状態を示す状態情報を集計する情報処理システムに含まれる前記各情報処理装置に、
    前記複数の情報処理装置のいずれかの第1の情報処理装置に、前記各情報処理装置の状態情報を送信し、
    前記各情報処理装置の状態情報を集計する集計処理が実行可能でないことを示す通知を前記第1の情報処理装置から受け付けたことに応じて、前記複数の情報処理装置のうち前記第1の情報処理装置とは異なる第2の情報処理装置に、前記各情報処理装置の状態情報を送信する、
    処理を実行させることを特徴とする情報処理プログラム。
JP2017063772A 2017-03-28 2017-03-28 情報処理装置、情報処理システム、および情報処理プログラム Pending JP2018165956A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017063772A JP2018165956A (ja) 2017-03-28 2017-03-28 情報処理装置、情報処理システム、および情報処理プログラム
US15/877,426 US20180285168A1 (en) 2017-03-28 2018-01-23 Information processing apparatus and information processing system
CN201810107331.3A CN108664326A (zh) 2017-03-28 2018-02-02 信息处理设备和信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017063772A JP2018165956A (ja) 2017-03-28 2017-03-28 情報処理装置、情報処理システム、および情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2018165956A true JP2018165956A (ja) 2018-10-25

Family

ID=63669403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017063772A Pending JP2018165956A (ja) 2017-03-28 2017-03-28 情報処理装置、情報処理システム、および情報処理プログラム

Country Status (3)

Country Link
US (1) US20180285168A1 (ja)
JP (1) JP2018165956A (ja)
CN (1) CN108664326A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7238376B2 (ja) * 2018-12-14 2023-03-14 富士通株式会社 情報処理システム及び情報処理システムの制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100574283C (zh) * 2007-06-12 2009-12-23 华为技术有限公司 上、下行传输方法及汇聚节点
US8849749B2 (en) * 2010-05-14 2014-09-30 Oracle International Corporation Load balancing in parallel database systems using multi-reordering
CN102708011B (zh) * 2012-05-11 2014-03-26 南京邮电大学 一种云计算平台自适应任务调度方法
CN103338495B (zh) * 2013-07-04 2014-05-14 南京信息工程大学 基于leps协议的双向能量均衡无线传感网路由方法
US9264308B2 (en) * 2013-12-27 2016-02-16 Dell Products L.P. N-node virtual link trunking (VLT) systems data plane
WO2016155816A1 (en) * 2015-04-01 2016-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for monitoring of network performance for container virtualization
WO2017209955A1 (en) * 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. High availability for virtual machines

Also Published As

Publication number Publication date
US20180285168A1 (en) 2018-10-04
CN108664326A (zh) 2018-10-16

Similar Documents

Publication Publication Date Title
US11237870B1 (en) Dynamically modifying program execution capacity
JP6248560B2 (ja) 管理プログラム、管理方法、および管理装置
US9098328B2 (en) Systems and methods for event stream processing
US10360083B2 (en) Attributing causality to program execution capacity modifications
JP6949045B2 (ja) 分散クラスタ型訓練方法及び装置
CN108733509B (zh) 用于在集群系统中备份和恢复数据的方法和系统
CN107832153B (zh) 一种Hadoop集群资源自适应分配方法
US9703285B2 (en) Fair share scheduling for mixed clusters with multiple resources
CN104335137B (zh) 管理计算系统的功耗和性能
US9514162B2 (en) Smart polling frequency
US8904144B1 (en) Methods and systems for determining at risk index for storage capacity
JP5324914B2 (ja) ストレージリソースを割り振る方法および装置
CN113544647A (zh) 云计算系统中使用虚拟机系列建模的容量管理
US8307011B2 (en) System and method for determining overall utilization
JP6116102B2 (ja) クラスタシステム、および、負荷分散方法
JP2018165956A (ja) 情報処理装置、情報処理システム、および情報処理プログラム
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
CN112118314A (zh) 负载均衡方法和装置
CN109753338A (zh) 虚拟gpu使用率的检测方法和装置
US11366695B2 (en) System and method for assisting charging to use of accelerator unit
US7299265B2 (en) Distributed computing system selecting a service master for each service by an elected global master for managing requests for that service
JP2020038506A (ja) 情報処理システム、情報処理方法、及び、プログラム
US10922024B1 (en) Self-protection against serialization incompatibilities
US10379902B2 (en) 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
JP6374059B2 (ja) コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ