(57)【要約】【課題】計算機システムの性能分析の効率化を図ること。【解決手段】計算機システムの性能分析をおこなう際に、まず、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率に基づく第１のグラフを表示し、ユーザによる表示変更指示があった場合に、処理ごとの比率に重み付けをし、その重み付けした比率の移動平均値に基づく第２のグラフを表示する。これにより、ユーザは、計算機システムにおける障害や性能劣化などの問題を簡便かつ正確に特定することができる。【選択図】図１５
2008176503.tif 000002
【特許請求の範囲】
【請求項１】
計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得させる取得工程と、
前記取得工程によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成させる作成工程と、
前記作成工程によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示させる第１の表示工程と、
前記第１の表示工程によって前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付けさせる受付工程と、
前記受付工程によって前記第１のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出させる移動平均算出工程と、
前記移動平均算出工程によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示させる第２の表示工程と、
をコンピュータに実行させることを特徴とするシステム分析プログラム。
【請求項２】
前記受付工程によって前記第１のグラフの表示変更指示を受け付けた場合、前記処理ごとの比率に対して重み付けするか否かの選択を受け付けさせる第１の選択工程と、
前記第１の選択工程によって前記処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付けさせる第２の選択工程と、
前記第２の選択工程によって選択された窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させる比率算出工程と、を前記コンピュータに実行させ、
前記移動平均算出工程は、
前記比率算出工程によって算出された前記処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出させ、
前記第２の表示工程は、
前記移動平均算出工程によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、前記第２のグラフを表示させることを特徴とする請求項１に記載のシステム分析プログラム。
【請求項３】
前記第２の選択工程によって選択された窓関数を前記処理ごとの比率に対して掛け合わせる範囲の選択を受け付けさせる第３の選択工程を前記コンピュータに実行させ、
前記比率算出工程は、
前記第３の選択工程によって選択された範囲に基づいて、前記窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させることを特徴とする請求項２に記載のシステム分析プログラム。
【請求項４】
請求項１〜３のいずれか一つに記載のシステム分析プログラムを記録したコンピュータに読み取り可能な記録媒体。
【請求項５】
計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得工程と、
前記取得工程によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成工程と、
前記作成工程によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示する第１の表示工程と、
前記第１の表示工程によって前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付ける受付工程と、
前記受付工程によって前記第１のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出工程と、
前記移動平均算出工程によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示する第２の表示工程と、
を含んだことを特徴とするシステム分析方法。
【請求項６】
計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得手段と、
前記取得手段によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成手段と、
前記作成手段によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示画面に表示する表示手段と、
前記表示手段によって前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付ける受付手段と、
前記受付手段によって前記第１のグラフの表示変更指示を受け付けた場合、前記作成手段によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出手段と、を備え、
前記表示手段は、
前記移動平均算出手段によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを前記表示画面に表示することを特徴とするシステム分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計算機システムの性能分析をおこなうシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置に関する。
【背景技術】
【０００２】
計算機システムにおいて、アプリケーションの稼働中に障害や性能劣化が時系列で発生することがある。たとえば、人為的なミスなどにより、ユーザが意図しないデーモンプロセスが定期的に起動してしまい、計算機システムの性能が劣化してしまう場合がある。このような現象の原因を究明するためには、時系列で採取されたプロファイリングデータから計算機システムの挙動を正確に把握する必要がある。
【０００３】
一方で、デーモンプロセスの起動やアプリケーションの挙動を正確に把握するためには、たとえば、数ミリ秒単位でプロファイリングデータを採取することが必要となる。しかしながら、既存の関数プロファイラ（ｇｐｒｏｆなど）では測定のオーバーヘッドが大きいなどの理由により、性能分析に有用となる情報を得ることが難しかった。
【０００４】
このため、計算機システムの挙動を効率的かつ正確に把握するための解析手法が求められている。たとえば、一定の時間間隔でプロファイリングデータを採取し、これを所定の単位時間で集計することにより、関数の実行時間内訳を再計算する手法が提案されている（たとえば、下記非特許文献１参照。）。
【０００５】
具体的には、ある時刻に採取された関数ごとの比率を計算し、たとえば、その時刻に２つの関数が同じ比率で採取された場合、実行時間内訳をそれぞれ５０％とする。このように、各時刻における関数ごとの実行時間内訳を求めることにより、どの時間帯にどのようなプログラムがどの程度、動いていたのかを把握することができる。
【０００６】
【非特許文献１】山村周史著  情報処理学会論文誌  時系列データの統計解析によるＰＣクラスタシステム解析手法の提案  Ｖｏｌ．４７  Ｎｏ．ＳＩＧ１２（ＡＣＳ１５）  ｐｐ．２５０−２６１（２００６）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術の非特許文献１では、採取したプロファイリングデータを集計する単位時間によって関数ごとの実行時間内訳が変わってしまうため、プログラムの動きが違って見えてしまい、結果的にプログラムの挙動をうまく把握することができない場合があるという問題があった。
【０００８】
具体的には、プロファイリングデータを集計する単位時間が短い場合、関数の実行時間内訳を再計算する際のデータ数が少なくなってしまい、統計的なバラツキが大きくなる。この場合、プログラムの動きが極端に表現されてしまい、プログラムの挙動を正確に把握することが難しいという問題があった。
【０００９】
一方、プロファイリングデータを集計する単位時間が長い場合、関数の実行時間内訳を再計算する際のデータ数が多くなる。この場合、統計的なバラツキは小さくなるが、プログラムの動きがなだらかに表現されてしまい、プログラムの細かい挙動を把握することが難しいという問題があった。
【００１０】
このように、ある単位時間のプロファイリングデータを単純に集計することによってプログラムの挙動を解析すると、統計的なバラツキにより、プログラムの挙動をうまく把握することができず、結果的に計算機システムにおける障害や性能劣化などの問題を正確に特定することができないという問題があった。
【００１１】
この発明は、上述した従来技術による問題点を解消するため、簡便かつ正確にプログラムの挙動をあらわすグラフを提示可能なＧＵＩを提供することにより、計算機システムにおける性能分析の効率化を図ることができるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、この発明にかかる分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置は、計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得し、取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成し、作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示し、前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付け、前記第１のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出し、算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示することを特徴とする。
【００１３】
この発明によれば、計算機システム内で実行されていた処理ごとの比率の移動平均値に基づいて、第２のグラフを生成することにより、時系列データの集計単位の違いによって生じるバラツキを抑えたグラフを提示することができる。
【００１４】
また、上記発明において、前記第１のグラフの表示変更指示を受け付けた場合、前記処理ごとの比率に対して重み付けするか否かの選択を受け付け、前記処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付け、選択された窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出し、算出された前記処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出し、算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、前記第２のグラフを表示することとしてもよい。
【００１５】
また、上記発明において、選択された窓関数を前記処理ごとの比率に対して掛け合わせる範囲の選択を受け付け、選択された範囲に基づいて、前記窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出することとしてもよい。
【００１６】
これらの発明によれば、計算機システム内で実行されていた処理ごとの比率に重み付けをおこなうことにより、プログラムの挙動の特徴を適切にあらわすグラフを提示することができる。
【発明の効果】
【００１７】
本発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置によれば、簡便かつ正確にプログラムの挙動をあらわすグラフを提示可能なＧＵＩを提供することにより、計算機システムにおける性能分析の効率化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照して、この発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置の好適な実施の形態を詳細に説明する。
【００１９】
（システム分析装置のハードウェア構成）
まず、システム分析装置１００のハードウェア構成について説明する。図１は、この発明の実施の形態にかかるシステム分析装置のハードウェア構成を示す説明図である。図１において、システム分析装置１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ、ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００２０】
コンピュータ本体１１０は、ＣＰＵ、メモリ、インターフェースを有する。ＣＰＵは、システム分析装置１００のハードウェア構成の全体の制御を司る。メモリは、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク１１１、フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００２１】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００２２】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内のメモリに格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００２３】
また、出力装置１３０としては、ディスプレイ１３１、スピーカ１３２、プリンタ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ１３３は、画像データや文書データを印刷する。またスピーカ１３２は、効果音や読み上げ音などの音声を出力する。
【００２４】
（プロファイリングデータＤＢの記憶内容）
つぎに、システム分析装置１００に備えられているプロファイリングデータＤＢ２００の記憶内容について説明する。図２は、プロファイリングデータＤＢ２００の記憶内容を示す説明図である。図２において、プロファイリングデータＤＢ２００は、任意の時間間隔（たとえば、１［ｍｓ］間隔）で採取されたプロファイリングデータ２００−１〜２００−ｎを格納している。
【００２５】
プロファイリングデータ２００−１〜２００−ｎは、たとえば、計算機システム上で性能分析をおこなうアプリケーションを動作させ、対象プログラムについて、プログラムの開始から終了までの性能データを採取したものである。各プロファイリングデータ２００−１〜２００−ｎは、それぞれ採取されたときに、計算機システム上でどのような関数（処理）が実行されていたのかを示すデータである。
【００２６】
プロファイリングデータ２００−１〜２００−ｎは、ＣＰＵ番号、ＰＩＤ、関数名および行番号に関する情報を有している。ＣＰＵ番号は、各プロファイリングデータ２００−１〜２００−ｎが採取されたときに動作していたＣＰＵを識別するための識別子である。
【００２７】
ＰＩＤ（プロセスＩＤ）は、各プロファイリングデータ２００−１〜２００−ｎが採取されたときに動作していたプロセスを識別するための識別子である。関数名は、各プロファイリングデータ２００−１〜２００−ｎが採取されたときに実行されていた関数の名称であり、行番号は、その関数が記述されているソースコード内における行番号である。
【００２８】
ここで、プロファイリングデータ２００−１を例に挙げると、ＣＰＵ番号「０」のＣＰＵが動作して、ＰＩＤ「２６１１３」のプロセスが実行されていたことを示している。具体的には、関数名「ｌｉｂｐｅｒｌ．ｓｏ：：Ｐｅｒｌ＿ｐｐ＿ｐｒｉｎｔ」の関数が実行されており、その関数が記述されているソースコード内における行番号は「１１４」であることを示している。
【００２９】
プロファイリングデータＤＢ２００に格納されているプロファイリングデータ２００−１〜２００−ｎは、対象プログラムの開始から終了までの間に任意の時間間隔で採取された全データであってもよく、また、プログラム実行中の任意の時間区間内に採取されたデータであってもよい。
【００３０】
（システム分析装置の機能的構成）
つぎに、この発明の実施の形態にかかるシステム分析装置１００の機能的構成について説明する。図３は、この発明の実施の形態にかかるシステム分析装置１００の機能的構成を示すブロック図である。図３において、システム分析装置１００は、プロファイリングデータＤＢ２００と、取得部３０１と、作成部３０２と、表示部３０３と、受付部３０４と、移動平均算出部３０５と、選択部３０６と、比率算出部３０７と、から構成されている。
【００３１】
まず、取得部３０１は、計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する機能を有する。計算機システムは、単体システムであってもよく、また、ネットワーク１４０を介して複数の計算機が接続されたコンピュータシステム、たとえば、クラスタシステムやグリッドシステムなどであってもよい。
【００３２】
時系列データとは、計算機システム内で実行されていた処理を実行順に示す情報であり、たとえば、計算機システム内で実行されていたプロセス、関数、オブジェクトなどに関する情報を実行順に示すデータである。具体的には、たとえば、図２に示したプロファイリングデータＤＢ２００に格納されているデータ群である。
【００３３】
取得部３０１は、たとえば、プロファイリングＤＢ２００からプロファイリングデータ２００−１〜２００−ｎを読み出すことにより、時系列データを取得することとしてもよい。また、取得部３０１は、システム分析装置１００に直接入力された時系列データを取得することとしてもよく、また、ネットワーク１４０を介して外部のコンピュータ装置から時系列データを取得することとしてもよい。なお、取得部３０１によって取得された時系列データは、ＲＯＭやＲＡＭなどのメモリに記憶される。
【００３４】
作成部３０２は、取得部３０１によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する機能を有する。具体的には、作成部３０２は、ＲＯＭやＲＡＭなどのメモリに記憶されている時系列データを読み出して、その時系列データに基づく実行テーブルを作成する。
【００３５】
所定の単位時間は、各処理の比率を求めるときの時間間隔であり、任意に設定可能である。ここで、各プロファイリングデータ２００−１〜２００−ｎが１［ｍｓ］ごとに採取されたとし、所定の単位時間を３［ｍｓ］とする。
【００３６】
この場合、作成部３０２は、連続する３つのプロファイリングデータ（たとえば、プロファイリングデータ２００−１〜２００−３）ごとに各処理の比率を求めることにより、実行テーブルを作成する。実行テーブルの作成処理については図４を用いて後述する。なお、作成部３０２によって作成された実行テーブルはＲＯＭやＲＡＭなどのメモリに記憶される。
【００３７】
表示部３０３は、作成部３０２によって作成された実行テーブルに格納されている処理ごとの比率を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示画面に表示する機能を有する。具体的には、表示部３０３は、ＲＯＭやＲＡＭなどのメモリに記憶されている実行テーブルを読み出して、その実行テーブルに基づく第１のグラフをディスプレイ１３１に表示する。
【００３８】
より具体的には、まず、実行テーブルに格納されている処理ごとの比率に基づいて、各時刻における処理ごとの実行時間内訳を演算する。そして、演算された処理ごとの実行時間内訳を集計することにより、第１のグラフを生成して、表示部３０３によりディスプレイ１３１に表示する。表示部３０３によって表示される第１のグラフについては図５を用いて後述する。
【００３９】
なお、第１のグラフをディスプレイ１３１に表示する際には、計算機システム内で実行されていたすべての処理についての実行時間内訳をグラフ化することとしてもよいし、特定の処理、たとえば、実行時間内訳が大きい上位１０個の処理についてのみグラフ化することとしてもよい。具体的には、たとえば、演算された処理ごとの実行時間内訳をソートし、その実行時間内訳が大きいものから順に上位１０個の処理についてグラフ化する。
【００４０】
受付部３０４は、表示部３０３によって第１のグラフが表示された結果、第１のグラフの表示変更指示を受け付ける機能を有する。この表示変更指示は、第１のグラフによってあらわされる処理ごとの実行時間内訳の統計的なバラツキが大きいために、計算機システム内で実行されていたプログラムの挙動をうまく把握することができないと、ユーザによって判断された場合などに入力される。
【００４１】
具体的には、たとえば、第１のグラフの表示変更指示は、キーボード１２１やマウス１２２などの入力装置１２０をユーザが操作することによって入力される。第１の表示変更指示の入力については図６を用いて後述する。
【００４２】
移動平均算出部３０５は、受付部３０４によって第１のグラフの表示変更指示を受け付けた場合、作成部３０２によって作成された実行テーブルを参照することにより、処理ごとの比率の移動平均値を算出する機能を有する。
【００４３】
具体的には、移動平均算出部３０５は、ＲＯＭやＲＡＭなどのメモリに記憶されている実行テーブルを読み出して、その実行テーブルを参照することにより、移動平均値を算出する。なお、移動平均算出部３０５によって算出された移動平均値はＲＯＭやＲＡＭなどのメモリに記憶される。
【００４４】
ここで、移動平均とは、一定の時間間隔を定め、各時刻の値を、その時間間隔内の原データの平均値とすることである。たとえば、一定の時間間隔を３［ｍｓ］とし、ある時刻が１［ｍｓ］間隔でａ→ｂ→ｃ→ｄと経過した場合、時刻ｂにおける移動平均値は、時刻ａ、時刻ｂおよび時刻ｃにおける値の平均値となる。移動平均値の算出処理については図８を用いて後述する。
【００４５】
このように、実行テーブルに格納されている処理ごとの比率に対して移動平均を適用することにより、処理ごとの比率の基調的な傾向が読み取りやすくなる。具体的には、処理ごとの比率を排他的に取るのではなく、一致の間隔でオーバーラップさせて、統計的にその比率を求めることにより、プログラムの挙動をなだらかに、かつ、正確にあらわすことができる。
【００４６】
また、表示部３０３は、移動平均算出部３０５によって算出された処理ごとの移動平均値を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示画面に表示する機能を有する。具体的には、表示部３０３は、ＲＯＭやＲＡＭなどのメモリに記憶されている移動平均値を読み出して、その移動平均値に基づく第２のグラフをディスプレイ１３１に表示する。
【００４７】
より具体的には、まず、処理ごとの比率の移動平均値に基づいて、各時刻における処理ごとの実行時間内訳を演算する。そして、演算された処理ごとの実行時間内訳を集計することにより、第２のグラフを生成して、表示部３０３によりディスプレイ１３１に表示する。表示部３０３によって表示される第２のグラフについては図９を用いて後述する。
【００４８】
選択部３０６は、受付部３０４によって第１のグラフの表示変更指示を受け付けた場合、処理ごとの比率に対して重み付けするか否かの選択を受け付ける機能を有する。重み付けの要否の選択は、たとえば、キーボード１２１やマウス１２２などの入力装置１２０をユーザが操作することによって入力される。重み付けの要否の選択の入力については図７を用いて後述する。
【００４９】
また、選択部３０６は、処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から処理ごとの比率に対して重み付けする窓関数の選択を受け付ける機能を有する。窓関数とは、ある有限区間以外で「０」となる関数である。この窓関数を処理ごとの比率に掛け合わせることにより、各比率に対して重み付けをおこなうことができる。このとき、有限区間外は「０」となり、有限区間内だけが残るため、処理ごとの比率の数値解析が容易となる。
【００５０】
さらに、選択部３０６は、窓関数を処理ごとの比率に対して掛け合わせる範囲の選択を受け付ける機能を有する。窓関数を掛け合わせる範囲は、窓関数を掛け合わせることによって重みを与える範囲のことである。窓関数および当該窓関数の範囲の選択は、たとえば、キーボード１２１やマウス１２２などの入力装置１２０をユーザが操作することによって入力される。窓関数および当該窓関数の範囲の選択については図１１を用いて後述する。
【００５１】
比率算出部３０７は、選択部３０６によって選択された窓関数を処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出する機能を有する。また、比率算出部３０７は、選択部３０６によって選択された範囲に基づいて、窓関数を処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出する機能を有する。
【００５２】
ここで、処理ごとの比率に対して重み付けする窓関数について説明する。窓関数としては、たとえば、三角窓、ハニング窓、ハミング窓およびブラックマン窓などを用いることができる。それぞれの窓関数の式を下記式（１）〜（４）に示す。
【００５３】
三角窓：ｗ（ｘ）＝１−２×｜ｘ−０．５｜                    ・・・（１）
ハニング窓：ｗ（ｘ）＝０．５−０．５×ｃｏｓ（２πｘ）      ・・・（２）
ハミング窓：ｗ（ｘ）＝０．５４−０．４６×ｃｏｓ（２πｘ）  ・・・（３）
ブラックマン窓：ｗ（ｘ）＝０．４２−０．５×ｃｏｓ（２πｘ）＋０．０８ｃｏｓ（４πｘ）                                                      ・・・（４）
【００５４】
なお、上記各式において、ｗ（ｘ）は「窓関数値」であり、ｘは「Ｎ／窓関数の範囲、Ｎ＝０〜ｎ（ｎ：自然数）」であり、「０」以上「１」以下の範囲の値をとる。比率算出部３０７は、たとえば、上記式（１）〜（５）の中から選択された窓関数ごとの窓関数値を処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出する。
【００５５】
これらの窓関数を用いて、実行テーブルに格納されている処理ごとの比率に対して重み付けする重み付け処理については図１０を用いて後述する。なお、比率算出部３０７によって算出された処理ごとの重み付けされた比率はＲＯＭやＲＡＭなどのメモリに記憶される。
【００５６】
また、移動平均算出部３０５は、比率算出部３０７によって算出された処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出する機能を有する。具体的には、移動平均算出部３０５は、ＲＯＭ５０２やＲＡＭ５０３などのメモリに記憶されている処理ごとの重み付けされた比率を読み出して、当該処理ごとの重み付けされた比率の移動平均値を算出する。
【００５７】
また、表示部３０３は、移動平均算出部３０５によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、第２のグラフを表示画面に表示する機能を有する。具体的には、表示部３０３は、ＲＯＭやＲＡＭなどのメモリに記憶されている処理ごとの重み付けされた比率の移動平均値を読み出して、その移動平均値に基づく第２のグラフをディスプレイ１３１に表示する。
【００５８】
より具体的には、まず、処理ごとの重み付けされた比率の移動平均値に基づいて、各時刻における処理ごとの実行時間内訳を演算する。そして、演算された処理ごとの実行時間内訳を集計することにより、第２のグラフを生成して、表示部３０３によりディスプレイ１３１に表示する。
【００５９】
なお、上述した取得部３０１、作成部３０２、受付部３０４、移動平均算出部３０５、選択部３０６および比率算出部３０７は、具体的には、たとえば、図１に示した光ディスク１１１や不図示のＲＯＭ、ＲＡＭ、ＨＤなどのメモリに記録されたプログラムをＣＰＵが実行することによって、または、インターフェースによって、その機能を実現する。また、表示部３０３は、具体的には、たとえば、図１に示したディスプレイ１３１によって、その機能を実現する。
【００６０】
（実行テーブルの作成処理の概要）
つぎに、計算機システム内で実行されていた処理ごとの比率を時系列で示す実行テーブルの作成処理の概要について説明する。図４は、実行テーブルの作成処理の概要を示す説明図である。ここでは、計算機システム内で実行されていた関数を関数Ａ、Ｂ、ＣおよびＤとする。
【００６１】
図４において、棒グラフ４１０は、取得部３０１によって取得された時系列データによってあらわされる各関数Ａ〜Ｄの実行状況を示している。具体的には、どの時刻にどの関数が実行されていたのかをあらわしている。たとえば、棒グラフ４１０におけるｔ＝３からｔ＝４の間に実行されていた関数は関数Ｄである。
【００６２】
以下、棒グラフ４１０の横軸の１マスを１［ｍｓ］とし、各処理の比率を求めるときの時間間隔を示す所定の単位時間を３［ｍｓ］とする。このため、実行テーブル４２０における各時刻は、所定の単位時間ごと、すなわち、３［ｍｓ］ごとに時刻１、時刻２、…と変化する。
【００６３】
具体的には、実行テーブル４２０における時刻１は、棒グラフ４１０におけるｔ＝０〜３（図４中４１０−１）において実行された各関数の実行数の比率をあらわしている。また、時刻２は、棒グラフ４１０におけるｔ＝３〜６（図４中４１０−２）において実行された各関数の実行数の比率をあらわしている。
【００６４】
各時刻における各関数の実行数の比率は、作成部３０２により、所定の単位時間内に実行された関数の総数に対する各関数の実行数に基づいて算出される。具体的には、時刻１における各関数の実行数の比率は、ｔ＝０〜３（図４中４１０−１）の間に実行された各関数の実行数を、その間に実行された関数の総数で除算することによって算出する。
【００６５】
ここでは、ｔ＝０〜３（図４中４１０−１）の間に実行された関数の総数は３であり、各関数の実行数は、関数Ａが２、関数Ｂが１、関数Ｃおよび関数Ｄが０である。このため、実行テーブル４２０において、時刻１における関数Ａの実行数の比率は「２／３」（図４中「０．６７」と表記）であり、関数Ｂの実行数の比率は「１／３」（図４中「０．３３」と表記）である。また、関数Ｃおよび関数Ｄの実行数の比率は「０」となる。
【００６６】
このようにして、作成部３０２により、各時刻１，２，…（所定の単位時間ごと）における各関数の実行数の比率を算出し、その算出結果が格納された実行テーブル４２０を作成する。なお、ここでは、所定の単位時間を３［ｍｓ］としたが、ユーザによって任意に設定可能であり、所定の単位時間を変化させることにより統計的なバラツキを調整することができる。
【００６７】
（第１のグラフの具体例）
つぎに、表示部３０３によって表示される第１のグラフの具体例について説明する。図５は、第１のグラフの具体例を示す説明図である。第１のグラフは、実行テーブル（たとえば、実行テーブル４２０）に格納されている各関数の実行数の比率を用いて生成されるグラフである。
【００６８】
具体的には、実行テーブルに格納されている各関数の実行数の比率から各時刻（たとえば、時刻１、時刻２、…）における関数ごとの実行時間内訳を演算する。実行時間内訳とは、各時刻、すなわち、所定の単位時間内に実行されていた関数ごとの実行時間の割合を示したものである。
【００６９】
たとえば、実行テーブル４２０における時刻１では、関数ごとの実行時間内訳は「関数Ａ：６７％、関数Ｂ：３３％、関数Ｃ：０％、関数Ｄ：０％」となる。そして、演算された各時刻における関数ごとの実行時間内訳を、たとえば、実行時間内訳が大きいものから順にソートしてプロットすることにより、第１のグラフを生成する。
【００７０】
図５において、グラフ５００−１，５００−２における横軸は経過時間［ｔ］をあらわしており、縦軸は実行時間内訳［％］をあらわしている。グラフ５００−１は、１０サンプルの時系列データに基づく第１のグラフである。すなわち、時系列データを１０サンプル単位に集計して、第１のグラフが生成されている。
【００７１】
また、グラフ５００−２は、１００サンプルの時系列データに基づく第１のグラフである。すなわち、時系列データを１００サンプル単位に集計して、第１のグラフが生成されている。
【００７２】
各グラフ５００−１，５００−２において、各時刻における各関数の実行時間内訳が各種ハッチングによってあらわされている。なお、各グラフ５００−１，５００−２において、同一関数の実行時間内訳は、同一のハッチングによってあらわされている。また、各グラフ５００−１，５００−２では、計算機システム内で実行されている複数の関数のうち、実行時間内訳の大きいものから順に上位１０個の関数についての実行時間内訳があらわされている。
【００７３】
このため、各グラフ５００−１，５００−２では、上位１０個以外の関数については実行時間内訳があらわされておらず、各グラフ５００−１，５００−２において空白となっている。なお、第１のグラフの生成元となる時系列データのサンプル数および第１のグラフに実行時間内訳を表示する関数の数は任意に設定可能である。
【００７４】
特に、プログラムの挙動を正確に把握するために必要なサンプル数、すなわち、時系列データを集計する最適な単位時間は、対象プログラムや状況によってそれぞれ異なるため、ユーザが試行錯誤して探索することとなる。
【００７５】
ここで、グラフ５００−１における点線丸５１０の領域に注目すると、各関数の実行時間内訳が極端に表現されており、計算機システム内で実行されていたプログラムの挙動を正確に把握することが難しい。
【００７６】
一方、グラフ５００−２における点線丸５２０の領域に注目すると、各関数の実行時間内訳がなだらかに表現されてしまい、計算機システム内で実行されていたプログラムの細かい挙動を把握することが難しい。
【００７７】
このように、サンプル数が異なるとグラフ５００−１，５００−２の見え方は大きく異なる。上述したように、プログラムの挙動を正確に把握するために必要なサンプル数（単位時間）は、ユーザが試行錯誤して探索することとなるが、最適なサンプル数を探索することは困難であり、ユーザによる手間と時間がかかってしまう。
【００７８】
そこで、サンプル数（集計単位）の違いによるバラツキを抑えるために、各データに対する重み付けおよび移動平均法を適用する。また、各データに重み付けする際に、各種の条件を与えることにより、グラフの見え方を様々に変えることができるようにする。
【００７９】
なぜなら、どのような見え方であれば、最もプログラムの挙動を正確に把握できるかは、対象プログラムによって異なるため、自動的に求めることが難しい。ここでは、重み付けの適用の有無や最適な条件の入力をユーザの判断に任せ、そのときのユーザの試行錯誤を支援することにより、計算機システムの性能分析をおこなう場合の利便性の向上を図る。
【００８０】
（ディスプレイ１３１の表示画面）
つぎに、ディスプレイ１３１に表示される表示画面について説明する。図６は、表示変更指示画面の一例を示す説明図である。図６において、表示指示画面６００には、第１のグラフであるグラフ５００−２が表示されている。表示指示画面６００において、カーソル６０１を移動させてＹｅｓボタン６０２をクリックすると、つぎの画面（図７参照）に移行する。
【００８１】
すなわち、ユーザがグラフ５００−２の見え方では、計算機システム内で実行されていたプログラムの挙動を正確に把握できないと判断した場合などに、グラフ表示を変更する表示変更指示を入力する。また、カーソル６０１を移動させてＮｏボタン６０３をクリックすると、グラフ５００−２が継続して表示されることとしてもよい。
【００８２】
図７は、算出形式選択画面の一例を示す説明図である。算出形式選択画面７００において、カーソル７０１を移動させて移動平均ボタン７１０をクリックすると、実行テーブルに格納されている関数ごとの比率の移動平均値が算出され、その移動平均値を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフがディスプレイ１３１に表示される。
【００８３】
また、カーソル７０１を移動されて重み付けボタン７２０をクリックすると、実行テーブルに格納されている関数ごとの比率に対して重み付けする窓関数を選択する条件指定画面に移行する。条件指定画面については図１１を用いて後述する。
【００８４】
（移動平均値の算出処理の概要）
つぎに、実行テーブルに格納されている関数ごとの比率の移動平均値の算出処理の概要について説明する。図８は、移動平均値の算出処理の概要を示す説明図である。この移動平均値は、たとえば、算出形式選択画面７００（図７参照）において移動平均ボタン７１０をクリックした場合に、移動平均算出部３０５により算出される。
【００８５】
図８において、実行テーブル８１０には、各時刻（…、ｈ、ｉ、ｊ、…）における関数Ａの比率が示されている。関数Ａの比率とは、上述したように、所定の単位時間内に実行されたすべての関数に対する関数Ａの実行数の比率である。また、実行テーブル８２０には、各時刻（…、ｉ、ｊ、ｋ、…）における関数Ａの比率の移動平均値が格納されている。
【００８６】
ここでは、ある時刻における関数Ａの比率の移動平均値を、ある時刻における関数Ａの比率と、ある時刻の直前の時刻における関数Ａの比率と、ある時刻の直後の時刻における関数Ａの比率と、から算出することとする。具体的には、たとえば、時刻ｉにおける関数Ａの比率の移動平均値は、時刻ｈ、時刻ｉおよび時刻ｊにおける関数Ａの比率から算出される。
【００８７】
より具体的には、時刻ｉにおける関数Ａの比率の移動平均値は、各時刻ｈ，ｉおよびｊにおける関数Ａの比率の平均、すなわち、「移動平均値＝（０．６７＋０＋０．３３）÷３＝０．３３」となる。また、時刻ｊにおける関数Ａの比率の移動平均値は、各時刻ｉ，ｊおよびｋにおける関数Ａの比率の平均、すなわち、「移動平均値＝（０＋０．３３＋０．６７）÷３＝０．３３」となる。
【００８８】
また、時刻ｋにおける関数Ａの比率の移動平均値は、各時刻ｊ，ｋおよびｌにおける関数Ａの比率の平均、すなわち、「移動平均値＝（０．３３＋０．６７＋０．３３）÷３＝０．４４」となる。なお、ここでは各時刻における関数Ａの比率の移動平均値を、その時刻を含む前後３つの時刻における関数Ａの比率の平均によって算出することとしたが、その範囲は任意に設定可能である。
【００８９】
（第２のグラフの具体例（その１））
つぎに、表示部３０３によって表示される第２のグラフの具体例（その１）について説明する。図９は、第２のグラフの具体例（その１）を示す説明図である。ここで説明する第２のグラフは、各時刻における関数ごとの比率の移動平均値を用いて生成されるグラフであり、たとえば、算出形式選択画面７００（図７参照）において移動平均ボタン７１０をクリックするとディスプレイ１３１に表示されるグラフである。
【００９０】
具体的には、まず、各時刻における関数ごとの比率の移動平均値から各時刻における関数ごとの実行時間内訳を演算する。そして、演算された各時刻における関数ごとの実行時間内訳を、たとえば、実行時間内訳が大きいものから順にソートしてプロットすることにより、第２のグラフを生成する。
【００９１】
図９において、グラフ９００における横軸は経過時間［ｔ］をあらわしており、縦軸は実行内訳［％］をあらわしている。なお、グラフ９００は、図５に示すグラフ５００−２を生成する際に生成元とした関数ごとの比率の移動平均値に基づいて生成されたグラフである。
【００９２】
ここで、グラフ９００の点線丸９１０の領域に注目すると、図５中点線丸５２０の領域と比べて、サンプル数の違いによる見え方のバラツキが抑えられており、計算機システム内で実行されていたプログラムの挙動が把握しやすくなっている。
【００９３】
しかしながら、単純に移動平均を適用すると、たとえば、ある時刻に多く採取された関数が存在する場合、その関数が連続して実行されていたかのように見えてしまう。そこで、関数ごとの比率に重み付けをすることにより、計算機システム内で実行されていたプログラムの特徴をよりはっきりさせる。
【００９４】
（重み付け処理の概要）
つぎに、関数ごとの比率に重み付けする重み付け処理の概要について説明する。図１０は、重み付け処理の概要を示す説明図である。ここでは、関数の比率に掛け合わせる窓関数として、ハニング窓を選択した場合について説明する。
【００９５】
図１０において、実行テーブル１０１０には、各時刻（１、２、３、…、１０）における関数Ｘの比率が格納されている。比率算出部３０７により、この実行テーブル１０１０に格納されている各時刻における関数Ｘの比率に窓関数であるハニング窓を掛け合わせることによって、各時刻における関数Ｘの重み付けされた比率を算出する。
【００９６】
窓関数を関数Ｘの比率に掛け合わせるために、まず、関数Ｘの比率に対して窓関数を掛け合わせる範囲（窓サイズ）を決定する。ここでは、窓サイズを時系列データのサンプル数である「１０」とする。つぎに、窓関数（ハニング窓）における窓サイズ分ごとの値（以下、「窓関数値」という）を算出する。
【００９７】
具体的には、「ｘ＝Ｎ／窓サイズ（Ｎ＝０，１，２，…，１０）」として、窓関数であるハニング窓の上記式（２）に代入することにより、窓サイズ分ごとの窓関数値を算出する。たとえば、Ｎ＝１の場合、ｘ＝１／１０となり、その値を上記式（２）に代入すると、窓関数値：ｗ（ｘ）＝０．０９５が算出される。
【００９８】
このようにして、窓サイズ分の窓関数値を算出し、その算出結果を窓関数値テーブル１０２０に格納する。窓関数値テーブル１０２０には、窓関数として、ハニング窓を選択した場合における窓サイズ分の窓関数値が格納されている。
【００９９】
そして、実行テーブル１０１０に格納されている各時刻における関数Ｘの比率に対して、窓関数値テーブル１０２０に格納されている窓関数値をそれぞれ掛け合わせることにより、各時刻における関数Ｘの重み付けされた比率を算出する。
【０１００】
具体的には、図１０において、点線で示すように、時刻１における関数Ｘの比率「０．１」に対して、窓関数値「０．０９５」を掛け合わせることにより、時刻１における関数Ｘの重み付けされた比率「０．００９５」を算出する。このようにして、比率算出部３０７によって算出された各時刻における関数Ｘの重み付けされた比率は、ＲＯＭやＲＡＭなどのメモリに記憶される。
【０１０１】
なお、ここでは関数Ｘについてのみ説明したが、計算機システム内で実行されている複数の関数について、個々の関数ごとに、上述した重み付け処理を実行して、各時刻における関数ごとの重み付けされた比率を算出する。そして、その算出結果は、各関数と関連付けられてＲＯＭやＲＡＭなどのメモリに記憶される。
【０１０２】
（条件指定画面の具体例）
つぎに、ディスプレイ１３１に表示される条件指定画面の具体例について説明する。図１１は、条件指定画面の一例を示す説明図である。ここでは、第２のグラフを生成する際に指定する描画指定について説明する。条件指定画面１１００において、カーソル１１０１を移動させて各ボックスをクリックすることにより、関数ごとの比率に対して重み付けする場合における各種の条件を入力することができる。
【０１０３】
たとえば、カーソル１１０１を移動させて描画間隔ボックス１１１０をクリックすると、描画間隔を入力することができる。描画間隔とは、第２のグラフにおいて、関数ごとの実行時間内訳をプロットするときの時間間隔である。
【０１０４】
また、描画間隔を窓サイズとの割合またはサンプリング数によって指定する場合には、それぞれ対応するボタン１１１１，１１１２にカーソル１１０１を移動させてクリックする。このあと、カーソル１１０１を移動させて描画間隔ボックス１１１０をクリックし、描画間隔を入力する。
【０１０５】
また、カーソル１１０１を移動させて窓サイズボックス１１２０をクリックすると、関数ごとの比率に窓関数を掛け合わせる範囲を入力することができる。また、窓サイズを描画間隔との割合またはサンプリング数によって指定する場合には、それぞれ対応するボタン１１２１，１１２２にカーソル１１０１を移動させてクリックする。このあと、カーソル１１０１を移動させて描画間隔ボックス１１１０をクリックし、窓サイズを入力する。
【０１０６】
また、カーソル１１０１を移動させて窓関数ボックス１１３０をクリックすると、複数の窓関数の中から関数ごとの比率に対して重み付けする窓関数を選択することができる。ここでは、関数ごとの比率に対して重み付けする窓関数を、矩形窓、三角窓、ハニング窓、ハミング窓およびブラックマン窓の中から選択することができる。
【０１０７】
各種の条件の入力が終了した場合、カーソル１１０１を移動させてグラフ表示ボタン１０４１をクリックすると、入力した条件に基づく第２のグラフが生成され、ディスプレイ１４１に表示されることとなる。また、キャンセルボタン１１４２をクリックすると、再び算出形式選択画面（図７参照）に移行する。
【０１０８】
なお、描画指定以外にも、たとえば、対象指定、時間指定、データ指定およびグラフタイプなどの条件の入力をおこなうことができる。対象指定は、計算機システム内に複数のＣＰＵが搭載されている場合に、ＣＰＵごと、または、特定のＣＰＵによって実行される関数についてのみの実行時間内訳を集計させる指定をおこなうことができる。
【０１０９】
また、クラスタシステムでは、クラスタシステム全体、クラスタシステムを構成する計算機ごと、または、特定の計算機において実行される関数についての実行時間内訳を集計させる指定を可能にすることにより、計算機間におけるプログラムの挙動を正確に把握することができる。
【０１１０】
また、時間指定は、測定時間全体から集計する時間帯を指定することができる。この時間指定により、最初に大まかに計算機システム全体の挙動を把握し、問題と思われる時間帯をある程度予測して、このあと、詳細に見ていくことが可能となる。
【０１１１】
また、データ指定は、グラフに描画される実行時間内訳の対象として、関数の他に、プロセスやオブジェクトなどを指定することができる。また、グラフタイプは、第２のグラフの表示形式として、棒グラフや面グラフなどのグラフを指定することができる。
【０１１２】
このようにして、条件指定画面１１００において各種の条件を入力し、グラフ表示ボタン１１４１をクリックすると、入力された条件に基づいて、第２のグラフが生成され、ディスプレイ１３１に表示されることとなる。具体的には、まず、指定された窓サイズに基づく窓関数値が算出される。
【０１１３】
そして、関数ごとの比率に対して算出された窓関数値をそれぞれ乗算することにより、関数ごとの重み付けされた比率が算出される。このあと、関数ごとの重み付けされた比率の移動平均値が算出され、その移動平均値に基づく第２のグラフが生成されて、ディスプレイ１３１に表示される。
【０１１４】
なお、関数ごとの比率に対して重み付けをする場合には、掛け合わせる窓関数によって同一プログラムの挙動の見え方が異なり、さらに、対象プログラムによっても挙動が異なる。また、窓関数を掛け合わせる範囲（窓サイズ）によってもプログラムの挙動の見え方が異なってくる。
【０１１５】
ユーザは、条件指定画面１１００を操作することにより、各種の条件を入力して、その条件に基づく第２のグラフを表示させる。この一連の操作を繰り返すことにより、計算機システム内で実行されているプログラムの挙動を正確に把握することができる第２のグラフを探索する。
【０１１６】
（第２のグラフの具体例（その２））
ここで、上述した各種の条件が入力された結果、表示部３０３によってディスプレイ１３１に表示される第２のグラフについて説明する。図１２〜図１４は、第２のグラフの具体例を示す説明図である。第２のグラフは、各時刻における関数ごと重み付けされた比率の移動平均値を用いて生成されるグラフである。
【０１１７】
図１２〜図１４に示す第２のグラフは、窓サイズとして１０サンプルごとに窓関数を掛けて、２００サンプルの移動平均値を算出することによって生成されたグラフである。図１２は、窓関数として三角窓が選択された例であり、図１３は、窓関数としてハミング窓が選択された例であり、図１４は、窓関数としてブラックマン窓が選択された例である。
【０１１８】
図１２において、グラフ１２００における点線丸１２１０の領域に注目すると、各関数の実行時間内訳をあらわす曲線がなだらかになり、さらに、各関数の実行時間内訳の特徴がはっきりとあらわれている。
【０１１９】
また、図１３に示すグラフ１３００における点線丸１３１０および図１４に示すグラフ１４００における点線丸１４１０の領域についても同様に、各関数の実行時間内訳をあらわす曲線がなだらかになり、さらに、各関数の実行時間内訳の特徴がはっきりとあらわれている。
【０１２０】
このように、ユーザが簡便な操作入力を繰り返すことによって最適な条件を効率的に探索することができる。これにより、プログラムの挙動を正確に把握することができるグラフをユーザに提示することができ、計算機システムにおける障害や性能劣化などの問題を特定する作業の効率化を図ることができる。
【０１２１】
（システム分析装置のシステム分析処理手順）
つぎに、この発明の実施の形態にかかるシステム分析装置１００のシステム分析処理手順について説明する。図１５は、この発明の実施の形態にかかるシステム分析装置１００のシステム分析処理手順を示すフローチャートである。
【０１２２】
図１５において、まず、取得部３０１により、計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得したか否かを判断する（ステップＳ１５０１）。
【０１２３】
ここで、時系列データが取得されるのを待って（ステップＳ１５０１：Ｎｏ）、取得された場合（ステップＳ１５０１：Ｙｅｓ）、作成部３０２により、取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する（ステップＳ１５０２）。
【０１２４】
このあと、表示部３０３により、作成部３０２によって作成された実行テーブルに格納されている処理ごとの比率を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示する（ステップＳ１５０３）。
【０１２５】
つぎに、受付部３０４により、表示部３０３によって第１のグラフが表示された結果、第１のグラフの表示変更指示を受け付けたか否かを判断する（ステップＳ１５０４）。ここで、第１のグラフの表示変更指示を受け付けた場合（ステップＳ１５０４：Ｙｅｓ）、つぎに、選択部３０６により、処理ごとの比率に対して重み付けする選択を受け付けたか否かを判断する（ステップＳ１５０５）。
【０１２６】
また、ステップＳ１５０４において、第１のグラフの表示変更指示を受け付けなかった場合（ステップＳ１５０４：Ｎｏ）、本フローチャートによる一連の処理を終了する。
【０１２７】
つぎに、ステップＳ１５０５において、処理ごとの比率に対して重み付けする選択を受け付けた場合（ステップＳ１５０５：Ｙｅｓ）、選択部３０６により、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付けたか否かを判断する（ステップＳ１５０６）。
【０１２８】
ここで、窓関数の選択を受け付けるのを待って（ステップＳ１５０６：Ｎｏ）、受け付けた場合（ステップＳ１５０６：Ｙｅｓ）、選択部３０６により、選択された窓関数を処理ごとの比率に対して掛け合わせる範囲の選択を受け付けたか否かを判断する（ステップＳ１５０７）。
【０１２９】
ここで、窓関数を掛け合わせる範囲の選択を受け付けるのを待って（ステップＳ１５０７：Ｎｏ）、受け付けた場合（ステップＳ１５０７：Ｙｅｓ）、比率算出部３０７により、選択された範囲に基づいて、窓関数を処理ごとの比率に掛け合わせることによって当該処理ごとの重み付けされた比率を算出する（ステップＳ１５０８）。
【０１３０】
このあと、移動平均算出部３０５により、ステップＳ１５０８において算出された処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出する（ステップＳ１５０９）。
【０１３１】
最後に、表示部３０３により、移動平均算出部３０５によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、第２のグラフを表示して（ステップＳ１５１０）、本フローチャートによる一連の処理を終了する。
【０１３２】
また、ステップＳ１５０５において、処理ごとの比率に対して重み付けする選択を受け付けなかった場合（ステップＳ１５０５：Ｎｏ）、移動平均算出部３０５により、ステップＳ１５０２において作成部３０２によって作成された実行テーブルを参照することにより、処理ごとの比率の移動平均値を算出する（ステップＳ１５０９）。
【０１３３】
最後に、表示部３０３により、移動平均算出部３０５によって算出された処理ごとの移動平均値を集計することにより、計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示して（ステップＳ１５１０）、本フローチャートによる一連の処理を終了する。
【０１３４】
このように、この発明の実施の形態にかかるシステム分析装置１００によれば、時系列データの集計単位（たとえば、サンプル数）の違いによって生じるバラツキを抑えたグラフを提示することができる。さらに、処理ごとの比率に重み付けをおこなうことにより、計算機システム内で動作していたプログラムの挙動の特徴を適切にあらわすグラフを提示することができる。
【０１３５】
以上説明したように、この発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置によれば、簡便かつ正確にプログラムの挙動をあらわすグラフを提示可能なＧＵＩを提供することにより、計算機システムにおける性能分析の効率化を図ることができる。
【０１３６】
なお、本実施の形態で説明したシステム分析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１３７】
また、上述したシステム分析装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述したシステム分析装置１００の機能的構成３０１〜３０７をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、システム分析装置１００を製造することができる。
【０１３８】
（付記１）計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得させる取得工程と、
前記取得工程によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成させる作成工程と、
前記作成工程によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示させる第１の表示工程と、
前記第１の表示工程によって前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付けさせる受付工程と、
前記受付工程によって前記第１のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出させる移動平均算出工程と、
前記移動平均算出工程によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示させる第２の表示工程と、
をコンピュータに実行させることを特徴とするシステム分析プログラム。
【０１３９】
（付記２）前記受付工程によって前記第１のグラフの表示変更指示を受け付けた場合、前記処理ごとの比率に対して重み付けするか否かの選択を受け付けさせる第１の選択工程と、
前記第１の選択工程によって前記処理ごとの比率に対して重み付けする選択を受け付けた場合、複数の窓関数の中から前記処理ごとの比率に対して重み付けする窓関数の選択を受け付けさせる第２の選択工程と、
前記第２の選択工程によって選択された窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させる比率算出工程と、を前記コンピュータに実行させ、
前記移動平均算出工程は、
前記比率算出工程によって算出された前記処理ごとの重み付けされた比率に基づいて、当該処理ごとの重み付けされた比率の移動平均値を算出させ、
前記第２の表示工程は、
前記移動平均算出工程によって算出された処理ごとの重み付けされた比率の移動平均値を集計することにより、前記第２のグラフを表示させることを特徴とする付記１に記載のシステム分析プログラム。
【０１４０】
（付記３）前記第２の選択工程によって選択された窓関数を前記処理ごとの比率に対して掛け合わせる範囲の選択を受け付けさせる第３の選択工程を前記コンピュータに実行させ、
前記比率算出工程は、
前記第３の選択工程によって選択された範囲に基づいて、前記窓関数を前記処理ごとの比率に掛け合わせることにより、当該処理ごとの重み付けされた比率を算出させることを特徴とする付記２に記載のシステム分析プログラム。
【０１４１】
（付記４）前記窓関数は、
三角窓であることを特徴とする付記２または３に記載のシステム分析プログラム。
【０１４２】
（付記５）前記窓関数は、
ハニング窓であることを特徴とする付記２または３に記載のシステム分析プログラム。
【０１４３】
（付記６）前記窓関数は、
ハミング窓であることを特徴とする付記２または３に記載のシステム分析プログラム。
【０１４４】
（付記７）前記窓関数は、
ブラックマン窓であることを特徴とする付記２または３に記載のシステム分析プログラム。
【０１４５】
（付記８）付記１〜７のいずれか一つに記載のシステム分析プログラムを記録したコンピュータに読み取り可能な記録媒体。
【０１４６】
（付記９）計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得工程と、
前記取得工程によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成工程と、
前記作成工程によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示する第１の表示工程と、
前記第１の表示工程によって前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付ける受付工程と、
前記受付工程によって前記第１のグラフの表示変更指示を受け付けた場合、前記作成工程によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出工程と、
前記移動平均算出工程によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを表示する第２の表示工程と、
を含んだことを特徴とするシステム分析方法。
【０１４７】
（付記１０）計算機システム内で実行されていた一連の処理に関する情報を時系列で示す時系列データを取得する取得手段と、
前記取得手段によって取得された時系列データに基づいて、所定の単位時間内に実行された処理の総数に対する各処理の実行数の比率を時系列で示す実行テーブルを作成する作成手段と、
前記作成手段によって作成された実行テーブルに格納されている前記処理ごとの比率を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第１のグラフを表示画面に表示する表示手段と、
前記表示手段によって前記第１のグラフが表示された結果、前記第１のグラフの表示変更指示を受け付ける受付手段と、
前記受付手段によって前記第１のグラフの表示変更指示を受け付けた場合、前記作成手段によって作成された実行テーブルを参照することにより、前記処理ごとの比率の移動平均値を算出する移動平均算出手段と、を備え、
前記表示手段は、
前記移動平均算出手段によって算出された処理ごとの移動平均値を集計することにより、前記計算機システム内で実行されていた一連の処理の比率を時系列で示す第２のグラフを前記表示画面に表示することを特徴とするシステム分析装置。
【産業上の利用可能性】
【０１４８】
以上のように、本発明にかかるシステム分析プログラム、該プログラムを記録した記録媒体、システム分析方法およびシステム分析装置は、計算機の性能分析に有用であり、特に、クラスタシステムやグリッドシステムなどの複数の計算機が接続されたコンピュータシステムの性能分析に適している。
【図面の簡単な説明】
【０１４９】
【図１】この発明の実施の形態にかかるシステム分析装置のハードウェア構成を示す説明図である。
【図２】プロファイリングデータＤＢの記憶内容を示す説明図である。
【図３】この発明の実施の形態にかかるシステム分析装置の機能的構成を示すブロック図である。
【図４】実行テーブルの作成処理の概要を示す説明図である。
【図５】第１のグラフの具体例を示す説明図である。
【図６】表示変更指示画面の一例を示す説明図である。
【図７】算出形式選択画面の一例を示す説明図である。
【図８】移動平均値の算出処理の概要を示す説明図である。
【図９】第２のグラフの具体例（その１）を示す説明図である。
【図１０】重み付け処理の概要を示す説明図である。
【図１１】条件指定画面の一例を示す説明図である。
【図１２】第２のグラフの具体例（その２）を示す説明図である。
【図１３】第２のグラフの具体例（その３）を示す説明図である。
【図１４】第２のグラフの具体例（その４）を示す説明図である。
【図１５】この発明の実施の形態にかかるシステム分析装置のシステム分析処理手順を示すフローチャートである。
【符号の説明】
【０１５０】
１００  システム分析装置
２００  プロファイリングデータＤＢ
２００−１〜２００−３  プロファイリングデータ
３０１  取得部
３０２  作成部
３０３  表示部
３０４  受付部
３０５  移動平均算出部
３０６  選択部
３０７  比率算出部
４１０  棒グラフ
４２０，８１０，８２０，１０１０  実行テーブル
６００  表示指示画面
７００  算出形式選択画面
５００−１，５００−２，９００，１２００，１３００，１４００  グラフ
１０２０  窓関数値テーブル
１１００  条件指定画面
【図１】
2008176503.tif 000003
【図２】
2008176503.tif 000004
【図３】
2008176503.tif 000005
【図４】
2008176503.tif 000006
【図５】
2008176503.tif 000007
【図６】
2008176503.tif 000008
【図７】
2008176503.tif 000009
【図８】
2008176503.tif 000010
【図９】
2008176503.tif 000011
【図１０】
2008176503.tif 000012
【図１１】
2008176503.tif 000013
【図１２】
2008176503.tif 000014
【図１３】
2008176503.tif 000015
【図１４】
2008176503.tif 000016
【図１５】
2008176503.tif 000017