(57)【要約】【課題】システムの状況に応じて最適な格納先を選定することにより、トレース情報を確実に収集することができる情報処理システムを提供することを目的とする。【解決手段】情報処理システム１は、トレース情報を格納し得る格納部群３０と、システムの状況を示す状況情報を検出する検出部２２と、状況情報に応じてトレース情報の格納先を格納部群３０から選定するトレース先選定部２３と、トレース先選定部２３により選定された格納先にトレース情報を出力するトレース出力部２４とを備えている。【選択図】図１
2008097224.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行状況を示すトレース情報を格納し得る格納部群と、
システムの状況を示す状況情報を検出する検出手段と、
前記状況情報に応じて前記トレース情報の格納先を前記格納部群から選定する格納先選定手段と、
前記トレース格納先選定手段により選定された格納先に前記トレース情報を出力するトレース出力手段と、
を備えたことを特徴とする情報処理システム。
【請求項２】
前記検出手段は、前記状況情報を所定の周期毎に検出する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記状況情報は、ＣＰＵの負荷に関する情報であり、
前記格納先選定手段は、前記ＣＰＵの負荷に関する情報に基づいて負荷の度合いを算出する負荷度合算出テーブルと、前記負荷度合算出テーブルに基づいて算出された負荷の度合いに応じて前記各格納部に対応付けられた格納部群管理テーブルとに基づいて、前記トレース情報の格納先を選定する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記状況情報は、各格納部に関する情報及びＣＰＵの負荷に関する情報のうち少なくとも一つを含む、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記各格納部に関する情報は、容量、空エリア、書き込みフラグ及びアクセスフラグのうち少なくとも一つを含む、
ことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記ＣＰＵの負荷に関する情報は、前記ＣＰＵの使用率、単位時間内のＣＰＵのアクセス回数及び動作中のプロセス数のうち、少なくとも一つを含む、
ことを特徴とする請求項４に記載の情報処理システム。
【請求項７】
前記格納部群は、情報処理システムに外付けされた格納部を含む、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項８】
システムの状況を示す状況情報を検出するステップと、
前記状況情報に応じて、プログラムの実行状況を示すトレース情報の格納先を格納部群から選定するステップと、
選定された格納先に前記トレース情報を出力するステップと、
を有することを特徴とする情報処理方法。
【請求項９】
システムの状況を示す状況情報を検出するステップと、
前記状況情報に応じて、プログラムの実行状況を示すトレース情報の格納先を格納部群から選定するステップと、
選定された格納先に前記トレース情報を出力するステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トレース情報を収集する情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
プログラムの実行状況を示すトレース情報を収集する方法としては、システムの一部としてトレース情報格納ファイルを設定し、トレース情報を格納する方法が一般的である。また、この格納ファイルはハードディスク上に構築されたファイルシステムが一般的であるが、半導体メモリ、フロッピー（登録商標）ディスク、光磁気ディスクなども格納媒体として活用されている。
これら従来の方法において、格納ファイルが満杯になった場合の回避策として、トレースレベルを設定し、レベル以下のトレースの場合上書きする方法や、ファイルを新規自動生成する方法等が開示されている（特許文献１参照）。
【０００３】
【特許文献１】特開平１０−４９４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし従来の方法は、システムの起動後に、トレース情報格納媒体に何らかの障害が発生した場合、トレース情報を格納することができないという問題に対しては考慮されていない。例えば、ハードウェア障害、ドライバモジュールのバグなどによりトレース情報格納媒体に障害が発生した場合には、トレース情報を収集することはできないという問題がある。
また、システムのハードウェア資源の負荷状況を考慮していないため、トレース情報の格納時にシステムのパフォーマンスへの影響は避けられないという問題があった。
【０００５】
そこで本発明は、システムの状況に応じて最適な格納先を選定することにより、トレース情報を確実に収集することができる情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的は、プログラムの実行状況を示すトレース情報を格納し得る格納部群と、システムの状況を示す状況情報を検出する検出手段と、前記状況情報に応じて前記トレース情報の格納先を前記格納部群から選定する格納先選定手段と、前記トレース格納先選定手段により選定された格納先に前記トレース情報を出力するトレース出力手段とを備えた情報処理システムによって達成できる。
この構成により、システムの状況に応じた最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【０００７】
また、上記構成において、前記検出手段は、前記状況情報を所定の周期毎に検出する、構成を採用できる。
この構成により、システム動作中の状況の変動に応じて最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【０００８】
また、上記構成において、前記状況情報は、ＣＰＵの負荷に関する情報であり、前記格納先選定手段は、前記ＣＰＵの負荷に関する情報に基づいて負荷の度合いを算出する負荷度合算出テーブルと、前記負荷度合算出テーブルに基づいて算出された負荷の度合いに応じて前記各格納部に対応付けられた格納部群管理テーブルとに基づいて、前記トレース情報の格納先を選定する、構成を採用できる。
この構成により、ＣＰＵへの過大な負荷によるシステムのパフォーマンスの低下を防止しつつトレース情報を収集することができる。
【０００９】
また、上記構成において、前記状況情報は、各格納部に関する情報及びＣＰＵの負荷に関する情報のうち少なくとも一つを含む、構成を採用できる。
この構成により、各格納部の状況、ＣＰＵの負荷の状況に応じて、最適な格納先を選定することができる。
【００１０】
また、上記構成において、前記各格納部に関する情報は、容量、空エリア、書き込みフラグ及びアクセスフラグのうち少なくとも一つを含む、構成を採用できる。
この構成により、格納部に障害が発生している場合や、格納部の空エリアがない場合には、他の格納部にトレース情報が格納される。従って、トレース情報を確実に格納することができる。
【００１１】
また、上記構成において、前記ＣＰＵの負荷に関する情報は、前記ＣＰＵの使用率、単位時間内のＣＰＵのアクセス回数及び動作中のプロセス数のうち、少なくとも一つを含む、構成を採用できる。
この構成により、ＣＰＵの負荷の状況を詳細に検出することができ、ＣＰＵの負荷の状況に応じた最適な格納先を選定することができる。
【００１２】
また、上記構成において、前記格納部群は、情報処理システムに外付けされた格納部を含む、構成を採用できる。
この構成により、外付けされた格納部にもトレース情報を格納され得るので、トレース情報の格納先の選択肢を広げることができる。従って、トレース情報を確実に収集することができる。
【００１３】
また、上記目的は、システムの状況を示す状況情報を検出するステップと、前記状況情報に応じて、プログラムの実行状況を示すトレース情報の格納先を格納部群から選定するステップと、選定された格納先に前記トレース情報を出力するステップとを有する情報処理方法によっても達成できる。
この構成により、システムの状況に応じた最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【００１４】
また、上記目的は、システムの状況を示す状況情報を検出するステップと、前記状況情報に応じて、プログラムの実行状況を示すトレース情報の格納先を格納部群から選定するステップと、選定された格納先に前記トレース情報を出力するステップとをコンピュータに実行させるプログラムによっても達成できる。
この構成により、システムの状況に応じた最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【発明の効果】
【００１５】
本発明によれば、システムの状況に応じて最適な格納先を選定することにより、トレース情報を確実に収集することができる情報処理システムを提供できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態を図面と共に詳細に説明する。
【実施例１】
【００１７】
図１は、本発明に係る情報処理システムについての機能ブロック図である。
情報処理システム１は、プログラム実行部１０、トレース処理部２０、格納部群３０、ユーザインターフェース４０などから構成される。
図２は、情報処理システム１のハードウェア構成を示した図である。図２に示すように、ＣＰＵ（Central  Processing  Unit）１０１、ＲＯＭ（Read  Only  Memory）１０２、ＲＡＭ（Random  Access  Memory）１０３により、プログラム実行部１０、トレース処理部２０の機能が実現される。
【００１８】
プログラム実行部１０は、所定のプログラムを実行する。
格納部群３０は、ＦＤＤ（Floppy（登録商標）  Disk  Drive）３１、ＭＯ（Magneto  Optical  disk）３２、ＨＤＤ（Hard  Disk  Drive）３３、ＵＳＢ（Universal  Serial  Bus）メモリ３４、ＮＶＲＡＭ（Non  volatile  Random  Access  Memory）３５などから構成される。
格納部群３０には、情報処理システムに外付けされた格納装置も含まれる。
ユーザインターフェース４０は、ディスプレイやキーボード、マウス（不図示）などから構成される。
【００１９】
トレース処理部２０は、表示処理部２１、検出部２２、トレース先選定部２３、トレース出力部２４等から構成される。
トレース処理部２０は、プログラムの実行状況を示すトレース情報を所定の格納先に格納する機能を有する。
【００２０】
尚、トレース情報とは、システムが実施した動作／状態等の情報を、システム内のメモリ領域等に格納していくものであり、例えば時系列順やイベント発生順にシステムがどのモジュールで正常系処理や異常系処理を実施していたかを知ることができる。そのため、トレース情報は開発時のデバッグ用または障害発生時の調査用として使用される。
【００２１】
表示処理部２１は、ディスプレイに所定の画像を表示させる。
検出部２２は、システムの状況を示す状況情報を検出する。システムの状況を示す状況情報とは、各格納部に関する情報及びＣＰＵ１０１の負荷に関する情報をいう。詳細は後述する。
【００２２】
トレース先選定部２３は、システムの状況情報に応じてトレース情報の格納先を格納部群３０から選定する。具体的には、ＣＰＵ１０１の負荷に関する情報に基づいて負荷の度合いを算出する負荷度合算出テーブルと、負荷度合算出テーブルに基づいて算出された負荷の度合いに応じて各格納部に対応付けられた格納部群管理テーブルとに基づいて、トレース情報の格納先を選定する。詳しくは後述する。
トレース出力部２４は、トレース先選定部２３により選定された格納先にトレース情報を出力する。このトレース出力部２４の出力により、所定の格納先にトレース情報が格納される。
【００２３】
図３は、前述した格納部群管理テーブルの例示図である。
格納部群管理テーブルは、各格納部毎に所定のレベルに対応付けられており、図３に示すように、ＦＤＤ３１はレベル１、ＭＯ３２はレベル２、ＨＤＤ３３はレベル３、ＵＳＢメモリ３４はレベル４、ＮＶＲＡＭ３５はレベル５として対応付けられている。このレベルは、トレース情報を格納するために必要な時間の長い順（アクセス時間の長い順）に、負荷レベルとして順番付けられている。
【００２４】
例えば、格納部群３０の中においては、ＦＤＤ３１が、トレース情報を格納するために最も長時間必要となり、ＮＶＲＡＭ３５が、最も短時間でトレース情報を格納することができる。換言すると、ＦＤＤ３１が、最もＣＰＵ１０１への負荷の度合いが大きく、ＮＶＲＡＭ３５が、最もＣＰＵ１０１への負荷の度合いが小さい。
【００２５】
また、図３に示すように、格納部群管理テーブルには、各格納部に関する情報として、容量、空エリア、書き込みフラグ及びアクセスフラグなどが管理されている。尚、容量、空エリア、書き込みフラグ及びアクセスフラグについては、検出部２２により所定の周期毎に検出される。
【００２６】
尚、この格納部管理テーブルは、表示処理部２１によりユーザインターフェース４０のディスプレイに表示され、ユーザは、トレース情報が格納され得る各格納部に関する情報を把握することができる。
また、ユーザは、キーボード及びマウスによるコマンドの入力により、トレース情報が格納され得る格納部の追加及び削除することができる。
【００２７】
図４は、前述した負荷度合算出テーブルの例示図である。
負荷度合算出テーブルは、ＣＰＵ１０１の使用率、単位時間内のＩ／Ｏ回数（アクセス数）、動作中のプロセス数に応じて、所定の係数が対応付けられている。
例えば、図４に示すように、現在のＣＰＵ１０１の使用率が６０％の場合は、ＣＰＵ１０１の使用率の係数を２とし、Ｉ／Ｏ回数が８０００の場合には、Ｉ／Ｏ回数の係数を３とし、動作中のプロセス数が３００の場合には、動作中のプロセス数の係数を２とする。
上記係数を用いて、以下の式によりＣＰＵ１０１の負荷の度合いを算出する。
【００２８】
【数１】
2008097224.tif 000003
上記式に上記係数を代入すると、以下のようにＣＰＵ１０１の負荷の度合いが算出される。
【００２９】
【数２】
2008097224.tif 000004
このように、上記の場合、ＣＰＵ１０１の負荷の度合いは、負荷レベル３として算出される。この負荷の度合いが、図３に示した格納部群管理テーブルの各格納部に対応付けられたレベルに対応する。
【００３０】
従って、上記の場合、トレース先選定部２３は、トレース情報を格納する格納先をＨＤＤ３３として選定し、ＨＤＤ３３にトレース情報が格納される。
尚、現在のＣＰＵ１０１の使用率、単位時間内のＩ／Ｏ回数（アクセス数）、動作中のプロセス数は、検出部２２により所定の周期毎に検出される。
【００３１】
次に、トレース先選定部２３が実行する処理の一例について説明する。
図５は、トレース先選定部２３が実行する処理の一例を示したフローチャートである。尚、この処理は一定周期毎に繰り返し実行される。
【００３２】
トレース先選定部２３は、負荷度合算出テーブルに基づいてＣＰＵ１０１の負荷レベルを算出する（ステップＳ１）。
次に、トレース先選定部２３は、算出された負荷レベルに応じた格納部があるかどうかを、格納部群管理テーブルに基づき判定する（ステップＳ２）。
算出された負荷レベルに応じた格納部がある場合には、トレース先選定部２３は、格納部群管理テーブルに基づき、当該格納部の書き込みフラグが１でかつアクセスフラグが０であるかどうかを判定する（ステップＳ３）。
【００３３】
当該格納部の書き込みフラグが１でかつアクセスフラグが０ではない場合には、トレース先選定部２３は、算出された負荷レベルに１をプラスして（ステップＳ４）、再度ステップＳ２の処理を実行する。書き込みフラグが０の場合は、その格納部にトレース情報を格納することができず、また、アクセスフラグが１の場合には、その格納部がアクセス中であるため、当該格納部にトレース情報を格納すると、負荷が大きいからである。
【００３４】
当該格納部の書き込みフラグが１でかつアクセスフラグが０の場合には、トレース先選定部２３は、格納部群管理テーブルに基づき、当該格納部のエリアが満杯であるかどうかを判定する（ステップＳ５）。
当該格納部のエリアが満杯の場合には、トレース情報を格納することができないため、トレース先選定部２３は、ステップＳ４の処理を実行する。
当該格納部のエリアが満杯の場合ではない場合には、トレース情報を格納することができるとして、格納先をトレース出力部２４に通知する（ステップＳ６）。
これにより、システムの状況に応じた最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【００３５】
例えば、前述した現在のシステムの状況（ＣＰＵ１０１の使用率が６０％、Ｉ／Ｏ回数が８０００、動作中のプロセス数が３００）の場合には、ＣＰＵ１０１の負荷の度合いが３として算出されるが（ステップＳ１、２）、図３に示すように、ＨＤＤ３３のアクセスフラグは１であるため（ステップＳ３でＮｏ）、負荷の度合を４として（ステップＳ４）、再度ステップＳ２の処理が実行される。負荷の度合が４の場合には、図３に示した格納部群管理テーブルに基づき、トレース情報の格納先はＵＳＢメモリ３４として選定され、ＵＳＢメモリ３４にトレース情報が格納される（ステップＳ２でＹｅｓ、ステップＳ３でＹｅｓ、ステップＳ５でＮｏ、ステップＳ６）。
【００３６】
ステップＳ２において、算出された負荷レベルに対応する格納部がない場合、トレース先選定部２３は、算出された負荷レベルが最上位レベルであるかどうを判定する（ステップＳ７）。尚、最上位レベルとは、ＣＰＵ１０１の負荷が最大限である場合の負荷レベルをいう。
【００３７】
算出された負荷レベルが最上位レベルではない場合、トレース先選定部２３は、ステップＳ４の処理を実行する。
算出された負荷レベルが最上位レベルの場合が、トレース先選定部２３は、トレース情報の格納先はないものとして、トレース出力部２４に通知する（ステップＳ８）。従って、この場合にはトレース情報は格納されない。
【００３８】
例えば、算出された負荷レベルが１の場合には、図３に例示した格納部群管理テーブルに基づくと、レベル１に対応する格納部はＦＤＤ３１であるが、ＦＤＤ３１にフロッピー（登録商標）ディスクが挿入されていない理由などにより格納することが不可能であるため（ステップＳ２でＮｏ）、かつ算出された負荷レベルは最上位レベルではないため、算出された負荷レベルに１をプラスして（ステップＳ４）、負荷レベルを２として、再度ステップＳ２の処理を実行する。
【００３９】
また、例えば、算出された負荷レベルが５の場合であって、レベル５に対応する格納部が存在していなかった場合には（ステップＳ２でＹｅｓ、ステップＳ７でＹｅｓ）、トレース情報はどの格納部にも格納されない（ステップＳ８）。
【００４０】
以上のように、トレース情報を格納し得る格納部群３０と、システムの状況を示す状況情報を検出する検出部２２と、状況情報に応じてトレース情報の格納先を格納部群３０から選定するトレース先選定部２３と、トレース先選定部２３により選定された格納先にトレース情報を出力するトレース出力部２４とを備えた情報処理システム１により、システムの状況に応じた最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【００４１】
また、検出部２２は、状況情報を所定の周期毎に検出するので、システム動作中の状況の変動に応じて最適な格納先を選定することができ、トレース情報を確実に収集することができる。
【００４２】
また、検出部２２は、状況情報として、各格納部に関する情報及びＣＰＵの負荷に関する情報を検出するので、各格納部の状況、ＣＰＵの負荷の状況に応じて、最適な格納先を選定することができる。
【００４３】
また、検出部２２は、各格納部に関する情報として、容量、空エリア、書き込みフラグ及びアクセスフラグを検出するので、格納部に障害が発生している場合や、格納部の空エリアがない場合には、他の格納部にトレース情報が格納される。従って、トレース情報を確実に格納することができる。
【００４４】
また、検出部２２は、ＣＰＵ１０１の負荷に関する情報として、ＣＰＵ１０１の使用率、単位時間内のＣＰＵ１０１のアクセス回数及び動作中のプロセス数を検出するので、ＣＰＵ１０１の負荷の状況を詳細に検出することができ、ＣＰＵ１０１の負荷の状況に応じた最適な格納先を選定することができる。
【００４５】
トレース先選定部２３は、負荷度合算出テーブルと、格納部群管理テーブルとに基づいて、トレース情報の格納先を選定するので、ＣＰＵ１０１への過大な負荷によるシステムのパフォーマンスの低下を防止しつつトレース情報を収集することができる。
【００４６】
また格納部群３０には、外付けされた格納部を含むので、トレース情報の格納先の選択肢を広げることができる。従って、トレース情報を確実に収集することができる。
【００４７】
なお、上記実施例は本発明を実施するための例にすぎず、本発明はこれらに限定されるものではなく、これらの実施例を種々変形することは本発明の範囲内であり、更に本発明の範囲内において、他の様々な実施例が可能であることは上記記載から自明である。
【００４８】
上記実施例において、トレース情報の格納先は、１つのみであったが、複数の格納先にトレース情報を格納するようにしてもよい。例えば、ＣＰＵの負荷レベルが３の場合には、レベル３と４とに対応付けられた格納部の双方にトレース情報を格納するように構成してもよい。
【図面の簡単な説明】
【００４９】
【図１】本発明に係る情報処理システムについての機能ブロック図である
【図２】情報処理システム１のハードウェア構成を示した図である。
【図３】格納部群管理テーブルの例示図である。
【図４】負荷度合算出テーブルの例示図である。
【図５】トレース先選定部が実行する処理の一例を示したフローチャートである。
【符号の説明】
【００５０】
１                                        情報処理システム
１０                                      プログラム実行部
２０                                      トレース処理部
２１                                      表示処理部
２２                                      検出部
２３                                      トレース先選定部
２４                                      トレース出力部
３０                                      格納部群
３１                                      ＦＤＤ
３２                                      ＭＯ
３３                                      ＨＤＤ
３４                                      ＵＳＢメモリ
３５                                      ＮＶＲＡＭ
４０                                      ユーザインターフェース
１０１                                    ＣＰＵ
１０２                                    ＲＯＭ
１０３                                    ＲＡＭ
【図１】
2008097224.tif 000005
【図２】
2008097224.tif 000006
【図３】
2008097224.tif 000007
【図４】
2008097224.tif 000008
【図５】
2008097224.tif 000009