(57)【特許請求の範囲】
【請求項１】
第１の記憶領域と、前記第１の記憶領域とは異なる第２の記憶領域とを有し、アプリケーションプログラムを実行する情報処理装置であって、
前記アプリケーションプログラムのログを前記第１の記憶領域に生成するログ生成部と、
前記アプリケーションプログラムの現在のリソース使用量を監視するリソース監視部と、
前記アプリケーションプログラムの動作状態である前記アプリケーションプログラムのステートを監視するステート監視部と、
前記アプリケーションプログラムの現在のリソース使用量が、前記アプリケーションプログラムの複数のステートのステートごとに設けられている前記アプリケーションプログラムのログを退避するための条件であるログ退避条件のうちの前記アプリケーションプログラムの現在のステートのログ退避条件に合致するか否かを判定する判定部と、
前記判定部により、前記アプリケーションプログラムの現在のリソース使用量が前記アプリケーションプログラムの現在のステートのログ退避条件に合致すると判定された場合に、前記第１の記憶領域の前記アプリケーションプログラムのログを前記第２の記憶領域に退避するログ退避部とを有する情報処理装置。
【請求項２】
前記リソース監視部は、
前記アプリケーションプログラムが利用する複数のリソースの各々の現在のリソース使用量を監視し、
前記判定部は、
前記複数のリソースのリソースごとに、前記アプリケーションプログラムの現在のステートでの現在のリソース使用量が、前記アプリケーションプログラムのステートごと及びリソースごとに設けられているログ退避条件に合致するか否かを判定し、
前記ログ退避部は、
前記判定部により、前記複数のリソースのうちのいずれかのリソースの現在のリソース使用量が前記アプリケーションプログラムの現在のステートでの当該リソースのログ退避条件に合致すると判定された場合に、前記第１の記憶領域の前記アプリケーションプログラムのログを前記第２の記憶領域に退避する請求項１に記載の情報処理装置。
【請求項３】
第１の記憶領域と、前記第１の記憶領域とは異なる第２の記憶領域とを有し、複数のアプリケーションプログラムを実行する情報処理装置であって、
前記複数のアプリケーションプログラムのログを前記第１の記憶領域に生成するログ生成部と、
前記複数のアプリケーションプログラムの現在のリソース使用量を監視するリソース監視部と、
アプリケーションプログラムごとに、現在のリソース使用量が、アプリケーションプログラムごとに設けられているログを退避するための条件であるログ退避条件に合致するか否かを判定する判定部と、
前記判定部により、前記複数のアプリケーションプログラムのうちのいずれかのアプリケーションプログラムの現在のリソース使用量が当該アプリケーションプログラムのログ退避条件に合致すると判定された場合に、前記第１の記憶領域の前記複数のアプリケーションプログラムのログを前記第２の記憶領域に退避するログ退避部とを有する情報処理装置。
【請求項４】
複数の第１の記憶領域と、前記複数の第１の記憶領域とは異なる第２の記憶領域とを有し、複数のアプリケーションプログラムを実行する情報処理装置であって、
アプリケーションプログラムごとに、１つ以上の第１の記憶領域にログを生成するログ生成部と、
前記複数のアプリケーションプログラムの現在のリソース使用量を監視するリソース監視部と、
アプリケーションプログラムごとに、現在のリソース使用量が、アプリケーションプログラムごとに設けられているログを退避するための条件であるログ退避条件に合致するか否かを判定する判定部と、
前記判定部により、前記複数のアプリケーションプログラムのうちのいずれかのアプリケーションプログラムの現在のリソース使用量が当該アプリケーションプログラムのログ退避条件に合致すると判定された場合に、当該アプリケーションプログラムの１つ以上の第１の記憶領域の中からログの退避対象となる第１の記憶領域を選択し、選択した第１の記憶領域のログを前記第２の記憶領域に退避するログ退避部とを有する情報処理装置。
【請求項５】
複数の第１の記憶領域と、前記複数の第１の記憶領域とは異なる第２の記憶領域とを有し、複数のアプリケーションプログラムを実行する情報処理装置であって、
アプリケーションプログラムごとに、１つ以上の第１の記憶領域にログを生成するログ生成部と、
前記複数のアプリケーションプログラムの現在のリソース使用量を監視するリソース監視部と、
前記複数のアプリケーションプログラムの動作状態である前記複数のアプリケーションプログラムのステートを監視するステート監視部と、
アプリケーションプログラムごとに、現在のリソース使用量が、アプリケーションプログラムごとに複数のステートのステートごとに設けられているログを退避するための条件であるログ退避条件のうちの現在のステートのログ退避条件に合致するか否かを判定する判定部と、
前記判定部により、前記複数のアプリケーションプログラムのうちのいずれかのアプリケーションプログラムの現在のリソース使用量が当該アプリケーションプログラムの現在のステートのログ退避条件に合致すると判定された場合に、当該アプリケーションプログラムの１つ以上の第１の記憶領域の中からログの退避対象となる第１の記憶領域を選択し、選択した第１の記憶領域のログを前記第２の記憶領域に退避するログ退避部とを有する情報処理装置。
【請求項６】
複数の第１の記憶領域と、前記複数の第１の記憶領域とは異なる第２の記憶領域とを有し、複数のアプリケーションプログラムを実行する情報処理装置であって、
アプリケーションプログラムごとに、１つ以上の第１の記憶領域にログを生成するログ生成部と、
前記複数のアプリケーションプログラムが利用する複数のリソースの各々のアプリケーションプログラムごとの現在のリソース使用量を監視するリソース監視部と、
アプリケーションプログラムごと及びリソースごとに、現在のリソース使用量がアプリケーションプログラムごと及びリソースごとに設けられているログを退避するための条件であるログ退避条件に合致するか否かを判定する判定部と、
前記判定部により、いずれかのアプリケーションプログラムのいずれかのリソースの現在のリソース使用量が前記アプリケーションプログラムの前記リソースのログ退避条件に合致すると判定された場合に、前記１つ以上の第１の記憶領域の中からログの退避対象となる第１の記憶領域を選択し、選択した第１の記憶領域のログを前記第２の記憶領域に退避するログ退避部とを有する情報処理装置。
【請求項７】
第１の記憶領域と、前記第１の記憶領域とは異なる第２の記憶領域とを有し、アプリケーションプログラムを実行するコンピュータが行う情報処理方法であって、
前記コンピュータが、前記アプリケーションプログラムのログを前記第１の記憶領域に生成し、
前記コンピュータが、前記アプリケーションプログラムの現在のリソース使用量を監視し、
前記コンピュータが、前記アプリケーションプログラムの動作状態である前記アプリケーションプログラムのステートを監視し、
前記コンピュータが、前記アプリケーションプログラムの現在のリソース使用量が、前記アプリケーションプログラムの複数のステートのステートごとに設けられている前記アプリケーションプログラムのログを退避するための条件であるログ退避条件のうちの前記アプリケーションプログラムの現在のステートのログ退避条件に合致するか否かを判定し、
前記アプリケーションプログラムの現在のリソース使用量が前記アプリケーションプログラムの現在のステートのログ退避条件に合致すると判定された場合に、前記コンピュータが、前記第１の記憶領域の前記アプリケーションプログラムのログを前記第２の記憶領域に退避する情報処理方法。
【請求項８】
第１の記憶領域と、前記第１の記憶領域とは異なる第２の記憶領域とを有し、アプリケーションプログラムを実行するコンピュータに、
前記アプリケーションプログラムのログを前記第１の記憶領域に生成するログ生成処理と、
前記アプリケーションプログラムの現在のリソース使用量を監視するリソース監視処理と、
前記アプリケーションプログラムの動作状態である前記アプリケーションプログラムのステートを監視するステート監視処理と、
前記アプリケーションプログラムの現在のリソース使用量が、前記アプリケーションプログラムの複数のステートのステートごとに設けられている前記アプリケーションプログラムのログを退避するための条件であるログ退避条件のうちの前記アプリケーションプログラムの現在のステートのログ退避条件に合致するか否かを判定する判定処理と、
前記判定処理により、前記アプリケーションプログラムの現在のリソース使用量が前記アプリケーションプログラムの現在のステートのログ退避条件に合致すると判定された場合に、前記第１の記憶領域の前記アプリケーションプログラムのログを前記第２の記憶領域に退避するログ退避処理とを実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
計算機システムでは、その動作上で様々な障害又は性能問題が発生する。このため、動作に関する情報をログデータとして記録し、そのログデータを解析することで障害及び性能問題の解決を図ることが行われている。
ログデータは、システム外部とのインタフェースを通じてロギング装置に出力される。ログデータは、システム外部の補助記憶装置に書き出されることがある。また、ログデータは、システム内部の補助記憶装置に書き出されることがある。
システムの大規模化や高速化により、膨大な量のログデータによって記憶装置の容量を短時間で使い切ってしまうことがある。また、記憶装置への書き込みスループットがログの出力スループットに追いつかないこともある。これらの理由から、生じうる全てのログデータを蓄積することが困難であるという問題がある。
そこで、主記憶装置上にリングバッファを構成し、リングバッファにログを出力する技術がある（特許文献１）。この技術では、利用者による入力又はシステムの障害発生をトリガにしてリングバッファ上のログが補助記憶装置へ書き出される。この結果、有用なログデータのみが効果的に蓄積される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２０６１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
組み込み機器において内部の主記憶装置にリングバッファを構成するとき、リングバッファとして用いることができる主記憶装置の領域サイズが限られる。このため、ある時点のログがリングバッファに残されている時間は短い。従って、利用者が任意のタイミングで介入することをトリガとしても有用なログデータを取得できる可能性は低い。
また、システムの障害発生をログデータ退避のトリガをとした場合は有用なログデータが取得できると考えられる。しかし、明示的な障害とならない性能問題発生時など、外部からトリガが明確に捉えられない場合はログを取得することができない。【０００５】
本発明は、上記のような課題を解決することを主な目的とする。具体的には、本発明は、障害発生等の具体的なイベントが発生しなくてもログを退避できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、
第１の記憶領域と、前記第１の記憶領域とは異なる第２の記憶領域とを有し、アプリケーションプログラムを実行する情報処理装置であって、
前記アプリケーションプログラムのログを前記第１の記憶領域に生成するログ生成部と、
前記アプリケーションプログラムの現在のリソース使用量を監視するリソース監視部と、
前記アプリケーションプログラムの現在のリソース使用量が、前記アプリケーションプログラムのログを退避するための条件であるログ退避条件に合致するか否かを判定する判定部と、
前記判定部により、前記アプリケーションプログラムの現在のリソース使用量が前記ログ退避条件に合致すると判定された場合に、前記第１の記憶領域の前記アプリケーションプログラムのログを前記第２の記憶領域に退避するログ退避部とを有する。
【発明の効果】
【０００７】
本発明によれば、障害発生等の具体的なイベントが発生しなくてもログを退避することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係る情報処理装置のハードウェア構成例を示す図。
【図２】実施の形態１に係る情報処理装置の機能構成例を示す図。
【図３】実施の形態１に係るルールの例を示す図。
【図４】実施の形態１に係るリソース情報の例を示す図。
【図５】実施の形態１に係るステート情報の例を示す図。
【図６】実施の形態１に係る情報処理装置の動作例を示すフローチャート。
【図７】実施の形態１に係るルール照合処理の例を示すフローチャート。
【図８】実施の形態２に係る情報処理装置の機能構成例を示す図。
【図９】実施の形態２に係る情報処理装置の動作例を示すフローチャート。
【図１０】実施の形態２に係るルール照合処理及び退避リスト生成処理の例を示すフローチャート。
【図１１】実施の形態２に係る退避ルールの例を示す図。
【図１２】実施の形態２に係る退避ルールの例を示す図。
【図１３】実施の形態２に係る退避ルールの例を示す図。
【図１４】実施の形態２に係る退避ルールの例を示す図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、実施の形態１に係る情報処理装置１００のハードウェア構成例を示す。
なお、情報処理装置１００により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
【００１１】
情報処理装置１００は、コンピュータである。
図１に示すように、情報処理装置１００は、ハードウェアとして、プロセッサ１０１、主記憶装置１０２、補助記憶装置１０３、Ｉ／Ｏ装置１０４、ＮＩＣ（Ｎｅｔｗｏｒｋ Ｉｎｔｅｒｆａｃｅ Ｃａｒｄ）１０５を備える。これら、プロセッサ１０１、主記憶装置１０２、補助記憶装置１０３、Ｉ／Ｏ装置１０４、ＮＩＣ１０５は、バス１５０で接続される。
【００１２】
プロセッサ１０１は、情報処理装置１００の制御及び制御のための演算を行う。プロセッサ１０１は、具体的には、プログラムを実行する。
【００１３】
主記憶装置１０２は、プロセッサ１０１で実行するプログラム及びプログラムが扱うデータを一時的に格納する揮発性の記憶装置である。
【００１４】
補助記憶装置１０３は、主記憶装置１０２に読み出すプログラム、データ及び主記憶装置１０２から書き込むデータを格納する不揮発性記憶装置である。補助記憶装置１０３は、例えば、ハードディスクドライブ、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）のように機器に固定されている記憶装置である。また、補助記憶装置１０３は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、ＳＤカード（登録商標）のようにインタフェースを介して接続する取り外し可能な記憶装置でもよい。
【００１５】
Ｉ／Ｏ装置１０４は、ディスプレイ、タッチパネルなどの入出力装置を接続するためのインタフェースである。
【００１６】
ＮＩＣ１０５は、情報処理装置１００が外部のシステムと通信するためのインタフェースである。
【００１７】
なお、Ｉ／Ｏ装置１０４及びＮＩＣ１０５は一例であり、これらが無くてもよいし、これら以外の機器が情報処理装置１００に備えられていてもよい。
【００１８】
図２は、情報処理装置１００の機能構成例を示す。
【００１９】
情報処理装置１００においてオペレーティングシステム１０６が動作している。また、オペレーティングシステム１０６上でアプリケーションプログラム１０７（以下、単にアプリケーション１０７という）が動作している。アプリケーション１０７は複数存在する。
【００２０】
ログ生成部１０８は、アプリケーション１０７のログをリングバッファ１１３に生成する。ログ生成部１０８は、オペレーティングシステム１０６のログをリングバッファ１１３に生成することもある。
リングバッファ１１３は、主記憶装置１０２上の領域である。リングバッファ１１３は、第１の記憶領域に相当する。
【００２１】
リソース監視部１０９は、アプリケーション１０７の現在のリソース使用量を監視する。そして、リソース監視部１０９は、監視結果をリソース情報１１４として主記憶装置１０２に格納する。
【００２２】
ステート監視部１１０は、アプリケーション１０７のステートを監視する。そして、ステート監視部１１０は、監視結果をステート情報１１５として主記憶装置１０２に格納する。
【００２３】
ルール照合部１１１は、主記憶装置１０２上のリソース情報１１４とステート情報１１５及び補助記憶装置１０３上のルール１１６を用いて照合を行う。
詳細は後述するが、ルール１１６には、アプリケーション１０７のログを退避するための条件であるログ退避条件が定義されている。
ルール照合部１１１は、アプリケーション１０７の現在のリソース使用量が、ルール１１６のログ退避条件に合致するか否かを判定する。
なお、ルール照合部１１１は判定部に相当する。また、ルール照合部１１１により行われる処理は、判定処理に相当する。
【００２４】
ログ退避部１１２は、ルール照合部１１１の照合結果に応じてリングバッファ１１３の内容を退避領域１１７に出力する。
つまり、ログ退避部１１２は、ルール照合部１１１により、アプリケーション１０７の現在のリソース使用量がログ退避条件に合致すると判定された場合に、リングバッファ１１３のアプリケーション１０７のログを退避領域１１７に退避する。
退避領域１１７は、補助記憶装置１０３上の領域である。退避領域１１７は、第２の記憶領域に相当する。
【００２５】
ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２は、プログラムにより実現される。
ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２を実現するプログラムは、図１に示す補助記憶装置１０３で記憶されている。当該プログラムは、補助記憶装置１０３から主記憶装置１０２にロードされる。そして、プロセッサ１０１が当該プログラムを実行して、ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２の動作を行う。
図２では、オペレーティングシステム１０６及び複数のアプリケーション１０７とともに、ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２を実現するプログラムがプロセッサ１０１によって実行されている状態を模式的に表している。
【００２６】
リソース情報１１４及びステート情報１１５は、それぞれ前述の通りリソース監視部１０９及びステート監視部１１０によって記録される情報である。
ルール１１６は、前述の通りルール照合部１１１に用いられるものであり、予めユーザが定義して補助記憶装置１０３に格納しておく。
【００２７】
リソースとは情報処理装置１００で扱う計算機資源である。リソースは、例えばプロセッサ、主記憶装置、補助記憶装置、Ｉ／Ｏ、ネットワークなどの種々の要素である。これら以外をリソースとして扱ってもよい。
リソース使用量は、リソースごとに統一された値であれば、計測区間における総使用量であってもよいし、単位時間当たりの平均使用量であってもよい。また、リソース使用量は、サンプリングによる統計的な使用割合であってもよいし、その他計測可能で比較しうる値であればよい。
【００２８】
ステートとは、アプリケーション１０７の起動、待機、通常動作などである。例えば、アプリケーション１０７がオーディオ再生アプリケーションであれば、オーディオ再生アプリケーションの起動、待機、再生中などが考えられる。但し、ステートは、これらに限定されない。
ステートの監視方法は、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を介してアプリケーション１０７がステート監視部１１０にステートを通知する方式が考えられる。また、ステートの監視方法として、アプリケーション１０７の出力するメッセージからステート監視部１１０がステートを決定する方式でもよい。その他ステートが一意に決定できる方式であれば、他の方式でもよい。
【００２９】
図３は、ルール１１６の一例を示す。但し、ルール１１６は、図３に示す形式には限定されない。
【００３０】
図３において、例えばアプリケーション１に関してはステート１、２、３が定義されている。なお、アプリケーション２のようにステートが定義されていなくてもよい。
ルール１１６では、アプリケーション又はアプリケーションとステートとの組み合わせに対してリソース使用量の閾値が定義されている。図３の「Ｕ」は上限値を表し、「Ｌ」は下限値を表している。
例えば、アプリケーション１とステート１との組み合わせでは、リソース１に対してＵ１１１という上限値が定義されている。つまり、アプリケーション１がステート１である場合に、アプリケーション１によるリソース１のリソース使用量がＵ１１１を超えた場合にアプリケーション１のログが退避領域１１７に退避される。また、アプリケーション２では、リソース１に対してＵ２０１という上限値が定義されている。つまり、アプリケーション２のステートに関わらず、アプリケーション２によるリソース１のリソース使用量がＵ２０１を超えた場合にアプリケーション２のログが退避領域１１７に退避される。
このような、ルール１１６に示される、アプリケーションごとのリソース使用量の閾値、または、アプリケーションとステートとの組み合わせごとのリソース使用量の閾値は、ログ退避条件に相当する。
【００３１】
なお、ルール１１６では、アプリケーションとステートの全ての組み合わせに対してリソース使用量の閾値を定義する必要はない。例えば、アプリケーション１とステート１の組み合わせに対してリソース３のリソースの使用量の閾値は定義されていない。また、アプリケーション１とステート３との組み合わせに対するリソース２のＬ１３２、Ｕ１３２のように、上限値と下限値の両方を定義してもよい。
アプリケーション２のようにステートを定義しない場合でも、リソース使用量の閾値だけ定義してもよい。また、アプリケーション３のようにステート１ではリソース使用量の閾値を定義せず、ステート２においてはリソース１、２、３それぞれにＵ３２１、Ｌ３２２とＵ３２２、Ｕ３２３といったリソース使用量の閾値を定義する、などとしてもよい。
【００３２】
図４はリソース情報１１４の例を示す。但し、リソース情報１１４の表現方法は図４に示すものに限定されない。
【００３３】
リソース情報１１４は、リソース監視部１０９によるリソース使用量の監視結果を示す。リソース情報１１４は、アプリケーションとリソースの組み合わせに対して１つの値を持つ。
図４では、例えば、アプリケーション１のリソース１の現在のリソース使用量はＤ１１であり、リソース２の現在のリソース使用量はＤ１２であり、リソース３の現在のリソース使用量はＤ１３であることが示される。
【００３４】
図５はステート情報１１５の例を示す。但し、ステート情報１１５の表現方法は図５に示すものに限定されない。
【００３５】
ステート情報１１５は、アプリケーションとステートの組で構成される。
図５では、アプリケーション１は現在ステート１であり、アプリケーション３は現在ステート２であることが示される。なお、アプリケーション２のようにステートがなくてもよい。
【００３６】
＊＊＊動作の説明＊＊＊
実施の形態１に係る情報処理装置１００の動作例を図６のフローチャートを用いて説明する。
なお、情報処理装置１００が図６に示す一連の動作を繰り返すことによって効果を得るが、情報処理装置１００が一連の動作を終える度に任意の待ち時間を設けてもよい。
【００３７】
ステップＳ００１において情報処理装置１００が動作を開始した後、リソース監視部１０９は、ステップＳ００２において、各アプリケーション１０７のリソース使用量を取得する。
リソース監視部１０９は、取得したリソース使用量をリソース情報１１４として主記憶装置１０２に格納する。
【００３８】
続いて、ステート監視部１１０が、ステップＳ００３において、各アプリケーション１０７のステートを取得する。
ステート監視部１１０は、取得したステートをステート情報１１５として主記憶装置１０２に格納する。
【００３９】
ステップＳ００４において、ルール照合部１１１は主記憶装置１０２上のリソース情報１１４とステート情報１１５を補助記憶装置１０３上のルール１１６と照合する。
ステップＳ００４におけるルール照合処理の詳細は後述する。
ステップＳ００４の照合の結果、ログ退避条件が成立している場合は、ルール照合部１１１はログ退避部１１２にログ退避条件が成立している旨の通知を行う。
【００４０】
ログ退避部１１２は、ステップＳ００６において、主記憶装置１０２上のリングバッファ１１３にあるログを補助記憶装置１０３上の退避領域１１７に退避し、図６の処理を終了する（ステップＳ００７）。
また、ルール照合部１１１の照合の結果、ログ退避条件が成立していなければ、図６の処理が終了する（ステップＳ００７）。
【００４１】
次に、図７を用いて、ステップＳ００４のルール照合処理の詳細を説明する。
【００４２】
まず、ステップＳ１０１でルール照合処理が開始すると、ステップＳ１０２において、ルール照合部１１１はアプリケーションを１つ選択する。
【００４３】
次に、ルール照合部１１１は、ステップＳ１０３で、リソースを１つ選択する。
【００４４】
次に、ルール照合部１１１は、ステップＳ１０４で、リソース情報１１４から、現在選択しているアプリケーションの現在選択しているリソースのリソース使用量を抽出する。
【００４５】
次に、ルール照合部１１１は、ステップＳ１０５で、ステート情報１１５とルール１１６を用いて、現在選択しているリソース使用量の閾値を抽出する。
先ず、ルール照合部１１１は、ステート情報１１５から、現在選択しているアプリケーションの現在のステートを抽出する。次に、ルール照合部１１１は、ルール１１６から、現在選択しているアプリケーションの現在のステートについての、現在選択しているリソース使用量の閾値を抽出する。
【００４６】
次に、ルール照合部１１１は、ステップＳ１０４で取得したリソース使用量とステップＳ１０５で抽出した閾値とを比較し、リソース使用量が閾値（下限又は上限）を逸脱している場合（ステップＳ１０６でＹＥＳ）に、ルール照合部１１１は、ステップＳ１０７で、ログ退避条件が成立していると判定する。この場合は、図６のステップＳ００５がＹＥＳとなる。
【００４７】
一方、リソース使用量が閾値（下限又は上限）を逸脱していない場合（ステップＳ１０６でＮＯ）は、ルール照合部１１１は、ステップＳ１０８で、現在選択しているアプリケーションにおいて全てのリソースを選択済みかどうか調べる。
まだ選択していないリソースがあれば（ステップＳ１０８でＮＯ）、ルール照合部１１１は、ステップＳ１０３において、まだ選択していないリソースを選択して、ステップＳ１０４以降の処理を行う。
一方、現在選択しているアプリケーションに対して全てのリソースを選択し終えている場合（ステップＳ１０８でＹＥＳ）は、ステップＳ１０９で、まだ選択していないアプリケーションがないか調べる。
まだ選択していないアプリケーションがあれば（ステップＳ１０９でＮＯ）、ルール照合部１１１は、ステップＳ１０２において、まだ選択していないアプリケーションを選択して、ステップＳ１０３以降の処理を行う。
全てのアプリケーションの全てのリソースがルール逸脱なしで選択済みになった場合（ステップＳ１０９でＹＥＳ）は、ルール照合部１１１は、ログ退避条件が成立していないと判定する（ステップＳ１１０）。この場合は、図６のステップＳ００５がＮＯとなる。
【００４８】
このように、ルール照合部１１１は、閾値を逸脱したリソースが１つでもあれば、ログ退避条件が成立したと判定する。この場合は、リングバッファ１１３内の全てのログが退避領域１１７に退避される。
一方、ルール照合部１１１は、閾値を逸脱したリソースが１つも無かった場合のみログ退避条件が不成立と判定する。
【００４９】
次に、図３、図４及び図５を用いてルール照合処理の一部を具体的に説明する。
【００５０】
まず、ルール照合部１１１が、アプリケーション１を選択し、続いてリソース１を選択したとする。ルール照合部１１１は、現在選択しているアプリケーション１と現在選択しているリソース１から、図４においてリソース使用量Ｄ１１を抽出する。
続いて、ルール照合部１１１は、図５からアプリケーション１の現在のステートであるステート１を抽出する。
次に、ルール照合部１１１は、図３からアプリケーション１、ステート１、リソース１の場合の閾値である上限値Ｕ１１１を抽出する。
そして、ルール照合部１１１は、リソース使用量Ｄ１１と上限値Ｕ１１１とを比較する。Ｄ１１≦Ｕ１１１であれば、閾値の逸脱がなく、Ｄ１１＞Ｕ１１１であれば閾値の逸脱がある。
アプリケーション１、リソース１について閾値の逸脱がない場合は、ルール照合部１１１は、続いてアプリケーション１とリソース２を選択して照合を続行する。
【００５１】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、アプリケーションのリソース使用量が予め定義したルールを逸脱した際にログを補助記憶装置に退避する。
このため、本実施の形態によれば、障害発生等の具体的なイベントが発生しなくてもログを退避することができる。つまり、本実施の形態によれば、従来は難しかった性能問題発生時などでもログを退避することができる。
【００５２】
実施の形態２．
以上の実施の形態１では、ログが格納されているリングバッファが単一の例を説明した。
本実施の形態では、リングバッファが複数用意されている例を説明する。
オペレーティングシステムのメッセージ、オペレーティングシステムのイベント、アプリケーションのメッセージなど複数種類のログがあるとき、複数のリングバッファを用意することがある。この場合には、ログの種類に応じてログの格納先のリングバッファが変わる。このような複数のリングバッファが用意されている場合は、退避の対象となるリングバッファを選択する必要がある。
【００５３】
＊＊＊構成の説明＊＊＊
本実施の形態に係る情報処理装置１００のハードウェア構成は図１に示す通りである。
【００５４】
図８は、本実施の形態に係る情報処理装置１００の機能構成例を示す。
実施の形態１における図２では、１つのリングバッファ１１３しか存在していないが、図８では、複数のリングバッファ１１３が存在する。また、図８では、主記憶装置１０２上に退避リスト１１９が追加されている。更に、図８では、補助記憶装置１０３上に退避ルール１２０が追加されている。
図８の複数のリングバッファ１１３の各々は、第１の記憶領域に相当する。
上記以外の要素は、図２に示したものと同じであるため、説明を省略する。
【００５５】
＊＊＊動作の説明＊＊＊
次に、図９を用いて、実施の形態２に係る情報処理装置１００の動作例を説明する。
【００５６】
図９におけるステップＳ００１〜ステップＳ００３の動作は、実施の形態１における図６のステップＳ００１〜ステップＳ００３と同一である。このため、説明を省略する。
【００５７】
ルール照合部１１１は、ステップＳ２０４において、図６のステップＳ００４と同様にリソース使用量とルールとを照合し、更に、退避リスト１１９を生成する。また、ルール照合部１１１は、ログ退避部１１２に退避リスト１１９を通知する。
【００５８】
ログ退避部１１２は、退避リスト１１９が通知された場合、すなわち、退避させるログが存在する場合（ステップＳ２０５でＹＥＳ）は、ステップＳ２０６において、退避リスト１１９に基づき該当するリングバッファのログを補助記憶装置１０３上の退避領域１１７に退避する。
一方、退避リスト１１９が通知されない場合、すなわち、退避させるログが存在しない場合（ステップＳ２０５でＮＯ）は、動作が終了する（ステップＳ００７）。
【００５９】
続いて、図１０を用いて、ステップＳ２０４のルール照合処理及び退避リスト生成処理の詳細を説明する。
【００６０】
まず、ルール照合部１１１は、照合開始（ステップＳ１０１）時において、退避リスト１１９を初期化して空にしておく。
【００６１】
次に、図１０におけるステップＳ１０２〜ステップＳ１０６の動作は実施の形態１の図７のステップＳ１０２〜ステップＳ１０６と同一である。このため、説明を省略する。
【００６２】
ステップＳ１０６でリソース使用量が閾値を逸脱している場合（ステップＳ１０６でＹＥＳ）は、ルール照合部１１１は、ステップＳ３０７において、退避ルール１２０に基づき退避するリングバッファを選択して退避リスト１１９を更新する。
退避リスト１１９に記載されているリングバッファ内の全てのアプリケーション１０７のログが退避領域１１７への退避の対象となる。例えば、リングバッファ１にアプリケーション１、アプリケーション２及びアプリケーション３のログが生成されていると仮定する。アプリケーション１が退避ルール１２０に該当してリングバッファ１が退避対象に選択された場合でも、リングバッファ１内のアプリケーション１、アプリケーション２及びアプリケーション３の全てのログが退避領域１１７へ退避される。
【００６３】
退避ルール１２０の例を図１１、図１２、図１３及び図１４に示す。
【００６４】
図１１は、退避するリングバッファをアプリケーションに基づいて選択する退避ルール１２０の例を示す。図１１の退避ルール１２０が用いられる場合は、ステップＳ１０６でリソース使用量が閾値を逸脱していると判定された際に選択されているアプリケーションに基づき、退避対象のリングバッファが選択される。
例えば、アプリケーション１のリソース使用量がルール１１６の閾値から逸脱している場合は、ルール照合部１１１は、図１１の退避ルール１２０に基づき、アプリケーション１に対応するリングバッファ１を退避対象として選択する。そして、ルール照合部１１１は、リングバッファ１を退避リスト１１９に追加する。
【００６５】
図１２は、退避するリングバッファをアプリケーションとステートの組み合わせに基づいて選択する退避ルール１２０の例を示す。図１２の退避ルール１２０が用いられる場合は、ステップＳ１０６でリソース使用量が閾値を逸脱していると判定された際に選択されているアプリケーションとステートの組み合わせに基づき、退避対象のリングバッファが選択される。
例えば、アプリケーション１がステート１であるときにアプリケーション１のリソース使用量がルール１１６の閾値から逸脱している場合は、ルール照合部１１１は、図１２の退避ルール１２０に基づき、アプリケーション１とステート１の組み合わせに対応するリングバッファ１を退避対象として選択する。そして、ルール照合部１１１は、リングバッファ１を退避リスト１１９に追加する。
【００６６】
図１３は、退避するリングバッファをリソースに基づいて選択する退避ルール１２０の例を示す。図１３の退避ルール１２０が用いられる場合は、ステップＳ１０６でリソース使用量が閾値を逸脱していると判定されたリソースに基づき、退避対象のリングバッファが選択される。
例えば、リソース１のリソース使用量がルール１１６の閾値から逸脱している場合は、ルール照合部１１１は、図１３の退避ルール１２０に基づき、リソース１に対応するリングバッファ１を退避対象として選択する。そして、ルール照合部１１１は、リングバッファ１を退避リスト１１９に追加する。
【００６７】
図１４は、退避するリングバッファをリソース使用量の閾値に基づいて選択する退避ルール１２０の例を示す。図１４の退避ルール１２０が用いられる場合は、ステップＳ１０６でリソース使用量が逸脱していると判定された閾値に基づき、退避対象のリングバッファが選択される。
例えば、リソース１のリソース使用量がルール１１６の閾値Ｕ１１１から逸脱している場合は、ルール照合部１１１は、図１４の退避ルール１２０に基づき、閾値Ｕ１１１に対応するリングバッファ１を退避対象として選択する。そして、ルール照合部１１１は、リングバッファ１を退避リスト１１９に追加する。
【００６８】
なお、退避ルール１２０は、図１１、図１２、図１３及び図１４の例に限定されない。退避すべきリングバッファが一意に選択できるルールであれば、退避ルール１２０はどのようなものでもよい。
【００６９】
図１０のフローチャートに戻り、ステップ３０７において退避リスト１１９を更新した後は、ルール照合部１１１は、全リソースと全アプリケーションに対して処理が完了するまで、ステップＳ１０１〜ステップＳ１０６及びステップＳ３０７を繰り返す。
【００７０】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、アプリケーションのリソース使用量が予め定義したルールを逸脱した際に、逸脱したルールや状況に関連するログを補助記憶装置に退避することで、従来は難しかった性能問題発生時などに特に有用なログを優先して退避することができる。
【００７１】
以上、本発明の実施の形態について説明したが、これら２つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら２つの実施の形態のうち、１つを部分的に実施しても構わない。
あるいは、これら２つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【００７２】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、情報処理装置１００のハードウェア構成の補足説明を行う。
図１に示すプロセッサ１０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図１に示す主記憶装置１０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
図１に示す補助記憶装置１０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
【００７３】
プロセッサ１０１はオペレーティングシステム１０６の少なくとも一部を実行しながら、ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２の機能を実現するプログラムを実行する。
プロセッサ１０１がオペレーティングシステム１０６を実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置１０２、補助記憶装置１０３、プロセッサ１０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。
【００７４】
また、ログ生成部１０８、リソース監視部１０９、ステート監視部１１０、ルール照合部１１１及びログ退避部１１２の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、情報処理装置１００は、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【００７５】
１００  情報処理装置、１０１  プロセッサ、１０２  主記憶装置、１０３  補助記憶装置、１０４  Ｉ／Ｏ装置、１０５  ＮＩＣ、１０６  オペレーティングシステム、１０７  アプリケーション、１０８  ログ生成部、１０９  リソース監視部、１１０  ステート監視部、１１１  ルール照合部、１１２  ログ退避部、１１３  リングバッファ、１１４  リソース情報、１１５  ステート情報、１１６  ルール、１１７  退避領域、１１９  退避リスト、１２０  退避ルール。
【図１】
0006899972.tif 000002
【図２】
0006899972.tif 000003
【図３】
0006899972.tif 000004
【図４】
0006899972.tif 000005
【図５】
0006899972.tif 000006
【図６】
0006899972.tif 000007
【図７】
0006899972.tif 000008
【図８】
0006899972.tif 000009
【図９】
0006899972.tif 000010
【図１０】
0006899972.tif 000011
【図１１】
0006899972.tif 000012
【図１２】
0006899972.tif 000013
【図１３】
0006899972.tif 000014
【図１４】
0006899972.tif 000015