(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110340
(43)【公開日】2024-08-15
(54)【発明の名称】性能情報収集プログラム、性能情報収集方法、及び情報処理装置
(51)【国際特許分類】
G06F 11/34 20060101AFI20240807BHJP
【FI】
G06F11/34 109
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023014882
(22)【出願日】2023-02-02
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】山岡 茉莉
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA11
5B042GA23
5B042MA08
5B042MA14
5B042MC22
5B042MC33
(57)【要約】
【課題】情報処理装置が性能情報を計測及び送信する負担を軽減する。
【解決手段】性能分析の対象の情報処理装置は、実行する複数のプロセスのそれぞれを識別するための第1の識別情報と、複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で第1の識別情報及び第2の識別情報の双方が一致する場合には、情報処理装置について予め定められた複数の性能情報のなかで先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を他のプロセスに付随して計測する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
性能分析の対象の情報処理装置において実行される複数のプロセスのそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、
前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記対象の情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する、
処理をコンピュータに実行させる、性能情報収集プログラム。
【請求項2】
前記第1の識別情報及び前記第2の識別情報の何れか一方を親ノードとし他方を子孫ノードとして含む木構造のデータ構造を生成し、
前記木構造を用いた深さ優先探索を用いて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報を比較し、
前記比較の結果に基づいて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致するか否かを判断する、
処理を前記コンピュータに実行させる、請求項1に記載の性能情報収集プログラム。
【請求項3】
前記木構造の前記データ構造は、
前記第1の識別情報を前記子孫ノードとし、前記第2の識別情報を前記親ノードとし、前記複数の性能情報のうちで計測された性能情報をそれぞれ葉ノードとして含む、
請求項2に記載の性能情報収集プログラム。
【請求項4】
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随する前記複数の性能情報の計測を抑制する、
処理を前記コンピュータに実行させる、請求項1に記載の性能情報収集プログラム。
【請求項5】
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随して前記第1の性能情報を再計測する、
処理を前記コンピュータに実行させる、請求項1に記載の性能情報収集プログラム。
【請求項6】
性能分析の対象の情報処理装置において実行される複数のプロセスのそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、
前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記対象の情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する、
処理をコンピュータが実行する、性能情報収集方法。
【請求項7】
性能分析の情報処理装置が実行する複数のプロセスのそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、
前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する、
プロセッサを有する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、性能情報収集プログラム、性能情報収集方法、及び情報処理装置に関する。
【背景技術】
【0002】
計算プロセスを実行する情報処理装置から取得した性能情報(パフォーマンス情報)に基づいて性能低下原因等を発見するシステム性能分析が知られている。システム性能分析においては、性能分析の対象となる情報処理装置において、ジョブに含まれる各プロセスに付随して性能情報が計測される。計測して得られた性能情報が分析装置(例えば、収集サーバ)に送信される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開2007/060721号
【特許文献2】特開平11-327953号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
計測すべき性能情報の種類数の増加に伴って、性能分析の対象となる情報処理装置が性能情報を計測する負担及び性能情報を分析装置に送信する負担が増大する。
【0005】
1つの側面では、本発明は、対象の情報処理装置が性能情報を計測及び送信する負担を軽減することを目的の1つとする。
【課題を解決するための手段】
【0006】
1つの側面では、性能情報収集プログラムは、コンピュータに以下の処理を実行させる。前記処理は、性能分析の対象の情報処理装置において実行される複数のプロセスのそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得する。また、前記処理は、前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記対象の情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する。
【発明の効果】
【0007】
1つの側面では、本発明は、性能分析の対象の情報処理装置が性能情報を計測及び送信する負担を軽減することができる。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係るシステムの構成例を示す図である。
【
図2】一実施形態に係るターゲットサーバを実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
【
図3】
図1に示すシステムにおけるシステム性能分析について説明する図である。
【
図4】比較例におけるターゲットサーバにおけるカウンタ数と性能情報の種類数との関係を示す図である。
【
図5】一実施形態に係る複数の性能情報と性能情報セットとの関係の一例を示す図である。
【
図6】一実施形態に係るターゲットサーバによるプロセス同一性判断処理の一例を示す図である。
【
図7】一実施形態に係るターゲットサーバによる性能情報の計測処理の一例を示す図である。
【
図8】一実施形態に係るターゲットサーバの機能構成例を示すブロック図である。
【
図9】一実施形態に係る木構造に基づくデータ探索の一例を示す図である。
【
図10】一実施形態に係る木構造への新たなノードの追加処理の一例を示す図である。
【
図11】一実施形態に係る木構造に基づくデータ探索の他の例を示す図である。
【
図12】一実施形態に係る木構造への新たな葉ノードの追加処理の一例を示す図である。
【
図13】複数の性能情報のうちで複数の性能情報が全て計測済みである場合の処理の第1例を示す図である。
【
図14】複数の性能情報のうちで複数の性能情報が全て計測済みである場合の処理の第2例を示す図である。
【
図15】一実施形態に係るターゲットサーバによる性能情報収集処理の動作例を示すフローチャートである。
【
図16】一実施形態に係るターゲットサーバによるプロセス同一性判断処理の動作例を示す図である。
【
図17】一実施形態に係るターゲットサーバによる性能情報選択及び計測処理の動作例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形又は技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0010】
[A]システムの一例の説明
図1は、一実施形態に係るシステム1の構成例を示す図である。
【0011】
システム1は、ユーザ端末2等から入力されたジョブ3を処理する。ジョブ3は、OS(Operating System)を構成するシェル(shell)から入力される処理単位である。
【0012】
ジョブ3は、複数のプロセス4を含む。プロセス4は、メモリ上で実行状態にあるプログラムであってよく、OSを構成するカーネルからみた処理単位である。プロセス4は、計算プロセスとも呼ばれる。現在のプロセス4をプロセス4-iと称し、既に実行した先行した1以上のプロセス4を先行プロセス4-tと称する場合がある。現在のプロセス4-iは、他のプロセスの一例である。
【0013】
本実施形態のシステム1は、量子シミュレータ分野、及びHPC(high-performance computing)分野等の種々の分野に広く用いられる。特に、量子シミュレータ分野、及びHPC分野におけるジョブ3においては、共通する複数のプロセス4が繰り返し実行される傾向を有する。システム1は、当該傾向を利用して、複数のターゲットサーバ100と収集サーバ20との間で通信される情報量を削減する。
【0014】
図1に示される例では、システム1は、ジョブスケジューラ10、収集サーバ20、及び複数のターゲットサーバ100-1,100-2、・・・100-N(ターゲットサーバ100と総称する場合がある)を有する。
【0015】
ジョブスケジューラ10は、システム1において複数のジョブ3の起動及び終了を制御する。ジョブスケジューラ10は、ジョブ3の実行状態及び終了状態を監視又は報告してよい。ジョブスケジューラ10は、一例において、ジョブ管理システムと称される。
【0016】
収集サーバ20は、各ターゲットサーバ100から複数の性能情報5を収集する。収集サーバ20は、収集した複数の性能情報5に基づいて、システム性能分析を行なう。システム性能分析結果は、ユーザ端末2等を通じてユーザに報告されてよい。
【0017】
ターゲットサーバ100は、ジョブ3に含まれるプロセス4を実行する情報処理装置の一例である。複数のターゲットサーバ100がターゲットサーバ群を構成する。ターゲットサーバ100は、システム性能分析の対象となる情報処理装置である。ターゲットサーバ100-1を一例としてターゲットサーバ100の構成を示す。ターゲットサーバ100-2~100-Nの構成も、ターゲットサーバ100-1の構成と同様である。
【0018】
[B]ハードウェア構成例
一実施形態に係るターゲットサーバ100の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、ターゲットサーバ100の機能のうちの少なくとも一部は、クラウド環境により提供されるHW(Hardware)リソース及びNW(Network)リソースを用いて実現されてもよい。
【0019】
図2は、一実施形態に係るターゲットサーバ100の機能を実現するターゲットサーバ100のハードウェア(HW)構成例を示すブロック図である。ターゲットサーバ100の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが
図2に例示するHW構成を備えてよい。
【0020】
図2に示すように、ターゲットサーバ100は、HW構成として、例示的に、プロセッサ100a、メモリ100b、記憶部100c、IF(Interface)部100d、IO(Input / Output)部100e、及び読取部100fを備えてよい。
【0021】
プロセッサ100aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ100aは、ターゲットサーバ100内の各ブロックとシステムバス100iで相互に通信可能に接続されてよい。なお、プロセッサ100aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0022】
プロセッサ100aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が挙げられる。なお、プロセッサ100aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0023】
メモリ100bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ100bとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0024】
記憶部100cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部100cとしては、HDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0025】
記憶部100cは、ターゲットサーバ100の各種機能の全部若しくは一部を実現するプログラム100g(性能情報収集プログラム)を格納してよい。プログラム100gには、性能情報収集プログラムに加えて、OS(Operating System)等が含まれてもよい。一例において、本実施形態におけるプログラム100gは、マルチタスクOSにおいて主にバックグラウンドで動作するデーモン(daemon)として動作してよい。
【0026】
例えば、プロセッサ100aは、記憶部100cに格納されたプログラム100gをメモリ100bに展開して実行することにより、ターゲットサーバ100の制御部(後述する
図8における制御部110)としての機能を実現できる。
【0027】
システム性能分析の対象となるターゲットサーバ100が、コンピュータとして性能情報収集プログラムを実行して、性能情報収集の各処理を実行してよい。
【0028】
IF部100dは、ターゲットサーバ100と他の装置との間のネットワークを含む種々のネットワークとの間の接続及び通信の制御等を行なう通信IFの一例である。装置としては、例えば、ターゲットサーバ100にデータを提供するジョブスケジューラ10及びユーザ端末2等のコンピュータ、ターゲットサーバ100から出力されるデータを取得するユーザ端末2又は収集サーバ20等のコンピュータ等が挙げられる。
【0029】
例えば、IF部100dは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。
【0030】
なお、プログラム100gは、当該通信IFを介して、ネットワークからターゲットサーバ100にダウンロードされ、記憶部100cに格納されてもよい。
【0031】
IO部100eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部100eは、入力装置及び出力装置が一体となったタッチパネル等を含んでもよい。
【0032】
読取部100fは、記録媒体100hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部100fは、記録媒体100hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部100fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体100hにはプログラム100gが格納されてもよく、読取部100fが記録媒体100hからプログラム100gを読み出して記憶部100cに格納してもよい。
【0033】
記録媒体100hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0034】
上述したターゲットサーバ100のHW構成は例示である。したがって、ターゲットサーバ100内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
【0035】
[C]システム性能分析及び性能情報の説明
図3は、
図1に示すシステム1におけるシステム性能分析について説明する図である。ターゲットサーバ100では、種々のアプリケーションが動作する。ターゲットサーバ100において、アプリケーションの階層の下には、ミドルウェア及びOSという階層がある。アプリケーション及びミドルウェアからの情報に比べて、OSから得られるハードウェアに関する情報及びOSに関する情報は、詳細なシステム性能分析に適する。したがって、ターゲットサーバ100は、ハードウェア及びOSに関する複数の性能情報5を計測(収集)する。
【0036】
複数の性能情報5は、ターゲットサーバ100のメモリ100bの使用可能メモリ量(MB)、メモリ使用量(Byte)、1秒当たりの転送ページ数(ページ/秒)、及び記憶部100cのディスク使用量(%)を含んでよい。また、性能情報5は、接続ユーザ数(アクティブセッション数)及びプロセッサ100aの使用率(%)を含んでよい。性能情報5は、ターゲットサーバ100が各プロセス4を実行しているときの各情報である。
【0037】
複数の性能情報5は、プロセッサ100aの平均利用率(%)、プロセッサ100aの最大利用率(%)、プロセッサ100aのプロセッサビジーの割合(%)、及び1秒当たりのコンテキスト切り替え数及び1秒当たりの割り込み数等を含んでよい。
【0038】
また、複数の性能情報5は、メモリ100bにおける1秒当たりの読み取りページ数、1秒当たりのページ入力数、1秒当たりのページフォールト数及びハードページフォールトの割合(%)を含んでよい。複数の性能情報5は、IF部100dにおけるネットワーク転送量(メガバイト秒/数)、1秒当たりの送信量(MBit)、及び1秒当たりの受信量(MBit)を含んでよい。複数の性能情報5は、記憶部100cにおける1秒当たりのストレージ転送数及び1秒当たりのストレージ転送量(MByte)を含んでよい。複数の性能情報5は、システムバス100iにおける1秒当たりのホストバス転送量(MByte)を含んでよい。
【0039】
但し、複数の性能情報5は、上述した情報に限定されない。複数の性能情報5は、上述した情報を全て含まなくてよく、上述した情報の一部を含んでよい。ターゲットサーバ100がプロセス4を実行している状態での複数の性能情報5が計測される。計測された複数の性能情報5は、収集サーバ20に送信される。性能情報5は、ターゲットサーバ100が自発的に計測して収集サーバ20に送信してよい。しかし、収集サーバ20がターゲットサーバ100にアクセスしてターゲットサーバ100内に保存されている性能情報5の計測結果を収集してもよい。
【0040】
収集サーバ20は、マシン動作分析部21及びアプリケーション特性分析部22を有する。マシン動作分析部21は、収集した複数の性能情報5に基づいて、対象となるターゲットサーバ100の動作を分析する。アプリケーション特性分析部22は、ターゲットサーバ100の動作の分析結果を用いて、アプリケーション実行時の性能低下原因を分析する。分析結果は、ユーザ端末2に送信される。
【0041】
複数のターゲットサーバ100と収集サーバ20との間で通信される情報量は、複数のターゲットサーバ100の数と、各ターゲットサーバ100が一度に計測する性能情報5の種類数との積で見積もることができる。
【0042】
情報量の増加は、通信オーバヘッドの増加を生じさせる。具体的には、情報量が増えると、ネットワーク負荷が増加し、かつ、収集サーバ20のプロセッサ負荷も増大する。
【0043】
さらに、複数の性能情報5の種類数は、性能情報5の計測オーバヘッド及び計測精度に影響する。種類数とは、さまざまな性能情報を採取して得られた性能情報の種類の数である。
図4は、比較例におけるターゲットサーバ100におけるカウンタ数と性能情報5の種類数との関係を示す図である。なお、比較例においても、実施形態と同じ部材番号が説明に用いられる。
【0044】
詳細なシステム性能分析をするためには性能情報5の種類数を増加することが望ましい。しかしながら、計測対象の性能情報5の種類数が増加すると、計測を実行するのにかかる処理負担、すなわち、計測オーバヘッドが増加する。
【0045】
ターゲットサーバ100は、カウンタ6を備える。カウンタ6は、性能情報5を計測(収集)するためのインタフェースを備えた抽象化レイヤーである。カウンタ6は、パフォーマンスカウンタ(性能カウンタ)と呼ばれる。カウンタ6において、カウンタ本数は、一度に計測できる計測量の種類数である。
【0046】
なお、計測対象である性能情報5の種類数がカウンタ数を超える場合には、現在の1つのプロセス4中において所定間隔で計測対象の性能情報5を切り替えて計測する。但し、1つのプロセス4中において計測対象の性能情報5を切り替える場合には、切り替え対象となる性能情報5を計測する時間が短くなるので、計測精度が低下する場合がある。
【0047】
本実施形態のシステム1は、詳細なシステム性能分析をするために十分な性能情報5の種類数を確保しつつ、ターゲットサーバ100が性能情報5を計測及び送信する負担を軽減する。
【0048】
図5は、一実施形態に係る複数の性能情報5と性能情報セット7との関係の一例を示す図である。
図5において、複数の性能情報5は、性能情報5-1~5-12を含む。複数の性能情報5は、複数の性能情報セット7-1(#A)、7-2(#B)、7-3(#C)に分割される。性能情報セット7-1~7-3(以下、性能情報セット7と総称する場合がある)のそれぞれは、予め定められた1以上の性能情報5を含み、一度に性能測定した結果である。
【0049】
複数の性能情報5-1~5-12の種類数、性能情報セット7の数、及び各性能情報セット7に含まれる性能情報5の種類は、
図5に示される場合に限られない。性能情報セット7の数及び性能情報セット7に含まれる性能情報5の種類は予め定められる。
【0050】
各性能情報セット7に含まれる性能情報5の種類数は、互いに異なってよく、同じであってもよい。各性能情報セット7に含まれる性能情報5の種類数は、カウンタ数以下であることが望ましい。各性能情報セット7に含まれる性能情報5の種類数は、カウンタ数以下である場合には、1つのプロセス中において計測対象の性能情報5を切り替えなくてもよいので、計測精度の低下を未然に防止することができる。
【0051】
図6は、一実施形態に係るターゲットサーバ100によるプロセス同一性判断処理の一例を示す図である。
【0052】
図6において、ターゲットサーバ100は、複数のプロセス4を、プロセス4-1(#1)、4-2(#2)、及び4-3(#3)の順番で実行する。プロセス4-1~4-3は、それぞれユーザ識別(UID:User ID)41、プロセス識別(PID: Process ID)42、及びプロセス名(PCOMM)43を有する。
【0053】
UID41は、複数のプロセス4の各利用者(ユーザ)を識別するための情報を含む。PID42は、複数のプロセス4のそれぞれを識別するための情報を含む。PCOMM43は、親プロセス又はコマンド名の情報を含む。PID42及びPCOMM43は、それぞれターゲットサーバ100(すわわち、性能分析の対象の情報処理装置)において実行される複数のプロセス4のそれぞれを識別するための第1の識別情報の例である。UID41は、複数のプロセス4の各利用者を識別するための第2の識別情報の例である。
【0054】
第1の識別情報は、複数のプロセス4のそれぞれを識別するための情報であればよく、PID42及びPCOMM43に限定されない。第2の識別情報は、複数のプロセス4の各利用者を識別するための情報であればよく、UID41に限定されない。
【0055】
プロセッサ100aは、複数のプロセス4に含まれる1以上の先行プロセス4-t(例えば、プロセス4-1)と現在のプロセス4-i(例えば、プロセス4-3)との間で、PID42、PCOMM43、及びUID41が一致するか判断する。先行プロセス4-tと現在のプロセス4-i間で、PID42、PCOMM43、及びUID41が一致する場合、先行プロセス4-tに付随して計測された性能情報セット7-1(#A)と少なくとも一部が異なる性能情報を含む性能情報セット7-2(#B)が計測される。
図6においては、性能情報セット7-1(#A)は、第1の性能情報の一例であり、性能情報セット7-2(#B)は、第2の性能情報の一例である。
【0056】
「プロセス4に付随して計測」とは、プロセス4が実行されている状態で性能情報5を計測(収集)することを意味する。
【0057】
換言すれば、プロセッサ100aは、PID42、PCOMM43、及びUID41に基づいて、複数のプロセス4間の同一性を判断する。プロセッサ100aは、複数のプロセス4の相互間において、PID42、PCOMM43、及びUID41のそれぞれが同じである場合に、複数のプロセス4が同一性を有すると判断する。
図6の例では、プロセス4-1とプロセス4-2との間、及びプロセス4-3とプロセス4-2との間は、それぞれ同一性を有しておらず、プロセス4-1とプロセス4-3とは同一性を有する。
【0058】
複数のプロセス4が「同一性」を有するとは、第1識別情報及び第2の識別情報の双方が共通すればよく、他の付加的な情報が相互に異なる場合も含まれる。従って、「同一性」は類似性又は共通性と称されてもよい。
【0059】
本実施形態のターゲットサーバ100においては、プロセッサ100aは、1つのプロセス4(例えばプロセス4-1)に付随して、複数の性能情報5のすべての計測を完了しなくてよい。プロセッサ100aは、同一性を有する複数のプロセス4(例えば、プロセス4-1及び4-2)において分散して複数の性能情報5を計測する。
【0060】
図7は、一実施形態に係るターゲットサーバ100による性能情報5の計測処理の一例を示す図である。
図7において、プロセス4-1,4-3,及び4-6は、PID42、PCOMM43、及びUID41に基づいて、互いに同一性を有するプロセス4と判断されている。プロセス4-1,4-3,及び4-6が互いに同一性を有することを枠の形(矩形)で示している。
【0061】
プロセッサ100aは、同一性を有する複数のプロセス4-1,4-3,及び4-6において分散して複数の性能情報5を計測する。
図7では、複数の性能情報5のうち、性能情報セット7-1(一例において、性能情報5-1~5-4)がプロセス4-1の実行に付随して計測される。複数の性能情報5のうち、性能情報セット7-2(一例において、性能情報5-5~5-8)がプロセス4-3の実行に付随して計測される。また、性能情報セット7-3(一例において、性能情報5-9~5-12)がプロセス4-6の実行に付随して計測される。
【0062】
図7において、プロセス4-2,4-4,及び4-5は、PID42、PCOMM43、及びUID41に基づいて、互いに同一性を有するプロセス4と判断されている。プロセス4-2,4-4,及び4-5が互いに同一性を有することを枠の形(六角形状)で示している。プロセス4-2,4-4,及び4-5においても、複数の性能情報5が複数の性能情報セット7に分割されて計測される。
【0063】
一例において、プロセッサ100aがプロセス4-5(#5)を実行する場合に、プロセッサ100aは、プロセス4-5(#5)を、複数のプロセス4に含まれる1以上の先行プロセス4-t(
図7においてプロセス4―1~4―4)と比較する。プロセッサ100aは、先行プロセス4-tのうち、プロセス4-2(#2)及びプロセス4-4(#4)と現在のプロセス4-5(#5)との間でPID42、PCOMM43、及びUID41が一致すると判断する。この場合、プロセッサ100aは、プロセス4-2及び4-4に付随して計測された性能情報セット7(#A及び#B、すなわち第1の性能情報の一例)と異なる性能情報セット7(#C、すなわち第2の性能情報の一例)をプロセス4-5に付随して計測する。性能情報セット7(#A及び#B)と異なる性能情報セット7(#C)とは、様々な性能情報の種類のうち、完全に性能情報の種類が異なっていても良いし、性能情報の種類の一部が重複していても良い。
【0064】
図7においては、同一性を有するプロセス4-1,4-3,及び4-6(あるいは、4-2,4-4,及び4-5)の数が3つであるが、同一性を有するプロセス4の数は、この場合に限られない。同一性を有するプロセス4の数が多いほど、計測する性能情報5の数を増加することができる。1つのプロセス中において計測する性能情報5の種類数を増加させなくても、詳細なシステム性能分析を実現可能な種類数の性能情報5を計測することができる。
【0065】
各性能情報セット7に含まれる性能情報5の種類数は、互いに異なってよく、同じであってもよい。各性能情報セット7に含まれる性能情報5の種類数は、カウンタ数以下であることが望ましい。各性能情報セット7に含まれる性能情報5の種類数は、カウンタ数以下である場合には、1つのプロセス中において計測対象の性能情報5を切り替えなくてもよいので、計測精度の低下を未然に防止することができる。
【0066】
[D]機能構成例
図8は、一実施形態に係るターゲットサーバ100の機能構成例を示すブロック図である。ターゲットサーバ100は、コンピュータ(情報処理装置)の一例である。
【0067】
図8に示すように、ターゲットサーバ100は、制御部110及びメモリ部120を有する。制御部110は、カーネルスタック情報取得部111、木構造生成部115、判断部116、選択部117、計測部118、及び通信部119を備える。
【0068】
メモリ部120は、記憶領域の一例であり、制御部110が利用する種々のデータを記憶する。メモリ部120は、例えば、
図2に示すメモリ100b及び記憶部100cのうちの一方又は双方が有する記憶領域により実現されてもよい。
【0069】
図8に示すように、メモリ部120は、例示的に、木構造121及びセット情報122を記憶可能であってよい。また、メモリ部120は、複数の性能情報5の計測結果を記憶可能であってよい。
【0070】
セット情報122は、性能情報セット7の数(一例において、#A~#Cの3つ)、各性能情報セット7に含まれる性能情報5の種類、性能情報セット7を計測する順序(一例において、#A、#B、#Cの順)の情報を含んでよい。
【0071】
木構造121(すなわち、ツリー構造)は、
図9~
図12に示すように、ルート130を含む。木構造121は、UID41を親ノード140,150として含む。また、木構造121は、PID42を子ノード141-1~141-2,151-1~151-2として含む。また、木構造121は、PCOMM43を孫ノード142-1~142-3,151-1~151-2として含む。子ノード141,151及びそこから先の子ノード(孫ノード142,152)全てが子孫ノードと称される。
【0072】
但し、本実施形態は、第2の識別情報(UID41)を親ノード140,150として第1の識別情報(PID42,PCOMM43)を子孫ノードとする場合に限定されない。第1の識別情報の何れかを親ノード140,150として第2の識別情報を子孫ノードとしてもよい。
【0073】
木構造121は、複数の性能情報セット7-1~7-3(#A~#C)のうちで、計測された性能情報セット7を葉ノード143-1~143-4、及び153-1~153-4等として含む。複数の性能情報セット7-1~7-3(#A~#C)のうちで計測された性能情報セット7は、複数の性能情報5のうちで計測された性能情報の一例である。
【0074】
図9~
図12は、制御部110の動作例を示す。カーネルスタック情報取得部111は、カーネルスタックを利用して第1の識別情報及び第2の識別情報を取得する。一例において、カーネルスタック情報取得部111は、UID取得部112、PID取得部113、及びPCOMM取得部114を備える。
【0075】
UID取得部112は、各プロセス4についてUID41を取得する。PID取得部113は、各プロセス4についてPID42を取得する。PCOMM取得部114は、各プロセス4についてPCOMM43を取得する。
【0076】
一例において、カーネルスタック情報取得部111は、拡張BPF(Berkeley Packet Filter)を利用したツールキットを用いて、カーネルをトレースする。例示的に、カーネルスタック情報取得部111は、拡張BPFを利用したBCCというツールキットに含まれるexecsnoopというツールを用いて、各プロセス4においてexec()システムコールを実行したUID41、PID42、及びPCOMM43を取得する。但し、カーネルスタック情報取得部111は、この場合に限られず、各プロセス4において、第1の識別情報と、第2の識別情報とを取得するものであればよい。
【0077】
図9は、一実施形態に係る木構造121に基づくデータ探索の一例を示す図である。
【0078】
木構造生成部115は、第1の識別情報及び第2の識別情報を用いて木構造121(ツリーデータ構造)を生成する。木構造生成部115は、第1の識別情報(PID42、PCOMM43)及び第2の識別情報(UID41)の何れか一方を親ノード140,150とし他方を子孫ノード(141,151、142,152)として含む木構造121を生成してよい。
【0079】
判断部116は、木構造121を用いた深さ優先探索を用いて、先行プロセス4-t(例えば、
図9のプロセス4-1~4-8)と現在のプロセス4-i(例えば、
図9のプロセス4-9)との間で、UID41、PID42、及びPCOMM43を比較する。判断部116は、比較の結果に基づいて、UID41、PID42、及びPCOMM43(すなわち、第1の識別情報及び第2の識別情報)が先行プロセス4-t(
図8ではプロセス4―1~4-8)と現在のプロセス4-iとの間で、一致するか否かを判断する。
【0080】
図9に示される例では、現在のプロセス4-i(UID41=y1,PID42=y2_2,PCOMM43=y3_3)と同じUID41,PID42,PCOMM43を有する先行プロセス4-tが存在しない。したがって、判断部116は、現在のプロセス4-iと先行プロセス4-tと間でUID41,PID42,PCOMM43が一致しないと判断する。
【0081】
深さ優先探索によれば、現在のプロセス4-iと、親ノード140の内容において異なるプロセス4(
図9においては、プロセス4-1~4-4)については、子孫ノードにおける詳細な同一性判定が不要となる。したがって、判断部116による判断の迅速化が図られる。
【0082】
選択部117は、各プロセス4において計測する性能情報セット7を選択する。選択部117は、判断部116による判断結果と、メモリ部120におけるセット情報122とに基づいて、性能情報セット7を選択する。換言すれば、選択部117は、各プロセス4において計測する性能情報を自動で変更する。
【0083】
判断部116によって現在のプロセス4-iと先行プロセス4-tとが同一性を有しないと判断される場合には、選択部117は、セット情報122に従って、順番が最初である性能情報セット7-1(#A)を選択する。
【0084】
図10は、一実施形態に係る木構造121への新たなノードの追加処理の一例を示す図である。
図10に示すように、現在のプロセス4-iと先行プロセス4-tとの間で第1の識別情報及び前記第2の識別情報の少なくとも1つが一致しない場合には、木構造生成部115は、木構造121に孫ノード152-3を追加する。孫ノード152-3は、現在のプロセス4-iにおけるPCOMM43=y3_3に対応する。また、木構造生成部115は、セット情報122に基づく選択結果に応じて、複数の性能情報5のうちで計測された性能情報セット7(#A)を葉ノード153-5として木構造121に追加する。
【0085】
図11は、一実施形態に係る木構造121に基づくデータ探索の他の例を示す図である。判断部116は、木構造121を用いた深さ優先探索を用いて、先行プロセス4-t(例えば、
図11のプロセス4-1~4-9)と現在のプロセス4-i(例えば、
図11のプロセス4-10)との間で、UID41、PID42、及びPCOMM43を比較する。判断部116は、比較の結果に基づいて、UID41、PID42、及びPCOMM43(すなわち、第1の識別情報及び第2の識別情報)が先行プロセス4-tと現在のプロセス4-iとの間で、一致するか否かを判断する。
【0086】
図11に示す場合においては、判断部116は、先行プロセス4-tのなかに、UID41、PID42、及びPCOMM43が現在のプロセス4-iと一致するプロセス4-2,4-3が存在すると判断する。
【0087】
判断部116が、現在のプロセス4-iと先行プロセス4-2,4-3とが同一性を有すると判断する場合には、選択部117は、先行プロセス4-2,4-3に付随して計測された性能情報セット7(#A、#B)と異なる性能情報セット7(#C)を選択する。
【0088】
図12は、一実施形態に係る木構造121への新たな葉ノードの追加処理の一例を示す図である。
図12に示すように、現在のプロセス4-iと先行プロセス4-2,4-3との間で第1の識別情報及び第2の識別情報の双方が一致しない場合、木構造生成部115は、計測された性能情報セット7(#C)を葉ノード143-5として木構造121に追加する。
【0089】
計測部118は、選択部117によって選択された性能情報セット7について計測を実行する。計測部118は、先行プロセス4-2,4-3と現在のプロセス4-iとの間でUID41、PID42、及びPCOMM43が一致する場合、先行プロセスス4-2,4-3に付随して計測された性能情報5と異なる性能情報5を現在のプロセス4-iに付随して計測する。
【0090】
通信部119は、計測部118によって得られた性能情報5の計測結果を収集サーバ20に対して送信する。計測部118によって別のプロセス4に付随して計測された性能情報5の計測結果は、それぞれ計測順に従って別々に(別の時刻に)通信部119によって送信される。この結果、通信処理も分散されるので、通信処理が集中することを防止し、各ターゲットサーバ100と収集サーバ20との間の特定の時点における通信量を軽減することができる。
【0091】
図6及び
図7では、UID41、PID42、及びPCOMM43が、先行プロセス4-tと現在のプロセス4-iとの間で一致する場合において、先行プロセス4-tに付随して計測された性能情報5と異なる性能情報5を計測する場合を説明した。次に、予め定められた複数の性能情報5の全てが先行プロセス4-tに付随して計測済みである場合の処理について説明する。
【0092】
図13は、複数の性能情報5が全て計測済みである場合の処理の第1例を示す図である。
図13においては、ジョブ3は、複数のプロセス4-1~4-12を含む。プロセス4-1~4-6が実行された後に、プロセス4-7~4-12を実行する場合について説明する。
【0093】
一例において、プロセス4-7は、先行プロセス4-tのうち、プロセス4-1、4-3、4―6と同一性を有する。
図13において、同一性を有するプロセス4は、同じ形状の枠で示している。
【0094】
先行プロセス4-1、4-3、4―6に付随して、性能情報セット7-1(#A),7-2(#B),7-3(#C)という全ての性能情報5が既に計測済である。それゆえ、プロセス4-7に付随して、既に計測されている性能情報5と異なる性能情報5が存在しない。
【0095】
先行プロセス4-1、4-3、4―6との間でUID41、PID42、及びPCOMM43が一致し、複数の性能情報5の全てが計測済みである場合には、計測部118は、現在のプロセス4-7に付随する複数の性能情報5の計測を抑制してよい。具体的には、計測部118は、現在のプロセス4-7においては、性能情報5の計測を中止してよい。
【0096】
図13に示される場合においては、プロセス4-8以降においても、複数の性能情報5の全てが計測済みである場合に該当する。したがって、計測部118は、プロセス4-7~4-12の実行に付随した性能情報5の計測を抑制する。これにより、計測部118は、性能情報5の計測オーバヘッドを軽減することができる。但し、複数の性能情報5が全て計測済みである場合の処理は、
図13に示される場合に限られない。
【0097】
図14は、複数の性能情報5が全て計測済みである場合の処理の第2例を示す図である。
【0098】
先行プロセス4-1、4-3、4-6と現在のプロセス4-7との間でUID41、PID42、及びPCOMM43が一致し、複数の性能情報5の全てが計測済みである場合には、計測部118は、現在のプロセス4-7に付随して、既に計測された性能情報5を再計測する。計測部118は、現在のプロセス4-7に付随して、既に計測済みである性能情報5(すなわち、第1の性能情報)を再計測してよい。再計測する性能情報セット7の順序は、セット情報122に基づいて決定されてよい。
【0099】
平均値算出部123は、同一性を有する複数のプロセス4-1,4-7で計測された同一種類の性能情報5(例えば、性能情報セット7-1(#A)に含まれる対応する性能情報5)の平均値を算出する。平均値算出部123は、制御部110に設けられる。
図14においては、プロセス4-1とプロセス4-7で計測された性能情報セット#Aについての平均値を算出することが表示されているが、現在のプロセス4-2とプロセス4-8で計測された同一種類の性能情報5(性能情報セット7-2)等も同様に処理される。
【0100】
各プロセス4におけるプロセス時間が短い場合には、計測時間不足による計測誤差が生じるおそれがある。複数のプロセス4おいて、再計測して平均値を算出することで、計測精度を向上することが可能となる。2巡目の性能情報5の全てが計測済みになった場合には、計測部118は、同じ性能情報5を3回以上計測してよい。
【0101】
ユーザの設定によって、
図13の処理と
図14の処理とが切り替えられてよい。ユーザがユーザ端末2を通じて、システム1に再計測の指示をした場合には、計測部118は、
図14の処理をし、再計測の指示をしていない場合には、計測部118は、
図13の処理を実行する。但し、実施形態は、この場合と限られず、定常的に
図13の処理を実行してよく、
図14の処理を実行してもよい。
【0102】
[E]動作例
図15は、一実施形態に係るターゲットサーバ100による性能情報収集処理の動作例を示すフローチャートである。
【0103】
図15に例示するように、ターゲットサーバ100の制御部110は、プロセス4の実行の指示を受信しない場合(ステップS2のNoルート参照)、処理待ち(idle状態)を続ける(ステップS1)。プロセス4は、計算プロセスである。プロセス4を実行する場合(ステップS2のYesルート参照)、処理はステップS3に進む。
【0104】
制御部110は、取得したUID41、PID42、及びPCOMM43に基づいて、現在のプロセス4-iと先行プロセス4-tとの同一性を判断するプロセス同一性判断処理を実行する(ステップS3)。
【0105】
制御部110は、先行プロセス4-tと現在のプロセス4-iとの間でUID41、PID42、及びPCOMM43が一致するか否かの判断結果に基づいて、性能情報選択及び計測処理を実行する(ステップS4)。性能情報選択及び計測処理は、現在のプロセス4-iに付随して計測する性能情報5を選択する処理と、選択された性能情報5を計測する処理とを含む。なお、制御部110は、ステップS4と並行して、プロセス4の計算処理(不図示)を実行する。
【0106】
通信部119は、計測された性能情報5の測定データを収集サーバ20に転送する(ステップS5)。
【0107】
制御部110は、ジョブ3に含まれる全てのプロセス4を完了するまでの間(ステップS6のNoルート参照)、各プロセス4についてステップS3~S6の処理を繰り返す。制御部110は、ジョブ3に含まれる全てのプロセス4を完了すると(ステップS6のYesルート参照)、処理を終了する。なお、ジョブ3に含まれる全てのプロセス4を実行する前に、強制終了の指示があった場合においても、制御部110は、処理を終了してよい。
【0108】
図16は、一実施形態に係るターゲットサーバ100によるプロセス同一性判断処理の動作例を示す図である。
図16のフローチャートは、
図15に示すステップS3の処理の一例である。
【0109】
カーネルスタック情報取得部111は、プロセス4においてexec()システムコールが発生するまで待機する(ステップS10のNoルート)。カーネルスタック情報取得部111は、プロセス4においてexec()システムコールが発生すると(ステップS10のYesルート)、exec()システムコールを実行したUID41、PID42、及びPCOMM43を取得する(ステップS11)。
【0110】
判断部116は、木構造121を参照し、ルート130に近い方からUID41、PID42、PCOMM43の順番で深さ優先探索をする(ステップS12)。判断部116は、深さ優先探索を用いて、UID41、PID42、及びPCOMM43が現在のプロセス4-iと先行プロセス4-tとの間で一致するか否かを判断する(ステップS13)。
【0111】
判断部116は、現在のプロセス4-iとUID41、PID42、及びPCOMM43が一致するノードが存在するか否かを判断する。判断部116は、現在のプロセス4-iとUID41、PID42、及びPCOMM43が一致するノードが存在する場合には(ステップS13のYesルート参照)、現在のプロセス4-iと同一性のあるプロセスが存在すると判断する(ステップS14)。判断部116は、現在のプロセス4-iとUID41、PID42、及びPCOMM43が一致するノードが存在しない場合には(ステップS13のNoルート参照)、現在のプロセス4-iと同一性のあるプロセス4が存在しないと判断する(ステップS15)。
【0112】
図17は、一実施形態に係るターゲットサーバ100による性能情報選択及び計測処理の動作例を示す図である。
図17のフローチャートは、
図15に示すステップS4の処理の一例である。
【0113】
現在のプロセス4-iと同一性のある先行プロセス4-tが存在しない場合は、ステップS20~ステップS23の処理が実行され、処理が終了する。
【0114】
木構造生成部115は、木構造121に、現在のプロセス4-iのUID41、PID42、及びPCOMM43に対応する新たなノードを追加する(ステップS20)。先行プロセス4-tに、現在のプロセス4-iと同じUID41を有するプロセス4が存在しない場合には、木構造生成部115は、木構造121に、親ノード140,150、子ノード141,151、孫ノード142,152を追加する。先行プロセス4-tに、現在のプロセス4-iと同じUID41を有しており同じPID42を有しないプロセス4が存在する場合には、木構造生成部115は、木構造121に、子ノード141,151、孫ノード142,152を追加する。先行プロセス4-tに、現在のプロセス4-iと同じUID41及び同じPID42を有しており同じPCOMM43を有しないプロセス4が存在する場合には、構造生成部115は、木構造121に、孫ノード142,152を追加する。
【0115】
選択部117は、複数の性能情報セット7(#A、#B、#C)から、1つの性能情報セット7-1(例えば、#A)を選択する(ステップS21)。判断部116によって現在のプロセス4-iと先行プロセス4-tとが同一性を有しないと判断される場合には、選択部117は、セット情報122に従って、順番が最初である性能情報セット7-1(#A)を選択する。
【0116】
木構造生成部115は、木構造121に、ステップS20において追加したノードのうち、PCOMM43に対応する孫ノード142,152に接続する新たな葉ノード143,153を追加する(ステップS22)。葉ノード143,153は、複数の性能情報セット7(#A、#B、#C)のうちで計測された性能情報セット7(例えば#A)に対応する。
【0117】
計測部118は、選択部117によって選択された複数の性能情報セット7に含まれる性能情報5について現在のプロセス4-iに付随して計測し(ステップS23)、処理が終了する。
【0118】
現在のプロセス4-iと同一性のある先行プロセス4-tが存在する場合は、ステップS24~ステップS29の処理と、ステップS23の処理とが実行される。
【0119】
選択部117は、UID41、PID42、及びPCOMM43が現在のプロセス4-iと一致する孫ノード142,152において、エッジで接続されている葉ノード143,144を確認する(ステップS24)。葉ノード143,144として存在するものは、既に計測済みの性能情報セット7に対応する。
【0120】
選択部117は、未計測の性能情報セット7があるか否かを判断する(ステップS25)。選択部117は、複数の性能情報5のうちで先行プロセス4-tに付随して計測されていない性能情報セット7(例えば、#B,#C)が存在する場合(ステップS25:Yesルート参照)、ステップS26に進む。
【0121】
選択部117は、複数の性能情報セット7のなかから、1つの未計測の性能情報セット7(例えば、#B)を選択する(ステップS26)。計測されていない複数の性能情報セット7(例えば、#B,#C)がある場合に、選択部117は、セット情報122中の順番に関する情報に基づいて、性能情報セット7(例えば、#B)を選択してよい。
【0122】
木構造生成部115は、UID41、PID42、及びPCOMM43が現在のプロセス4-iと一致する孫ノード142,152において、新たな葉ノード143,153を木構造121に追加する(ステップS27)。葉ノード143,153は、複数の性能情報セット7(#A、#B、#C)のうちで計測された性能情報セット7(例えば#A)に対応する。その能登、処理は、ステップS23に進む。
【0123】
選択部117は、未計測の性能情報セット7がないと判断された場合(ステップS25のNoルート参照)、ステップS28の処理に進む。
【0124】
選択部117は、再計測の設定がある場合(ステップS28のYesルート)、複数の性能情報セット7(例えば、#A,#B,#C)の中から、計測済みの性能情報セット7(例えば、#A)を再選択する(ステップS29)。計測部118は、再選択された性能情報セット7(例えば#A)に含まれる性能情報5を現在のプロセス4-iに付随して計測し(ステップS23)、処理を終了する。
【0125】
一方、計測部118、再計測の設定がない場合(ステップS28のNoルート)、現在のプロセス4-iに付随して性能情報5を計測することなく、処理を終了する。プロセス4-iに付随して性能情報5を計測しないことは、性能情報5の計測を抑制することの一例である。
【0126】
図17に例示する処理によれば、
図15における性能情報選択及び計測処理(ステップS4)及び次のステップS5において、ターゲットサーバ100における計測オーバヘッド及び通信オーバヘッドを軽減することができる。なお、
図17においては、制御部110は、孫ノード142,152等及び葉ノード143,153を木構造121に追加した後に、性能情報の計測を実行する場合が示される。しかし、実施形態の手法は、この場合に限られない。制御部1110は、性能情報の計測を実行した後に、孫ノード142,152等及び葉ノード143,153を木構造121に追加する処理を実行してもよい。
【0127】
以上のように一実施形態の性能情報収集の手法について説明したが、当該説明に限定されず、種々の変更をすることができる。例えば、ターゲットサーバ100が備える機能ブロックは、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【0128】
図7、
図13、及び
図14においては、直列的に複数のプロセス4が実行される場合を例にとって説明した。しかしながら、UID41、PID42、及びPCOMM43が一致するかを判断する現在のプロセス4-iと先行プロセス4-tとは、並列処理のなかのプロセス4であってもよい。したがって、一実施形態の手法は、各プロセス4が並列に行なわれる形態においても用いることができる。
【0129】
また、ターゲットサーバ100は、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成(システム)であってもよい。一例として、メモリ部120はDBサーバ、ブロック111~119は、Webサーバ又はアプリケーションサーバであってもよい。
【0130】
[F]一実施形態の効果
一実施形態に係る手法によれば、ターゲットサーバ100は、ターゲットサーバ100で実行される複数のプロセス4のそれぞれを識別するためのPID42及びPCOMM43と、複数のプロセス4の各利用者を識別するためのUID41を取得する。複数のプロセス4に含まれる1以上の先行プロセス4-tと現在のプロセス4-iとの間でPID42及びPCOMM43と、UID41との双方が一致する場合には、ターゲットサーバ100は、第2の性能情報を現在のプロセス4-iに付随して計測する。第2の性能情報は、複数の性能情報5のなかで先行プロセス4-tに付随して計測された第1の性能情報と少なくとも一部が異なる性能情報5である。
【0131】
これにより、複数の性能情報5を第1の性能情報と第2の性能情報とに分割して、PID42及びPCOMM43と、UID41との双方が一致する複数のプロセス4にそれぞれ付随して計測することができる。例えば、第1の性能情報は、性能情報セット7-1(#A)であり、第2の性能情報は、性能情報セット7-2(#B)である。全ての性能情報5をカウンタ値の上限まで1つのプロセス4において計測する場合に比べて、計測処理の集中が緩和される。この結果、計測オーバヘッドが軽減され、計測負担が軽減される。計測処理におけるCPU使用率を削減することができる。
【0132】
通信部119は、計測部118によって得られた性能情報5の計測結果を計測順に従って遂次に収集サーバ20に送信することができる。したがって、性能情報5の計測結果を送信する処理の集中が緩和される。通信オーバヘッドが軽減され、通信負担が軽減される。収集サーバ20と各ターゲットサーバ100との間の通信量を削減することができるので、通信回線の輻輳を回避することができ、通信速度を改善することができる。
【0133】
UID41、PID42及びPCOMM43に基づいて、同一性を有する複数のプロセス4において、分散して性能情報5を計測することができる。第1の性能情報に含まれる性能情報5の種類数をカウンタ数以下にし、第2の性能情報に含まれる性能情報5の種類数をカウンタ数以下にすることができる。1つのプロセス4内において、計測する性能情報5を切り替える場合と比べて、性能情報5の計測時間を確保することができる。したがって、性能情報5の種類数を増加した場合においても、計測精度の低下を防止することができる。性能情報5の種類数を増加することが容易になるので、詳細なシステム性能分析が可能となる。
【0134】
複数のプロセス4間の同一性をUID41、PID42及びPCOMM43といった識別情報によって判断することができる。UID41、PID42及びPCOMM43は、exec()のシーケンスからexec()をトレースすることで得られる。したがって、別途に追加される処理負担を抑えることができる。
【0135】
システム性能分析の対象である各ターゲットサーバ100が、コンピュータとして上述した性能情報5の選択等の処理を実行する。収集サーバ20(分析装置)が性能情報5の選択等の処理を実行する場合には、各ターゲットサーバ100と収集サーバ20との間の通信量を削減することができないのに対し、一実施形態に係る手法によれば通信量を削減することができる。
【0136】
UID41、PID42、及びPCOMM43を親ノード140,150、子ノード141,151、及び孫ノード142,152として含む木構造121のデータ構造が生成される。判断部116は、木構造121を用いた深さ優先探索を用いて、先行プロセス4-tと現在のプロセス4-iとの間で各UID41、PID42、及びPCOMM43を比較することができる。したがって、複数のプロセス4間に同一性があるか否かを判断するための処理時間を短縮することができ、処理負担を軽減することができる。
【0137】
木構造121のデータ構造は、UID41を親ノード140,150とし、PID42を子ノード141,151とする。したがって、プロセス4の利用者の識別情報を最初に用いて探索することができるので、探索するプロセス4を絞り込みやすい。木構造121は、複数の性能情報5のうちで計測された性能情報5をそれぞれ葉ノード143,153として含む。したがって、UID41、PID42、及びPCOMM43についての情報と、性能情報5が計測済みか否かに関する情報とをリンクさせて管理することが容易になる。
【0138】
UID41、PID42、及びPCOMM43が先行プロセス4-tと現在のプロセス4-iとの間で一致した場合であって、複数の性能情報5の全てが既に計測済みである場合には、現在のプロセス4-iに付随する性能情報5の計測を抑制する。これにより、計測オーバヘッドをさらに軽減することができる。
【0139】
UID41、PID42、及びPCOMM43が先行プロセス4-tと現在のプロセス4-iとの間で一致した場合であって、複数の性能情報5の全てが既に計測済みである場合には、既に計測済みである性能情報5を再計測してもよい。また、平均値算出部123は、複数回にわたって同じ性能情報5が計測された結果の平均値を算出してよい。これにより、性能情報5の計測精度をさらに高めることが可能となる。
【0140】
想定されるビジネスシーンにおける効能として、性能情報5についての計測負担及び通信負担を軽減しつつシステム性能分析を実行することができ、膨大なデータ処理をするために重要なコンピューティングパワーを追求する種々の分野に応用することができる。特に、量子シミュレータ分野、及びハイパフォーマンスコンピューティング分野等における計算プロセスにおいて、計測負担及び通信負担を軽減することができる。
【0141】
[G]付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0142】
(付記1)
性能分析の対象の情報処理装置において実行される複数のプロセスをそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、
前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記対象の情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する、
処理をコンピュータに実行させる、性能情報収集プログラム。
【0143】
(付記2)
前記情報処理装置に、前記コンピュータとして前記処理を実行させる、付記1に記載の性能情報収集プログラム。
【0144】
(付記3)
前記第1の識別情報及び前記第2の識別情報の何れか一方を親ノードとし他方を子孫ノードとして含む木構造のデータ構造を生成し、
前記木構造を用いた深さ優先探索を用いて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報を比較し、
前記比較の結果に基づいて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致するか否かを判断する、
処理を前記コンピュータに実行させる、付記1又は2に記載の性能情報収集プログラム。
【0145】
(付記4)
前記木構造のデータ構造は、
前記第1の識別情報を前記子孫ノードとし、前記第2の識別情報を前記親ノードとし、前記複数の性能情報のうちで計測された性能情報をそれぞれ葉ノードとして含む、
付記3に記載の性能情報収集プログラム。
【0146】
(付記5)
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随する前記複数の性能情報の計測を抑制する、
処理を前記コンピュータに実行させる、付記1又は2に記載の性能情報収集プログラム。
【0147】
(付記6)
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随して前記第1の性能情報を再計測する、
処理を前記コンピュータに実行させる、付記1又は2に記載の性能情報収集プログラム。
【0148】
(付記7)
性能分析の対象の情報処理装置において実行される複数のプロセスのそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、
前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記対象の情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する、
処理をコンピュータが実行する、性能情報収集方法。
【0149】
(付記8)
前記情報処理装置が、前記コンピュータとして前記処理を実行する、付記7に記載の性能情報収集方法。
【0150】
(付記9)
前記第1の識別情報及び前記第2の識別情報の何れか一方を親ノードとし他方を子孫ノードとして含む木構造のデータ構造を生成し、
前記木構造を用いた深さ優先探索を用いて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報を比較し、
前記比較の結果に基づいて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致するか否かを判断する、
処理を前記コンピュータが実行する、付記7又は8に記載の性能情報収集方法。
【0151】
(付記10)
前記木構造のデータ構造は、
前記第1の識別情報を前記子孫ノードとし、前記第2の識別情報を前記親ノードとし、前記複数の性能情報のうちで計測された性能情報をそれぞれ葉ノードとして含む、
付記9に記載の性能情報収集方法。
【0152】
(付記11)
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随する前記複数の性能情報の計測を抑制する、
処理を前記コンピュータが実行する、付記7又は8に記載の性能情報収集方法。
【0153】
(付記12)
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随して前記第1の性能情報を再計測する、
処理を前記コンピュータが実行する、付記7又は8に記載の性能情報収集方法。
【0154】
(付記13)
性能分析の対象の情報処理装置が実行する複数のプロセスのそれぞれを識別するための第1の識別情報と、前記複数のプロセスの各利用者を識別するための第2の識別情報とを取得し、
前記複数のプロセスに含まれる1以上の先行プロセスと他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致する場合には、前記対象の情報処理装置について予め定められた複数の性能情報のなかで前記先行プロセスに付随して計測された第1の性能情報と少なくとも一部が異なる第2の性能情報を前記他のプロセスに付随して計測する、
プロセッサを備える、情報処理装置。
【0155】
(付記14)
前記プロセッサは、
前記第1の識別情報及び前記第2の識別情報の何れか一方を親ノードとし他方を子孫ノードとして含む木構造のデータ構造を生成し、
前記木構造を用いた深さ優先探索を用いて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報を比較し、
前記比較の結果に基づいて、前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致するか否かを判断する、
付記13に記載の情報処理装置。
【0156】
(付記15)
前記木構造のデータ構造は、
前記第1の識別情報を前記子孫ノードとし、前記第2の識別情報を前記親ノードとし、前記複数の性能情報のうちで計測された性能情報をそれぞれ葉ノードとして含む、
付記13に記載の情報処理装置。
【0157】
(付記16)
前記プロセッサは、
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随する前記複数の性能情報の計測を抑制する、
付記13に記載の情報処理装置。
【0158】
(付記17)
前記プロセッサは、
前記先行プロセスと前記他のプロセスとの間で前記第1の識別情報及び前記第2の識別情報の双方が一致し、前記複数の性能情報のうちで前記第1の性能情報と異なる性能情報が全て計測済みである場合には、前記他のプロセスに付随して前記第1の性能情報を再計測する、
付記13に記載の情報処理装置。
【符号の説明】
【0159】
1 システム
2 ユーザ端末
3 ジョブ
4,4-1~4-12 プロセス
4-i 現在のプロセス
4-t 先行プロセス
5 性能情報
6 カウンタ
7,7-1~7-3 性能情報セット
10 ジョブスケジューラ
20 収集サーバ
21 マシン動作分析部
22 アプリケーション特性分析部
41,41-1~41-3 UID
42,42-1~42-3 PID
43,43-1~43-3 PCOMM
100,100-1,100-2,100-N ターゲットサーバ
100a プロセッサ
100b メモリ
100c 記憶部
100d IF部
100e IO部
100f 読取部
100h 記録媒体
100i バス
100g プログラム
110 制御部
111 カーネルスタック情報取得部
112 UID取得部
113 PID取得部
114 PCOMM取得部
115 木構造生成部
116 判断部
117 選択部
118 計測部
119 通信部
120 メモリ部
121 木構造
122 セット情報
123 平均値算出部
130 ルート
140,150 親ノード
141,141-1,141-2,151,151-1,151-2 子ノード
142,142-1~142-3,152,152-1,152-2 孫ノード
143,143-1~143-5,153,153-1~153-5 葉ノード