JP4893325B2 - システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置 - Google Patents

システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置 Download PDF

Info

Publication number
JP4893325B2
JP4893325B2 JP2007008471A JP2007008471A JP4893325B2 JP 4893325 B2 JP4893325 B2 JP 4893325B2 JP 2007008471 A JP2007008471 A JP 2007008471A JP 2007008471 A JP2007008471 A JP 2007008471A JP 4893325 B2 JP4893325 B2 JP 4893325B2
Authority
JP
Japan
Prior art keywords
ratio
graph
moving average
time
display
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.)
Expired - Fee Related
Application number
JP2007008471A
Other languages
English (en)
Other versions
JP2008176503A (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 JP2007008471A priority Critical patent/JP4893325B2/ja
Priority to US12/008,207 priority patent/US20080170073A1/en
Publication of JP2008176503A publication Critical patent/JP2008176503A/ja
Application granted granted Critical
Publication of JP4893325B2 publication Critical patent/JP4893325B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • 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/3419Recording 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 by assessing time
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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/3447Performance evaluation by modeling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、計算機システムの性能分析をおこなうシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置に関する。
計算機システムにおいて、アプリケーションの稼働中に障害や性能劣化が時系列で発生することがある。たとえば、人為的なミスなどにより、ユーザが意図しないデーモンプロセスが定期的に起動してしまい、計算機システムの性能が劣化してしまう場合がある。このような現象の原因を究明するためには、時系列で採取されたプロファイリングデータから計算機システムの挙動を正確に把握する必要がある。
一方で、デーモンプロセスの起動やアプリケーションの挙動を正確に把握するためには、たとえば、数ミリ秒単位でプロファイリングデータを採取することが必要となる。しかしながら、既存の関数プロファイラ(gprofなど)では測定のオーバーヘッドが大きいなどの理由により、性能分析に有用となる情報を得ることが難しかった。
このため、計算機システムの挙動を効率的かつ正確に把握するための解析手法が求められている。たとえば、一定の時間間隔でプロファイリングデータを採取し、これを所定の単位時間で集計することにより、関数の実行時間内訳を再計算する手法が提案されている(たとえば、下記非特許文献1参照。)。
具体的には、ある時刻に採取された関数ごとの比率を計算し、たとえば、その時刻に2つの関数が同じ比率で採取された場合、実行時間内訳をそれぞれ50%とする。このように、各時刻における関数ごとの実行時間内訳を求めることにより、どの時間帯にどのようなプログラムがどの程度、動いていたのかを把握することができる。
山村周史著 情報処理学会論文誌 時系列データの統計解析によるPCクラスタシステム解析手法の提案 Vol.47 No.SIG12(ACS15) pp.250−261(2006)
しかしながら、上述した従来技術の非特許文献1では、採取したプロファイリングデータを集計する単位時間によって関数ごとの実行時間内訳が変わってしまうため、プログラムの動きが違って見えてしまい、結果的にプログラムの挙動をうまく把握することができない場合があるという問題があった。
具体的には、プロファイリングデータを集計する単位時間が短い場合、関数の実行時間内訳を再計算する際のデータ数が少なくなってしまい、統計的なバラツキが大きくなる。この場合、プログラムの動きが極端に表現されてしまい、プログラムの挙動を正確に把握することが難しいという問題があった。
一方、プロファイリングデータを集計する単位時間が長い場合、関数の実行時間内訳を再計算する際のデータ数が多くなる。この場合、統計的なバラツキは小さくなるが、プログラムの動きがなだらかに表現されてしまい、プログラムの細かい挙動を把握することが難しいという問題があった。
このように、ある単位時間のプロファイリングデータを単純に集計することによってプログラムの挙動を解析すると、統計的なバラツキにより、プログラムの挙動をうまく把握することができず、結果的に計算機システムにおける障害や性能劣化などの問題を正確に特定することができないという問題があった。
この発明は、上述した従来技術による問題点を解消するため、簡便かつ正確にプログラムの挙動をあらわすグラフを提示可能なGUIを提供することにより、計算機システムにおける性能分析の効率化を図ることができるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかる分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置は、計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得し、取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成し、作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示し、前記第1のグラフが表示された結果、前記第1のグラフの表示変更指示を受け付け、前記第1のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出し、算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを表示することを特徴とする。
この発明によれば、計算機システム内で実行されていた処理ごとの比率の移動平均値に基づいて、第2のグラフを生成することにより、時系列データの集計単位の違いによって生じるバラツキを抑えたグラフを提示することができる。
また、上記発明において、前記第1のグラフの表示変更指示を受け付けた場合、前記処理ごとの比率に対して重み付けするか否かの選択を受け付け、前記処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付け、選択された窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出し、算出された前記処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出し、算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、前記第2のグラフを表示することとしてもよい。
また、上記発明において、選択された窓関数を前記処理ごとの比率に対して掛け合わせる範囲の選択を受け付け、選択された範囲に基づいて、前記窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出することとしてもよい。
これらの発明によれば、計算機システム内で実行されていた処理ごとの比率に重み付けをおこなうことにより、プログラムの挙動の特徴を適切にあらわすグラフを提示することができる。
本発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置によれば、簡便かつ正確にプログラムの挙動をあらわすグラフを提示可能なGUIを提供することにより、計算機システムにおける性能分析の効率化を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置の好適な実施の形態を詳細に説明する。
(システム分析装置のハードウェア構成)
まず、システム分析装置100のハードウェア構成について説明する。図1は、この発明の実施の形態にかかるシステム分析装置のハードウェア構成を示す説明図である。図1において、システム分析装置100は、コンピュータ本体110と、入力装置120と、出力装置130と、から構成されており、不図示のルータやモデムを介してLAN、WANやインターネットなどのネットワーク140に接続可能である。
コンピュータ本体110は、CPU、メモリ、インターフェースを有する。CPUは、システム分析装置100のハードウェア構成の全体の制御を司る。メモリは、ROM、RAM、HD、光ディスク111、フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク111はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク111およびフラッシュメモリはコンピュータ本体110に対し着脱自在である。インターフェースは、入力装置120からの入力、出力装置130への出力、ネットワーク140に対する送受信の制御をおこなう。
また、入力装置120としては、キーボード121、マウス122、スキャナ123などがある。キーボード121は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス122は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ123は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体110内のメモリに格納される。なお、スキャナ123にOCR機能を持たせてもよい。
また、出力装置130としては、ディスプレイ131、スピーカ132、プリンタ133などがある。ディスプレイ131は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ133は、画像データや文書データを印刷する。またスピーカ132は、効果音や読み上げ音などの音声を出力する。
(プロファイリングデータDBの記憶内容)
つぎに、システム分析装置100に備えられているプロファイリングデータDB200の記憶内容について説明する。図2は、プロファイリングデータDB200の記憶内容を示す説明図である。図2において、プロファイリングデータDB200は、任意の時間間隔(たとえば、1[ms]間隔)で採取されたプロファイリングデータ200−1〜200−nを格納している。
プロファイリングデータ200−1〜200−nは、たとえば、計算機システム上で性能分析をおこなうアプリケーションを動作させ、対象プログラムについて、プログラムの開始から終了までの性能データを採取したものである。各プロファイリングデータ200−1〜200−nは、それぞれ採取されたときに、計算機システム上でどのような関数(処理)が実行されていたのかを示すデータである。
プロファイリングデータ200−1〜200−nは、CPU番号、PID、関数名および行番号に関する情報を有している。CPU番号は、各プロファイリングデータ200−1〜200−nが採取されたときに動作していたCPUを識別するための識別子である。
PID(プロセスID)は、各プロファイリングデータ200−1〜200−nが採取されたときに動作していたプロセスを識別するための識別子である。関数名は、各プロファイリングデータ200−1〜200−nが採取されたときに実行されていた関数の名称であり、行番号は、その関数が記述されているソースコード内における行番号である。
ここで、プロファイリングデータ200−1を例に挙げると、CPU番号「0」のCPUが動作して、PID「26113」のプロセスが実行されていたことを示している。具体的には、関数名「libperl.so::Perl_pp_print」の関数が実行されており、その関数が記述されているソースコード内における行番号は「114」であることを示している。
プロファイリングデータDB200に格納されているプロファイリングデータ200−1〜200−nは、対象プログラムの開始から終了までの間に任意の時間間隔で採取された全データであってもよく、また、プログラム実行中の任意の時間区間内に採取されたデータであってもよい。
(システム分析装置の機能的構成)
つぎに、この発明の実施の形態にかかるシステム分析装置100の機能的構成について説明する。図3は、この発明の実施の形態にかかるシステム分析装置100の機能的構成を示すブロック図である。図3において、システム分析装置100は、プロファイリングデータDB200と、取得部301と、作成部302と、表示部303と、受付部304と、移動平均算出部305と、選択部306と、比率算出部307と、から構成されている。
まず、取得部301は、計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する機能を有する。計算機システムは、単体システムであってもよく、また、ネットワーク140を介して複数の計算機が接続されたコンピュータシステム、たとえば、クラスタシステムやグリッドシステムなどであってもよい。
時系列データとは、計算機システム内で実行されていた処理を実行順に示す情報であり、たとえば、計算機システム内で実行されていたプロセス、関数、オブジェクトなどに関する情報を実行順に示すデータである。具体的には、たとえば、図2に示したプロファイリングデータDB200に格納されているデータ群である。
取得部301は、たとえば、プロファイリングDB200からプロファイリングデータ200−1〜200−nを読み出すことにより、時系列データを取得することとしてもよい。また、取得部301は、システム分析装置100に直接入力された時系列データを取得することとしてもよく、また、ネットワーク140を介して外部のコンピュータ装置から時系列データを取得することとしてもよい。なお、取得部301によって取得された時系列データは、ROMやRAMなどのメモリに記憶される。
作成部302は、取得部301によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する機能を有する。具体的には、作成部302は、ROMやRAMなどのメモリに記憶されている時系列データを読み出して、その時系列データに基づく実行テーブルを作成する。
所定の単位時間は、各処理の比率を求めるときの時間間隔であり、任意に設定可能である。ここで、各プロファイリングデータ200−1〜200−nが1[ms]ごとに採取されたとし、所定の単位時間を3[ms]とする。
この場合、作成部302は、連続する3つのプロファイリングデータ(たとえば、プロファイリングデータ200−1〜200−3)ごとに各処理の比率を求めることにより、実行テーブルを作成する。実行テーブルの作成処理については図4を用いて後述する。なお、作成部302によって作成された実行テーブルはROMやRAMなどのメモリに記憶される。
表示部303は、作成部302によって作成された実行テーブルに格納されている処理ごとの比率を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示画面に表示する機能を有する。具体的には、表示部303は、ROMやRAMなどのメモリに記憶されている実行テーブルを読み出して、その実行テーブルに基づく第1のグラフをディスプレイ131に表示する。
より具体的には、まず、実行テーブルに格納されている処理ごとの比率に基づいて、各時刻における処理ごとの実行時間内訳を演算する。そして、演算された処理ごとの実行時間内訳を集計することにより、第1のグラフを生成して、表示部303によりディスプレイ131に表示する。表示部303によって表示される第1のグラフについては図5を用いて後述する。
なお、第1のグラフをディスプレイ131に表示する際には、計算機システム内で実行されていたすべての処理についての実行時間内訳をグラフ化することとしてもよいし、特定の処理、たとえば、実行時間内訳が大きい上位10個の処理についてのみグラフ化することとしてもよい。具体的には、たとえば、演算された処理ごとの実行時間内訳をソートし、その実行時間内訳が大きいものから順に上位10個の処理についてグラフ化する。
受付部304は、表示部303によって第1のグラフが表示された結果、第1のグラフの表示変更指示を受け付ける機能を有する。この表示変更指示は、第1のグラフによってあらわされる処理ごとの実行時間内訳の統計的なバラツキが大きいために、計算機システム内で実行されていたプログラムの挙動をうまく把握することができないと、ユーザによって判断された場合などに入力される。
具体的には、たとえば、第1のグラフの表示変更指示は、キーボード121やマウス122などの入力装置120をユーザが操作することによって入力される。第1の表示変更指示の入力については図6を用いて後述する。
移動平均算出部305は、受付部304によって第1のグラフの表示変更指示を受け付けた場合、作成部302によって作成された実行テーブルを参照することにより、処理ごとの比率の移動平均値を算出する機能を有する。
具体的には、移動平均算出部305は、ROMやRAMなどのメモリに記憶されている実行テーブルを読み出して、その実行テーブルを参照することにより、移動平均値を算出する。なお、移動平均算出部305によって算出された移動平均値はROMやRAMなどのメモリに記憶される。
ここで、移動平均とは、一定の時間間隔を定め、各時刻の値を、その時間間隔内の原データの平均値とすることである。たとえば、一定の時間間隔を3[ms]とし、ある時刻が1[ms]間隔でa→b→c→dと経過した場合、時刻bにおける移動平均値は、時刻a、時刻bおよび時刻cにおける値の平均値となる。移動平均値の算出処理については図8を用いて後述する。
このように、実行テーブルに格納されている処理ごとの比率に対して移動平均を適用することにより、処理ごとの比率の基調的な傾向が読み取りやすくなる。具体的には、処理ごとの比率を排他的に取るのではなく、一致の間隔でオーバーラップさせて、統計的にその比率を求めることにより、プログラムの挙動をなだらかに、かつ、正確にあらわすことができる。
また、表示部303は、移動平均算出部305によって算出された処理ごとの移動平均値を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを表示画面に表示する機能を有する。具体的には、表示部303は、ROMやRAMなどのメモリに記憶されている移動平均値を読み出して、その移動平均値に基づく第2のグラフをディスプレイ131に表示する。
より具体的には、まず、処理ごとの比率の移動平均値に基づいて、各時刻における処理ごとの実行時間内訳を演算する。そして、演算された処理ごとの実行時間内訳を集計することにより、第2のグラフを生成して、表示部303によりディスプレイ131に表示する。表示部303によって表示される第2のグラフについては図9を用いて後述する。
選択部306は、受付部304によって第1のグラフの表示変更指示を受け付けた場合、処理ごとの比率に対して重み付けするか否かの選択を受け付ける機能を有する。重み付けの要否の選択は、たとえば、キーボード121やマウス122などの入力装置120をユーザが操作することによって入力される。重み付けの要否の選択の入力については図7を用いて後述する。
また、選択部306は、処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から処理ごとの比率に対して重み付けする窓関数の選択を受け付ける機能を有する。窓関数とは、ある有限区間以外で「0」となる関数である。この窓関数を処理ごとの比率に掛け合わせることにより、各比率に対して重み付けをおこなうことができる。このとき、有限区間外は「0」となり、有限区間内だけが残るため、処理ごとの比率の数値解析が容易となる。
さらに、選択部306は、窓関数を処理ごとの比率に対して掛け合わせる範囲の選択を受け付ける機能を有する。窓関数を掛け合わせる範囲は、窓関数を掛け合わせることによって重みを与える範囲のことである。窓関数および当該窓関数の範囲の選択は、たとえば、キーボード121やマウス122などの入力装置120をユーザが操作することによって入力される。窓関数および当該窓関数の範囲の選択については図11を用いて後述する。
比率算出部307は、選択部306によって選択された窓関数を処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出する機能を有する。また、比率算出部307は、選択部306によって選択された範囲に基づいて、窓関数を処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出する機能を有する。
ここで、処理ごとの比率に対して重み付けする窓関数について説明する。窓関数としては、たとえば、三角窓、ハニング窓、ハミング窓およびブラックマン窓などを用いることができる。それぞれの窓関数の式を下記式(1)〜(4)に示す。
三角窓:w(x)=1−2×|x−0.5| ・・・(1)
ハニング窓:w(x)=0.5−0.5×cos(2πx) ・・・(2)
ハミング窓:w(x)=0.54−0.46×cos(2πx) ・・・(3)
ブラックマン窓:w(x)=0.42−0.5×cos(2πx)+0.08cos(4πx) ・・・(4)
なお、上記各式において、w(x)は「窓関数値」であり、xは「N/窓関数の範囲、N=0〜n(n:自然数)」であり、「0」以上「1」以下の範囲の値をとる。比率算出部307は、たとえば、上記式(1)〜(5)の中から選択された窓関数ごとの窓関数値を処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出する。
これらの窓関数を用いて、実行テーブルに格納されている処理ごとの比率に対して重み付けする重み付け処理については図10を用いて後述する。なお、比率算出部307によって算出された処理ごとの重み付けされた比率はROMやRAMなどのメモリに記憶される。
また、移動平均算出部305は、比率算出部307によって算出された処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出する機能を有する。具体的には、移動平均算出部305は、ROM502やRAM503などのメモリに記憶されている処理ごとの重み付けされた比率を読み出して、当該処理ごとの重み付けされた比率の移動平均値を算出する。
また、表示部303は、移動平均算出部305によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、第2のグラフを表示画面に表示する機能を有する。具体的には、表示部303は、ROMやRAMなどのメモリに記憶されている処理ごとの重み付けされた比率の移動平均値を読み出して、その移動平均値に基づく第2のグラフをディスプレイ131に表示する。
より具体的には、まず、処理ごとの重み付けされた比率の移動平均値に基づいて、各時刻における処理ごとの実行時間内訳を演算する。そして、演算された処理ごとの実行時間内訳を集計することにより、第2のグラフを生成して、表示部303によりディスプレイ131に表示する。
なお、上述した取得部301、作成部302、受付部304、移動平均算出部305、選択部306および比率算出部307は、具体的には、たとえば、図1に示した光ディスク111や不図示のROM、RAM、HDなどのメモリに記録されたプログラムをCPUが実行することによって、または、インターフェースによって、その機能を実現する。また、表示部303は、具体的には、たとえば、図1に示したディスプレイ131によって、その機能を実現する。
(実行テーブルの作成処理の概要)
つぎに、計算機システム内で実行されていた処理ごとの比率を時系列で示す実行テーブルの作成処理の概要について説明する。図4は、実行テーブルの作成処理の概要を示す説明図である。ここでは、計算機システム内で実行されていた関数を関数A、B、CおよびDとする。
図4において、棒グラフ410は、取得部301によって取得された時系列データによってあらわされる各関数A〜Dの実行状況を示している。具体的には、どの時刻にどの関数が実行されていたのかをあらわしている。たとえば、棒グラフ410におけるt=3からt=4の間に実行されていた関数は関数Dである。
以下、棒グラフ410の横軸の1マスを1[ms]とし、各処理の比率を求めるときの時間間隔を示す所定の単位時間を3[ms]とする。このため、実行テーブル420における各時刻は、所定の単位時間ごと、すなわち、3[ms]ごとに時刻1、時刻2、…と変化する。
具体的には、実行テーブル420における時刻1は、棒グラフ410におけるt=0〜3(図4中410−1)において実行された各関数の実行数の比率をあらわしている。また、時刻2は、棒グラフ410におけるt=3〜6(図4中410−2)において実行された各関数の実行数の比率をあらわしている。
各時刻における各関数の実行数の比率は、作成部302により、所定の単位時間内に実行された関数の総数に対する各関数の実行数に基づいて算出される。具体的には、時刻1における各関数の実行数の比率は、t=0〜3(図4中410−1)の間に実行された各関数の実行数を、その間に実行された関数の総数で除算することによって算出する。
ここでは、t=0〜3(図4中410−1)の間に実行された関数の総数は3であり、各関数の実行数は、関数Aが2、関数Bが1、関数Cおよび関数Dが0である。このため、実行テーブル420において、時刻1における関数Aの実行数の比率は「2/3」(図4中「0.67」と表記)であり、関数Bの実行数の比率は「1/3」(図4中「0.33」と表記)である。また、関数Cおよび関数Dの実行数の比率は「0」となる。
このようにして、作成部302により、各時刻1,2,…(所定の単位時間ごと)における各関数の実行数の比率を算出し、その算出結果が格納された実行テーブル420を作成する。なお、ここでは、所定の単位時間を3[ms]としたが、ユーザによって任意に設定可能であり、所定の単位時間を変化させることにより統計的なバラツキを調整することができる。
(第1のグラフの具体例)
つぎに、表示部303によって表示される第1のグラフの具体例について説明する。図5は、第1のグラフの具体例を示す説明図である。第1のグラフは、実行テーブル(たとえば、実行テーブル420)に格納されている各関数の実行数の比率を用いて生成されるグラフである。
具体的には、実行テーブルに格納されている各関数の実行数の比率から各時刻(たとえば、時刻1、時刻2、…)における関数ごとの実行時間内訳を演算する。実行時間内訳とは、各時刻、すなわち、所定の単位時間内に実行されていた関数ごとの実行時間の割合を示したものである。
たとえば、実行テーブル420における時刻1では、関数ごとの実行時間内訳は「関数A:67%、関数B:33%、関数C:0%、関数D:0%」となる。そして、演算された各時刻における関数ごとの実行時間内訳を、たとえば、実行時間内訳が大きいものから順にソートしてプロットすることにより、第1のグラフを生成する。
図5において、グラフ500−1,500−2における横軸は経過時間[t]をあらわしており、縦軸は実行時間内訳[%]をあらわしている。グラフ500−1は、10サンプルの時系列データに基づく第1のグラフである。すなわち、時系列データを10サンプル単位に集計して、第1のグラフが生成されている。
また、グラフ500−2は、100サンプルの時系列データに基づく第1のグラフである。すなわち、時系列データを100サンプル単位に集計して、第1のグラフが生成されている。
各グラフ500−1,500−2において、各時刻における各関数の実行時間内訳が各種ハッチングによってあらわされている。なお、各グラフ500−1,500−2において、同一関数の実行時間内訳は、同一のハッチングによってあらわされている。また、各グラフ500−1,500−2では、計算機システム内で実行されている複数の関数のうち、実行時間内訳の大きいものから順に上位10個の関数についての実行時間内訳があらわされている。
このため、各グラフ500−1,500−2では、上位10個以外の関数については実行時間内訳があらわされておらず、各グラフ500−1,500−2において空白となっている。なお、第1のグラフの生成元となる時系列データのサンプル数および第1のグラフに実行時間内訳を表示する関数の数は任意に設定可能である。
特に、プログラムの挙動を正確に把握するために必要なサンプル数、すなわち、時系列データを集計する最適な単位時間は、対象プログラムや状況によってそれぞれ異なるため、ユーザが試行錯誤して探索することとなる。
ここで、グラフ500−1における点線丸510の領域に注目すると、各関数の実行時間内訳が極端に表現されており、計算機システム内で実行されていたプログラムの挙動を正確に把握することが難しい。
一方、グラフ500−2における点線丸520の領域に注目すると、各関数の実行時間内訳がなだらかに表現されてしまい、計算機システム内で実行されていたプログラムの細かい挙動を把握することが難しい。
このように、サンプル数が異なるとグラフ500−1,500−2の見え方は大きく異なる。上述したように、プログラムの挙動を正確に把握するために必要なサンプル数(単位時間)は、ユーザが試行錯誤して探索することとなるが、最適なサンプル数を探索することは困難であり、ユーザによる手間と時間がかかってしまう。
そこで、サンプル数(集計単位)の違いによるバラツキを抑えるために、各データに対する重み付けおよび移動平均法を適用する。また、各データに重み付けする際に、各種の条件を与えることにより、グラフの見え方を様々に変えることができるようにする。
なぜなら、どのような見え方であれば、最もプログラムの挙動を正確に把握できるかは、対象プログラムによって異なるため、自動的に求めることが難しい。ここでは、重み付けの適用の有無や最適な条件の入力をユーザの判断に任せ、そのときのユーザの試行錯誤を支援することにより、計算機システムの性能分析をおこなう場合の利便性の向上を図る。
(ディスプレイ131の表示画面)
つぎに、ディスプレイ131に表示される表示画面について説明する。図6は、表示変更指示画面の一例を示す説明図である。図6において、表示指示画面600には、第1のグラフであるグラフ500−2が表示されている。表示指示画面600において、カーソル601を移動させてYesボタン602をクリックすると、つぎの画面(図7参照)に移行する。
すなわち、ユーザがグラフ500−2の見え方では、計算機システム内で実行されていたプログラムの挙動を正確に把握できないと判断した場合などに、グラフ表示を変更する表示変更指示を入力する。また、カーソル601を移動させてNoボタン603をクリックすると、グラフ500−2が継続して表示されることとしてもよい。
図7は、算出形式選択画面の一例を示す説明図である。算出形式選択画面700において、カーソル701を移動させて移動平均ボタン710をクリックすると、実行テーブルに格納されている関数ごとの比率の移動平均値が算出され、その移動平均値を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフがディスプレイ131に表示される。
また、カーソル701を移動されて重み付けボタン720をクリックすると、実行テーブルに格納されている関数ごとの比率に対して重み付けする窓関数を選択する条件指定画面に移行する。条件指定画面については図11を用いて後述する。
(移動平均値の算出処理の概要)
つぎに、実行テーブルに格納されている関数ごとの比率の移動平均値の算出処理の概要について説明する。図8は、移動平均値の算出処理の概要を示す説明図である。この移動平均値は、たとえば、算出形式選択画面700(図7参照)において移動平均ボタン710をクリックした場合に、移動平均算出部305により算出される。
図8において、実行テーブル810には、各時刻(…、h、i、j、…)における関数Aの比率が示されている。関数Aの比率とは、上述したように、所定の単位時間内に実行されたすべての関数に対する関数Aの実行数の比率である。また、実行テーブル820には、各時刻(…、i、j、k、…)における関数Aの比率の移動平均値が格納されている。
ここでは、ある時刻における関数Aの比率の移動平均値を、ある時刻における関数Aの比率と、ある時刻の直前の時刻における関数Aの比率と、ある時刻の直後の時刻における関数Aの比率と、から算出することとする。具体的には、たとえば、時刻iにおける関数Aの比率の移動平均値は、時刻h、時刻iおよび時刻jにおける関数Aの比率から算出される。
より具体的には、時刻iにおける関数Aの比率の移動平均値は、各時刻h,iおよびjにおける関数Aの比率の平均、すなわち、「移動平均値=(0.67+0+0.33)÷3=0.33」となる。また、時刻jにおける関数Aの比率の移動平均値は、各時刻i,jおよびkにおける関数Aの比率の平均、すなわち、「移動平均値=(0+0.33+0.67)÷3=0.33」となる。
また、時刻kにおける関数Aの比率の移動平均値は、各時刻j,kおよびlにおける関数Aの比率の平均、すなわち、「移動平均値=(0.33+0.67+0.33)÷3=0.44」となる。なお、ここでは各時刻における関数Aの比率の移動平均値を、その時刻を含む前後3つの時刻における関数Aの比率の平均によって算出することとしたが、その範囲は任意に設定可能である。
(第2のグラフの具体例(その1))
つぎに、表示部303によって表示される第2のグラフの具体例(その1)について説明する。図9は、第2のグラフの具体例(その1)を示す説明図である。ここで説明する第2のグラフは、各時刻における関数ごとの比率の移動平均値を用いて生成されるグラフであり、たとえば、算出形式選択画面700(図7参照)において移動平均ボタン710をクリックするとディスプレイ131に表示されるグラフである。
具体的には、まず、各時刻における関数ごとの比率の移動平均値から各時刻における関数ごとの実行時間内訳を演算する。そして、演算された各時刻における関数ごとの実行時間内訳を、たとえば、実行時間内訳が大きいものから順にソートしてプロットすることにより、第2のグラフを生成する。
図9において、グラフ900における横軸は経過時間[t]をあらわしており、縦軸は実行内訳[%]をあらわしている。なお、グラフ900は、図5に示すグラフ500−2を生成する際に生成元とした関数ごとの比率の移動平均値に基づいて生成されたグラフである。
ここで、グラフ900の点線丸910の領域に注目すると、図5中点線丸520の領域と比べて、サンプル数の違いによる見え方のバラツキが抑えられており、計算機システム内で実行されていたプログラムの挙動が把握しやすくなっている。
しかしながら、単純に移動平均を適用すると、たとえば、ある時刻に多く採取された関数が存在する場合、その関数が連続して実行されていたかのように見えてしまう。そこで、関数ごとの比率に重み付けをすることにより、計算機システム内で実行されていたプログラムの特徴をよりはっきりさせる。
(重み付け処理の概要)
つぎに、関数ごとの比率に重み付けする重み付け処理の概要について説明する。図10は、重み付け処理の概要を示す説明図である。ここでは、関数の比率に掛け合わせる窓関数として、ハニング窓を選択した場合について説明する。
図10において、実行テーブル1010には、各時刻(1、2、3、…、10)における関数Xの比率が格納されている。比率算出部307により、この実行テーブル1010に格納されている各時刻における関数Xの比率に窓関数であるハニング窓を掛け合わせることによって、各時刻における関数Xの重み付けされた比率を算出する。
窓関数を関数Xの比率に掛け合わせるために、まず、関数Xの比率に対して窓関数を掛け合わせる範囲(窓サイズ)を決定する。ここでは、窓サイズを時系列データのサンプル数である「10」とする。つぎに、窓関数(ハニング窓)における窓サイズ分ごとの値(以下、「窓関数値」という)を算出する。
具体的には、「x=N/窓サイズ(N=0,1,2,…,10)」として、窓関数であるハニング窓の上記式(2)に代入することにより、窓サイズ分ごとの窓関数値を算出する。たとえば、N=1の場合、x=1/10となり、その値を上記式(2)に代入すると、窓関数値:w(x)=0.095が算出される。
このようにして、窓サイズ分の窓関数値を算出し、その算出結果を窓関数値テーブル1020に格納する。窓関数値テーブル1020には、窓関数として、ハニング窓を選択した場合における窓サイズ分の窓関数値が格納されている。
そして、実行テーブル1010に格納されている各時刻における関数Xの比率に対して、窓関数値テーブル1020に格納されている窓関数値をそれぞれ掛け合わせることにより、各時刻における関数Xの重み付けされた比率を算出する。
具体的には、図10において、点線で示すように、時刻1における関数Xの比率「0.1」に対して、窓関数値「0.095」を掛け合わせることにより、時刻1における関数Xの重み付けされた比率「0.0095」を算出する。このようにして、比率算出部307によって算出された各時刻における関数Xの重み付けされた比率は、ROMやRAMなどのメモリに記憶される。
なお、ここでは関数Xについてのみ説明したが、計算機システム内で実行されている複数の関数について、個々の関数ごとに、上述した重み付け処理を実行して、各時刻における関数ごとの重み付けされた比率を算出する。そして、その算出結果は、各関数と関連付けられてROMやRAMなどのメモリに記憶される。
(条件指定画面の具体例)
つぎに、ディスプレイ131に表示される条件指定画面の具体例について説明する。図11は、条件指定画面の一例を示す説明図である。ここでは、第2のグラフを生成する際に指定する描画指定について説明する。条件指定画面1100において、カーソル1101を移動させて各ボックスをクリックすることにより、関数ごとの比率に対して重み付けする場合における各種の条件を入力することができる。
たとえば、カーソル1101を移動させて描画間隔ボックス1110をクリックすると、描画間隔を入力することができる。描画間隔とは、第2のグラフにおいて、関数ごとの実行時間内訳をプロットするときの時間間隔である。
また、描画間隔を窓サイズとの割合またはサンプリング数によって指定する場合には、それぞれ対応するボタン1111,1112にカーソル1101を移動させてクリックする。このあと、カーソル1101を移動させて描画間隔ボックス1110をクリックし、描画間隔を入力する。
また、カーソル1101を移動させて窓サイズボックス1120をクリックすると、関数ごとの比率に窓関数を掛け合わせる範囲を入力することができる。また、窓サイズを描画間隔との割合またはサンプリング数によって指定する場合には、それぞれ対応するボタン1121,1122にカーソル1101を移動させてクリックする。このあと、カーソル1101を移動させて描画間隔ボックス1110をクリックし、窓サイズを入力する。
また、カーソル1101を移動させて窓関数ボックス1130をクリックすると、複数の窓関数の中から関数ごとの比率に対して重み付けする窓関数を選択することができる。ここでは、関数ごとの比率に対して重み付けする窓関数を、矩形窓、三角窓、ハニング窓、ハミング窓およびブラックマン窓の中から選択することができる。
各種の条件の入力が終了した場合、カーソル1101を移動させてグラフ表示ボタン1041をクリックすると、入力した条件に基づく第2のグラフが生成され、ディスプレイ141に表示されることとなる。また、キャンセルボタン1142をクリックすると、再び算出形式選択画面(図7参照)に移行する。
なお、描画指定以外にも、たとえば、対象指定、時間指定、データ指定およびグラフタイプなどの条件の入力をおこなうことができる。対象指定は、計算機システム内に複数のCPUが搭載されている場合に、CPUごと、または、特定のCPUによって実行される関数についてのみの実行時間内訳を集計させる指定をおこなうことができる。
また、クラスタシステムでは、クラスタシステム全体、クラスタシステムを構成する計算機ごと、または、特定の計算機において実行される関数についての実行時間内訳を集計させる指定を可能にすることにより、計算機間におけるプログラムの挙動を正確に把握することができる。
また、時間指定は、測定時間全体から集計する時間帯を指定することができる。この時間指定により、最初に大まかに計算機システム全体の挙動を把握し、問題と思われる時間帯をある程度予測して、このあと、詳細に見ていくことが可能となる。
また、データ指定は、グラフに描画される実行時間内訳の対象として、関数の他に、プロセスやオブジェクトなどを指定することができる。また、グラフタイプは、第2のグラフの表示形式として、棒グラフや面グラフなどのグラフを指定することができる。
このようにして、条件指定画面1100において各種の条件を入力し、グラフ表示ボタン1141をクリックすると、入力された条件に基づいて、第2のグラフが生成され、ディスプレイ131に表示されることとなる。具体的には、まず、指定された窓サイズに基づく窓関数値が算出される。
そして、関数ごとの比率に対して算出された窓関数値をそれぞれ乗算することにより、関数ごとの重み付けされた比率が算出される。このあと、関数ごとの重み付けされた比率の移動平均値が算出され、その移動平均値に基づく第2のグラフが生成されて、ディスプレイ131に表示される。
なお、関数ごとの比率に対して重み付けをする場合には、掛け合わせる窓関数によって同一プログラムの挙動の見え方が異なり、さらに、対象プログラムによっても挙動が異なる。また、窓関数を掛け合わせる範囲(窓サイズ)によってもプログラムの挙動の見え方が異なってくる。
ユーザは、条件指定画面1100を操作することにより、各種の条件を入力して、その条件に基づく第2のグラフを表示させる。この一連の操作を繰り返すことにより、計算機システム内で実行されているプログラムの挙動を正確に把握することができる第2のグラフを探索する。
(第2のグラフの具体例(その2))
ここで、上述した各種の条件が入力された結果、表示部303によってディスプレイ131に表示される第2のグラフについて説明する。図12〜図14は、第2のグラフの具体例を示す説明図である。第2のグラフは、各時刻における関数ごと重み付けされた比率の移動平均値を用いて生成されるグラフである。
図12〜図14に示す第2のグラフは、窓サイズとして10サンプルごとに窓関数を掛けて、200サンプルの移動平均値を算出することによって生成されたグラフである。図12は、窓関数として三角窓が選択された例であり、図13は、窓関数としてハミング窓が選択された例であり、図14は、窓関数としてブラックマン窓が選択された例である。
図12において、グラフ1200における点線丸1210の領域に注目すると、各関数の実行時間内訳をあらわす曲線がなだらかになり、さらに、各関数の実行時間内訳の特徴がはっきりとあらわれている。
また、図13に示すグラフ1300における点線丸1310および図14に示すグラフ1400における点線丸1410の領域についても同様に、各関数の実行時間内訳をあらわす曲線がなだらかになり、さらに、各関数の実行時間内訳の特徴がはっきりとあらわれている。
このように、ユーザが簡便な操作入力を繰り返すことによって最適な条件を効率的に探索することができる。これにより、プログラムの挙動を正確に把握することができるグラフをユーザに提示することができ、計算機システムにおける障害や性能劣化などの問題を特定する作業の効率化を図ることができる。
(システム分析装置のシステム分析処理手順)
つぎに、この発明の実施の形態にかかるシステム分析装置100のシステム分析処理手順について説明する。図15は、この発明の実施の形態にかかるシステム分析装置100のシステム分析処理手順を示すフローチャートである。
図15において、まず、取得部301により、計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得したか否かを判断する(ステップS1501)。
ここで、時系列データが取得されるのを待って(ステップS1501:No)、取得された場合(ステップS1501:Yes)、作成部302により、取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する(ステップS1502)。
このあと、表示部303により、作成部302によって作成された実行テーブルに格納されている処理ごとの比率を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示する(ステップS1503)。
つぎに、受付部304により、表示部303によって第1のグラフが表示された結果、第1のグラフの表示変更指示を受け付けたか否かを判断する(ステップS1504)。ここで、第1のグラフの表示変更指示を受け付けた場合(ステップS1504:Yes)、つぎに、選択部306により、処理ごとの比率に対して重み付けする選択を受け付けたか否かを判断する(ステップS1505)。
また、ステップS1504において、第1のグラフの表示変更指示を受け付けなかった場合(ステップS1504:No)、本フローチャートによる一連の処理を終了する。
つぎに、ステップS1505において、処理ごとの比率に対して重み付けする選択を受け付けた場合(ステップS1505:Yes)、選択部306により、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付けたか否かを判断する(ステップS1506)。
ここで、窓関数の選択を受け付けるのを待って(ステップS1506:No)、受け付けた場合(ステップS1506:Yes)、選択部306により、選択された窓関数を処理ごとの比率に対して掛け合わせる範囲の選択を受け付けたか否かを判断する(ステップS1507)。
ここで、窓関数を掛け合わせる範囲の選択を受け付けるのを待って(ステップS1507:No)、受け付けた場合(ステップS1507:Yes)、比率算出部307により、選択された範囲に基づいて、窓関数を処理ごとの比率に掛け合わせることによって当該処理ごとの重み付けされた比率を算出する(ステップS1508)。
このあと、移動平均算出部305により、ステップS1508において算出された処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出する(ステップS1509)。
最後に、表示部303により、移動平均算出部305によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、第2のグラフを表示して(ステップS1510)、本フローチャートによる一連の処理を終了する。
また、ステップS1505において、処理ごとの比率に対して重み付けする選択を受け付けなかった場合(ステップS1505:No)、移動平均算出部305により、ステップS1502において作成部302によって作成された実行テーブルを参照することにより、処理ごとの比率の移動平均値を算出する(ステップS1509)。
最後に、表示部303により、移動平均算出部305によって算出された処理ごとの移動平均値を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを表示して(ステップS1510)、本フローチャートによる一連の処理を終了する。
このように、この発明の実施の形態にかかるシステム分析装置100によれば、時系列データの集計単位(たとえば、サンプル数)の違いによって生じるバラツキを抑えたグラフを提示することができる。さらに、処理ごとの比率に重み付けをおこなうことにより、計算機システム内で動作していたプログラムの挙動の特徴を適切にあらわすグラフを提示することができる。
以上説明したように、この発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置によれば、簡便かつ正確にプログラムの挙動をあらわすグラフを提示可能なGUIを提供することにより、計算機システムにおける性能分析の効率化を図ることができる。
なお、本実施の形態で説明したシステム分析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、上述したシステム分析装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述したシステム分析装置100の機能的構成301〜307をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、システム分析装置100を製造することができる。
(付記1)計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得させる取得工程と、
前記取得工程によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成させる作成工程と、
前記作成工程によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示させる第1の表示工程と、
前記第1の表示工程によって前記第1のグラフが表示された結果、前記第1のグラフの表示変更指示を受け付けさせる受付工程と、
前記受付工程によって前記第1のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出させる移動平均算出工程と、
前記移動平均算出工程によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを表示させる第2の表示工程と、
をコンピュータに実行させることを特徴とするシステム分析プログラム。
(付記2)前記受付工程によって前記第1のグラフの表示変更指示を受け付けた場合、前記処理ごとの比率に対して重み付けするか否かの選択を受け付けさせる第1の選択工程と、
前記第1の選択工程によって前記処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付けさせる第2の選択工程と、
前記第2の選択工程によって選択された窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させる比率算出工程と、を前記コンピュータに実行させ、
前記移動平均算出工程は、
前記比率算出工程によって算出された前記処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出させ、
前記第2の表示工程は、
前記移動平均算出工程によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、前記第2のグラフを表示させることを特徴とする付記1に記載のシステム分析プログラム。
(付記3)前記第2の選択工程によって選択された窓関数を前記処理ごとの比率に対して掛け合わせる範囲の選択を受け付けさせる第3の選択工程を前記コンピュータに実行させ、
前記比率算出工程は、
前記第3の選択工程によって選択された範囲に基づいて、前記窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させることを特徴とする付記2に記載のシステム分析プログラム。
(付記4)前記窓関数は、
三角窓であることを特徴とする付記2または3に記載のシステム分析プログラム。
(付記5)前記窓関数は、
ハニング窓であることを特徴とする付記2または3に記載のシステム分析プログラム。
(付記6)前記窓関数は、
ハミング窓であることを特徴とする付記2または3に記載のシステム分析プログラム。
(付記7)前記窓関数は、
ブラックマン窓であることを特徴とする付記2または3に記載のシステム分析プログラム。
(付記8)付記1〜7のいずれか一つに記載のシステム分析プログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記9)計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得工程と、
前記取得工程によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成工程と、
前記作成工程によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示する第1の表示工程と、
前記第1の表示工程によって前記第1のグラフが表示された結果、前記第1のグラフの表示変更指示を受け付ける受付工程と、
前記受付工程によって前記第1のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出工程と、
前記移動平均算出工程によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを表示する第2の表示工程と、
を含んだことを特徴とするシステム分析方法。
(付記10)計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得手段と、
前記取得手段によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成手段と、
前記作成手段によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示画面に表示する表示手段と、
前記表示手段によって前記第1のグラフが表示された結果、前記第1のグラフの表示変更指示を受け付ける受付手段と、
前記受付手段によって前記第1のグラフの表示変更指示を受け付けた場合、前記作成手段によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出手段と、を備え、
前記表示手段は、
前記移動平均算出手段によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを前記表示画面に表示することを特徴とするシステム分析装置。
以上のように、本発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置は、計算機の性能分析に有用であり、特に、クラスタシステムやグリッドシステムなどの複数の計算機が接続されたコンピュータシステムの性能分析に適している。
この発明の実施の形態にかかるシステム分析装置のハードウェア構成を示す説明図である。 プロファイリングデータDBの記憶内容を示す説明図である。 この発明の実施の形態にかかるシステム分析装置の機能的構成を示すブロック図である。 実行テーブルの作成処理の概要を示す説明図である。 第1のグラフの具体例を示す説明図である。 表示変更指示画面の一例を示す説明図である。 算出形式選択画面の一例を示す説明図である。 移動平均値の算出処理の概要を示す説明図である。 第2のグラフの具体例(その1)を示す説明図である。 重み付け処理の概要を示す説明図である。 条件指定画面の一例を示す説明図である。 第2のグラフの具体例(その2)を示す説明図である。 第2のグラフの具体例(その3)を示す説明図である。 第2のグラフの具体例(その4)を示す説明図である。 この発明の実施の形態にかかるシステム分析装置のシステム分析処理手順を示すフローチャートである。
符号の説明
100 システム分析装置
200 プロファイリングデータDB
200−1〜200−3 プロファイリングデータ
301 取得部
302 作成部
303 表示部
304 受付部
305 移動平均算出部
306 選択部
307 比率算出部
410 棒グラフ
420,810,820,1010 実行テーブル
600 表示指示画面
700 算出形式選択画面
500−1,500−2,900,1200,1300,1400 グラフ
1020 窓関数値テーブル
1100 条件指定画面

Claims (6)

  1. 計算機システム内で実行される一連の処理に関する情報を取得する取得手段と、データに基づいて実行テーブルを作成する作成手段と、グラフを表示画面に表示する表示手段と、前記グラフの表示変更指示を受け付ける受付手段と、データに対して移動平均値を算出する移動平均算出手段と、を備える装置に、
    前記取得手段により、計算機システム内で実行される一連の処理に関する情報を時系列で示す時系列データとして取得させる取得工程と、
    前記作成手段により、前記取得手段によって取得される時系列データに基づいて、所定の単位時間内に実行される処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成させる作成工程と、
    前記表示手段により、前記作成手段によって作成される実行テーブルに格納される前記処理ごとの比率を集計し、前記計算機システム内で実行される処理の総数に対する各処理の実行数の比率を時系列で示す第1のグラフを表示させる第1の表示工程と、
    前記受付手段により、前記第1のグラフの表示変更指示を受け付けさせる受付工程と、
    前記移動平均算出手段により、前記受付手段によって前記第1のグラフの表示変更指示を受け付けた場合、前記作成手段によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出させる移動平均算出工程と、
    前記表示手段により、前記移動平均算出手段によって算出された処理ごとの移動平均値を集計し、前記計算機システム内で実行される一連の処理の比率を時系列で示す第2のグラフを表示させる第2の表示工程と、
    を実行させることを特徴とするシステム分析プログラム。
  2. さらに、選択を受け付ける選択手段と、比率算出手段とを備える装置に、
    前記選択手段により、前記受付手段によって前記第1のグラフの表示変更指示を受け付けた場合、前記処理ごとの比率に対して重み付けするか否かの選択を受け付けさせる第1の選択工程と、
    前記選択手段により、前記選択手段によって前記処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付けさせる第2の選択工程と、
    前記比率算出手段により、前記選択手段によって選択された窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させる比率算出工程とを実行させ、
    前記移動平均算出手段は、
    前記比率算出手段によって算出された前記処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出させる工程を実行させ、
    前記表示手段は、
    前記移動平均算出手段によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、前記第2のグラフを表示させる工程を実行させることを特徴とする請求項1に記載のシステム分析プログラム。
  3. さらに、前記選択手段により、前記第2の選択によって選択された窓関数を前記処理ごとの比率に対して掛け合わせる範囲の選択を受け付けさせる第3の選択工程を実行させ、
    前記比率算出手段は、
    前記選択手段によって選択された範囲に基づいて、前記窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させることを特徴とする請求項2に記載のシステム分析プログラム。
  4. 請求項1〜3のいずれか一つに記載のシステム分析プログラムを記録したコンピュータに読み取り可能な記録媒体。
  5. 取得手段、作成手段、表示手段、受付手段、移動平均算出手段を備える装置が、
    前記取得手段により、計算機システム内で実行される一連の処理に関する情報を時系列で示す時系列データを取得する取得工程と、
    前記作成手段により、前記取得手段によって取得される時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成工程と、
    前記表示手段により、前記作成手段によって作成される実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行される一連の処理の比率を時系列で示す第1のグラフを表示する第1の表示工程と、
    前記受付手段により、前記表示手段によって前記第1のグラフが表示された結果、前記第1のグラフの表示変更指示を受け付ける受付工程と、
    前記移動平均算出手段により、前記受付手段によって前記第1のグラフの表示変更指示を受け付けた場合、前記作成手段によって作成される実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出工程と、
    前記表示手段により、前記移動平均算出手段によって算出される処理ごとの移動平均値を集計することにより、前記計算機システム内で実行される一連の処理の比率を時系列で示す第2のグラフを表示する第2の表示工程と、
    を実行することを特徴とするシステム分析方法。
  6. 計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得手段と、
    前記取得手段によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成手段と、
    前記作成手段によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第1のグラフを表示画面に表示する表示手段と、
    前記表示手段によって前記第1のグラフが表示された結果、前記第1のグラフの表示変更指示を受け付ける受付手段と、
    前記受付手段によって前記第1のグラフの表示変更指示を受け付けた場合、前記作成手段によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出手段と、を備え、
    前記表示手段は、
    前記移動平均算出手段によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第2のグラフを前記表示画面に表示することを特徴とするシステム分析装置。
JP2007008471A 2007-01-17 2007-01-17 システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置 Expired - Fee Related JP4893325B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007008471A JP4893325B2 (ja) 2007-01-17 2007-01-17 システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置
US12/008,207 US20080170073A1 (en) 2007-01-17 2008-01-09 Computer-readable recording medium having system analysis program stored therein, system analysis method, and system analysis apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007008471A JP4893325B2 (ja) 2007-01-17 2007-01-17 システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置

Publications (2)

Publication Number Publication Date
JP2008176503A JP2008176503A (ja) 2008-07-31
JP4893325B2 true JP4893325B2 (ja) 2012-03-07

Family

ID=39617410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007008471A Expired - Fee Related JP4893325B2 (ja) 2007-01-17 2007-01-17 システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置

Country Status (2)

Country Link
US (1) US20080170073A1 (ja)
JP (1) JP4893325B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0416878D0 (en) * 2004-07-29 2004-09-01 Sensornet Ltd Processing sensing measurements
US8502822B2 (en) * 2008-09-30 2013-08-06 Nintendo Co., Ltd. Method and apparatus for visualizing and interactively manipulating profile data
US9495279B2 (en) * 2008-09-30 2016-11-15 Nintendo Co., Ltd. Method and apparatus for efficient statistical profiling of video game and simulation software
JP5428912B2 (ja) * 2010-02-08 2014-02-26 富士通株式会社 集計方法、集計プログラム、集計装置
US8730242B2 (en) * 2010-05-17 2014-05-20 Hewlett-Packard Development Company, L.P. Performing time slice-based visual prediction
US9122782B2 (en) * 2011-09-28 2015-09-01 International Business Machines Corporation Apparatus and computer program product for adaptively determining response time distribution of transactional workloads
US9355357B2 (en) 2011-10-21 2016-05-31 Hewlett Packard Enterprise Development Lp Computing predicted data according to weighted peak preservation and time distance biasing
US9195569B2 (en) * 2013-01-28 2015-11-24 Nintendo Co., Ltd. System and method to identify code execution rhythms
JP7093101B2 (ja) * 2018-02-26 2022-06-29 株式会社グルーヴノーツ データ生成装置、データ生成方法及びデータ生成プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164552A (ja) * 2002-09-25 2004-06-10 Hitachi Information Systems Ltd データ表示システムとデータ表示方法およびプログラム
JP4756675B2 (ja) * 2004-07-08 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム
US7673191B2 (en) * 2006-11-03 2010-03-02 Computer Associates Think, Inc. Baselining backend component error rate to determine application performance
US7496472B2 (en) * 2007-01-25 2009-02-24 Johnson Controls Technology Company Method and system for assessing performance of control systems
US20090063437A1 (en) * 2007-06-11 2009-03-05 Hendrey Geoffrey R Secure hosted databases
US8261278B2 (en) * 2008-02-01 2012-09-04 Ca, Inc. Automatic baselining of resource consumption for transactions
US8502822B2 (en) * 2008-09-30 2013-08-06 Nintendo Co., Ltd. Method and apparatus for visualizing and interactively manipulating profile data

Also Published As

Publication number Publication date
JP2008176503A (ja) 2008-07-31
US20080170073A1 (en) 2008-07-17

Similar Documents

Publication Publication Date Title
JP4893325B2 (ja) システム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置
US9576382B2 (en) Method and apparatus for visualizing and interactively manipulating profile data
US20050261884A1 (en) Unified modeling language (UML) design method
JP7044893B2 (ja) 業務分析方法
TWI428767B (zh) 最佳化配置系統參數集之方法,程式及裝置
TW200941214A (en) Executing software performance test jobs in a clustered system
US20130054680A1 (en) Apparatus and method for collecting log information from a plurality of servers
US7478368B2 (en) Organization and visualization of performance data in selected display modes
JP2020128962A (ja) 材料特性予測装置および材料特性予測方法
JPWO2014050254A1 (ja) ボトルネック検出装置、方法及びプログラム
US20070233532A1 (en) Business process analysis apparatus
CN101055519A (zh) 图标生成装置、计算机可读介质以及生成图标的方法
Cena et al. Validating citation models by proxy indices
JP2011113533A (ja) 画像処理装置及び情報処理装置
JP5515117B2 (ja) データ処理装置
JP2012238207A (ja) データ分析システム及びデータ分析方法
JP2013089018A (ja) ユーザインタフェース自動分析評価システム及びユーザインタフェース自動分析評価方法
JPH0695931A (ja) システム実行性能評価支援装置
JP7243134B2 (ja) 入力操作の作業効率管理装置、入力操作の作業効率管理方法、及び、入力操作の作業効率管理プログラム
JP2019096034A (ja) 事業価値評価装置および事業価値評価方法
JP6996360B2 (ja) レポート作成プログラム、およびレポート作成方法
Pouchard et al. Capturing provenance as a diagnostic tool for workflow performance evaluation and optimization
JP3838804B2 (ja) 解析装置および記録媒体
JP2020038559A (ja) 業務管理装置、業務管理装置の制御方法およびプログラム
JP6033248B2 (ja) ツール分析支援装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111107

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: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees