(57)【特許請求の範囲】
【請求項１】
演算処理装置と、
記憶装置と、を備え、
前記演算処理装置は、前記演算処理装置自身の性能データを第１時間間隔毎に取得し、前記演算処理装置に性能問題が生じていることを前記性能データが示している場合には前記性能データを前記記憶装置に記録し、前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録し、
前記性能データは、前記演算処理装置の実行命令数とキャッシュミス数とを含み、
前記演算処理装置に性能問題が生じていることを前記性能データが示している場合とは、前記実行命令数と前記キャッシュミス数とを用いて算出されるキャッシュミス率が閾値以上の場合であり、
前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合とは、前記キャッシュミス率が前記閾値未満の場合である、
ことを特徴とする情報処理装置。
【請求項２】
演算処理装置と、
記憶装置と、を備え、
前記演算処理装置は、前記演算処理装置自身の性能データを第１時間間隔毎に取得し、前記演算処理装置に性能問題が生じていることを前記性能データが示している場合には前記性能データを前記記憶装置に記録し、前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録し、
前記性能データは、前記演算処理装置のキャッシュミス値を含み、
前記演算処理装置に性能問題が生じていることを前記性能データが示している場合とは、前記キャッシュミス値が閾値以上の場合であり、
前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合とは、前記キャッシュミス値が前記閾値未満の場合である、
ことを特徴とする情報処理装置。
【請求項３】
前記演算処理装置は、前記長い時間間隔ごとに前記性能データを前記記憶装置に記録する場合、前記記憶装置の残量に応じて、前記長い時間間隔を変更する、
ことを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
演算処理装置に、
前記演算処理装置自身の性能データを第１時間間隔毎に取得し、前記演算処理装置に性能問題が生じていることを前記性能データが示している場合には前記性能データを記憶装置に記録し、前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録する、
処理を実行させるための性能データ収集プログラムであって、
前記性能データは、前記演算処理装置の実行命令数とキャッシュミス数とを含み、
前記演算処理装置に性能問題が生じていることを前記性能データが示している場合とは、前記実行命令数と前記キャッシュミス数とを用いて算出されるキャッシュミス率が閾値以上の場合であり、
前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合とは、前記キャッシュミス率が前記閾値未満の場合である、
ことを特徴とする性能データ収集プログラム。
【請求項５】
演算処理装置が、
前記演算処理装置自身の性能データを第１時間間隔毎に取得し、前記演算処理装置に性能問題が生じていることを前記性能データが示している場合には前記性能データを記憶装置に記録し、前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録し、
前記性能データは、前記演算処理装置の実行命令数とキャッシュミス数とを含み、
前記演算処理装置に性能問題が生じていることを前記性能データが示している場合とは、前記実行命令数と前記キャッシュミス数とを用いて算出されるキャッシュミス率が閾値以上の場合であり、
前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合とは、前記キャッシュミス率が前記閾値未満の場合である、
ことを特徴とする性能データ収集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、性能データ収集プログラムおよび性能データ収集方法に関する。
【背景技術】
【０００２】
例えば、Central Processing Unit(CPU)等の演算処理装置が実行するプログラムに何らかの性能低下が生じた場合の原因を解明するために、ＣＰＵの性能データをサンプリングする技術が用いられている。
【０００３】
関連する技術として、ソフトウェアアプリケーションをプロファイリングする技術であり、選択されたサブセットの関数群のみにプロファイリングフックを用いる反復的なコンパイル処理に関する技術が提案されている（例えば、特許文献１を参照）。
【０００４】
また、サンプリング型プロファイラのためにプロファイル対象を決定する技術が提案されている。この技術では、プログラムの最適化に利用する性質を有するオブジェクトを割り付けられた割合を算出する。そして、算出した割合が所定の閾値以下であるクラスまたはオブジェクトの割り付け場所についてのサンプリング頻度を下げている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２４８８９５号公報
【特許文献２】特開２０１３−１０５２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サンプリングされた性能データは、記憶装置に記録される。性能データをサンプリングする時間間隔が長いと、性能問題の検出精度が低くなり、性能問題が解決されない可能性がある。
【０００７】
性能データをサンプリングする時間間隔が短い場合、性能問題の検出精度は高くなるが、性能データを記憶装置に記録する頻度が高くなる。記憶装置の容量は限られているため、記憶装置に頻繁に性能データが記録されると、記憶装置に性能データを記録できる時間が短くなる。このため、長い時間のサンプリングを行うことは難しくなる。
【０００８】
１つの側面として、本発明は、記憶装置に効率的に性能データを記録することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、情報処理装置は、演算処理装置と、記憶装置とを含む。
演算処理装置は、前記演算処理装置自身の性能データを第１時間間隔毎に取得し、前記演算処理装置に性能問題が生じていることを前記性能データが示している場合には前記性能データを前記記憶装置に記録し、前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録する。前記性能データは、前記演算処理装置の実行命令数とキャッシュミス数とを含み、前記演算処理装置に性能問題が生じていることを前記性能データが示している場合とは、前記実行命令数と前記キャッシュミス数とを用いて算出されるキャッシュミス率が閾値以上の場合であり、前記演算処理装置に性能問題が生じていないことを前記性能データが示している場合とは、前記キャッシュミス率が前記閾値未満の場合である。
【発明の効果】
【００１０】
１つの側面によれば、記憶装置に効率的に性能データを記録することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の情報処理装置の一例を示す図である。
【図２】実施形態の処理の流れの一例を示すフローチャートである。
【図３】変形例１における第２時間間隔の設定の一例を示す図である。
【図４】変形例１の処理の流れの一例を示すフローチャートである。
【図５】変形例２における第２時間間隔の設定の一例を示す図である。
【図６】変形例２の処理の流れの一例を示すフローチャートである。
【図７】変形例３における第２時間間隔の設定の一例を示す図である。
【図８】変形例３の処理の流れの一例を示すフローチャートである。
【図９】情報処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施形態について説明する。情報処理装置は、ＣＰＵを含む。ＣＰＵは、演算処理装置の一例である。ＣＰＵは、実施形態の性能データ収集プログラムを実行する。情報処理装置は、ＣＰＵが性能データ収集プログラムを実行することにより、実施形態の処理を実行する。
【００１３】
実施形態では、情報処理装置は、ＣＰＵの動作に関する性能データを一定時間ごとにサンプリングする。一定時間は、性能データをサンプリングする短い時間である。以下、性能データをサンプリングする一定時間の時間間隔を第１時間間隔と称することもある。
【００１４】
情報処理装置は、第１時間間隔ごとに性能データのサンプリングを行い、サンプリングした性能データに基づく性能指標値を用いて、ＣＰＵに性能問題が生じているか否かの判定を第１時間間隔ごとに行う。性能指標値は、特定の値の一例である。これにより、性能問題の検出精度の低下が抑制される。
【００１５】
情報処理装置は、性能データを記憶装置に記憶する。実施形態では、情報処理装置は、第１時間間隔より長い第２時間間隔で性能データを記憶装置に記録することがある。この場合、性能データが記憶装置に記録される頻度が低下する。
【００１６】
性能データのサンプリングは、第１時間間隔ごとに行われる。よって、情報処理装置が第２時間間隔で性能データを記録する場合、性能データは間引かれて記憶装置に記憶される。
【００１７】
性能データを記録する記憶装置の容量は限られている。性能データをサンプリングする第１時間間隔は短いため、第１時間間隔ごとに性能データが記憶装置に記録されると、短時間の間に多くの性能データが記憶装置に記録される。
【００１８】
この場合、記憶装置の容量は有限であることから、記憶装置が記録できる性能データの数は限られる。このため、性能データが第１時間間隔ごとに記憶装置に記録されると、長い時間の性能データのサンプリングは難しくなる。
【００１９】
実施形態では、記録負荷の観点から、情報処理装置は、サンプリングされた性能データを主記憶装置（Random Access Memory(RAM)）に記録する。データを記録するときの記録負荷（オーバヘッド）は、ＲＡＭに対してデータを記録する負荷よりも、ハードディスクドライブ等に対して記録する負荷の方が高い。
【００２０】
このため、実施形態では、情報処理装置は、サンプリングした性能データをＲＡＭに記録する。ただし、ＲＡＭの容量は、ハードディスクドライブ等と比較して、少ない。従って、サンプリングされた性能データが第１時間間隔ごとにＲＡＭに記録されると、ＲＡＭの残量が短時間の間になくなる。
【００２１】
ＲＡＭの残量がなくなったとき、またはＲＡＭの残量がなくなる前に、ＲＡＭに記憶されている性能データはハードディスクドライブ等に移される。第１時間間隔ごとに性能データがＲＡＭに記録されると、性能データをＲＡＭに記録する頻度が高くなり、短時間の間にＲＡＭの残量が少なくなる。
【００２２】
この場合、ＲＡＭからハードディスクドライブ等に頻繁に性能データが移される。従って、性能データが頻繁にＲＡＭからハードディスクドライブ等に移されるため、記録負荷は高くなる。
【００２３】
従って、容量が限られたＲＡＭに性能データが記録される頻度を少なくすることが望ましい。そこで、実施形態の情報処理装置は、性能データに基づく性能指標値を用いて、性能問題が生じていないと判定した場合には、第１時間間隔より長い第２時間間隔ごとに、性能データをＲＡＭに記録する。
【００２４】
この場合、性能データを記憶装置に記録する頻度が低下し、ＲＡＭに記録される性能データの数が間引かれる。このため、長い時間の性能データのサンプリングが実現される。
【００２５】
従って、実施形態の情報処理装置は、性能データのサンプリングを第１時間間隔ごとに行い、ＣＰＵに性能問題が生じているか否かの判定を第１時間間隔ごとに行うため、性能問題の検出精度の低下が抑制される。
【００２６】
また、情報処理装置は、ＣＰＵの性能問題が生じていないと判定した場合には、第１時間間隔より長い第２時間間隔ごとに性能データを記憶装置に記録する。よって、性能データが記憶装置に記録される頻度は低下する。
【００２７】
従って、情報処理装置は、性能問題の検出精度の低下を抑制する。また、情報処理装置は、ＣＰＵに性能問題が生じていないと判定した場合には、性能データを間引いて記憶装置に記録する。従って、記憶装置に効率的に性能データを記録することができる。
【００２８】
なお、記録負荷の観点から、実施形態では、性能データはＲＡＭに記録されるが、性能データはハードディスクドライブ等に記録されてもよい。ハードディスクドライブ等の容量も有限であるため、記憶装置に効率的に性能データが記録されることが望ましいためである。
【００２９】
実施形態の情報処理装置は、性能指標値と閾値とを比較することにより、ＣＰＵに性能問題が生じているか否かを判定する。性能指標値は、性能データに基づく特定の値の一例である。
【００３０】
例えば、性能指標値にキャッシュミス率が適用される場合がある。この場合、情報処理装置は、第１時間間隔ごとに、キャッシュミス率と閾値との比較を行う。キャッシュミス率が閾値以上になっているときは、性能問題が生じている可能性が高い。
【００３１】
この場合、情報処理装置は、性能問題が生じていると判定する。性能問題が生じていると判定された場合、情報処理装置は、第１時間間隔ごとに、性能データをＲＡＭに記録する。
【００３２】
一方、キャッシュミス率が閾値未満のときには、性能問題が生じていない可能性が高い。この場合、情報処理装置は、性能問題が生じていないと判定する。性能問題が生じていないと判定された場合、情報処理装置は、第１時間間隔より長い第２時間間隔ごとに性能データをＲＡＭに記録する。
【００３３】
＜実施形態の情報処理装置の一例＞
以下、図面を参照して、実施形態について、詳細に説明する。図１の例に示すように、実施形態の情報処理装置１は、ＣＰＵ２とＲＡＭ３とハードディスクドライブ４とを含む。ＣＰＵ２は、上述した性能データ収集プログラムを実行する。
【００３４】
上述したように、ＣＰＵ２の動作に関する性能データは、ＲＡＭ３のデータ記録領域５に記録される。ＲＡＭ３には、性能データ以外のデータが記録されてもよい。ＲＡＭ３は、記憶装置の一例である。
【００３５】
ハードディスクドライブ４は、ＲＡＭ３のデータ記録領域５に記録された性能データを保存する。例えば、ＲＡＭ３のデータ記録領域５の残量がなくなったとき、または残量が少なくなったとき、データ記録領域５に記録されている性能データは、ハードディスクドライブ４に移される。
【００３６】
ＣＰＵ２、ＲＡＭ３およびハードディスクドライブ４は、ハードウェア層に属する。カーネル６は、ＣＰＵ２が実行するプログラムである。カーネル６は、ＣＰＵ２からの割り込みを処理する割り込み処理部７を含む。カーネル６は、Operating System(OS)層に属する。
【００３７】
測定ツール８は、割り込み処理部７に対して、所定の指示を出す。実施形態の測定ツール８は、アプリケーションであるものとする。測定ツール８は、アプリケーション層に属する。なお、図１では、各層を一点鎖線により分けている。
【００３８】
カーネル６および測定ツール８は、ＣＰＵ２により実行されるプログラムである。つまり、ＣＰＵ２がカーネル６および測定ツール８のプログラムを実行することにより、カーネル６および測定ツール８の機能が実現される。
【００３９】
従って、カーネル６の機能および測定ツール８の機能の実行主体はＣＰＵ２、つまり演算処理装置である。また、カーネル６の割り込み処理部７の機能は、上述した性能データ収集プログラムをＣＰＵ２が実行することにより実現される。
【００４０】
ＣＰＵ２は、Performance Monitoring Counter(PMC)９とプログラム情報記憶部１０とを含む。ＰＭＣ９について説明する。ＰＭＣ９は、ＣＰＵ２の性能（パフォーマンス）に関する値を計測するＣＰＵ２の機能である。以下、ＰＭＣ９が計測する計測値をＰＭＣ計測値と称する。
【００４１】
例えば、ＰＭＣ９が計測するイベントには、実行命令数やキャッシュミス数、分岐命令ミス数、時刻等のイベントが含まれる。ＰＭＣ９が計測するイベント種別は、これらの例には限定されない。
【００４２】
例えば、実行命令数は、ＣＰＵ２が実行した命令の数である。キャッシュミス数は、キャッシュのヒットミスの数であり、分岐命令ミス数は、分岐予測をミスした数である。ＰＭＣ９が計測するイベント種別は、これらの例には限定されない。
【００４３】
ＰＭＣ９は、イベントごとにレジスタ（以下、イベント設定レジスタと称する）を含んでおり、各イベント設定レジスタに、割り込みを発生させるか否かが設定される。実施形態では、時刻に相当するイベント（例えば、CPU_CYCLE）のイベント設定レジスタには、割り込みを発生させる設定がされているものとする。また、時刻以外のイベントのイベント設定レジスタには、割り込みを発生させない設定がされているものとする。
【００４４】
また、ＰＭＣ９は、カウンタレジスタを含んでいる。ＰＭＣ９が計測する値は、ＰＭＣ９のカウンタレジスタに記憶される。ＰＭＣ９は、イベント設定レジスタに設定されたイベント種の計測値をＰＭＣ計測値としてカウンタレジスタに記憶する。
【００４５】
例えば、イベント設定レジスタにキャッシュミス数が設定されている場合、ＰＭＣ９はキャッシュミス数をカウントし、カウントしたキャッシュミス数をＰＭＣ９のカウンタレジスタに記憶する。
【００４６】
イベント設定レジスタには、２種類以上のイベント種が設定されてもよい。例えば、イベント設定レジスタにキャッシュミス数および実行命令数が設定されている場合、ＰＭＣ９はキャッシュミス数および実行命令数をカウントする。そして、ＰＭＣ９は、カウントしたキャッシュミス数および実行命令数をＰＭＣ計測値としてＰＭＣ９のカウンタレジスタに記憶する。
【００４７】
上述した割り込みを発生させるために、ＰＭＣ９のイベント設定レジスタには時刻に相当するイベント種が設定されているものとする。時刻に相当するＰＭＣ計測値に所定回数のイベントが発生すると、ＰＭＣ９は、カーネル６の割り込み処理部７に対して、割り込みを発生させる。実施形態では、ＰＭＣ９には、一定時間（第１時間間隔）ごとに、割り込みを発生させる設定がされているものとする。
【００４８】
次に、プログラム情報について説明する。プログラム情報記憶部１０が記憶するプログラム情報は、ＣＰＵ２が実行するプログラムに関する情報である。例えば、ＣＰＵ２が呼び出した関数やプロセス等によっては、ＣＰＵ２の使用率が高くなり、ＣＰＵ２の性能が低下し、性能問題が生じる。
【００４９】
例えば、プログラム情報は、命令アドレスとプロセスＩＤとを含む情報であってよい。ＩＤはIdentificationの略称である。命令アドレスは、ＣＰＵ２のプログラムカウンタの値である。プロセスＩＤは、ＣＰＵ２が実行しているプロセスを識別する識別子である。
【００５０】
実施形態では、命令アドレスおよびプロセスＩＤは、プログラム情報記憶部１０のレジスタに記憶される。プログラム情報に含まれる情報は、上記の例には限定されない。例えば、プログラム情報は、ＣＰＵを識別するためのＣＰＵＩＤを含んでもよい。
【００５１】
次に、測定ツール８について説明する。測定ツール８は、閾値設定部１１と測定部１２とを含む。閾値設定部１１は、予め定められた所定の閾値を割り込み処理部７に設定する。閾値は、性能問題を生じているか否かを判定するときに、上述した性能指標値と比較を行うために用いられる。
【００５２】
測定部１２は、割り込み処理部７に対して、性能データのサンプリングを開始する指示および終了する指示を出力する。割り込み処理部７は、この指示に基づいて、性能データのサンプリングを開始し、性能データのサンプリングを終了する。また、測定部１２は、割り込み処理部７に対して、各種の指示を出力する。
【００５３】
次に、割り込み処理部７の詳細について説明する。割り込み処理部７は、ＰＭＣ９に対して、性能データのサンプリングを行う時間間隔である第１時間間隔を設定する。ＰＭＣ９は、第１時間間隔ごとに割り込み処理部７に割り込みを出力する。
【００５４】
測定部１２は、割り込み処理部７に対して、第１時間間隔を指示するようにしてもよい。この指示に基づいて、割り込み処理部７は、第１時間間隔をＰＭＣ９に設定する。実施形態では、第１時間間隔は「５ｍｓ」であるものとする。第１時間間隔は、「５ｍｓ」には限定されない。
【００５５】
割り込み処理部７は、ＰＭＣ９から第１時間間隔ごとに入力する割り込みに基づいて、性能データをＣＰＵ２から採取（サンプリング）する。実施形態では、性能データは、ＰＭＣ計測値とプログラム情報とを含む。
【００５６】
従って、割り込み処理部７は、ＰＭＣ９から第１時間間隔ごとに入力する割り込みに基づいて、ＰＭＣ９からＰＭＣ計測値を採取し、プログラム情報記憶部１０からプログラム情報を採取する。これにより、割り込み処理部７は、第１時間間隔ごとに、性能データをサンプリングする。
【００５７】
割り込み処理部７は、第１時間間隔ごとに、採取したＰＭＣ計測値に基づく性能指標値と閾値設定部１１により設定された閾値とを比較する。性能指標値は、ＰＭＣ計測値であってもよいし、ＰＭＣ計測値に対して割り込み処理部７が所定の演算を行った値であってもよい。
【００５８】
性能指標値は、ＣＰＵ２の性能に関する値である。性能指標値が良好であれば、ＣＰＵ２の性能は良好であると考えられる。性能指標値が良好でなければ、ＣＰＵ２の性能も良好でないことが考えられる。性能指標値は、ＰＭＣ計測値を含む性能データに基づく値である。
【００５９】
実施形態では、測定部１２は、割り込み処理部７に対して、使用する性能指標値を指定するものとする。例えば、性能指標値は、キャッシュミス数であってもよい。
【００６０】
この場合、割り込み処理部７は、ＰＭＣ９のイベント設定レジスタにキャッシュミス数のイベント種を設定する。この設定に基づいて、割り込み処理部７は、第１時間間隔ごとに、ＰＭＣ９からキャッシュミス数を採取する。
【００６１】
閾値設定部１１は、割り込み処理部７に対して、第１時間間隔の間に性能問題が生じているか否かを判定する基準となるキャッシュミス数を閾値として設定する。
【００６２】
閾値設定部１１が割り込み処理部７に設定する閾値は、情報処理装置１のユーザにより予め設定されるものであってもよい。また、該閾値はＣＰＵ２に性能問題が生じていないときに複数回測定されたキャッシュミス数の平均値であってもよい。
【００６３】
割り込み処理部７は、ＰＭＣ９から採取したキャッシュミス数と閾値とを比較して、キャッシュミス数が閾値以上のときに、キャッシュミス数は特定の条件（特定条件）を満たす。この場合、性能問題が生じていると判定される。
【００６４】
一方、キャッシュミス数が閾値未満のときには、割り込み処理部７は、キャッシュミス数は特定条件を満たさない。この場合、性能問題が生じていないと判定される。
【００６５】
割り込み処理部７は、キャッシュミス数が閾値以上のときに、第１時間間隔ごとに、性能データをデータ記録領域５に記録する。一方、割り込み処理部７は、キャッシュミス数が閾値未満のときには、第１時間間隔よりも長い時間間隔である第２時間間隔ごとに、性能データをデータ記録領域５に記録する。
【００６６】
実施形態では、第２時間間隔は「１５ｍｓ」であるものとする。第２時間間隔は「１５ｍｓ」には限定されない。第２時間間隔は、割り込み処理部７が性能データを間引いてデータ記録領域５に記録したときに、ＣＰＵ２の性能の概要が分かる程度の時間間隔であってもよい。また、第２時間間隔は、測定部１２の指示により割り込み処理部７に設定されてもよい。
【００６７】
性能指標値は、キャッシュミス率であってもよい。この場合、割り込み処理部７は、ＰＭＣ９に対して、キャッシュミス数および実行命令数のイベント設定レジスタに、割り込み処理部７が採取するイベント種として設定を行う。
【００６８】
割り込み処理部７は、ＰＭＣ９からの割り込みに基づいて、第１時間間隔ごとに、キャッシュミス数および実行命令数をＰＭＣ９から採取する。閾値設定部１１は、割り込み処理部７に対して、第１時間間隔の間に性能問題が生じているか否かを判定する基準となるキャッシュミス率を閾値として設定する。
【００６９】
割り込み処理部７は、ＰＭＣ９から採取したキャッシュミス数を実行命令数で除算して、キャッシュミス率（＝キャッシュミス数／実行命令数）を計算する。閾値設定部１１は、割り込み処理部７に対して、第１時間間隔の間に性能問題が生じているか否かを判定する基準となるキャッシュミス率を閾値として設定する。
【００７０】
割り込み処理部７は、演算したキャッシュミス率と閾値とを比較して、キャッシュミス率が閾値以上のときには、キャッシュミス率が特定条件を満たす。この場合、性能問題が生じていると判定される。一方、キャッシュミス率が閾値未満のときには、キャッシュミス率が特定条件を満たさない。この場合、性能問題は生じていないと判定される。
【００７１】
割り込み処理部７は、キャッシュミス率が閾値以上のときに、第１時間間隔ごとに、性能データをデータ記録領域５に記録する。一方、割り込み処理部７は、キャッシュミス率が閾値未満のときには、第１時間間隔よりも時間間隔が長い第２時間間隔ごとに、性能データをデータ記録領域５に記録する。
【００７２】
従って、性能指標値は、ＰＭＣ計測値である場合もあり、ＰＭＣ計測値に対して割り込み処理部７が計算を行った値の場合もある。例えば、性能指標値は、分岐命令ミス率やInstructions Per Clock Cycle(IPC)、Clock cycles Per Instruction(CPI)等であってもよい。
【００７３】
ＩＰＣは、実行命令数をクロックサイクル数で除算して得られる値である。ＣＰＩは、クロックサイクル数を実行命令数で除算して得られる値である。従って、ＣＰＩはＩＰＣの逆数になる。
【００７４】
例えば、性能指標値がキャッシュミス率やキャッシュミス数等である場合、性能指標値が高いほど、ＣＰＵ２の性能が良好でないことを示し、性能指標値が低いほど、ＣＰＵ２の性能が良好であることを示す。
【００７５】
この場合、割り込み処理部７は、性能指標値が閾値以上のときに、性能問題が生じていると判定し、性能指標値が閾値未満のときに、性能問題が生じていないと判定する。
【００７６】
上述したように、割り込み処理部７は、第１時間間隔ごとに入力するＰＭＣ９からの割り込みに基づいて、性能データをサンプリングする。実施形態では、割り込み処理部７は、第１時間間隔ごとに、ＰＭＣ計測値とプログラム情報とを採取する。
【００７７】
割り込み処理部７は、例えば、以下のようにして、プログラム情報の採取を行う。カーネル６は、各種の関数を実行することにより、プログラム情報の採取する機能を有する。割り込み処理部７は、カーネル６の各種の関数を実行して、プログラム情報を採取してもよい。
【００７８】
例えば、割り込み処理部７は、実行アドレスを記録するレジスタ（例えば、pt_regs->ip）を参照する。これにより、割り込み処理部７は、命令アドレスをプログラム情報記憶部１０から採取する。
【００７９】
また、割り込み処理部７は、ＣＰＵ２が実行中のプロセスの情報を参照するための変数を参照する（例えば、current->pid）。これにより、割り込み処理部７は、プロセスＩＤをプログラム情報記憶部１０から採取する。
【００８０】
また、プログラム情報には、時刻情報が含まれてもよい。時刻情報は、例えば、タイムスタンプカウンタの値を返す関数（例えば、get_cycles）が実行されることにより、採取される。
【００８１】
割り込み処理部７がプログラム情報記憶部１０からプログラム情報を採取する方法は、上記の例には限定されない。
【００８２】
上述したように、割り込み処理部７は、第１時間間隔ごとに入力するＰＭＣ９からの割り込みに基づいて、性能データを採取し、性能指標値と閾値とを比較する。そして、割り込み処理部７は、比較結果に基づいて、性能指標値が特定条件を満たしているかを判定し、ＣＰＵ２の性能に問題を生じているか否かを判定する。
【００８３】
割り込み処理部７は、性能指標値と閾値との比較結果に基づいて、性能問題を生じていると判定した場合には、時間間隔が短い第１時間間隔ごとに、性能データをデータ記録領域５に記録する。
【００８４】
一方、割り込み処理部７は、性能指標値と閾値との比較結果に基づいて、性能問題を生じていないと判定した場合には、第１時間間隔より長い時間間隔である第２時間間隔で性能データをデータ記録領域５に記録する。
【００８５】
これにより、割り込み処理部７が性能データをデータ記録領域５に記録する頻度が低下する。このため、データ記録領域５に記録される性能データの数が間引かれるため、長い時間の性能データのサンプリングが可能になる。
【００８６】
例えば、第１時間間隔が「５ｍｓ」であり、第２時間間隔が「１５ｍｓ」である場合、割り込み処理部７は、第１時間間隔である「５ｍｓ」間隔ごとに、性能データをサンプリングし、性能指標値と閾値との比較を行う。このため、性能問題の検出精度の低下が抑制される。
【００８７】
また、割り込み処理部７は、性能指標値と閾値との比較結果に基づいて、性能問題を生じていないと判定した場合、割り込み処理部７は、第２時間間隔である「１５ｍｓ」間隔ごとに、性能データをデータ記録領域５に記録する。このため、性能データをデータ記録領域５に記録する頻度が低下する。
【００８８】
この場合、割り込み処理部７は、採取した３回分の性能データのうち、２回分の性能データを間引き、残りの１回分の性能データをデータ記録領域５に記録する。性能指標値が閾値未満である間は、割り込み処理部７は、性能データを間引いて、データ記録領域５に記録する。
【００８９】
従って、実施形態では、性能問題の検出精度の低下を抑制しつつ、性能データをＲＡＭ３のデータ記録領域５に記録する頻度が低下するため、割り込み処理部７は、容量が限られた効率的に性能データを記録することができる。
【００９０】
＜実施形態のフローチャート＞
次に、図２のフローチャートを参照して、実施形態の処理の流れの一例について説明する。測定部１２は、割り込み処理部７に、第１時間間隔を「５ｍｓ」、第２時間間隔を「１５ｍｓ」と設定しているものとする。
【００９１】
また、測定部１２は、割り込み処理部７が使用する性能指標値をキャッシュミス率に設定しているものとする。このため、割り込み処理部７は、ＰＭＣ９のイベント設定レジスタのイベント種にキャッシュミス数および実行命令数を設定する。また、割り込み処理部７は、ＰＭＣ９のイベント設定レジスタのイベント種に時刻を設定する。
【００９２】
また、閾値設定部１１は、割り込み処理部７に対して、キャッシュミス率を比較するための閾値を「１５％」に設定しているものとする。
【００９３】
図２の例では、割り込み処理部７は、第２時間間隔が経過したか否かを判定するために、カウント値を用いる。カウント値の初期値はゼロであり、割り込み処理部７は、ＰＭＣ９から割り込みを入力するごとに、カウント値をインクリメントする。割り込み処理部７は、カウント値が上限値に達したときに、第２時間間隔が経過したと判定する。
【００９４】
上限値は、第２時間間隔を示す値であり、該上限値は、第２時間間隔を第１時間間隔で除算した値になる。第１時間間隔は「５ｍｓ」であり、第２時間間隔は「１５ｍｓ」であるため、上限値は「３」になる。
【００９５】
ＰＭＣ９は、上述したように、第１時間間隔ごと、つまり「５ｍｓ」ごとに割り込み処理部７に割り込みを出力する。割り込み処理部７は、入力した割り込みに基づいて、割り込み処理を開始する。
【００９６】
割り込み処理部７は、ＰＭＣ９からの割り込みに基づいて、ＣＰＵ２から性能データを採取する（ステップＳ１）。これにより、性能データのサンプリングが行われる。実施形態では、性能データは、ＰＭＣ計測値とプログラム情報とを含む。
【００９７】
上述したように、ＰＭＣ９のイベント設定レジスタのイベント種にはキャッシュミス数と実行命令数とが設定されている。このため、割り込み処理部７は、ＰＭＣ９から割り込みを入力したときに、キャッシュミス数および実行命令数をＰＭＣ計測値としてＰＭＣ９のカウンタレジスタから採取する。
【００９８】
割り込み処理部７は、採取したキャッシュミス数を実行命令数で除算して、キャッシュミス率を計算する。このキャッシュミス率が性能指標値になる。なお、性能指標値が、例えば、キャッシュミス数の場合には、ＰＭＣ計測値が性能指標値になる。
【００９９】
割り込み処理部７は、プログラム情報記憶部１０が記憶しているプログラム情報を採取する。割り込み処理部７は、性能指標値が閾値以上であるか否かを判定する（ステップＳ２）。
【０１００】
性能指標値が閾値未満の場合（ステップＳ２でＮＯ）、割り込み処理部７は、カウント数が上限値に達したか否かを判定する（ステップＳ３）。ステップＳ２において、性能指標値が閾値以上であると割り込み処理部７が判定した場合（ステップＳ２でＹＥＳ）、割り込み処理部７は、性能問題が生じていると判定する。
【０１０１】
例えば、キャッシュミス率が「２０％」であった場合、このキャッシュミス率は閾値「１５％」以上である。この場合、割り込み処理部７は、性能データをデータ記録領域５に記録する（ステップＳ４）。
【０１０２】
割り込み処理部７は、性能指標値が閾値以上である場合には、第１時間間隔ごとに性能データを記録するため、性能データは、間引かれることなくデータ記録領域５に記録される。そして、割り込み処理部７は、カウント値をゼロに設定する（ステップＳ５）。
【０１０３】
カウント値は、前回、性能データを記録してから、第２時間間隔（１５ｍｓ）後に次の性能データを記録するときのタイミングを規定する。このため、割り込み処理部７は、性能データをデータ記録領域５に記録した後、カウント値をゼロに設定する。
【０１０４】
割り込み処理部７は、ＰＭＣの値を初期化する（ステップＳ６）。上述したように、ＰＭＣ９は、第１時間間隔である「５ｍｓ」の間の、キャッシュミス数と実行命令数と時刻とを計測している。
【０１０５】
従って、次にＰＭＣ９が割り込みを発生させるまでの間のキャッシュミス数および実行命令数をカウントするために、割り込み処理部７は、ＰＭＣ９のカウンタレジスタが記憶しているキャッシュミス数および実行命令数をゼロにする初期化を行う。
【０１０６】
また、割り込み処理部７は、ＰＭＣ９に第１時間間隔が経過した後に、割り込みを発生させるために、ＰＭＣ９の時刻に相当するカウンタレジスタに第１時間間隔である「５ｍｓ」を設定する。従って、ＰＭＣ計測値に初期値が設定されることで、ＰＭＣ計測値の初期化が行われる。
【０１０７】
性能指標値が閾値未満であり（ステップＳ２でＮＯ）、カウント値が上限値に達していない場合（ステップＳ３でＮＯ）、割り込み処理部７は、第２時間間隔ごとに性能データをデータ記録領域５に記録する。この場合、性能データは、間引かれてデータ記録領域５に記録される。
【０１０８】
この場合、割り込み処理部７は、性能データをデータ記録領域５には記録せず、カウント値をインクリメントする（ステップＳ７）。そして、割り込み処理部７は、ＰＭＣの値を初期化して、割り込み処理を終了する。
【０１０９】
図２のフローチャートの処理は、割り込み処理部７がＰＭＣ９からの割り込みを入力するごとに行われる。ＰＭＣ９は、第１時間間隔ごとに割り込みを出力する。割り込み処理部７は、割り込みを入力するごとに、性能指標値と閾値との比較を行う。性能指標値が閾値以上となった場合には、割り込み処理部７は、性能データをデータ記録領域５に記録する。
【０１１０】
一方、性能指標値が閾値未満である限り、ステップＳ２の判定はＮＯになる。そして、カウント値が上限値に達していなければ、ステップＳ３の判定はＮＯになる。この場合、カウント値はインクリメントされていく。
【０１１１】
そして、性能指標値が閾値未満であり（ステップＳ２でＮＯ）、カウント値が上限値に達した場合（ステップＳ３でＹＥＳ）、割り込み処理部７は、性能データをデータ記録領域５に記録する。
【０１１２】
つまり、割り込み処理部７は、前回、性能データをデータ記録領域５に記録してから、第２時間間隔（１５ｍｓ）の時間が経過した後に、性能データをデータ記録領域５に記録する。そして、割り込み処理部７は、ステップＳ５およびステップＳ６の処理を行い、割り込み処理を終了する。
【０１１３】
なお、カウント値が上限値に達していなくても、性能指標値が閾値以上であると割り込み処理部７が判定した場合（ステップＳ２でＹＥＳ）、その時点で、割り込み処理部７は、性能データをデータ記録領域５に記録する。
【０１１４】
図２のフローチャートの処理は、性能指標値にキャッシュミス率を用いた場合の処理である。キャッシュミス率は、値が低いほど、ＣＰＵ２の性能が良好であることを示す。例えば、ＩＰＣは、値が高いほど、ＣＰＵ２の性能が良好であることを示し、値が低いほど、ＣＰＵ２の性能が良好でないことを示す。
【０１１５】
この場合、割り込み処理部７は、ＩＰＣの逆数であるＣＰＩを性能指標値として、図２のフローチャートの各処理を行う。ただし、割り込み処理部７は、性能指標値にＩＰＣを用いてもよい。この場合、図２のステップＳ２は、「性能指標値が閾値以下？」という判定になる。
【０１１６】
＜変形例１＞
次に、変形例１について説明する。変形例１は、割り込み処理部７が、第１時間間隔より長い時間間隔である第２時間間隔を複数段階に変更する場合の例である。閾値設定部１１は、割り込み処理部７に対して、上述した閾値以外の１または複数の他の閾値を設定する。閾値および他の閾値は、予め定められた値である。
【０１１７】
図３は、性能指標値にキャッシュミス率を用いた場合に、閾値設定部１１が割り込み処理部７に設定する閾値Ｍおよび他の閾値Ｍ１の一例を示している。図３の例に示すように、閾値Ｍおよび他の閾値Ｍ１は、キャッシュミス率を比較するための閾値である。
【０１１８】
記録時間間隔は、割り込み処理部７が性能データをデータ記録領域５に記録する時間間隔である。記録時間間隔は、第１時間間隔の場合もあり、第２時間間隔の場合もある。また、第２時間間隔は複数段階に変化する。
【０１１９】
上述したように、閾値設定部１１は、キャッシュミス率を比較するための閾値Ｍとして「１５％」を設定している。割り込み処理部７は、ＰＭＣ９から採取したＰＭＣ測定値としてのキャッシュミス数および命令実行数に基づいて、キャッシュミス率を演算する。キャッシュミス率が閾値Ｍ（＝１５％）以上である場合、割り込み処理部７は、第１時間間隔ごとに、性能データをデータ記録領域５に記録する。
【０１２０】
一方、キャッシュミス率が閾値Ｍ未満である場合、割り込み処理部７は、他の閾値Ｍ１とキャッシュミス率とを比較して、比較結果に基づいて、第２時間間隔を２段階に変更する。図３の例では、閾値設定部１１は、他の閾値Ｍ１を「１０％」に設定している。
【０１２１】
例えば、性能指標値としてのキャッシュミス率が「３％」である場合、キャッシュミス率は低いことから、ＣＰＵ２の性能は良好であることが想定される。この場合、キャッシュミス率が他の閾値Ｍ１未満であるため、割り込み処理部７は、第２時間間隔を「１５ｍｓ」に設定する。
【０１２２】
例えば、性能指標値としてのキャッシュミス率が「１４％」である場合、該キャッシュミス率は閾値Ｍ未満である。よって、割り込み処理部７は、性能問題が生じていないと判定し、第２時間間隔ごとに性能データを記録する。
【０１２３】
ただし、キャッシュミス率は、閾値Ｍ未満であるが、閾値Ｍに近い値になっている。よって、ＣＰＵ２の性能は良好でないことが想定される。この場合、割り込み処理部７は、キャッシュミス率を他の閾値Ｍ１と比較とする。キャッシュミス率は他の閾値Ｍ１以上であるため、割り込み処理部７は、第２時間間隔を「１０ｍｓ」に設定する。
【０１２４】
従って、割り込み処理部７は、性能指標値が閾値Ｍ未満である場合、性能指標値を他の閾値Ｍ１と比較して、比較結果によって、第２時間間隔を変更する。ただし、割り込み処理部７は、性能指標値が閾値Ｍ以上になった場合、その時点で、性能データを第１時間間隔でデータ記録領域５に記録する。
【０１２５】
性能指標値が閾値Ｍ未満の場合、割り込み処理部７は、第２時間間隔ごとに性能データをデータ記録領域５に記録する。これにより、性能データをデータ記録領域５に記録する頻度が低下する。
【０１２６】
ただし、性能指標値が閾値Ｍ未満であっても、性能指標値が閾値Ｍに近ければ、ＣＰＵ２の性能は良好でないことが想定されるため、性能データを記録する第２時間間隔は短いことが好ましい。
【０１２７】
一方、性能指標値が閾値Ｍに近くない値であれば、ＣＰＵ２の性能は良好であることが想定されるため、性能データを記録する第２時間間隔は長いことが好ましい。これにより、割り込み処理部７が間引く性能データの数が多くなる。
【０１２８】
従って、割り込み処理部７は、性能指標値が閾値Ｍ未満の場合に、性能指標値と他の閾値Ｍ１との比較結果に応じて、第２時間間隔を複数段階に変更することで、性能指標値に応じて第２時間間隔を調整することができる。
【０１２９】
図３の例では、他の閾値は１つであったが、他の閾値は複数であってもよい。他の閾値を複数に設定することで、第２時間間隔をより細かく調整することができる。他の閾値および第２時間間隔の設定例は、図３の例には限定されない。
【０１３０】
割り込み処理部７が、キャッシュミス率のように値が低いほどＣＰＵ２の性能が良好であることを示す性能指標値を用いる場合、閾値設定部１１は、１または複数の他の閾値を閾値Ｍより低く設定する。
【０１３１】
一方、割り込み処理部７が、ＩＰＣのように値が高いほどＣＰＵ２の性能が良好であることを示す性能指標値を用いる場合、閾値設定部１１は、１または複数の他の閾値を閾値Ｍより高く設定する。
【０１３２】
図４は、変形例１のフローチャートの一例を示す。図４のフローチャートは、図３のフローチャートに、ステップＳＡ−１およびステップＳＡ−２が追加されている。図４のその他のステップは、図３と同じである。
【０１３３】
図４の例に示すように、性能指標値が閾値未満であるとき（ステップＳ２でＮＯ）、割り込み処理部７は、性能指標値と１または複数の他の閾値とを比較する（ステップＳＡ−１）。そして、割り込み処理部７は、比較結果に応じて、上限値を変更する（ステップＳＡ−２）。
【０１３４】
例えば、図３の例において、性能指標値であるキャッシュミス率が「１４％」の場合、割り込み処理部７は、第２時間間隔を「１０ｍｓ」に設定する。第１時間間隔は「５ｍｓ」であるため、上限値は、「１０ｍｓ」を「５ｍｓ」で除算した値（＝２）になる。
【０１３５】
例えば、図３の例において、性能指標値であるキャッシュミス率が「３％」の場合、割り込み処理部７は、第２時間間隔を「１５ｍｓ」に設定する。第１時間間隔は「５ｍｓ」であるため、上限値は「１５ｍｓ」を「５ｍｓ」で除算した値（＝３）になる。
【０１３６】
このため、割り込み処理部７は、キャッシュミス率と他の閾値Ｍ１との比較結果によって、上限値を変更している。キャッシュミス率が他の閾値Ｍ１（＝１０％）以上の場合には上限値が「２」であるため、割り込み処理部７は、２回のうち１回の性能データを間引いてデータ記録領域５に記録する。
【０１３７】
キャッシュミス率が他の閾値Ｍ１（＝１０％）未満の場合には上限値が「３」であるため、割り込み処理部７は、３回のうち２回の性能データを間引いてデータ記録領域５に記録する。
【０１３８】
図４のフローチャートの処理では、割り込み処理部７は、第２時間間隔が経過したか否かをカウント値に基づいて判定しているが、第２時間間隔が経過したか否かを時刻に基づいて判定してもよい。
【０１３９】
また、図４の例は、性能指標値にキャッシュミス率を適用した場合の例を示している。例えば、性能指標値にＩＰＣを適用した場合、図６のステップＳ２は、「性能指標値が閾値以下？」になる。
【０１４０】
＜変形例２＞
次に、変形例２について説明する。変形例２は、データ記録領域５の残量に応じて、第２時間間隔を複数段階に変更する場合の例である。例えば、データ記録領域５の残量が少なく、且つ性能問題が生じていない場合、割り込み処理部７が性能データをデータ記録領域５に記録する頻度は低い方が好ましい。
【０１４１】
例えば、性能指標値がキャッシュミス率である場合を想定する。割り込み処理部７は、キャッシュミス率が閾値未満の場合であり、且つデータ記録領域５の残量が少ない場合、第２時間間隔を長く設定してもよい。
【０１４２】
これにより、データ記録領域５に記録される性能データが間引かれる回数が多くなり、割り込み処理部７が性能データをデータ記録領域５に記録する頻度が低下する。
【０１４３】
例えば、割り込み処理部７は、データ記録領域５の残量を監視し、該残量を認識する。そして、割り込み処理部７は、ＰＭＣ９から割り込みを入力したときに、認識した残量に応じて第２時間間隔を変更する。図５の例は、データ記録領域５の残量に応じて、第２時間間隔を３段階に変更した場合の例を示している。
【０１４４】
図５の例では、割り込み処理部７は、データ記録領域５の残量が２５％未満であることを認識した場合、第２時間間隔を「４０ｍｓ」に設定する。また、割り込み処理部７は、データ記録領域５の残量が２５％以上であり、且つ５０％未満であることを認識した場合、第２時間間隔を「３０ｍｓ」に設定する。
【０１４５】
また、割り込み処理部７は、データ記録領域の残量が５０％以上であることを認識した場合、第２時間間隔を「２０ｍｓ」に設定する。従って、割り込み処理部７は、データ記録領域５の残量に応じて、第２時間間隔を変更している。
【０１４６】
図５の例の３段階の第２時間間隔の例は、何れも、キャッシュミス率が閾値未満の場合に設定される例である。キャッシュミス率が閾値以上になった場合、割り込み処理部７は、第２時間間隔ではなく、第１時間間隔「５ｍｓ」ごとに性能データをデータ記録領域５に記録する。
【０１４７】
図５の例の場合、キャッシュミス率が閾値未満の場合、割り込み処理部７は、データ記録領域５の残量が少なくなるに応じて、第２時間間隔が長くなるように設定する。
【０１４８】
例えば、データ記録領域５の残量が５０％以上の場合、割り込み処理部７は、第２時間間隔を「２０ｍｓ」に設定する。第２時間間隔は第１時間間隔よりも短い時間間隔であるため、性能データをデータ記録領域５に記録する頻度は低下する。
【０１４９】
一方、データ記録領域５の残量が２５％未満の場合、データ記録領域５の残量は少ない。この場合、割り込み処理部７は、キャッシュミス率が閾値未満であれば、データ記録領域５の残量が５０％以上の場合よりも、第２時間間隔を長くする。
【０１５０】
これにより、割り込み処理部７が性能データをデータ記録領域５に記録する頻度がさらに低下するため、残量の少ないデータ記録領域５に効率的に性能データを記録することができる。
【０１５１】
図６は、変形例２のフローチャートの一例を示す。図６のフローチャートは、図３のフローチャートに、ステップＳＡ−３およびステップＳＡ−４が追加されている。図６のその他のステップは、図３と同じである。
【０１５２】
図６の例に示すように、性能指標値が閾値未満であるとき（ステップＳ２でＮＯ）、割り込み処理部７は、データ記録領域５の残量を認識する（ステップＳＡ−３）。そして、割り込み処理部７は、データ記録領域５の残量に応じて、上限値を変更する（ステップＳＡ−４）。
【０１５３】
例えば、図５の例において、データ記録領域５の残量が５０％以上の場合、割り込み処理部７は、第２時間間隔を「２０ｍｓ」に設定する。第１時間間隔は「５ｍｓ」であるため、上限値は、「２０ｍｓ」を「５ｍｓ」で除算した値（＝４）になる。
【０１５４】
また、図５の例において、データ記録領域５の残量が２５％以上であり、且つ５０％未満の場合、割り込み処理部７は、第２時間間隔を「３０ｍｓ」に設定する。第１時間間隔は「５ｍｓ」であるため、上限値は「３０ｍｓ」を「５ｍｓ」で除算した値（＝６）になる。
【０１５５】
また、図５の例において、データ記録領域５の残量が２５％未満の場合、割り込み処理部７は、第２時間間隔を「４０ｍｓ」に設定する。第１時間間隔は「５ｍｓ」であるため、上限値は「４０ｍｓ」を「５ｍｓ」で除算した値（＝８）になる。
【０１５６】
図６のフローチャートの処理では、割り込み処理部７は、第２時間間隔が経過したか否かをカウント値に基づいて判定しているが、第２時間間隔が経過したか否かを時刻に基づいて判定してもよい。
【０１５７】
また、図６の例は、性能指標値にキャッシュミス率を適用した場合の例を示している。例えば、性能指標値にＩＰＣを適用した場合、図６のステップＳ２は、「性能指標値が閾値以下？」になる。
【０１５８】
＜変形例３＞
変形例３は、変形例１と変形例２とを組み合わせた例である。変形例３において、性能指標値にはキャッシュミス率が適用されている。ただし、性能指標値は、キャッシュミス率には限定されない。
【０１５９】
変形例３では、変形例２と同様に、割り込み処理部７は、データ記録領域５の残量に応じて、第２時間間隔を変更する。ただし、変形例３では、性能指標値と１または複数の他の閾値との比較結果によって、データ記録領域５の残量に応じて設定される第２時間間隔が異なる。
【０１６０】
図７の例において、データ記録領域５の残量に応じて設定する第２時間間隔は、キャッシュミス率が他の閾値Ｍ１未満の場合と、キャッシュミス率が他の閾値Ｍ１以上の場合とで異なる。
【０１６１】
第２時間間隔の設定の例は、図７の例には限定されない。キャッシュミス率が他の閾値Ｍ１未満の場合、ＣＰＵ２の性能は良好であることが想定される。
【０１６２】
キャッシュミス率が他の閾値Ｍ１以上であっても、キャッシュミス率が閾値Ｍ未満であれば、割り込み処理部７は、ＣＰＵ２に性能問題は生じていないと判定する。ただし、この場合、ＣＰＵ２の性能は良好でないことが想定される。
【０１６３】
そこで、割り込み処理部７は、キャッシュミス率が他の閾値Ｍ１未満であるか否かによって、データ記録領域５の残量に応じた第２時間間隔を異なる設定にする。
【０１６４】
割り込み処理部７は、キャッシュミス率が他の閾値Ｍ１未満の場合におけるデータ記録領域５の残量に応じた第２時間間隔よりも、キャッシュミス率が他の閾値Ｍ１以上の場合におけるデータ記録領域５の残量に応じた第２時間間隔を短く設定する。
【０１６５】
例えば、図７の例では、割り込み処理部７は、データ記録領域５の残量が２５％未満の場合、キャッシュミス率が他の閾値Ｍ１未満であれば、第２時間間隔を「４０ｍｓ」に設定する。また、割り込み処理部７は、データ記録領域５の残量が２５％未満の場合、キャッシュミス率が他の閾値Ｍ１以上であれば、第２時間間隔を「３０ｍｓ」に設定する。
【０１６６】
従って、割り込み処理部７は、性能指標値によって、データ記録領域５の残量に応じた第２時間間隔を異ならせることで、ＣＰＵ２の性能とデータ記録領域５の残量とに応じて効率的に性能データをデータ記録領域５に記録することができる。
【０１６７】
上述した、変形例１および変形例２と同様、変形例３の割り込み処理部７は、性能指標値が閾値Ｍ以上である場合には、第２時間間隔ではなく、第１時間間隔ごとに、性能データをデータ記録領域５に記録する。
【０１６８】
図８は、変形例３のフローチャートの一例を示す。図８のフローチャートは、図４のフローチャートに、ステップＳＡ−３およびステップＳＡ−５が追加されている。図６のその他のステップは、図４と同じである。
【０１６９】
図８の例に示すように、性能指標値が閾値未満であるとき（ステップＳ２でＮＯ）、割り込み処理部７は、性能指標値と１または複数の他の閾値とを比較する（ステップＳＡ−１）。また、割り込み処理部７は、データ記録領域５の残量を認識する（ステップＳＡ−３）。ステップＳＡ−３は、図６のフローチャートのステップＳＡ−３と同じである。
【０１７０】
そして、割り込み処理部７は、ステップＳＡ−１の比較結果と、ステップＳＡ−３で認識されたデータ記録領域５の残量とに応じて、上限値を変更する（ステップＳＡ−５）。
【０１７１】
図８のフローチャートの処理では、割り込み処理部７は、第２時間間隔が経過したか否かをカウント値に基づいて判定しているが、第２時間間隔が経過したか否かを時刻に基づいて判定してもよい。
【０１７２】
また、図８の例は、性能指標値にキャッシュミス率を適用した場合の例を示している。例えば、性能指標値にＩＰＣを適用した場合、図８のステップＳ２は、「性能指標値が閾値以下？」になる。
【０１７３】
＜情報処理装置のハードウェア構成の一例＞
次に、図９の例を参照して、情報処理装置１のハードウェア構成の一例について説明する。図９の例に示すように、バス２０に対して、ＣＰＵ２とＲＡＭ３とハードディスクドライブ４とRead Only Memory(ROM)２１と媒体接続部２２とが接続されている。なお、図９では、ハードディスクドライブを「ＨＤＤ」と略して表記している。
【０１７４】
ＲＯＭ２１は、ＲＡＭ３に展開されるプログラムを記憶する不揮発性の記憶装置である。媒体接続部２２は、可搬型記録媒体２３と接続可能に設けられている。可搬型記録媒体２３としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)等）、半導体メモリ等を適用してもよい。この可搬型記録媒体２３に実施形態の処理を行うプログラムが記録されていてもよい。
【０１７５】
ＲＡＭ３、ハードディスクドライブ４、ＲＯＭ２１および可搬型記録媒体２３は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０１７６】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。上述した実施形態に関して、さらに以下の付記を開示する。
（付記１）
演算処理装置と、
記憶装置と、を備え、
前記演算処理装置は、第１時間間隔毎に性能データを取得し、特定の値が特定条件を満たす場合には前記性能データを前記記憶装置に記録し、前記特定の値が前記特定条件を満たさない場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録する、
ことを特徴とする情報処理装置。
（付記２）
前記特定の値は、前記情報処理装置のキャッシュミス値であり、前記特定条件は前記キャッシュミス値が閾値以上である、
ことを特徴とする付記１記載の情報処理装置。
（付記３）
前記演算処理装置は、前記長い時間間隔ごとに前記性能データを前記記憶装置に記録する場合、前記記憶装置の残量に応じて、前記長い時間間隔を変更する、
ことを特徴とする付記１記載の情報処理装置。
（付記４）
前記演算処理装置は、前記長い時間間隔ごとに前記性能データを前記記憶装置に記録する場合、前記記憶装置の残量に応じて、前記長い時間間隔を変更する、
ことを特徴とする付記２記載の情報処理装置。
（付記５）
演算処理装置に、
第１時間間隔毎に性能データを取得し、特定の値が特定条件を満たす場合には前記性能データを記憶装置に記録し、前記特定の値が前記特定条件を満たさない場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録する、
処理を実行させるための性能データ収集プログラム。
（付記６）
演算処理装置が、
第１時間間隔毎に性能データを取得し、特定の値が特定条件を満たす場合には前記性能データを記憶装置に記録し、前記特定の値が前記特定条件を満たさない場合には前記第１時間間隔より長い時間間隔で前記性能データを前記記憶装置に記録する、
ことを特徴とする性能データ収集方法。
【符号の説明】
【０１７７】
１    情報処理装置
２    ＣＰＵ
３    ＲＡＭ
４    ハードディスクドライブ
５    データ記録領域
６    カーネル
７    割り込み処理部
８    測定ツール
９    ＰＭＣ
１０    プログラム情報記憶部
１１    閾値設定部
１２    測定部
【図１】
0006648546.tif 000002
【図２】
0006648546.tif 000003
【図３】
0006648546.tif 000004
【図４】
0006648546.tif 000005
【図５】
0006648546.tif 000006
【図６】
0006648546.tif 000007
【図７】
0006648546.tif 000008
【図８】
0006648546.tif 000009
【図９】
0006648546.tif 000010