JP4937194B2 - アプリケーションの応答不能時を推定するシステム、方法、およびプログラム - Google Patents

アプリケーションの応答不能時を推定するシステム、方法、およびプログラム Download PDF

Info

Publication number
JP4937194B2
JP4937194B2 JP2008154701A JP2008154701A JP4937194B2 JP 4937194 B2 JP4937194 B2 JP 4937194B2 JP 2008154701 A JP2008154701 A JP 2008154701A JP 2008154701 A JP2008154701 A JP 2008154701A JP 4937194 B2 JP4937194 B2 JP 4937194B2
Authority
JP
Japan
Prior art keywords
application
response
keystrokes
log information
unresponsive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008154701A
Other languages
English (en)
Other versions
JP2009301298A (ja
Inventor
治寛 谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2008154701A priority Critical patent/JP4937194B2/ja
Publication of JP2009301298A publication Critical patent/JP2009301298A/ja
Application granted granted Critical
Publication of JP4937194B2 publication Critical patent/JP4937194B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、アプリケーションの応答不能時を推定するシステム、方法、およびプログラムに関する。
アプリケーション使用中にキーボードやマウスからの操作に対して、アプリケーションが応答をしなくなる状態が発生することがあり、一般に、フリーズ又はハングアップ(以下、まとめて応答不能という)といわれる。応答不能が発生した際の対応策は、特殊なキーボード操作によりアプリケーションを強制終了させるか、それも受け付けないようならリセットスイッチを押す等によりコンピュータを再起動するしかない。そのため、応答不能が発生することをユーザが事前に知り、データを保存することや応答不能自体を防ぐことは重要である。
そこで、応答不能を事前にユーザに警告するための方法として、装置のメモリ使用量やガベージコレクション処理間隔を用いて、予め人により設定された応答不能が発生すると予測される閾値を越えた場合に警告する方法がある(例えば、特許文献1、および特許文献2)。
特開2006−285871号公報 特開2007−226399号公報
しかしながら、上記技術によれば、予め人により設定された閾値を用いて、応答不能が発生するか否かを判断し、警告を行う。そのため、装置の性能が異なる場合やアプリケーションの起動環境が異なる場合等、つまり、閾値を設定した時と応答不能が発生する環境が変わった場合には、閾値が適切でなくなる。また、応答不能を発生する原因は様々あるが、メモリ使用量やガベージコレクション処理間隔では原因を特定することができない。そのため、閾値は様々な原因により起こる応答不能における平均値であり、適切でない場合もある。
そこで、本発明は上記課題に鑑み、応答不能が発生した際の環境毎に、応答不能が発生する閾値を統計学的に求めることにより、適切な閾値を用いて応答不能の発生時を推定することができるアプリケーションの応答不能時を推定するシステム、方法、およびコンピュータ・プログラムを目的とする。
(1) アプリケーションの応答不能時を推定するシステムであって、
前記アプリケーションの起動を検知するアプリケーション検知手段と、
前記アプリケーション検知手段にて起動が検知されたことに応じて、前記アプリケーションに対して行われたユーザからの少なくともキーストローク数を含む操作イベント数をカウントする操作イベントカウント手段と、
前記アプリケーションの応答不能状態の発生を検知する割込検知手段と、
前記割込検知手段により、前記アプリケーションの応答不能が検知されたことに応じて、割り込み処理により前記アプリケーションの起動時から起算した前記操作イベント数および前記アプリケーションの起動時からの実行環境の情報を応答不能ログ情報として前記アプリケーションと関連付けて記憶する応答不能ログ情報記録手段と、
前記応答不能ログ情報記録手段により記憶した前記アプリケーションの実行環境の情報および前記操作イベント数に基づいて、前記応答不能ログ情報を分類して、応答不能となる推定操作イベント数を推定する応答不能推定手段と、
を備えるシステム。
(1)の発明によれば、アプリケーションの起動時から起算した操作イベント数およびアプリケーションの実行環境の情報に基づいて、所定の実行環境におけるアプリケーションが応答不能となる操作イベント数を推定できることにより、実行環境毎に応答不能となる操作イベント数を推定することができる。それにより、実際に応答不能となる操作イベント数に近い推定操作イベント数を推定することができる。
なお、操作イベントとは、アプリケーションに対して行われた操作である。操作イベントは、大きく分けてキーボード操作によるイベントであるキーストロークとマウス操作によるイベントとの2つに分けられる。本発明は、アプリケーションの応答不能に強く関与するキーストロークを操作イベントに少なくとも含むものである。
(2) 前記アプリケーションを起動したことに応じて、前記アプリケーションの実行環境の情報に基づいて前記推定操作イベント数を判定し、前記操作イベント数が、前記推定操作イベント数より少ない所定の閾値に達したことに応じて、前記アプリケーションのユーザにその旨を報知する報知手段と、を更に備える(1)に記載のシステム。
(2)の発明によれば、ユーザの操作イベントを監視し、アプリケーションが応答不能となる推定操作イベント数から求められた所定の閾値に近づくと、ユーザに報知を行う。前記推定操作イベント数より少ない閾値とは、例えば、推定操作イベント数の80%の値等である。また、報知とは、例えば、メッセージを表示したり、アラームを鳴らすことである。それにより、応答不能が発生することをユーザが事前に知り、データを保存すること等により応答不能が発生した際の影響を最小限に抑えることができる。
(3) 前記推定操作イベント数の判定する要素に、前記アプリケーションの実行環境の情報と合わせて他のアプリケーションの実行状況を用いる(2)に記載のシステム。
(3)の発明によれば、前記システムは、推定操作イベント数の判定する要素に他のアプリケーションの実行状況を合わせて用いる。その結果、前記システムは、推定操作イベント数の判定の際に、応答不能の発生に影響があると考えられる他のアプリケーションの実行状況を合わせて判定を行なうことにより、判定の精度を向上することができる。
(4) 前記応答不能推定手段は、前記推定操作イベント数をサポートベクターとするサポートベクターマシンにより前記応答不能ログ情報を分類する(1)から(3)のいずれかに記載のシステム。
(4)の発明によれば、サポートベクターマシンにより応答不能ログ情報を分類することにより、実行環境等が異なっていても同様の傾向を示す応答不能事例をクラス化することができ、推定操作イベント数はサポートベクターとして得られる。それにより、未知の事例に対して適切な推定操作イベント数を推定することができる。
サポートベクターマシンとは、高次元特徴空間において線形関数の仮説空間を用いる学習システムである。詳細には、1995年にAT&TのV.Vapnikによって統計的学習理論の枠組で提案された学習機械のことであり、高次元特徴空間において線形関数の仮説空間を用いる学習システムである。
(5) 更に、前記割込検知手段により、前記アプリケーションの応答不能が検知されたことに応じて、割り込み処理により前記アプリケーションの起動時から起算した前記操作イベント数を保存する操作イベント数保存手段と、
前記操作イベント数保存手段に保存された前記操作イベント数、および前記アプリケーションの起動時からの実行環境の情報を送信する操作イベント数送信手段と、
を備える(1)から(4)のいずれかに記載のシステム。
(5)の発明によれば、操作イベント数保存手段はアプリケーションの応答不能が検知されたことに応じて、割り込み処理により前記アプリケーションの起動時から起算した前記操作イベント数を保存することにより、応答不能時であっても操作イベント数を保存することができる。また、操作イベント数送信手段を備えることにより、操作イベント数等を1つに集約することができ、応答不能時の統計を取ることができる。
(6) 前記割込検知手段は、前記アプリケーションが停止した場合もしくは、前記アプリケーションの処理が遅滞している場合に応答不能となったと判定する(1)から(5)のいずれかに記載のシステム。
(6)の発明によれば、アプリケーションの処理が停滞している場合も応答不能に含めることで、実質的にアプリケーションが停止している状態についても、本発明を適用することができる。
(7) 前記実行環境の情報は、前記アプリケーションが起動している装置の性能、および同時に起動しているアプリケーションの情報を含む(1)から(6)のいずれかに記載のシステム。
(7)の発明によれば、アプリケーション情報として前記アプリケーションが起動している装置の性能、および平行して起動されている他のアプリケーションの情報と操作イベント数とに基づいて推定操作イベント数が算出される。それにより、アプリケーションの応答不能の発生に影響があると考えられる要因を推定操作イベント数の算出に反映することができる。
(8) コンピュータにより、アプリケーションの応答不能時を推定する方法であって、
前記アプリケーションの起動を検知するステップと、
前記アプリケーションに対して行われたユーザからの少なくともキーストローク数を含む操作イベント数をカウントするステップと、
前記アプリケーションの応答不能状態の発生を検知するステップと、
前記アプリケーションの応答不能が検知されたことに応じて、割り込み処理により前記アプリケーションの起動時から起算した前記操作イベント数および前記アプリケーションの起動時からの実行環境の情報を応答不能ログ情報として前記アプリケーションと関連付けて記憶するステップと、
前記アプリケーションの実行環境の情報および前記操作イベント数に基づいて、前記応答不能ログ情報を分類して、応答不能となる推定操作イベント数を推定するステップと、
を含む方法。
コンピュータに、(8)の方法を実行させることにより、(1)と同様の作用・効果が期待できる。
(9) コンピュータに、アプリケーションの応答不能時を推定させるプログラムであって、
前記アプリケーションの起動を検知するステップと、
前記アプリケーションに対して行われたユーザからの少なくともキーストローク数を含む操作イベント数をカウントするステップと、
前記アプリケーションの応答不能状態の発生を検知するステップと、
前記アプリケーションの応答不能が検知されたことに応じて、割り込み処理により前記アプリケーションの起動時から起算した前記操作イベント数および前記アプリケーションの起動時からの実行環境の情報を応答不能ログ情報として前記アプリケーションと関連付けて記憶するステップと、
前記アプリケーションの実行環境の情報および前記操作イベント数に基づいて、前記応答不能ログ情報を分類して、応答不能となる推定操作イベント数を推定するステップと、
を実行させるプログラム。
コンピュータに、(9)のプログラムを導入して各ステップを実行させることにより、(1)と同様の作用・効果が期待できる。
本発明によれば、応答不能が発生した際の環境毎に、応答不能が発生する閾値を統計学的に求めることにより、適切な閾値を用いて応答不能の発生時を推定することができるアプリケーションの応答不能時を推定するシステム、方法、およびコンピュータ・プログラムを提供することができる。
以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
[応答不能時推定システムの全体構成]
図1は、本実施形態に係る応答不能時推定システム1の全体構成を示す図である。応答不能時推定システム1における、クライアント端末200とサーバ装置100とは、インターネットやイントラネット等に代表されるネットワークの通信回線を介して接続される。なお、本構成におけるクライアント端末200およびサーバ装置100は必ずしも1台とは限らず、複数台で構成されてもよい。また、応答不能時推定システム1を装置として提供してもよいが、応答不能時が発生する閾値を求めるには、多くの事象を用いたほうがよいので、複数のクライアント端末200が接続されたシステムとするのが望ましい。
[応答不能時推定システムのクライアント端末の機能構成]
図1に示すように、クライアント端末200は、通信手段206および制御手段210を備える。制御手段210は、アプリケーション検知手段201、操作イベントカウント手段202、割込検知手段203、操作イベント数保存手段204、操作イベント数送信手段205、アプリケーション監視手段207、報知手段208を有する。
アプリケーション検知手段201は、クライアント端末200においてアプリケーションが起動されたことを検知する。操作イベントカウント手段202は、アプリケーション毎に、ユーザがキーボードやマウスにて行った操作イベント数をカウントする。ただし、操作イベントは少なくともキーストロークを含む。その理由については後述する。
割込検知手段203は、アプリケーションの応答不能の発生を検知し、操作イベント数保存手段204に応答不能となったアプリケーションの操作イベント数を記憶するように指示を行う。
操作イベント数保存手段204は、割込検知手段203からの指示により、操作イベントカウント手段202から、その時点での操作イベント数を取得し、一時記憶する割込みルーチンを実行する。また、操作イベント数保存手段204は、操作イベント数を一時記憶すると、操作イベントカウント手段202のカウントをクリアする。なお、応答不能が発生すると、CPUにて実行されている処理は中断され、操作イベント数保存手段204が実行する割込みルーチンが優先して処理を行う。
操作イベント数送信手段205は、操作イベント数保存手段204にて一時記憶された操作イベント数、応答不能となったアプリケーション情報、およびそのアプリケーションの実行環境の情報を取得し、サーバ装置100へ送信する情報の準備を行い、通信手段206へ渡す。アプリケーションの実行環境の情報とは、クライアント端末200のCPU(Central Processing Unit)や仮想メモリのスペック等のクライアント端末200の性能や応答不能となった日時、平行して起動されているアプリケーションの情報等である。
アプリケーション監視手段207は、アプリケーション検知手段201にてアプリケーションが起動されたことが検知されると、そのアプリケーションが応答不能となると推定される推定操作イベント数をサーバ装置100から取得し、推定操作イベント数から求められた閾値を操作イベントカウント手段202から取得する操作イベント数が越えているか否か監視する。また、アプリケーション監視手段207は、操作イベント数が操作イベント閾値を越えた場合に、報知手段208に指示を出す。ここで、閾値とは、推定操作イベント数に基づいてシステム管理者等にて任意に設定された値であり、例えば、推定操作イベント数の80%の値を閾値とすることができる。なお、操作イベント数は、操作イベントカウント手段202から逐次取得する。
報知手段208は、アプリケーション監視手段207から指示を受けると、ユーザに対して出力部(図示せず)にて警告を行う。制御手段210は、アプリケーションが終了した時や、報知手段208にて行われた警告に従った操作をユーザが行った際に、操作イベントカウント手段202のカウントをクリアする。
[応答不能時推定システムのサーバ装置の機能構成]
図1に示すように、サーバ装置100は、通信手段101、応答不能ログ情報記録手段102、応答不能推定手段110、推定応答不能情報取得手段120、応答不能ログ情報データベース(以下、簡略化のためDBとする)130、および応答不能推定DB131を備える。応答不能ログ情報記録手段102は、通信手段206,101を介してクライアント端末200から、応答不能となったアプリケーション情報、そのアプリケーションにおける応答不能時の操作イベント数、およびそのアプリケーションの実行環境の情報を取得し、応答不能ログ情報DB130に記憶する。
応答不能推定手段110は、応答不能ログ情報のクラス分類を行うことにより、推定操作イベント数を求めることができる。ここで、応答不能推定手段110は、クラス分類を行う学習機械であり、例えば、サポートベクターマシン(SVM:Support Vector Machine)やナイーブベイズがある。本実施形態においては、応答不能推定手段110は、サポートベクターマシンである場合について説明する。
本実施形態の一例では、サポートベクターマシンという信頼性のある手段を用いる。ここで、サポートベクターマシンの学習結果は、応答不能ログ情報DB130に記憶されている応答不能ログ情報をクラスに分類する識別面およびサポートベクターを含み、応答不能推定DB131に記憶される。複数のクラスに分類する場合には、複数のサポートベクターマシンを組み合わせる。
推定応答不能情報取得手段120は、クライアント端末200から取得した新たに起動されたアプリケーション情報およびそのアプリケーションの実行環境の情報に基づいて、応答不能推定DB131から推定操作イベント数を取得し、クライアント端末200へ送信する。
応答不能ログ情報DB130は、応答不能ログ情報、つまり、クライアント端末200にて応答不能が発生した時のアプリケーションの操作イベント数および実行環境の情報を蓄積する。詳細については後述する。応答不能推定DB131は、応答不能推定手段110における学習結果、および応答不能推定手段110にて応答不能ログ情報が分類されるクラス毎に推定操作イベント数が蓄積されている。
なお、クライアント端末200およびサーバ装置100のハードウェア構成については、後述する。
[応答不能推定手段]
図2は、応答不能推定手段110の詳細を示す図である。応答不能推定手段110は、クラス生成手段111、および推定操作イベント数決定手段112を有する。クラス生成手段111は、応答不能ログ情報DB130に蓄積されている応答不能ログ情報の特徴解析を行い、応答不能ログ情報のクラス分類を行う。推定操作イベント数決定手段112は、クラス生成手段111にて作成されたクラス毎に、応答不能が発生する推定操作イベント数を算出する。
ところで、応答不能時の推定を操作イベント数で行うのは、応答不能の原因であるメモリリークの発生を操作イベント数に基づいて予測することができるからである。メモリリークとは、アプリケーションソフトが処理のために占有したメモリ領域を、なんらかの理由で解放しないままの状態であり、操作イベント数が多いほど、開放されないメモリ領域が増える可能性がある。しかし、メモリリークは、メモリ使用量の監視によって発生を検知するのは難しい。なぜならば、プログラムが将来に使うためにメモリの確保をしているものと、そのような将来の使用の予定がないにもかかわらず占有し続けているものと、を区別することができず、単にメモリ使用量が多いからといって、メモリリークが発生しているとは必ずしも言えないからである。そこで、メモリ監視よりも有効な手段として、本発明においては操作イベント数に基づいて応答不能時を推定する。
なお、操作イベントは上述したように、キーボード操作によるイベントであるキーストロークの他に、マウス操作によるイベント等も含まれる。本発明においては、アプリケーションの応答不能に強く関与するイベントとしてキーストロークに注目している。というのも、マウスによるイベントはボタンの押下、URLのクリック等多岐にわたるため、メモリ領域の確保、開放との関係が必ずしも明確ではないのに対し、キーストロークはキャラクタ文字の入力、かな漢字変換等、メモリ領域の確保、開放との関係が安定的であり、アプリケーションの応答不能を推定するのに好適であるためである。
[推定応答不能情報取得手段]
図3は、推定応答不能情報取得手段120の詳細を示す図である。推定応答不能情報取得手段120は、クラス決定手段121、および推定操作イベント数抽出手段122を有する。クラス決定手段121は、推定操作イベント取得要求のあったクライアント端末200のアプリケーション情報(少なくともアプリケーションIDを含む)およびそのアプリケーションの実行環境の情報2に基づいて、それらが属するクラスを決定する。推定操作イベント数抽出手段122は、クラス決定手段121にて決定されたクラスに基づいて、推定操作イベント数を応答不能推定DB131から取得する。
[応答不能ログ情報DB]
図4は、応答不能ログ情報DB130の応答不能ログ情報テーブルを示す図である。応答不能ログ情報テーブルは、アプケーションID(以下、簡略化のためにアプリIDという)、アプリケーション名(以下、簡略化のためにアプリ名という)、応答不能時の操作イベント数、応答不能日時に加えて、CPU、メモリ容量、および仮想ディスク要領等のアプリケーションの実行環境の情報2を含む項目から構成される。なお、ここに示した項目は例示であり、全てを含まなくとも、また、その他の項目を有してもよい。ただし、応答不能が発生する要因と関係すると考えられる情報であるのが望ましい。
アプリIDには、アプリケーションを一意に特定する記号が格納される。なお、アプリIDは、サーバ管理者等が任意に決定してもよいし、一般に用いられているアプリIDを用いてもよい。アプリ名には、応答不能が発生したアプリケーションの名前が格納される。ただし、クライアント端末200から取得する情報にアプリ名が含まれていない場合には、アプリIDからアプリ名に変換することが必要である。そのため、アプリIDとアプリ名の対応を蓄積しているDBが必要である。
応答不能時の操作イベント数には、応答不能が発生したアプリケーションにおいて、応答不能までに実行された操作イベント数が格納される。応答不能日時は、応答不能が発生した日時が格納され、この日時は、日本標準時間や世界標準時間である。CPU、メモリ容量、仮想ディスク容量は、応答不能が発生したクライアント端末200に搭載されているCPU、メモリ、仮想ディスクについての情報が格納される。なお、容量以外に、CPU名やメーカー名等を有してもよい。応答不能が発生したときの状況等を記憶しておくことで、統計的に応答不能が発生する時を推定することができる。
[応答不能推定DB]
図5は、応答不能推定DB131の応答不能推定テーブルを示す図である。応答不能推定テーブルは、クラスIDおよび推定操作イベント数等の項目から構成される。なお、ここに示した項目は例示であり、全てを含まなくとも、また、その他の項目を有してもよい。クラスIDは、応答不能推定手段110にて、応答不能ログ情報を分類するクラスを一意に特定する記号である。推定操作イベント数は、応答不能推定手段110にて求められた応答不能が発生すると推定される操作イベント数である。応答不能が起こるすると推定される操作イベント数を記憶しておくことで、新たなアプリケーションが起動された際に、そのアプリケーションに対して応答不能が起こると推定される操作イベント数を容易に提示することができる。
[応答不能ログ情報のクラス分類]
図6は、応答不能推定手段110によるSVMのアルゴリズムを用いた機械学習の一例を示す図である。応答不能推定手段110は、応答不能ログ情報DB130に記憶された応答不能ログ情報を学習データとして用い、SVMのアルゴリズムを用いてこれらの学習データから2つのクラスに分類する識別面から最も近い学習データと当該識別面との距離が最大となるような識別面を設定する。そして、当該識別面に最も近い学習データをサポートベクターとして用い、それぞれのクラスにおける推定操作イベント数とする。
例えば、クラス1とクラス2とに分類する場合について説明する。その場合、以下に示す様に、それぞれクラス1およびクラス2に分類された応答不能ログ情報を学習データとしていくつか使用する。
クラス1:アプリケーション:○○ワード、CPU:1.5GHz、仮想ディスク容量:3GB、・・・・
クラス2:アプリケーション:○○シート、CPU:1.5GHz、仮想ディスク容量:3GB、・・・・
そして、応答不能推定手段110は、クラス1の学習データとクラス2の学習データを識別する識別面30同士の距離(マージン)が最大になるような識別面30を算出する。識別面30にもっとも近接するクラス1の学習データ11とクラス2の学習データ21をサポートベクターとして用いる。このように、応答不能推定手段110は、クラス1の応答不能ログ情報とクラス2の応答不能ログ情報とを学習データとして使用し、クラス1の応答不能ログ情報群10とクラス2の応答不能ログ情報群20とを区別するための識別データである識別面を生成するようになっている。そして、学習データ11はクラス1の推定操作イベント数を与え、学習データ21はクラス2の推定操作イベント数を与える。このように、サポートベクターマシンを用いることにより、応答不能ログ情報を分類し、また、分類されたクラスの推定操作イベント数を求めることができる。なお、上述したように2以上のクラスの分類についても、複数のサポートベクターマシンを用いて行うことができる。
[応答不能時推定処理]
図7は、応答不能時推定処理のフローチャートである。アプリケーション検知手段201が、クライアント端末200にて、新たなアプリケーションが起動されたことを検知すると処理が開始する。
S1:アプリケーション検知手段201は、アプリケーションが起動したことを検知すると、起動されたアプリケーションを特定するための少なくともアプリIDを取得し、操作イベント数のカウント要求を操作イベントカウント手段202に行う。
S2:カウント要求を受け取った操作イベントカウント手段202は、アプリケーションにおける操作イベント数をカウントする。なお、複数のアプリケーションが起動されている場合には、アプリケーションそれぞれに対する操作イベント数をカウントする。応答不能はアプリケーション毎に発生し、原因はそのアプリケーションに対して行われた操作イベントによるからである。
S3:割込検知手段203は、アプリケーションに応答不能が発生しているか否かの判断を行い、応答不能が発生したことを検知すると、操作イベント数保存手段204に応答不能発生時の操作イベント数の保存要求を行う。
S4:一方、割込検知手段203にて、応答不能が検知されずにアプリケーションがユーザにて終了された場合には、制御手段210は、操作イベントカウント手段202の操作イベントカウントをリセットする。なお、このときリセットされるのは、終了されたアプリケーションの操作イベント数だけである。操作イベント数は、アプリケーション毎にカウントされているためである。
S5:ステップS4にて、アプリケーションに応答不能が発生し、操作イベント数記憶要求がなされると、操作イベント数保存手段204は、割り込みルーチンを実行し、操作イベントカウント手段202から取得した応答不能時の操作イベント数をメモリ等に一時記憶する。
S6:操作イベント数送信手段205は、ステップS1にて取得されたアプリID等、ステップS5にて一時記憶されている応答不能時の操作イベント数、クライアント端末200の性能等を取得し、通信手段206を介してサーバ装置100へ送信する。応答不能を解消するために、クライアント端末200の再起動を行う場合がある。この場合、ステップS6にて情報がサーバ装置100へ送信される前にクライアント端末200の再起動が行われてしまうと、サーバ装置100が取得できる情報が少なくなってしまうという問題点が生じる。そのため、ユーザにてクライアント端末200の再起動が入力された際には、ステップS6まで終了した後にクライアント端末200の再起動がコンピュータにて実行されるようにしておくのが望ましい。
S7:応答不能ログ情報記録手段102は、ステップS6にて送信されたアプリID等、ステップS5にて一時記憶されている応答不能時の操作イベント数、クライアント端末200の性能を通信手段101を介して取得し、応答不能ログ情報DB130に記録する。このようにして、サーバ装置100は、ネットワークを介して接続されているクライアント端末200にて発生した応答不能の情報を集めることができる。
S8:応答不能推定手段110のクラス生成手段111は、上述したSVMのアルゴリズムを用いて、応答不能ログ情報DB130に蓄積されている応答不能ログ情報を学習データとして用いて識別面およびサポートベクターを求める。なお、ステップS8が実行されるタイミングは任意でよく、例えば、所定の期間毎に実行するとしてもよいし、サーバ装置管理者によって任意に実行するとしてもよい。ただし、推定操作イベント数は統計学的に求められるため、1つや2つの情報が増えたところで変化は生じない。そのため、ある程度情報が蓄積されたタイミングで実行するのが望ましい。なお、ステップS8は、自動的に実行されてもよいし、サーバ装置100の管理者等により手動で実行してもよい。
S9:応答不能推定手段110の推定操作イベント数決定手段112は、ステップS8において求めた各クラスのサポートベクターにより、推定操作イベント数を求める。
S10:応答不能推定手段110は、ステップS9にて求めた推定操作イベント数を、応答不能推定DB131に記憶する。このとき推定操作イベント数は、クラスIDに対応付けて記憶される。
[応答不能報知処理]
図8は、応答不能報知処理のフローチャートである。アプリケーション検知手段201が、クライアント端末200にて、新たなアプリケーションが起動されたことを検知すると、このアプリケーションにおける応答不能時を報知する処理が開始する。
S11:推定応答不能情報取得手段120は、通信手段206,101を介してクライアント端末200から少なくともアプリIDとクライアント端末200の性能を取得する。なお、アプリID等はアプリケーション検知手段201にて取得され、クライアント端末200の性能はアプリケーション監視手段207にて取得される。
S12:推定応答不能情報取得手段120のクラス決定手段121は、ステップS11にて取得した情報に基づいて、図7におけるステップS8にて作成された識別面から、新たに起動されたアプリケーションが応答不能となった場合の応答不能ログ情報が属するクラスを求め、クラスIDを特定する。クラスIDを特定するのは、応答不能推定DB131を検索するためである。なお、推定応答不能情報取得手段120は、ステップS11にて、クライアント端末200において起動している他のアプリケーションの実行状況も取得し、それも用いてクラスを決定してもよい。
S13:推定応答不能情報取得手段120の推定操作イベント数抽出手段122は、ステップS12にて特定されたクラスIDに基づいて、応答不能推定DB131を検索し、推定操作イベント数を取得する。
S14:推定応答不能情報取得手段120は、ステップS13にて取得された推定操作イベント数をクライアント端末200のアプリケーション監視手段207に送信する。
S15:アプリケーション監視手段207は、アプリケーションにおける操作イベント数が閾値に達したか否かの監視を行う。アプリケーションにおける操作イベント数は、操作イベントカウント手段202から取得する。閾値は、上述したように、推定操作イベント数に基づいてシステム管理者等にて任意に設定された値であり、推定操作イベント数よりも小さい値である。推定操作イベント数ではなく閾値に達したか否かの監視を行うのは、推定操作イベントに達してしまうと応答不能が発生してしまう恐れがあるからである。
S16:報知手段208は、操作イベント数が閾値に達した場合に、ユーザに対して警告を行う。例えば、文書作成アプリケーションにおける警告であれば、「保存をしてください。」とメッセージを表示したりアナウンスを行う。また、メッセージと合わせて、保存ボタンを表示してもよい。なお、必ずしも、警告を行う必要はなく、警告を行わずに、自動でコンピュータが保存を行ってもよい。
[ハードウェア構成図]
図9は、本実施形態に係る応答不能時推定システムを構成するクライアント端末200およびサーバ装置100のハードウェア構成例として情報処理装置500を示した図である。以下、この情報処理装置500のハードウェア構成の1例を示す。情報処理装置500は、制御部300を構成するCPU(Central Processing Unit)310(マルチプロセッサ構成ではCPU320等複数のCPUが追加されてもよい)、バスライン420、通信I/F(I/F:インタフェース)330、メインメモリ340、BIOS(Basic Input Output System)350、I/Oコントローラ360、ハードディスク370、光ディスクドライブ380、並びに半導体メモリ390を備える。尚、ハードディスク370、光ディスクドライブ380、並びに、半導体メモリ390はまとめて記憶装置410と呼ばれる。
制御部300は、情報処理装置500を統括的に制御する部分であり、ハードディスク370(後述)に記憶された各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
通信I/F330は、インターネットを介して情報処理装置500が情報を送受信する場合のネットワーク・アダプタである。通信I/F330は、モデム、ケーブル・モデムおよびイーサネット(登録商標)・アダプタを含んでよい。
BIOS350は、情報処理装置500の起動時にCPU310が実行するブートプログラムや、素性語選別装置1がハードウェアに依存するプログラム等を記録する。
I/Oコントローラ360には、ハードディスク370、光ディスクドライブ380、および半導体メモリ390等の記憶装置410を接続することができる。
ハードディスク370は、本ハードウェアを情報処理装置500として機能させるための各種プログラム、本発明の機能を実行するプログラムおよび後述するテーブルおよびレコードを記憶する。なお、情報処理装置500は、外部に別途設けたハードディスク(図示せず)を外部記憶装置として利用することもできる。
光ディスクドライブ380としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この場合は各ドライブに対応した光ディスク400を使用する。光ディスク400から光ディスクドライブ380によりプログラム又はデータを読み取り、I/Oコントローラ360を介してメインメモリ340又はハードディスク370に提供することもできる。
なお、本発明でいうコンピュータとは、記憶装置、制御部等を備えた情報処理装置をいい、情報処理装置500は、記憶装置410、制御部300等を備えた情報処理装置により構成され、この情報処理装置は、本発明のコンピュータの概念に含まれる。
本実施形態に係る応答不能時推定システムの全体構成を示す図である。 応答不能推定手段の詳細を示す図である。 推定応答不能情報取得手段の詳細を示す図である。 応答不能ログ情報DBの応答不能ログ情報テーブルを示す図である。 応答不能推定DBの応答不能推定テーブルを示す図である。 応答不能推定手段によるSVMのアルゴリズムを用いた機械学習の一例を示す図である。 応答不能時推定処理のフローチャートである。 応答不能報知処理のフローチャートである。 本実施形態に係る応答不能時推定システムを構成するクライアント端末およびサーバ装置のハードウェア構成例として情報処理装置を示した図である。
符号の説明
1 応答不能時推定システム
100 サーバ装置
101 通信手段
102 応答不能ログ情報記録手段
110 応答不能推定手段
120 推定応答不能情報取得手段
130 応答不能ログ情報DB
131 応答不能推定DB
200 クライアント端末
201 アプリケーション検知手段
202 操作イベントカウント手段
203 割込検知手段
204 操作イベント数保存手段
205 操作イベント数送信手段
206 通信手段
207 アプリケーション監視手段
208 報知手段
210 制御手段

Claims (9)

  1. クライアント端末とサーバ装置とを含んで構成され、前記クライアント端末におけるメモリリークの発生を原因とするアプリケーションの応答不能時を推定するシステムであって、
    前記アプリケーションの起動を検知するアプリケーション検知手段と、
    前記アプリケーション検知手段にて起動が検知されたことに応じて、前記アプリケーションに対して行われたユーザのキーストローク数をカウントする操作イベントカウント手段と、
    前記アプリケーションの応答不能状態の発生を検知する割込検知手段と、
    前記割込検知手段により、前記アプリケーションの応答不能が検知されたことに応じて、応答不能となったアプリケーション情報、当該アプリケーションに対する前記キーストローク数および前記アプリケーションの実行環境の情報を応答不能ログ情報として記憶する応答不能ログ情報記録手段と、
    前記応答不能ログ情報記録手段により記憶した前記応答不能ログ情報に基づいて、アプリケーションが所定の実行環境で起動した場合にメモリリークの発生を原因とする応答不能を推定する推定キーストローク数を算出する応答不能推定手段と、
    を備え、
    前記応答不能推定手段は、
    前記応答不能ログ情報記録手段により記憶した前記応答不能ログ情報を、前記アプリケーションおよび前記アプリケーションの実行環境に基づいてクラス毎に分類する分類手段と、
    前記分類手段が分類したクラス毎に、当該クラスに含まれる前記応答不能ログ情報の前記キーストローク数に基づいて前記推定キーストローク数を算出する推定手段と、
    を備えるシステム。
  2. 複数のクライアント端末とサーバ装置とを含んで構成され、前記クライアント端末におけるメモリリークの発生を原因とするアプリケーションの応答不能時を推定するシステムであって、
    前記クライアント端末は、
    前記アプリケーションの起動を検知するアプリケーション検知手段と、
    前記アプリケーション検知手段にて起動が検知されたことに応じて、前記アプリケーションに対して行われたユーザのキーストローク数をカウントする操作イベントカウント手段と、
    前記アプリケーションの応答不能状態の発生を検知する割込検知手段と、
    前記割込検知手段によりアプリケーションの応答不能状態の発生が検知されることを条件に、応答不能となったアプリケーション情報、当該アプリケーションに対する前記キーストローク数および前記アプリケーションの実行環境の情報を前記サーバ装置に送信する操作イベント数送信手段と、
    を備え、
    前記サーバ装置は、
    前記クライアント端末の夫々から受信した前記アプリケーション情報、前記キーストローク数および前記アプリケーションの実行環境を応答不能ログ情報として記憶する応答不能ログ情報記録手段と、
    前記応答不能ログ情報記録手段により記憶した前記応答不能ログ情報に基づいて、アプリケーションが所定の実行環境で起動した場合にメモリリークの発生を原因とする応答不能を推定する推定キーストローク数を算出する応答不能推定手段と、
    を備え、
    前記サーバ装置の前記応答不能推定手段は、
    前記応答不能ログ情報記録手段により記憶した前記応答不能ログ情報を、前記アプリケーションおよび前記アプリケーションの実行環境に基づいてクラス毎に分類する分類手段と、
    前記分類手段が分類したクラス毎に、当該クラスに含まれる前記応答不能ログ情報の前記キーストローク数に基づいて前記推定キーストローク数を算出する推定手段と、
    を備えるシステム。
  3. 前記クライアント端末は、
    前記割込検知手段によりアプリケーションの応答不能状態の発生が検知されることを条件に、当該アプリケーションに対する前記キーストローク数を一時記憶する操作イベント数保存手段と、
    前記キーストローク数を前記サーバ装置に送信する前に前記クライアント端末が再起動した場合には、再起動後に前記操作イベント数保存手段に一時記憶されている前記キーストローク数を前記サーバ装置に送信する操作イベント数送信手段と、を備える
    請求項1または2に記載のシステム。
  4. 前記クライアント端末は、
    前記アプリケーションを起動したことに応じて、起動したアプリケーションおよび前記アプリケーションの実行環境の情報に応じたクラスの前記推定キーストローク数を取得する推定応答不能情報取得手段と、
    前記キーストローク数が、前記推定キーストローク数より少ない所定の閾値に達したことに応じて、前記アプリケーションのユーザにその旨を報知する報知手段と、
    を更に備える請求項1から3のいずれかに記載のシステム。
  5. 前記応答不能推定手段は、前記推定キーストローク数をサポートベクターとするサポートベクターマシンにより前記応答不能ログ情報を分類する請求項1から請求項4のいずれかに記載のシステム。
  6. 前記割込検知手段は、前記アプリケーションが停止した場合に応答不能となったと判定する請求項1から請求項5のいずれかに記載のシステム。
  7. 前記実行環境の情報は、前記アプリケーションが起動しているクライアント端末の性能、および同時に起動しているアプリケーションの情報を含む請求項1から請求項6のいずれかに記載のシステム。
  8. 夫々が記憶部及び制御部を備えるクライアント端末とサーバ装置とを含んで構成されるシステムが、クライアント端末におけるメモリリークの発生を原因とするアプリケーションの応答不能時を推定する方法であって、
    アプリケーション検知手段が、前記アプリケーションの起動を検知するステップと、
    操作イベントカウント手段が、前記アプリケーションに対して行われたユーザのキーストローク数をカウントするステップと、
    割込検知手段が、前記アプリケーションの応答不能状態の発生を検知するステップと、
    応答不能ログ情報記録手段が、前記アプリケーションの応答不能が検知されたことに応じて、応答不能となったアプリケーション情報、当該アプリケーションに対する前記キーストローク数および前記アプリケーションの実行環境の情報を応答不能ログ情報として関連付けて前記サーバ装置の記憶部に記憶するステップと、
    応答不能推定手段が、記憶した前記応答不能ログ情報に基づいて、アプリケーションが所定の実行環境で起動した場合にメモリリークの発生を原因とする応答不能を推定する推定キーストローク数を算出するステップと、
    を含み、
    前記算出するステップは、
    分類手段が、記憶した前記応答不能ログ情報を、前記アプリケーションおよび前記アプリケーションの実行環境に基づいてクラス毎に分類するステップと、
    推定手段が、分類したクラス毎に、当該クラスに含まれる前記応答不能ログ情報の前記キーストローク数に基づいて前記推定キーストローク数を算出するステップと、
    を含む方法。
  9. クライアント端末とサーバ装置とを含んで構成されるシステムに、メモリリークの発生を原因とするアプリケーションの応答不能時を推定させるプログラムであって、
    アプリケーション検知手段が、前記アプリケーションの起動を検知するステップ
    操作イベントカウント手段が、前記アプリケーションに対して行われたユーザのキーストローク数をカウントするステップ
    割込検知手段が、前記アプリケーションの応答不能状態の発生を検知するステップ
    応答不能ログ情報記録手段が、前記アプリケーションの応答不能が検知されたことに応じて、応答不能となったアプリケーション情報、当該アプリケーションに対する前記キーストローク数および前記アプリケーションの実行環境の情報を応答不能ログ情報として関連付けて前記サーバ装置の記憶部に記憶するステップ
    応答不能推定手段が、記憶した前記応答不能ログ情報に基づいて、アプリケーションが所定の実行環境で起動した場合にメモリリークの発生を原因とする応答不能を推定する推定キーストローク数を算出するステップ
    を実行させ、
    前記算出するステップにおいて、
    分類手段が、記憶した前記応答不能ログ情報を、前記アプリケーションおよび前記アプリケーションの実行環境に基づいてクラス毎に分類するステップ
    推定手段が、分類したクラス毎に、当該クラスに含まれる前記応答不能ログ情報の前記キーストローク数に基づいて前記推定キーストローク数を算出するステップ
    を実行させるプログラム。
JP2008154701A 2008-06-12 2008-06-12 アプリケーションの応答不能時を推定するシステム、方法、およびプログラム Expired - Fee Related JP4937194B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008154701A JP4937194B2 (ja) 2008-06-12 2008-06-12 アプリケーションの応答不能時を推定するシステム、方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008154701A JP4937194B2 (ja) 2008-06-12 2008-06-12 アプリケーションの応答不能時を推定するシステム、方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2009301298A JP2009301298A (ja) 2009-12-24
JP4937194B2 true JP4937194B2 (ja) 2012-05-23

Family

ID=41548122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008154701A Expired - Fee Related JP4937194B2 (ja) 2008-06-12 2008-06-12 アプリケーションの応答不能時を推定するシステム、方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP4937194B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5368339B2 (ja) * 2010-02-24 2013-12-18 三菱電機株式会社 データバックアップ装置
JP5711699B2 (ja) * 2012-07-19 2015-05-07 日本電信電話株式会社 品質劣化要因判別装置及び方法及びプログラム
US10607155B2 (en) 2017-03-30 2020-03-31 Intel Corporation Diagnosing slow tasks in distributed computing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08316958A (ja) * 1995-05-22 1996-11-29 Nippon Telegr & Teleph Corp <Ntt> ネットワーク管理装置及びその方法
JPH10105440A (ja) * 1996-09-25 1998-04-24 Hitachi Ltd システム障害監視装置及び記録媒体
US6594784B1 (en) * 1999-11-17 2003-07-15 International Business Machines Corporation Method and system for transparent time-based selective software rejuvenation
JP2001306345A (ja) * 2000-04-17 2001-11-02 Toshiba Tec Corp 情報処理装置及びposターミナル
US7194445B2 (en) * 2002-09-20 2007-03-20 Lenovo (Singapore) Pte. Ltd. Adaptive problem determination and recovery in a computer system
JP4699095B2 (ja) * 2005-06-06 2011-06-08 オリンパスイメージング株式会社 ソフトウエアの使用制限方法、使用制限プログラム及び記録媒体
JP2007172131A (ja) * 2005-12-20 2007-07-05 Nec Fielding Ltd 障害予測システム、障害予測方法、障害予測プログラム
JP2008065436A (ja) * 2006-09-05 2008-03-21 Nec Corp 携帯型情報端末機器の不具合改修システム、およびそれに用いる携帯型情報端末機器、方法、プログラム

Also Published As

Publication number Publication date
JP2009301298A (ja) 2009-12-24

Similar Documents

Publication Publication Date Title
CN109783262B (zh) 故障数据处理方法、装置、服务器及计算机可读存储介质
EP2523115B1 (en) Operation management device, operation management method, and program storage medium
US8132170B2 (en) Call stack sampling in a data processing system
CN106789306B (zh) 通信设备软件故障检测收集恢复方法和系统
US20170116014A1 (en) Policy based application monitoring in virtualized environment
US8832501B2 (en) System and method of processing failure
US8429455B2 (en) Computer system management method and management system
WO2012046293A1 (ja) 障害監視装置、障害監視方法及びプログラム
JP2015028700A (ja) 障害検知装置、障害検知方法、障害検知プログラム及び記録媒体
US20220107858A1 (en) Methods and systems for multi-resource outage detection for a system of networked computing devices and root cause identification
JP2011103030A (ja) インシデント管理方法および運用管理サーバ
JP2010086364A (ja) 情報処理装置、動作状態監視装置および方法
JP4937194B2 (ja) アプリケーションの応答不能時を推定するシステム、方法、およびプログラム
JP2016224883A (ja) 異常検出方法、情報処理装置および異常検出プログラム
CN109586989A (zh) 一种状态检查方法、装置及集群系统
US20140067912A1 (en) System for Remote Server Diagnosis and Recovery
CN112988442A (zh) 一种服务器运行阶段传送故障信息的方法和设备
JP6504610B2 (ja) 処理装置、方法及びプログラム
CN112506693A (zh) 一种记录异常信息的方法、装置、存储介质和电子设备
JP2018180982A (ja) 情報処理装置、およびログ記録方法
JP5970987B2 (ja) 故障検出装置、故障検出方法および故障検出プログラム
JP2001331330A (ja) プロセス異常検知及び復旧システム
CN110532160B (zh) 一种bmc记录服务器系统热重启事件的方法
JP2006227962A (ja) アプリケーションタスク監視システムおよび方法
CN112527594A (zh) 一种硬盘巡检方法、装置及系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4937194

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120312

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20120710

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees