情報管理プログラム、情報管理方法、及び、情報管理装置
【課題】性能トラブルの原因の特定に要する時間の短縮を図る。
【解決手段】情報管理プログラムは、コンピュータを、処理を実行する処理部のトレース情報に基づいて処理部の処理状況を示す性能情報を生成し、性能情報と生成元のトレース情報とを対応付ける生成手段、生成した性能情報に基づいて所定の事象を検出する検出手段、所定の事象を検出すると、検出元になった性能情報と性能情報に対応するトレース情報とを出力する出力手段、として実行させる。
【解決手段】情報管理プログラムは、コンピュータを、処理を実行する処理部のトレース情報に基づいて処理部の処理状況を示す性能情報を生成し、性能情報と生成元のトレース情報とを対応付ける生成手段、生成した性能情報に基づいて所定の事象を検出する検出手段、所定の事象を検出すると、検出元になった性能情報と性能情報に対応するトレース情報とを出力する出力手段、として実行させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報を管理する情報管理プログラム、情報管理方法、及び、情報管理装置に関する。
【背景技術】
【0002】
プログラムに基づき所定の処理を実行する処理部を備える処理装置に関して、処理部における性能トラブル、例えば、一部のプロセスの一時的なレスポンスの劣化等の原因を調査する方法として、処理部における処理状況を示す性能情報を解析する方法がある。
【0003】
性能情報は、例えば、処理装置を管理するOS(Operating System)により提供される情報であり、具体的には、処理部を監視するカウンタが、処理部でのプロセスの実行により発生する、例えば、書込要求数や書込要求サイズ等をカウントすることで生成されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−227999号公報
【特許文献2】特開平6−59944号公報
【特許文献3】特開2002−288005号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、カウンタでは実行されたプロセスを特定する情報やプロセスの実行が誰によるものかを特定するような情報は生成されないため、性能情報を解析しても、性能トラブルが誰のどのような処理によるものかを特定することができなかった。このため、性能トラブルの種類によっては、原因を特定するまでに多大な時間を要してしまう可能性があった。
【0006】
このような点に鑑み、性能トラブルの原因の特定に要する時間の短縮を図る、情報管理プログラム、情報管理方法、及び、情報管理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために以下のような情報管理プログラムが提供される。
この情報管理プログラムは、コンピュータを、処理を実行する処理部のトレース情報に基づいて処理部の処理状況を示す性能情報を生成し、性能情報と生成元のトレース情報とを対応付ける生成手段、生成した性能情報に基づいて所定の事象を検出する検出手段、所定の事象を検出すると、検出元になった性能情報と性能情報に対応するトレース情報とを出力する出力手段、として実行させる。
【発明の効果】
【0008】
開示の情報管理プログラムによれば、性能トラブルの原因の特定に要する時間の短縮を図ることが可能となる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係る情報管理装置の一例を示す図。
【図2】第1の実施形態に係る情報管理装置の処理手順の一例を示すフローチャート。
【図3】第2の実施形態に係る情報管理装置のハードウェアの一例を示すブロック図。
【図4】第2の実施形態に係る情報管理装置の機能の一例を示すブロック図。
【図5】トレース情報の一例を示す図。
【図6】トレース情報の一例を示す図。
【図7】トレース情報の一例を示す図。
【図8】変換テーブルの一例を示す図。
【図9】第1の期間分の性能情報の一例を示す図。
【図10】第2の期間分の性能情報の一例を示す図。
【図11】第2の実施形態に係る情報管理装置の処理手順の一例を示すフローチャート。
【図12】第2の実施形態に係る情報管理装置の処理手順の一例を示すフローチャート。
【図13】調査の一例を説明する図。
【図14】調査の一例を説明する図。
【図15】調査の一例を説明する図。
【図16】調査の一例を説明する図。
【発明を実施するための形態】
【0010】
以下、実施形態を図面を参照して説明する。
[第1の実施形態]
図1は、第1の実施形態に係る情報管理装置の一例を示す図である。情報管理装置10は、処理部11と、トレース情報記憶部12と、生成部13と、検出部14と、出力部15とを有する。
【0011】
処理部11は、プログラムに基づいて所定の処理を実行する。トレース情報記憶部12は、処理部11における処理の履歴を示すトレース情報を記憶する。ここで、トレース情報は、処理を特定する情報や、処理の実行が誰によるものかを示す情報を含んでいる。また、トレース情報は、例えば、情報管理装置10を管理するOS(Operating System)により提供される。
【0012】
生成部13は、トレース情報記憶部12に記憶されたトレース情報に基づいて、性能情報を生成する。性能情報は、処理部11の処理状況を示す情報であり、例えば、応答速度や処理速度等を示す指標を含む。例えば、性能情報は、書込要求数、書込要求サイズ、CPU消費率、メモリ使用量、IO稼働率、読込要求数、読込要求サイズ等を含む。さらに、生成部13は、生成した性能情報と生成元のトレース情報とを対応付ける。
【0013】
検出部14は、生成部13が生成した性能情報に基づいて、所定の事象を検出する。所定の事象とは、例えば、通常の状態とは大きく異なる異常状態を示す特異事象である。多くの場合、この特異事象は、性能トラブルの現象となって現れる。
【0014】
出力部15は、検出部14が所定の事象を検出すると、検出元になった性能情報と、この性能情報に対応するトレース情報とを、例えば、保存部や表示装置の表示画面等(図示せず)に出力する。
【0015】
なお、情報管理装置10は、処理部11及びトレース情報記憶部12を必ずしも有している必要はない。例えば、情報管理装置10とネットワーク等で接続された外部の処理装置に、処理部11及びトレース情報記憶部12を設定することも可能である。この場合、情報管理装置10は、ネットワーク等を介して外部の処理装置からトレース情報を取得する。
【0016】
次に、この情報管理装置10の動作について説明する。図2は、第1の実施形態に係る情報管理装置の処理手順の一例を示すフローチャートである。
[ステップS11]処理を開始すると、生成部13が、トレース情報記憶部12に記憶されているトレース情報に基づいて性能情報を生成する。
【0017】
[ステップS12]生成部13が、ステップS11で生成された性能情報と、生成元のトレース情報とを対応付ける。
[ステップS13]検出部14が、ステップS11で生成された性能情報に基づいて、所定の事象を検出する。所定の事象を検出した場合、処理をステップS14に進める。所定の事象が検出されない場合は、処理を終了する。
【0018】
[ステップS14]ステップS13で、検出部14が所定の事象を検出した場合、出力部15が、検出元になった性能情報と、この性能情報に対応するトレース情報とを出力して処理を終了する。
【0019】
なお、性能トラブルの原因の調査は、出力部15が出力した情報を調査することで行われる。例えば、出力部15が情報を表示装置の表示画面に出力する場合、ユーザは、この表示画面を閲覧することで調査を行うことが可能となる。
【0020】
このように、情報管理装置10は、性能情報と生成元のトレース情報とを対応付け、性能情報に所定の事象が検出された場合、検出元になった性能情報と、この性能情報と対応するトレース情報とを出力する。
【0021】
これにより、性能トラブルの原因を調査する際、トレース情報にまで遡って調査を行うことが可能となる。トレース情報は、処理を特定する情報や、処理の実行が誰によるものかを示す情報を含んでいるため、トレース情報を調査することで、性能トラブルの原因が誰のどのような処理によるものかを、短時間で特定することが可能となる。
【0022】
さらに、情報管理装置10では、出力される性能情報及びトレース情報は、所定の事象が検出された情報のみなので、調査の対象を絞ることが可能となり、調査時間をさらに短縮することが可能となる。
【0023】
次に、情報管理装置10をより具体的にした例を、第2の実施形態に説明する。
[第2の実施形態]
第2の実施形態に係る情報管理装置について説明する。まず、情報管理装置のハードウェアについて説明する。図3は、第2の実施形態に係る情報管理装置のハードウェアの一例を示すブロック図である。
【0024】
情報管理装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス106を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、及びグラフィック処理部104、入力インタフェース105が接続されている。
【0025】
RAM102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラム、各種データが格納される。グラフィック処理部104には、モニタ107が接続されており、CPU101からの命令に従って画像をモニタ107の画面に表示させる。入力インタフェース105には、キーボード108aやマウス108b等の入力デバイスが接続されており、キーボード108aやマウス108bから送られてくる信号を、バス106を介してCPU101に送信する。
【0026】
このようなハードウェアによって、情報管理装置100の処理機能を実現することができる。次に、情報管理装置100の機能について説明する。図4は、第2の実施形態に係る情報管理装置の機能の一例を示すブロック図である。
【0027】
情報管理装置100は、処理部110と、トレース情報記憶部120と、性能情報生成部130と、性能情報生成部140と、事象検出部150と、情報出力部160と、保存部170とを有する。
【0028】
処理部110は、プログラムに基づいて所定のプロセスやスレッド等の処理を実行する。処理部110は、例えば、API(Application Program Interface)を実行するAPI層111と、情報を一時記憶するキャッシュ層112と、情報の入出力を行うIO層113とを含んでいる。
【0029】
トレース情報記憶部120は、処理部110における処理の履歴を示すトレース情報を記憶する。ここでは、トレース情報記憶部120は、各API層111、キャッシュ層112、及び、IO層113に対応したトレース情報をそれぞれ記憶する。
【0030】
ここで、トレース情報は、プロセスやスレッドを特定する情報や、プロセスやスレッドの実行が誰によるものかを示す情報を含んでいる。また、トレース情報は、例えば、情報管理装置100を管理するOSにより提供される。なお、トレース情報記憶部120に記憶されたトレース情報は、例えば、一定時間(1分程度)経過すると、次のトレース情報に上書きされる。
【0031】
性能情報生成部130は、トレース情報記憶部120に記憶されたトレース情報に基づいて、性能情報を生成する。性能情報は、処理部110の処理状況を示し、例えば、応答速度や処理速度等を示す指標を含む。具体的には、性能情報は、例えば、書込要求数、書込要求サイズ、CPU消費率、メモリ使用量、IO稼働率等を含む。さらに、性能情報生成部130は、生成した性能情報と生成元のトレース情報とを対応付けて記憶する。
【0032】
具体的には、性能情報生成部130は、変換部131と、トレース情報退避部132と、カウンタ133とを有している。さらに、変換部131は、トレース情報を性能情報に変換するための変換テーブルを記憶した変換テーブル記憶部134を有している。
【0033】
変換部131は、トレース情報記憶部120に記憶されたトレース情報に基づいて、変換テーブル記憶部134に記憶された変換テーブルを参照して、カウンタ133をカウントアップする変換操作を行う。なお、変換部131によるトレース情報の変換操作は、第1の期間(例えば、30秒)毎に実施される。このとき、変換部131は、直前の第1の期間(例えば、30秒)分のトレース情報を変換操作の対象としている。
【0034】
トレース情報退避部132は、変換部131で変換操作の対象となった第1の期間分のトレース情報を記憶する。なお、トレース情報退避部132に記憶されたトレース情報は、記憶されてから所定の期間(例えば、10分)が経過すると、トレース情報退避部132から消去される。
【0035】
カウンタ133は、性能情報を示す値を記憶するものであり、変換部131の変換操作に基づきカウントを行う。即ち、変換部131が第1の期間分のトレース情報に基づいてカウンタ133をカウントアップさせる変換操作を行うことで、カウンタ133に、第1の期間分の性能情報が生成されて記憶される。また、カウンタ133は、例えば、性能情報の種類別に設けられた複数のカウンタ部により構成されている。例えば、カウンタ133は、書込要求数を示すカウンタ部と、書込要求サイズを示すカウンタ部と、CPU消費率を示すカウンタ部等を含んでいる。
【0036】
ここで、生成された第1の期間分の性能情報は、生成元となったトレース情報と対応付けられて記憶される。即ち、第1の期間分の性能情報から生成元となったトレース情報が特定できるようにしている。例えば、これは、第1の期間分の性能情報に、生成元となったトレース情報の検索キーを付与することで実現することが可能である。なお、カウンタ133は、例えば、変換部131が、第1の期間経過後、次の回の変換操作を開始すると、ゼロクリアされる。
【0037】
次に、性能情報生成部140は、カウンタ133が記憶した第1の期間分の性能情報を取得して蓄積し、蓄積した第1の期間分の性能情報群が第2の期間分に達していると、蓄積した第1の期間分の性能情報群を集計して第2の期間分の性能情報を生成する。そして、性能情報生成部140は、生成した第2の期間分の性能情報と集計元の第1の期間分の性能情報群とを対応付けて記憶する。
【0038】
具体的には、性能情報生成部140は、集計部141と、性能情報退避部142と、カウンタ143とを有している。集計部141は、性能情報生成部130のカウンタ133が記憶した第1の期間分の性能情報を、記憶される毎、即ち、第1の期間毎に取得して、第1の期間分の性能情報群を蓄積する。
【0039】
さらに、集計部141は、蓄積した第1の期間分の性能情報群が、第2の期間(例えば、10分)分に達していると、第1の期間分の性能情報群を、性能情報の種類毎、例えば、書込要求数、書込要求サイズ、CPU消費率毎に集計して1つにまとめる。これにより、第2の期間(例えば、10分間)分の性能情報が生成される。
【0040】
なお、集計部141は、カウンタ133が記憶した第1の期間分の性能情報を取得することで、蓄積する第1の期間分の性能情報群が第2の期間分を超えた場合、一番古く蓄積した第1の期間分の性能情報を消去する。そして、今回取得された分を含めた第2の期間分の第1の性能情報群を、性能情報の種類毎に集計する。
【0041】
性能情報退避部142は、集計部141で生成された第2の期間分の性能情報の集計元となった第1の期間分の性能情報群を記憶する。なお、性能情報退避部142に記憶された第1の期間分の性能情報群は、記憶されてから所定の期間(例えば、7日間)が経過すると、性能情報退避部142から消去される。
【0042】
カウンタ143は、集計部141で生成された第2の期間分の性能情報を記憶する。ここで、第2の期間分の性能情報は、集計元となった第1の期間分の性能情報群と対応付けられて記憶される。即ち、第2の期間分の性能情報から集計元となった第1の期間分の性能情報群が特定できるようにしている。例えば、これは、第2の期間分の性能情報に、集計元となった第1の期間分の性能情報群の検索キーを付与することで実現することが可能である。なお、カウンタ143は、例えば、集計部141が、第1の期間経過後、次の回の集計を開始すると、ゼロクリアされる。
【0043】
次に、事象検出部150は、カウンタ133に記憶された第1の期間分の性能情報と、カウンタ143に記憶された第2の期間分の性能情報とを比較し、比較結果に基づいて所定の事象を検出する。所定の事象とは、例えば、第2の期間分の性能情報に対して、第1の期間分の性能情報が異常値を示すような特異事象である。具体例としては、10分間のCPU消費率が20%未満とそれほど高くないにもかかわらず、30秒間の書込要求サイズが10MBを超えるような非常に大きい場合である。
【0044】
ここで、第1の期間分の性能情報が、第1の期間分よりも長い第2の期間分の大局的な性能情報に対して異常値を示すような場合は、その第1の期間における処理において、性能トラブルが発生している可能性が高いと考えられる。
【0045】
ここでは、事象検出部150は、特異事象として識別される条件を記憶する条件記憶部151を有している。そして、この条件記憶部151に記憶された条件を参照して、比較結果から所定の事象を検出する。
【0046】
また、例えば、性能トラブルが発生した際に現れる事象が予め分かっていれば、この事象を識別する条件を条件記憶部151に記憶しておくことで、性能トラブルに伴う事象を検出する検出精度を向上させることが可能となる。
【0047】
情報出力部160は、事象検出部150が所定の事象を検出すると、カウンタ143に記憶された第2の期間分の性能情報と、カウンタ133に記憶された第1の期間分の性能情報と、トレース情報退避部132に記憶された直前の第1の期間分のトレース情報とを取得する。さらに、情報出力部160は、取得した第2の期間分の性能情報、第1の期間分の性能情報、及び、トレース情報を、保存部170に出力する。
【0048】
なお、情報出力部160は、さらに、性能情報退避部142に記憶された直前の第1の期間分の性能情報群と、トレース情報記憶部120に記憶されたトレース情報とを取得し、保存部170に出力しても良い。
【0049】
保存部170に保存された、第2の期間分の性能情報と、第1の期間分の性能情報と、トレース情報とは、例えば、図3に示す情報管理装置100のモニタ107に表示される。この時、例えば、第2の期間分の性能情報と、第1の期間分の性能情報と、トレース情報とが、互いに対応付けられて表示される。
【0050】
次に、トレース情報記憶部120が記憶するトレース情報について説明する。
図5〜図7は、トレース情報の一例を示す図である。
処理部110のAPI層111の処理履歴を示すトレース情報121は、例えば、図5に示される。トレース情報121は、処理が実行された時間(TIME)と、処理プロセス及びスレッドを特定するプロセスID及びスレッドIDとを含む。さらに、トレース情報121は、処理の実行が誰によるものかを示す呼出元アドレスと、処理の依頼の履歴か、又は、処理の応答の履歴かを特定する区分と、処理の種類を示す機能名と、処理内容を示すパラメタとを含む。
【0051】
例えば、プログラムA(プロセスN1、スレッドM1)がファイルAに32MBの書き込みを行う場合、トレース情報121の最上欄に示されるように、TIMEに処理が実行された時間が記憶され、プロセスIDに「N1」、スレッドIDに「M1」が記憶される。さらに、呼出元アドレスにこの処理の呼出元アドレスである「xxx1」が記憶され、区分に「call」が記憶され、機能名に「fwrite」が記憶され、パラメタに「ファイルA,1,32M,1」等が記憶される。
【0052】
処理部110のキャッシュ層112の処理履歴を示すトレース情報122は、例えば、図6に示される。トレース情報122は、処理が実行された時間(TIME)と、処理プロセス及びスレッドの依頼元を特定する依頼元プロセスID及び依頼元スレッドIDとを含む。さらに、トレース情報122は、処理の実行が誰によるものかを示す呼出元アドレスと、処理の依頼の履歴か、又は、処理の応答の履歴かを特定する区分と、処理の種類を示す機能名と、処理内容を示すパラメタとを含む。
【0053】
処理部110のIO層113の処理履歴を示すトレース情報123は、例えば、図7に示される。トレース情報123は、処理が実行された時間(TIME)と、処理プロセス及びスレッドの依頼元を特定する依頼元プロセスID及び依頼元スレッドIDとを含む。さらに、トレース情報123は、処理の実行が誰によるものかを示す呼出元アドレスと、処理の依頼の履歴か、又は、処理の応答の履歴かを特定する区分と、処理の種類を示す機能名と、処理内容を示すパラメタとを含む。
【0054】
次に、変換テーブル記憶部134に記憶されている変換テーブルについて説明する。図8は、変換テーブルの一例を示す図である。変換テーブルは処理部110内の各層別に区分れている。ここでは、変換テーブルは、例えば、API層、キャッシュ層、IO層に区分されている。さらに、変換テーブルには、各層別に、変換対象となるトレース情報の機能名、カウンタ133における変換先のカウンタ部、変換操作内容が設けられている。
【0055】
API層の欄については、例えば、機能名が書き込みを示す「fwrite」であり、変換先カウンタ部が、書込要求数(全体)、書込要求数(プロセス)、書込要求サイズ(全体)、書込要求サイズ(プロセス)である。さらに、変換操作内容が、「書込要求数(全体)に1を加える」、「書込要求数(プロセスID)に1を加える」、「書込要求サイズ(全体)に第3パラメタを加える」、「書込要求サイズ(プロセスID)に第3パラメタを加える」である。
【0056】
キャッシュ層の欄については、例えば、機能名が書き込みを示す「cwrite」であり、変換先カウンタ部が、書込要求数(論理装置)、書込要求サイズ(論理装置)である。さらに、変換操作内容が、「書込要求数(論理装置)に1を加える」、「書込要求サイズ(論理装置)に第3パラメタを加える」である。
【0057】
IO層の欄については、例えば、機能名が書き込みを示す「iowrite」であり、変換先カウンタ部が、書込要求数(物理装置)、書込要求サイズ(物理装置)である。さらに、変換操作内容が、「書込要求数(物理装置)に1を加える」、「書込要求サイズ(物理装置)に第3パラメタを加える」である。
【0058】
例えば、機能名が「fwrite」のAPI層111に対応するトレース情報に対しては、変換テーブル(API層)に基づいて、次の通り変換操作が行われる。即ち、カウンタ133における書込要求数(全体)を示すカウンタ部、及び、書込要求数(プロセスID)を示すカウンタ部にそれぞれ1が加えられる。さらに、カウンタ133における書込要求サイズ(全体)を示すカウンタ部、及び、書込要求サイズ(プロセスID)を示すカウンタ部にそれぞれに書込情報のサイズが加えられる。
【0059】
次に、カウンタ133に記憶される第1の期間分の性能情報について説明する。図9は、第1の期間分の性能情報の一例を示す図である。
第1の期間分の性能情報では、性能情報の種類毎、即ち、カウンタ部毎に、それぞれカウンタ値が対応付けられている。ここでは、性能情報の種類に、例えば、プロセス全体の書込要求数及び書込要求サイズ、プロセスIDの書込要求数及び書込要求サイズ、論理装置の書込要求数及び書込要求サイズ、物理装置の書込要求数及び書込要求サイズを含んでいる。これらのそれぞれに対して、カウンタ値、及び、単位時間当たりのカウンタ値が対応付けられている。
【0060】
さらに、第1の期間分の性能情報は、当該性能情報の生成に要した期間を示す生成期間を含んでいる。図9に示される例では、第1の期間が30秒間なので、生成期間が30秒を示している。また、第1の期間分の性能情報には、生成時刻が付与されている。例えば、この生成時刻を、対応するトレース情報を検索する際の検索キーとすることも可能である。
【0061】
次に、カウンタ143に記憶される第2の期間分の性能情報について説明する。図10は、第2の期間分の性能情報の一例を示す図である。
第2の期間分の性能情報も、図9に示される第1の期間分の性能情報と同様の形式を備えている。図10に示される例では、第2の期間が10分間、即ち、600秒間なので、生成期間が600秒を示している。また、第2の期間分の性能情報にも、生成時刻が付与されている。例えば、この生成時刻を、対応する第1の性能情報群を検索する際の検索キーとすることも可能である。
【0062】
次に、情報管理装置100の処理手順について説明する。図11、図12は、第2の実施形態に係る情報管理装置の処理手順の一例を示すフローチャートである。まず、図11を用いて説明する。
【0063】
第1の期間(例えば、30秒間)毎に処理が開始する。
[ステップS110]変換部131が、トレース情報記憶部120に記憶されている第1の期間分のトレース情報に基づいて、カウンタ133をカウントアップして、第1の期間分の性能情報を生成する。このとき、変換部131は、例えば、変換テーブル記憶部134に記憶されている変換テーブルを参照する。
【0064】
[ステップS120]トレース情報退避部132が、ステップS110で生成された第1の期間分の性能情報の生成元となった第1の期間分のトレース情報を記憶する。
[ステップS130]カウンタ133が、ステップS110で生成された第1の期間分の性能情報を、生成元となったトレース情報と対応付けて記憶する。
【0065】
[ステップS140]集計部141が、ステップS130で第1の期間分の性能情報がカウンタ133に記憶されると、カウンタ133から第1の期間分の性能情報を取得して蓄積する。次のステップからは図12を用いて説明する。
【0066】
[ステップS150]集計部141が、ステップS140で蓄積した第1の期間分の性能情報群が第2の期間(例えば、10分間)分に達しているかどうかを判定する。達している場合は処理をステップS160に進める。達していない場合は処理を終了する。
【0067】
[ステップS160]集計部141が、第1の期間分の性能情報群を集計して第2の期間分の性能情報を生成する。
[ステップS170]性能情報退避部142が、ステップS160で生成された第2の期間分の性能情報の集計元となった第1の期間分の性能情報群を記憶する。
【0068】
[ステップS180]カウンタ143が、ステップS160で生成された第2の期間分の性能情報を、集計元となった第1の期間分の性能情報群と対応付けて記憶する。
[ステップS190]事象検出部150が、ステップS130でカウンタ133に記憶された第1の期間分の性能情報と、ステップS180でカウンタ143に記憶された第2の期間分の性能情報とを比較する。
【0069】
[ステップS200]事象検出部150が、ステップS190の比較結果に基づいて所定の事象を検出する。このとき、事象検出部150は、例えば、条件記憶部151に記憶されている条件を参照して、所定の事象を検出する。所定の事象が検出された場合、処理をステップS210に進める。所定の事象が検出されない場合、処理を終了する。
【0070】
[ステップS210]情報出力部160が、ステップS180でカウンタ143に記憶された第2の性能情報、ステップS130でカウンタ133に記憶された第1の性能情報、ステップS120でトレース情報退避部132に記憶されたトレース情報を、保存部170に出力する。これで処理を終了する。なお、この時、情報出力部160が、さらに、ステップS170で性能情報退避部142に記憶された第1の期間分の性能情報群、及び、トレース情報記憶部120に記憶されたトレース情報を、保存部170に出力しても良い。なお、性能トラブルの原因の調査は、保存部170に保存された第2の期間分の性能情報、第1の期間分の性能情報群、及び、トレース情報を調査することで行われる。
【0071】
ここで、保存部170に保存された情報から、ある性能トラブルの原因を調査する一例を説明する。図13〜図16は、調査の一例を説明する図である。
図13には、カウンタ133が記憶する30秒間の性能情報と、カウンタ143が記憶する10分間の性能情報とが示されている。図13に示すように、事象検出部150により、30秒間の性能情報と10分間の性能情報とから、10分間のCPU消費率が11%とそれほど高くないにもかかわらず、30秒間の磁気ディスク#1の書込要求サイズが18MB/秒である特異事象が検出されたとする。ここで、磁気ディスク#1は、磁気ディスクが有する領域の一部を指すものである。
【0072】
この特異事象が検出されると、情報出力部160が、検出元になった第1の期間分の性能情報をカウンタ133から取得し、さらに、この第1の期間分の性能情報に対応するトレース情報をトレース情報退避部132から取得する。そして、情報出力部160は、取得した第1の期間分の性能情報と、トレース情報とを、保存部170に出力する。
【0073】
事象検出部150にて特異事象が検出されると、情報管理装置100は、例えば、図3に示されるモニタ108にアラーム情報を表示する等して、特異事象が検出されたことをユーザに報知する。ユーザは、情報管理装置100からの特異事象の報知に基づき、保存部170の調査を行う。なお、ユーザは、情報管理装置100からの報知によらずに、定期的に保存部170の調査を行っても良いし、情報管理装置100の操作中に動作速度が遅くなる等の不具合を感知することで、調査を行っても良い。
【0074】
保存部170の調査を行う場合、ユーザは、30秒間の性能情報に対応付けされた同時間帯のトレース情報を参照して分析する。図14は、対応するIO層のトレース情報である。図14に示すトレース情報123には、磁気ディスク#1への書き込みが記憶されている。今回の特異事象は書込要求サイズに関するものであるため、書き込みのトレース情報(機能名:iowrite)から、書き込み対象のキャッシュバッファを全て抽出する。ここでは、キャッシュバッファ#2、#3、#4が抽出された。ここで、各キャッシュバッファ#2〜#4はそれぞれ、キャッシュバッファが有する領域の一部を指すものである。
【0075】
次に、ユーザは、抽出したキャッシュバッファ#2〜#4を元に、同時間帯のキャッシュ層112のトレース情報122を調査する。このトレース情報122に抽出したキャッシュバッファ#2〜#4が検出されなければ、前の30秒間分のトレース情報122やそれ以前の30秒間分のトレース情報122にも遡って調査する。ここでは、前の30秒間のキャッシュ層112のトレース情報122に、抽出したキャッシュバッファ#2〜#4が検出された。図15は、そのキャッシュ層のトレース情報である。
【0076】
次に、ユーザは、キャッシュバッファ#2〜#4が検出されたキャッシュ層112のトレース情報122と同時間帯のAPI層111のトレース情報121を解析する。図16は、そのAPI層のトレース情報である。すると、キャッシュバッファ#2〜#4が検出された同時間に、対応するプロセス/スレッドから、1回で32MBもの「fwrite」を発行していることが検出された。呼出元アドレスに基づいてプロセスの開発元に照会したところ、プログラム動作環境パラメタの設定ミスにより不当なサイズでファイルの初期獲得が実施された結果、今回の事象が発生したことが判明した。
【0077】
このように、情報管理装置100は、第1の期間分の性能情報と生成元のトレース情報とを対応付けて記憶し、第1の期間分の性能情報に所定の事象が検出された場合、記憶した第1の期間分の性能情報とトレース情報とを保存部170に出力する。
【0078】
これにより、性能トラブルの原因を調査する際、トレース情報にまで遡って調査を行うことが可能となる。トレース情報は、処理プロセスやスレッドを特定する情報や、処理の実行が誰によるものかを示す情報を含んでいるため、トレース情報を調査することで、性能トラブルの原因が誰のどのような処理によるものかを、短時間で特定することが可能となる。
【0079】
さらに、情報管理装置100では、第1の期間分の性能情報からの所定の事象の検出は、第1の期間分の性能情報と、第1の期間分の性能情報を第2の期間分蓄積して集計した第2の期間分の性能情報とを比較することで行われる。これにより、第1の期間分の性能情報の局所的な異常値を検出することが可能となり、検出精度を向上させることが可能となる。
【0080】
さらに、情報管理装置100では、保存部170に保存される第2の期間分の性能情報、第1の期間分の性能情報、及びトレース情報は、所定の事象が検出された情報のみなので、調査の対象を絞ることが可能となり、調査時間をさらに短縮することが可能となる。また、この構成によれば、保存部170の記憶容量を小さく設定することが可能となる。
【0081】
なお、以上の処理は、前述した通り、コンピュータに所定のプログラムを実行させることで実現できる。その場合、実現すべき処理内容を記述したプログラムが提供される。処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。コンピュータ読み取り可能な記録媒体には、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリがある。磁気記録装置には、ハードディスク装置、フレキシブルディスク(FD)、磁気テープ(MT)等がある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc ? Read Only Memory)、CD−R(Recordable)、CD−RW(ReWritable)等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
【0082】
プログラムを流通させる場合、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにプログラムを転送することもできる。
【0083】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【0084】
10 情報管理装置
11 処理部
12 トレース情報記憶部
13 生成部
14 検出部
15 出力部
【技術分野】
【0001】
本発明は、情報を管理する情報管理プログラム、情報管理方法、及び、情報管理装置に関する。
【背景技術】
【0002】
プログラムに基づき所定の処理を実行する処理部を備える処理装置に関して、処理部における性能トラブル、例えば、一部のプロセスの一時的なレスポンスの劣化等の原因を調査する方法として、処理部における処理状況を示す性能情報を解析する方法がある。
【0003】
性能情報は、例えば、処理装置を管理するOS(Operating System)により提供される情報であり、具体的には、処理部を監視するカウンタが、処理部でのプロセスの実行により発生する、例えば、書込要求数や書込要求サイズ等をカウントすることで生成されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−227999号公報
【特許文献2】特開平6−59944号公報
【特許文献3】特開2002−288005号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、カウンタでは実行されたプロセスを特定する情報やプロセスの実行が誰によるものかを特定するような情報は生成されないため、性能情報を解析しても、性能トラブルが誰のどのような処理によるものかを特定することができなかった。このため、性能トラブルの種類によっては、原因を特定するまでに多大な時間を要してしまう可能性があった。
【0006】
このような点に鑑み、性能トラブルの原因の特定に要する時間の短縮を図る、情報管理プログラム、情報管理方法、及び、情報管理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために以下のような情報管理プログラムが提供される。
この情報管理プログラムは、コンピュータを、処理を実行する処理部のトレース情報に基づいて処理部の処理状況を示す性能情報を生成し、性能情報と生成元のトレース情報とを対応付ける生成手段、生成した性能情報に基づいて所定の事象を検出する検出手段、所定の事象を検出すると、検出元になった性能情報と性能情報に対応するトレース情報とを出力する出力手段、として実行させる。
【発明の効果】
【0008】
開示の情報管理プログラムによれば、性能トラブルの原因の特定に要する時間の短縮を図ることが可能となる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係る情報管理装置の一例を示す図。
【図2】第1の実施形態に係る情報管理装置の処理手順の一例を示すフローチャート。
【図3】第2の実施形態に係る情報管理装置のハードウェアの一例を示すブロック図。
【図4】第2の実施形態に係る情報管理装置の機能の一例を示すブロック図。
【図5】トレース情報の一例を示す図。
【図6】トレース情報の一例を示す図。
【図7】トレース情報の一例を示す図。
【図8】変換テーブルの一例を示す図。
【図9】第1の期間分の性能情報の一例を示す図。
【図10】第2の期間分の性能情報の一例を示す図。
【図11】第2の実施形態に係る情報管理装置の処理手順の一例を示すフローチャート。
【図12】第2の実施形態に係る情報管理装置の処理手順の一例を示すフローチャート。
【図13】調査の一例を説明する図。
【図14】調査の一例を説明する図。
【図15】調査の一例を説明する図。
【図16】調査の一例を説明する図。
【発明を実施するための形態】
【0010】
以下、実施形態を図面を参照して説明する。
[第1の実施形態]
図1は、第1の実施形態に係る情報管理装置の一例を示す図である。情報管理装置10は、処理部11と、トレース情報記憶部12と、生成部13と、検出部14と、出力部15とを有する。
【0011】
処理部11は、プログラムに基づいて所定の処理を実行する。トレース情報記憶部12は、処理部11における処理の履歴を示すトレース情報を記憶する。ここで、トレース情報は、処理を特定する情報や、処理の実行が誰によるものかを示す情報を含んでいる。また、トレース情報は、例えば、情報管理装置10を管理するOS(Operating System)により提供される。
【0012】
生成部13は、トレース情報記憶部12に記憶されたトレース情報に基づいて、性能情報を生成する。性能情報は、処理部11の処理状況を示す情報であり、例えば、応答速度や処理速度等を示す指標を含む。例えば、性能情報は、書込要求数、書込要求サイズ、CPU消費率、メモリ使用量、IO稼働率、読込要求数、読込要求サイズ等を含む。さらに、生成部13は、生成した性能情報と生成元のトレース情報とを対応付ける。
【0013】
検出部14は、生成部13が生成した性能情報に基づいて、所定の事象を検出する。所定の事象とは、例えば、通常の状態とは大きく異なる異常状態を示す特異事象である。多くの場合、この特異事象は、性能トラブルの現象となって現れる。
【0014】
出力部15は、検出部14が所定の事象を検出すると、検出元になった性能情報と、この性能情報に対応するトレース情報とを、例えば、保存部や表示装置の表示画面等(図示せず)に出力する。
【0015】
なお、情報管理装置10は、処理部11及びトレース情報記憶部12を必ずしも有している必要はない。例えば、情報管理装置10とネットワーク等で接続された外部の処理装置に、処理部11及びトレース情報記憶部12を設定することも可能である。この場合、情報管理装置10は、ネットワーク等を介して外部の処理装置からトレース情報を取得する。
【0016】
次に、この情報管理装置10の動作について説明する。図2は、第1の実施形態に係る情報管理装置の処理手順の一例を示すフローチャートである。
[ステップS11]処理を開始すると、生成部13が、トレース情報記憶部12に記憶されているトレース情報に基づいて性能情報を生成する。
【0017】
[ステップS12]生成部13が、ステップS11で生成された性能情報と、生成元のトレース情報とを対応付ける。
[ステップS13]検出部14が、ステップS11で生成された性能情報に基づいて、所定の事象を検出する。所定の事象を検出した場合、処理をステップS14に進める。所定の事象が検出されない場合は、処理を終了する。
【0018】
[ステップS14]ステップS13で、検出部14が所定の事象を検出した場合、出力部15が、検出元になった性能情報と、この性能情報に対応するトレース情報とを出力して処理を終了する。
【0019】
なお、性能トラブルの原因の調査は、出力部15が出力した情報を調査することで行われる。例えば、出力部15が情報を表示装置の表示画面に出力する場合、ユーザは、この表示画面を閲覧することで調査を行うことが可能となる。
【0020】
このように、情報管理装置10は、性能情報と生成元のトレース情報とを対応付け、性能情報に所定の事象が検出された場合、検出元になった性能情報と、この性能情報と対応するトレース情報とを出力する。
【0021】
これにより、性能トラブルの原因を調査する際、トレース情報にまで遡って調査を行うことが可能となる。トレース情報は、処理を特定する情報や、処理の実行が誰によるものかを示す情報を含んでいるため、トレース情報を調査することで、性能トラブルの原因が誰のどのような処理によるものかを、短時間で特定することが可能となる。
【0022】
さらに、情報管理装置10では、出力される性能情報及びトレース情報は、所定の事象が検出された情報のみなので、調査の対象を絞ることが可能となり、調査時間をさらに短縮することが可能となる。
【0023】
次に、情報管理装置10をより具体的にした例を、第2の実施形態に説明する。
[第2の実施形態]
第2の実施形態に係る情報管理装置について説明する。まず、情報管理装置のハードウェアについて説明する。図3は、第2の実施形態に係る情報管理装置のハードウェアの一例を示すブロック図である。
【0024】
情報管理装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス106を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、及びグラフィック処理部104、入力インタフェース105が接続されている。
【0025】
RAM102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラム、各種データが格納される。グラフィック処理部104には、モニタ107が接続されており、CPU101からの命令に従って画像をモニタ107の画面に表示させる。入力インタフェース105には、キーボード108aやマウス108b等の入力デバイスが接続されており、キーボード108aやマウス108bから送られてくる信号を、バス106を介してCPU101に送信する。
【0026】
このようなハードウェアによって、情報管理装置100の処理機能を実現することができる。次に、情報管理装置100の機能について説明する。図4は、第2の実施形態に係る情報管理装置の機能の一例を示すブロック図である。
【0027】
情報管理装置100は、処理部110と、トレース情報記憶部120と、性能情報生成部130と、性能情報生成部140と、事象検出部150と、情報出力部160と、保存部170とを有する。
【0028】
処理部110は、プログラムに基づいて所定のプロセスやスレッド等の処理を実行する。処理部110は、例えば、API(Application Program Interface)を実行するAPI層111と、情報を一時記憶するキャッシュ層112と、情報の入出力を行うIO層113とを含んでいる。
【0029】
トレース情報記憶部120は、処理部110における処理の履歴を示すトレース情報を記憶する。ここでは、トレース情報記憶部120は、各API層111、キャッシュ層112、及び、IO層113に対応したトレース情報をそれぞれ記憶する。
【0030】
ここで、トレース情報は、プロセスやスレッドを特定する情報や、プロセスやスレッドの実行が誰によるものかを示す情報を含んでいる。また、トレース情報は、例えば、情報管理装置100を管理するOSにより提供される。なお、トレース情報記憶部120に記憶されたトレース情報は、例えば、一定時間(1分程度)経過すると、次のトレース情報に上書きされる。
【0031】
性能情報生成部130は、トレース情報記憶部120に記憶されたトレース情報に基づいて、性能情報を生成する。性能情報は、処理部110の処理状況を示し、例えば、応答速度や処理速度等を示す指標を含む。具体的には、性能情報は、例えば、書込要求数、書込要求サイズ、CPU消費率、メモリ使用量、IO稼働率等を含む。さらに、性能情報生成部130は、生成した性能情報と生成元のトレース情報とを対応付けて記憶する。
【0032】
具体的には、性能情報生成部130は、変換部131と、トレース情報退避部132と、カウンタ133とを有している。さらに、変換部131は、トレース情報を性能情報に変換するための変換テーブルを記憶した変換テーブル記憶部134を有している。
【0033】
変換部131は、トレース情報記憶部120に記憶されたトレース情報に基づいて、変換テーブル記憶部134に記憶された変換テーブルを参照して、カウンタ133をカウントアップする変換操作を行う。なお、変換部131によるトレース情報の変換操作は、第1の期間(例えば、30秒)毎に実施される。このとき、変換部131は、直前の第1の期間(例えば、30秒)分のトレース情報を変換操作の対象としている。
【0034】
トレース情報退避部132は、変換部131で変換操作の対象となった第1の期間分のトレース情報を記憶する。なお、トレース情報退避部132に記憶されたトレース情報は、記憶されてから所定の期間(例えば、10分)が経過すると、トレース情報退避部132から消去される。
【0035】
カウンタ133は、性能情報を示す値を記憶するものであり、変換部131の変換操作に基づきカウントを行う。即ち、変換部131が第1の期間分のトレース情報に基づいてカウンタ133をカウントアップさせる変換操作を行うことで、カウンタ133に、第1の期間分の性能情報が生成されて記憶される。また、カウンタ133は、例えば、性能情報の種類別に設けられた複数のカウンタ部により構成されている。例えば、カウンタ133は、書込要求数を示すカウンタ部と、書込要求サイズを示すカウンタ部と、CPU消費率を示すカウンタ部等を含んでいる。
【0036】
ここで、生成された第1の期間分の性能情報は、生成元となったトレース情報と対応付けられて記憶される。即ち、第1の期間分の性能情報から生成元となったトレース情報が特定できるようにしている。例えば、これは、第1の期間分の性能情報に、生成元となったトレース情報の検索キーを付与することで実現することが可能である。なお、カウンタ133は、例えば、変換部131が、第1の期間経過後、次の回の変換操作を開始すると、ゼロクリアされる。
【0037】
次に、性能情報生成部140は、カウンタ133が記憶した第1の期間分の性能情報を取得して蓄積し、蓄積した第1の期間分の性能情報群が第2の期間分に達していると、蓄積した第1の期間分の性能情報群を集計して第2の期間分の性能情報を生成する。そして、性能情報生成部140は、生成した第2の期間分の性能情報と集計元の第1の期間分の性能情報群とを対応付けて記憶する。
【0038】
具体的には、性能情報生成部140は、集計部141と、性能情報退避部142と、カウンタ143とを有している。集計部141は、性能情報生成部130のカウンタ133が記憶した第1の期間分の性能情報を、記憶される毎、即ち、第1の期間毎に取得して、第1の期間分の性能情報群を蓄積する。
【0039】
さらに、集計部141は、蓄積した第1の期間分の性能情報群が、第2の期間(例えば、10分)分に達していると、第1の期間分の性能情報群を、性能情報の種類毎、例えば、書込要求数、書込要求サイズ、CPU消費率毎に集計して1つにまとめる。これにより、第2の期間(例えば、10分間)分の性能情報が生成される。
【0040】
なお、集計部141は、カウンタ133が記憶した第1の期間分の性能情報を取得することで、蓄積する第1の期間分の性能情報群が第2の期間分を超えた場合、一番古く蓄積した第1の期間分の性能情報を消去する。そして、今回取得された分を含めた第2の期間分の第1の性能情報群を、性能情報の種類毎に集計する。
【0041】
性能情報退避部142は、集計部141で生成された第2の期間分の性能情報の集計元となった第1の期間分の性能情報群を記憶する。なお、性能情報退避部142に記憶された第1の期間分の性能情報群は、記憶されてから所定の期間(例えば、7日間)が経過すると、性能情報退避部142から消去される。
【0042】
カウンタ143は、集計部141で生成された第2の期間分の性能情報を記憶する。ここで、第2の期間分の性能情報は、集計元となった第1の期間分の性能情報群と対応付けられて記憶される。即ち、第2の期間分の性能情報から集計元となった第1の期間分の性能情報群が特定できるようにしている。例えば、これは、第2の期間分の性能情報に、集計元となった第1の期間分の性能情報群の検索キーを付与することで実現することが可能である。なお、カウンタ143は、例えば、集計部141が、第1の期間経過後、次の回の集計を開始すると、ゼロクリアされる。
【0043】
次に、事象検出部150は、カウンタ133に記憶された第1の期間分の性能情報と、カウンタ143に記憶された第2の期間分の性能情報とを比較し、比較結果に基づいて所定の事象を検出する。所定の事象とは、例えば、第2の期間分の性能情報に対して、第1の期間分の性能情報が異常値を示すような特異事象である。具体例としては、10分間のCPU消費率が20%未満とそれほど高くないにもかかわらず、30秒間の書込要求サイズが10MBを超えるような非常に大きい場合である。
【0044】
ここで、第1の期間分の性能情報が、第1の期間分よりも長い第2の期間分の大局的な性能情報に対して異常値を示すような場合は、その第1の期間における処理において、性能トラブルが発生している可能性が高いと考えられる。
【0045】
ここでは、事象検出部150は、特異事象として識別される条件を記憶する条件記憶部151を有している。そして、この条件記憶部151に記憶された条件を参照して、比較結果から所定の事象を検出する。
【0046】
また、例えば、性能トラブルが発生した際に現れる事象が予め分かっていれば、この事象を識別する条件を条件記憶部151に記憶しておくことで、性能トラブルに伴う事象を検出する検出精度を向上させることが可能となる。
【0047】
情報出力部160は、事象検出部150が所定の事象を検出すると、カウンタ143に記憶された第2の期間分の性能情報と、カウンタ133に記憶された第1の期間分の性能情報と、トレース情報退避部132に記憶された直前の第1の期間分のトレース情報とを取得する。さらに、情報出力部160は、取得した第2の期間分の性能情報、第1の期間分の性能情報、及び、トレース情報を、保存部170に出力する。
【0048】
なお、情報出力部160は、さらに、性能情報退避部142に記憶された直前の第1の期間分の性能情報群と、トレース情報記憶部120に記憶されたトレース情報とを取得し、保存部170に出力しても良い。
【0049】
保存部170に保存された、第2の期間分の性能情報と、第1の期間分の性能情報と、トレース情報とは、例えば、図3に示す情報管理装置100のモニタ107に表示される。この時、例えば、第2の期間分の性能情報と、第1の期間分の性能情報と、トレース情報とが、互いに対応付けられて表示される。
【0050】
次に、トレース情報記憶部120が記憶するトレース情報について説明する。
図5〜図7は、トレース情報の一例を示す図である。
処理部110のAPI層111の処理履歴を示すトレース情報121は、例えば、図5に示される。トレース情報121は、処理が実行された時間(TIME)と、処理プロセス及びスレッドを特定するプロセスID及びスレッドIDとを含む。さらに、トレース情報121は、処理の実行が誰によるものかを示す呼出元アドレスと、処理の依頼の履歴か、又は、処理の応答の履歴かを特定する区分と、処理の種類を示す機能名と、処理内容を示すパラメタとを含む。
【0051】
例えば、プログラムA(プロセスN1、スレッドM1)がファイルAに32MBの書き込みを行う場合、トレース情報121の最上欄に示されるように、TIMEに処理が実行された時間が記憶され、プロセスIDに「N1」、スレッドIDに「M1」が記憶される。さらに、呼出元アドレスにこの処理の呼出元アドレスである「xxx1」が記憶され、区分に「call」が記憶され、機能名に「fwrite」が記憶され、パラメタに「ファイルA,1,32M,1」等が記憶される。
【0052】
処理部110のキャッシュ層112の処理履歴を示すトレース情報122は、例えば、図6に示される。トレース情報122は、処理が実行された時間(TIME)と、処理プロセス及びスレッドの依頼元を特定する依頼元プロセスID及び依頼元スレッドIDとを含む。さらに、トレース情報122は、処理の実行が誰によるものかを示す呼出元アドレスと、処理の依頼の履歴か、又は、処理の応答の履歴かを特定する区分と、処理の種類を示す機能名と、処理内容を示すパラメタとを含む。
【0053】
処理部110のIO層113の処理履歴を示すトレース情報123は、例えば、図7に示される。トレース情報123は、処理が実行された時間(TIME)と、処理プロセス及びスレッドの依頼元を特定する依頼元プロセスID及び依頼元スレッドIDとを含む。さらに、トレース情報123は、処理の実行が誰によるものかを示す呼出元アドレスと、処理の依頼の履歴か、又は、処理の応答の履歴かを特定する区分と、処理の種類を示す機能名と、処理内容を示すパラメタとを含む。
【0054】
次に、変換テーブル記憶部134に記憶されている変換テーブルについて説明する。図8は、変換テーブルの一例を示す図である。変換テーブルは処理部110内の各層別に区分れている。ここでは、変換テーブルは、例えば、API層、キャッシュ層、IO層に区分されている。さらに、変換テーブルには、各層別に、変換対象となるトレース情報の機能名、カウンタ133における変換先のカウンタ部、変換操作内容が設けられている。
【0055】
API層の欄については、例えば、機能名が書き込みを示す「fwrite」であり、変換先カウンタ部が、書込要求数(全体)、書込要求数(プロセス)、書込要求サイズ(全体)、書込要求サイズ(プロセス)である。さらに、変換操作内容が、「書込要求数(全体)に1を加える」、「書込要求数(プロセスID)に1を加える」、「書込要求サイズ(全体)に第3パラメタを加える」、「書込要求サイズ(プロセスID)に第3パラメタを加える」である。
【0056】
キャッシュ層の欄については、例えば、機能名が書き込みを示す「cwrite」であり、変換先カウンタ部が、書込要求数(論理装置)、書込要求サイズ(論理装置)である。さらに、変換操作内容が、「書込要求数(論理装置)に1を加える」、「書込要求サイズ(論理装置)に第3パラメタを加える」である。
【0057】
IO層の欄については、例えば、機能名が書き込みを示す「iowrite」であり、変換先カウンタ部が、書込要求数(物理装置)、書込要求サイズ(物理装置)である。さらに、変換操作内容が、「書込要求数(物理装置)に1を加える」、「書込要求サイズ(物理装置)に第3パラメタを加える」である。
【0058】
例えば、機能名が「fwrite」のAPI層111に対応するトレース情報に対しては、変換テーブル(API層)に基づいて、次の通り変換操作が行われる。即ち、カウンタ133における書込要求数(全体)を示すカウンタ部、及び、書込要求数(プロセスID)を示すカウンタ部にそれぞれ1が加えられる。さらに、カウンタ133における書込要求サイズ(全体)を示すカウンタ部、及び、書込要求サイズ(プロセスID)を示すカウンタ部にそれぞれに書込情報のサイズが加えられる。
【0059】
次に、カウンタ133に記憶される第1の期間分の性能情報について説明する。図9は、第1の期間分の性能情報の一例を示す図である。
第1の期間分の性能情報では、性能情報の種類毎、即ち、カウンタ部毎に、それぞれカウンタ値が対応付けられている。ここでは、性能情報の種類に、例えば、プロセス全体の書込要求数及び書込要求サイズ、プロセスIDの書込要求数及び書込要求サイズ、論理装置の書込要求数及び書込要求サイズ、物理装置の書込要求数及び書込要求サイズを含んでいる。これらのそれぞれに対して、カウンタ値、及び、単位時間当たりのカウンタ値が対応付けられている。
【0060】
さらに、第1の期間分の性能情報は、当該性能情報の生成に要した期間を示す生成期間を含んでいる。図9に示される例では、第1の期間が30秒間なので、生成期間が30秒を示している。また、第1の期間分の性能情報には、生成時刻が付与されている。例えば、この生成時刻を、対応するトレース情報を検索する際の検索キーとすることも可能である。
【0061】
次に、カウンタ143に記憶される第2の期間分の性能情報について説明する。図10は、第2の期間分の性能情報の一例を示す図である。
第2の期間分の性能情報も、図9に示される第1の期間分の性能情報と同様の形式を備えている。図10に示される例では、第2の期間が10分間、即ち、600秒間なので、生成期間が600秒を示している。また、第2の期間分の性能情報にも、生成時刻が付与されている。例えば、この生成時刻を、対応する第1の性能情報群を検索する際の検索キーとすることも可能である。
【0062】
次に、情報管理装置100の処理手順について説明する。図11、図12は、第2の実施形態に係る情報管理装置の処理手順の一例を示すフローチャートである。まず、図11を用いて説明する。
【0063】
第1の期間(例えば、30秒間)毎に処理が開始する。
[ステップS110]変換部131が、トレース情報記憶部120に記憶されている第1の期間分のトレース情報に基づいて、カウンタ133をカウントアップして、第1の期間分の性能情報を生成する。このとき、変換部131は、例えば、変換テーブル記憶部134に記憶されている変換テーブルを参照する。
【0064】
[ステップS120]トレース情報退避部132が、ステップS110で生成された第1の期間分の性能情報の生成元となった第1の期間分のトレース情報を記憶する。
[ステップS130]カウンタ133が、ステップS110で生成された第1の期間分の性能情報を、生成元となったトレース情報と対応付けて記憶する。
【0065】
[ステップS140]集計部141が、ステップS130で第1の期間分の性能情報がカウンタ133に記憶されると、カウンタ133から第1の期間分の性能情報を取得して蓄積する。次のステップからは図12を用いて説明する。
【0066】
[ステップS150]集計部141が、ステップS140で蓄積した第1の期間分の性能情報群が第2の期間(例えば、10分間)分に達しているかどうかを判定する。達している場合は処理をステップS160に進める。達していない場合は処理を終了する。
【0067】
[ステップS160]集計部141が、第1の期間分の性能情報群を集計して第2の期間分の性能情報を生成する。
[ステップS170]性能情報退避部142が、ステップS160で生成された第2の期間分の性能情報の集計元となった第1の期間分の性能情報群を記憶する。
【0068】
[ステップS180]カウンタ143が、ステップS160で生成された第2の期間分の性能情報を、集計元となった第1の期間分の性能情報群と対応付けて記憶する。
[ステップS190]事象検出部150が、ステップS130でカウンタ133に記憶された第1の期間分の性能情報と、ステップS180でカウンタ143に記憶された第2の期間分の性能情報とを比較する。
【0069】
[ステップS200]事象検出部150が、ステップS190の比較結果に基づいて所定の事象を検出する。このとき、事象検出部150は、例えば、条件記憶部151に記憶されている条件を参照して、所定の事象を検出する。所定の事象が検出された場合、処理をステップS210に進める。所定の事象が検出されない場合、処理を終了する。
【0070】
[ステップS210]情報出力部160が、ステップS180でカウンタ143に記憶された第2の性能情報、ステップS130でカウンタ133に記憶された第1の性能情報、ステップS120でトレース情報退避部132に記憶されたトレース情報を、保存部170に出力する。これで処理を終了する。なお、この時、情報出力部160が、さらに、ステップS170で性能情報退避部142に記憶された第1の期間分の性能情報群、及び、トレース情報記憶部120に記憶されたトレース情報を、保存部170に出力しても良い。なお、性能トラブルの原因の調査は、保存部170に保存された第2の期間分の性能情報、第1の期間分の性能情報群、及び、トレース情報を調査することで行われる。
【0071】
ここで、保存部170に保存された情報から、ある性能トラブルの原因を調査する一例を説明する。図13〜図16は、調査の一例を説明する図である。
図13には、カウンタ133が記憶する30秒間の性能情報と、カウンタ143が記憶する10分間の性能情報とが示されている。図13に示すように、事象検出部150により、30秒間の性能情報と10分間の性能情報とから、10分間のCPU消費率が11%とそれほど高くないにもかかわらず、30秒間の磁気ディスク#1の書込要求サイズが18MB/秒である特異事象が検出されたとする。ここで、磁気ディスク#1は、磁気ディスクが有する領域の一部を指すものである。
【0072】
この特異事象が検出されると、情報出力部160が、検出元になった第1の期間分の性能情報をカウンタ133から取得し、さらに、この第1の期間分の性能情報に対応するトレース情報をトレース情報退避部132から取得する。そして、情報出力部160は、取得した第1の期間分の性能情報と、トレース情報とを、保存部170に出力する。
【0073】
事象検出部150にて特異事象が検出されると、情報管理装置100は、例えば、図3に示されるモニタ108にアラーム情報を表示する等して、特異事象が検出されたことをユーザに報知する。ユーザは、情報管理装置100からの特異事象の報知に基づき、保存部170の調査を行う。なお、ユーザは、情報管理装置100からの報知によらずに、定期的に保存部170の調査を行っても良いし、情報管理装置100の操作中に動作速度が遅くなる等の不具合を感知することで、調査を行っても良い。
【0074】
保存部170の調査を行う場合、ユーザは、30秒間の性能情報に対応付けされた同時間帯のトレース情報を参照して分析する。図14は、対応するIO層のトレース情報である。図14に示すトレース情報123には、磁気ディスク#1への書き込みが記憶されている。今回の特異事象は書込要求サイズに関するものであるため、書き込みのトレース情報(機能名:iowrite)から、書き込み対象のキャッシュバッファを全て抽出する。ここでは、キャッシュバッファ#2、#3、#4が抽出された。ここで、各キャッシュバッファ#2〜#4はそれぞれ、キャッシュバッファが有する領域の一部を指すものである。
【0075】
次に、ユーザは、抽出したキャッシュバッファ#2〜#4を元に、同時間帯のキャッシュ層112のトレース情報122を調査する。このトレース情報122に抽出したキャッシュバッファ#2〜#4が検出されなければ、前の30秒間分のトレース情報122やそれ以前の30秒間分のトレース情報122にも遡って調査する。ここでは、前の30秒間のキャッシュ層112のトレース情報122に、抽出したキャッシュバッファ#2〜#4が検出された。図15は、そのキャッシュ層のトレース情報である。
【0076】
次に、ユーザは、キャッシュバッファ#2〜#4が検出されたキャッシュ層112のトレース情報122と同時間帯のAPI層111のトレース情報121を解析する。図16は、そのAPI層のトレース情報である。すると、キャッシュバッファ#2〜#4が検出された同時間に、対応するプロセス/スレッドから、1回で32MBもの「fwrite」を発行していることが検出された。呼出元アドレスに基づいてプロセスの開発元に照会したところ、プログラム動作環境パラメタの設定ミスにより不当なサイズでファイルの初期獲得が実施された結果、今回の事象が発生したことが判明した。
【0077】
このように、情報管理装置100は、第1の期間分の性能情報と生成元のトレース情報とを対応付けて記憶し、第1の期間分の性能情報に所定の事象が検出された場合、記憶した第1の期間分の性能情報とトレース情報とを保存部170に出力する。
【0078】
これにより、性能トラブルの原因を調査する際、トレース情報にまで遡って調査を行うことが可能となる。トレース情報は、処理プロセスやスレッドを特定する情報や、処理の実行が誰によるものかを示す情報を含んでいるため、トレース情報を調査することで、性能トラブルの原因が誰のどのような処理によるものかを、短時間で特定することが可能となる。
【0079】
さらに、情報管理装置100では、第1の期間分の性能情報からの所定の事象の検出は、第1の期間分の性能情報と、第1の期間分の性能情報を第2の期間分蓄積して集計した第2の期間分の性能情報とを比較することで行われる。これにより、第1の期間分の性能情報の局所的な異常値を検出することが可能となり、検出精度を向上させることが可能となる。
【0080】
さらに、情報管理装置100では、保存部170に保存される第2の期間分の性能情報、第1の期間分の性能情報、及びトレース情報は、所定の事象が検出された情報のみなので、調査の対象を絞ることが可能となり、調査時間をさらに短縮することが可能となる。また、この構成によれば、保存部170の記憶容量を小さく設定することが可能となる。
【0081】
なお、以上の処理は、前述した通り、コンピュータに所定のプログラムを実行させることで実現できる。その場合、実現すべき処理内容を記述したプログラムが提供される。処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。コンピュータ読み取り可能な記録媒体には、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリがある。磁気記録装置には、ハードディスク装置、フレキシブルディスク(FD)、磁気テープ(MT)等がある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc ? Read Only Memory)、CD−R(Recordable)、CD−RW(ReWritable)等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
【0082】
プログラムを流通させる場合、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにプログラムを転送することもできる。
【0083】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【0084】
10 情報管理装置
11 処理部
12 トレース情報記憶部
13 生成部
14 検出部
15 出力部
【特許請求の範囲】
【請求項1】
コンピュータを、
処理を実行する処理部のトレース情報に基づいて前記処理部の処理状況を示す性能情報を生成し、前記性能情報と生成元の前記トレース情報とを対応付ける生成手段、
生成した前記性能情報に基づいて所定の事象を検出する検出手段、
前記所定の事象を検出すると、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを出力する出力手段、
として実行させることを特徴とする情報管理プログラム。
【請求項2】
前記生成手段は、第1の期間分の前記トレース情報に基づいて、第1の期間分の第1の性能情報を生成し、前記第1の性能情報と生成元の前記トレース情報とを対応付け、
前記検出手段は、前記第1の性能情報と、前記第1の期間分よりも長い第2の期間分の第2の性能情報とを比較し、比較結果に基づいて前記所定の事象を検出し、
前記出力手段は、前記所定の事象を検出すると、検出元になった前記第1の性能情報と該第1の性能情報に対応する前記トレース情報とを出力すること、
を特徴とする請求項1に記載の情報管理プログラム。
【請求項3】
前記第2の性能情報は、前記第1の性能情報を含む複数の前記性能情報を集計して得られることを特徴とする請求項2に記載の情報管理プログラム。
【請求項4】
前記出力手段は、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを、保存部に出力することを特徴とする請求項1〜3のいずれか1つに記載の情報管理プログラム。
【請求項5】
前記性能情報は、応答速度や処理速度を示す指標を含むことを特徴とする請求項1〜4のいずれか1つに記載の情報管理プログラム。
【請求項6】
前記性能情報は、書込要求数、及び、書込要求サイズを含むことを特徴とする請求項5に記載の情報管理プログラム。
【請求項7】
前記生成手段は、前記トレース情報を前記性能情報に変換する変換テーブルを参照して、前記性能情報を生成することを特徴とする請求項1〜6のいずれか1つに記載の情報管理プログラム。
【請求項8】
前記検出手段は、特異情報として識別される条件を参照して、前記所定の事象を検出することを特徴とする請求項1〜7のいずれか1つに記載の情報管理プログラム。
【請求項9】
コンピュータが、
処理を実行する処理部のトレース情報に基づいて前記処理部の処理状況を示す性能情報を生成し、前記性能情報と生成元の前記トレース情報とを対応付け、
生成した前記性能情報に基づいて所定の事象を検出し、
前記所定の事象を検出すると、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを出力する、
ことを特徴とする情報管理方法。
【請求項10】
処理を実行する処理部のトレース情報に基づいて前記処理部の処理状況を示す性能情報を生成し、前記性能情報と生成元の前記トレース情報とを対応付ける生成部と、
生成した前記性能情報に基づいて所定の事象を検出する検出部と、
前記所定の事象を検出すると、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを出力する出力部と、
を有することを特徴とする情報管理装置。
【請求項1】
コンピュータを、
処理を実行する処理部のトレース情報に基づいて前記処理部の処理状況を示す性能情報を生成し、前記性能情報と生成元の前記トレース情報とを対応付ける生成手段、
生成した前記性能情報に基づいて所定の事象を検出する検出手段、
前記所定の事象を検出すると、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを出力する出力手段、
として実行させることを特徴とする情報管理プログラム。
【請求項2】
前記生成手段は、第1の期間分の前記トレース情報に基づいて、第1の期間分の第1の性能情報を生成し、前記第1の性能情報と生成元の前記トレース情報とを対応付け、
前記検出手段は、前記第1の性能情報と、前記第1の期間分よりも長い第2の期間分の第2の性能情報とを比較し、比較結果に基づいて前記所定の事象を検出し、
前記出力手段は、前記所定の事象を検出すると、検出元になった前記第1の性能情報と該第1の性能情報に対応する前記トレース情報とを出力すること、
を特徴とする請求項1に記載の情報管理プログラム。
【請求項3】
前記第2の性能情報は、前記第1の性能情報を含む複数の前記性能情報を集計して得られることを特徴とする請求項2に記載の情報管理プログラム。
【請求項4】
前記出力手段は、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを、保存部に出力することを特徴とする請求項1〜3のいずれか1つに記載の情報管理プログラム。
【請求項5】
前記性能情報は、応答速度や処理速度を示す指標を含むことを特徴とする請求項1〜4のいずれか1つに記載の情報管理プログラム。
【請求項6】
前記性能情報は、書込要求数、及び、書込要求サイズを含むことを特徴とする請求項5に記載の情報管理プログラム。
【請求項7】
前記生成手段は、前記トレース情報を前記性能情報に変換する変換テーブルを参照して、前記性能情報を生成することを特徴とする請求項1〜6のいずれか1つに記載の情報管理プログラム。
【請求項8】
前記検出手段は、特異情報として識別される条件を参照して、前記所定の事象を検出することを特徴とする請求項1〜7のいずれか1つに記載の情報管理プログラム。
【請求項9】
コンピュータが、
処理を実行する処理部のトレース情報に基づいて前記処理部の処理状況を示す性能情報を生成し、前記性能情報と生成元の前記トレース情報とを対応付け、
生成した前記性能情報に基づいて所定の事象を検出し、
前記所定の事象を検出すると、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを出力する、
ことを特徴とする情報管理方法。
【請求項10】
処理を実行する処理部のトレース情報に基づいて前記処理部の処理状況を示す性能情報を生成し、前記性能情報と生成元の前記トレース情報とを対応付ける生成部と、
生成した前記性能情報に基づいて所定の事象を検出する検出部と、
前記所定の事象を検出すると、検出元になった前記性能情報と該性能情報に対応する前記トレース情報とを出力する出力部と、
を有することを特徴とする情報管理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−76389(P2011−76389A)
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願番号】特願2009−227467(P2009−227467)
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000237639)富士通フロンテック株式会社 (667)
【Fターム(参考)】
【公開日】平成23年4月14日(2011.4.14)
【国際特許分類】
【出願日】平成21年9月30日(2009.9.30)
【出願人】(000237639)富士通フロンテック株式会社 (667)
【Fターム(参考)】
[ Back to top ]