JP2010191738A - 障害解析支援システム - Google Patents

障害解析支援システム Download PDF

Info

Publication number
JP2010191738A
JP2010191738A JP2009036082A JP2009036082A JP2010191738A JP 2010191738 A JP2010191738 A JP 2010191738A JP 2009036082 A JP2009036082 A JP 2009036082A JP 2009036082 A JP2009036082 A JP 2009036082A JP 2010191738 A JP2010191738 A JP 2010191738A
Authority
JP
Japan
Prior art keywords
information
failure
unit
failure detection
analysis
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.)
Granted
Application number
JP2009036082A
Other languages
English (en)
Other versions
JP5384136B2 (ja
Inventor
Takehiko Nagano
岳彦 長野
Tomohiko Shigeoka
知彦 茂岡
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009036082A priority Critical patent/JP5384136B2/ja
Publication of JP2010191738A publication Critical patent/JP2010191738A/ja
Application granted granted Critical
Publication of JP5384136B2 publication Critical patent/JP5384136B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ユーザによるソフトウェア上の障害発生の有無の解析に際し、該ソフトウェアをトレースしたデータが膨大な量になっても、ユーザによる該データの解析時間を短縮できるようにする。
【解決手段】引き当て部29は保持部23からの障害検出手法に基づき記録部25から対応する種類のプログラムを引き当てる。このプログラムを障害検出処理部35へ出力する。引き当て部31は記録部9に記録される解析対象ソフトウェア1のトレース結果情報中から一定時間当りのトレース結果情報を読出す。読出した情報を加工部33へ出力する。加工部33は該情報を解析効率の良い形式の情報に変更する。記憶部27は加工部33により書き込まれた上記情報を処理部35へ出力する。処理部35は読み込んだプログラムを起動して解析対象ソフトウェア1における障害検出処理を実行する。
【選択図】図2

Description

本発明は、解析対象ソフトウェアが搭載された障害被検出装置と、上記被検出装置から提供される情報を基に、上記対象ソフトウェアにおいて発生した障害を検出する障害検出装置と、を備える障害解析支援システムに関する。
従来、計算機システムの技術分野において、CPUの負荷低減を図り、使い勝手の良い、実行ログの記録、該実行ログの表示方法、該表示方法を用いた計算機システム、及び該表示方法がプログラムされ、記録される記録媒体の提供を目的とした提案が行われている。該提案では、計算機システムにおけるプログラムの実行ログの状態遷移が時系列的に表示され、該表示に際し、時間当たりの実行ログの状態遷移発生の頻度に従って時間軸における幅が可変とされる。また、該提案では、アプリケーション(プログラム)の他に、一度ログバッファに記録された実行ログが必要か否かをチェックする最も優先度の低いタスクが備えられており、該ログチェックの結果が記録されたログに適当なマークが付されることにより、該マークが付されていないログのみが、他の計算機システムに転送されるようになっている(例えば特許文献1参照)。また、上記技術分野において、ステップ実行をしながら障害を解析する手法や、デバッグ情報を出力して後から解析する手法等も知られている(例えば非特許文献1参照)。また、上記に加えて、解析対象の挙動に関する情報を取得するトレースの実行に、一般的なイベントトレーサを用いる手法も知られている(例えば非特許文献2参照)。更に、上記に加えて、描画の実施に際しての実装に、公開ツールを用いる手法も知られている(例えば非特許文献3参照)。
特開平10-333938号公報 SWAP機構を用いた実行履歴の獲得について(情報処理学会研究報告[システムソフトウェアとオペレーティング・システム]Vol.97,No.20(19970227)) Measuring and Characterizing System Behavior Using Kernel - LevelEvent Logging http://sourceforge. net/projects/timedoctor
近年、携帯電話機端末や、テレビジョン受信機等の所謂コンシューマ機器
(組込み機器、若しくは組込み家電機器(製品)のことを指す。)の多機能化に伴い、該機器に搭載されるソフトウェアの規模も増大する傾向にある。一般に、ソフトウェアの規模が増大すると、それに伴って潜在的なバグの数も増加し、該ソフトウェアが搭載された製品の出荷後に上記潜在的なバグの存在に起因する不具合の発生する可能性が高くなる。そこで、このような状況を回避することを目的として、大規模なソフトウェアの開発を高品位に、且つ、高効率に行えるようにモデルベース開発(ソフトウェア開発において仕様をシミュレーション可能なモデルで表現し、各工程内でモデルのシミュレーションによる検証と修正の繰り返しを構成する開発手法のこと。)のようなソフトウェア開発の方法論に関する研究が進められている。また、上記手法に加えて、ソフトウェアプロダクトライン(ソフトウェアをドメインと称される小さな単位に再分化して開発する手法のこと。)のようなソフトウェア開発の方法論に関する研究も進められている。上述したモデルベース開発や、ソフトウェアプロダクトライン等の開発手法を採用して大規模なソフトウェアを開発することにより、該大規模なソフトウェアにおけるバグの発生数を、ある程度抑制することができる。しかし、上記何れの開発手法を採用しても、開発された大規模なソフトウェアにおけるバグを完全に取り除ける訳ではない。その理由としては、たとえ、上記のような新たな開発手法を導入しても、過去の資産(従来の組込み機器と、該組み込み機器に搭載された従来のソフトウェア)をそのまま再利用して大規模なソフトウェアを開発するために、潜在的なバグを抱えていることが挙げられる。また、開発すべきソフトウェアが、多くの種類の機器に搭載するため多岐に亘っている上に、それら数多くの種類のソフトウェアの早期開発が、多数のソフトウェア開発技術者に要求されており、それがソフトウェア開発技術者にとって大きな負担になっている。それ故、上述したような新たな開発手法の導入が徹底されていない点も、上記理由として挙げられる。
従来、ソフトウェアにバグが発生すると、その対策として既述の非特許文献1において示したようなステップ実行をしながら障害を解析する手法、又はデバッグ情報を出力して後から解析する手法の何れかが用いられる。しかし、前者の手法を採用すると、対話的な解析を行うために、タイミング依存等に代表される時間的な制約のあるアプリケーション(プログラム)のデバッグには不向きである。また、前者の手法には、バグの発生した箇所がおおまかに分かっているという条件や、バグの発生原因が分かっている等の条件を満たさない場合には、バグを再現させるために、対象のプログラムを実際に何度も何度も走らせてみることにより、言わば試行錯誤的に該バグの発生原因を見つけ出さないと問題を解決できないという欠点もある。一方、後者の手法を採用すると、解析に必要とするデバッグ情報の絞り込みができない場合に、出力情報が膨大な量になるので、解析自体が困難になるという問題が生じる。そこで、後者の手法を採用したことによって出力情報が膨大な量になった場合の対策として、既述の特許文献1で示したような計算機システムのイベントログの表示法に関し、時間当りのイベントログが緻密な部分での時間軸の目盛間隔、及び時間当りのイベントログが離散的な部分での時間軸の目盛間隔を動的に変化させることにより、表示ログの判別を容易にする手法が提案されている。
しかし、該提案に係る手法では、イベントログの密度が低い箇所(即ち、イベントログが離散的な部分)での時間軸の目盛の密度を高めることで、表示ログの見易さを向上させることは可能でも、ユーザにとって解析の対象であるデータの量が削減された訳ではない。そのため、対象になるソフトウェアのトレースが長時間に及び、それに伴って取得したイベントログの量が増大すると、ユーザが、取得したイベントログの解析に要する時間も該イベントログの量に比例して長くならざるを得なくなる。よって、ユーザによる、長時間のトレースの結果得られた膨大な量のイベントログの解析時間の短縮化を図ることができないという問題があった。
従って本発明の目的は、ユーザによるソフトウェア上の障害発生の有無の解析に際し、該ソフトウェアのトレースが長時間に及んだことにより取得したデータが膨大な量になった場合でも、ユーザが該膨大な量のデータを解析するのに要する時間を短縮することが可能な障害解析支援システムを提供することにある。
本発明に従う障害解析支援システムは、解析対象ソフトウェアが搭載された障害被検出装置と、上記障害被検出装置から提供される情報を基に、上記解析対象ソフトウェアにおいて発生した障害を検出する障害検出装置と、を備え、上記障害被検出装置が、上記解析対象ソフトウェアのトレースを実行するトレース実行部、を有し、上記障害検出装置が、上記障害被検出装置から出力される、上記トレース実行部によりトレースされた上記解析対象ソフトウェアに係わる情報を、解析効率の良い形式の情報に変更する情報変更部と、選択された障害検出手法に基づき、上記情報変更部から出力される情報を解析する情報解析部と、ユーザからの情報表示出力要求を契機として、上記情報解析部による解析の結果として得られた情報を、可視化された情報として表示出力する情報可視化処理部と、を有する。
本発明に従う好適な実施形態では、上記情報解析部が、上記情報の解析の結果から上記解析対象ソフトウェアにおける障害の発生時刻を算出する。
上記とは別の実施形態では、上記選択された障害検出手法が、予め複数種類設定されている障害検出手法の中から、ユーザにより指定されたものである。
また、上記とは別の実施形態では、上記情報変更部による変更対象にされる情報が、上記トレース実行部による、一定時間当たりのトレース結果に係わる情報である。
また、上記とは別の実施形態では、上記情報可視化処理部が、ユーザにより指定された障害検出手法の名称に係わる情報をキーとして、上記情報変更部により解析効率の良い形式に変更された情報の中から、対応する情報を引き当て、該引き当てた情報の中から、上記解析対象ソフトウェアにおける障害発生時刻に係わる情報を抽出すると共に、該時刻情報に基づき、上記トレース結果に係わる情報の中から上記障害の検出箇所近傍の部位における情報を引き出す。
更に、上記とは別の実施形態では、上記情報可視化処理部が、上記トレース結果に係わる情報の中から引き出した上記障害の検出箇所近傍の部位における情報と、上記情報変更部から出力される、上記解析効率の良い形式に変更された情報とから、上記障害の検出箇所近傍の部位におけるトレース結果を描画するための処理、及び該描画処理が施された後の可視化画像情報に対し強調表示を行うための処理を施す。
本発明によれば、ユーザによるソフトウェア上の障害発生の有無の解析に際し、該ソフトウェアのトレースが長時間に及んだことにより取得したデータが膨大な量になった場合でも、ユーザが該膨大な量のデータを解析するのに要する時間を短縮することが可能な障害解析支援システムを提供することができる。
本発明の一実施形態に係る障害解析支援システムの全体構成を示す機能ブロック図。 図1に記載した障害検出部の内部構成を示す機能ブロック図。 図1に記載した可視化処理部の内部構成を示す機能ブロック図。 図1に記載した障害解析支援システムにおけるCPU使用効率より生成されたメタデータのデータ構造の一例を示す説明図。 図1に記載した障害解析支援システムにおけるプロセス単位でのCPU使用効率より生成されたメタデータのデータ構造の一例を示す説明図。 図3に記載した可視化処理部により可視化されたピーク検出結果の一態様を示した説明図。 CPUの負荷よりピーク箇所を検出するに際しての、障害検出処理部によるピーク検出処理のシーケンスの一例を示すフローチャート。
以下、本発明の実施の形態を、図面により詳細に説明する。
図1は、本発明の一実施形態に係る障害解析支援システムの全体構成を示す機能ブロック図である。
上記障害解析支援システムは、図1に示すように、ターゲットシステム100と、ホストコンピュータ(以下では、「ホスト装置」と表記する。)300と、を含む。ターゲットシステム100とホスト装置300との間は、イントラネット、若しくはインターネット等の通信ネットワークを通じて接続されるか、或いは、双方が相手方から送信された電気信号を直接受信することができるように、一般的な(規格の)信号線路を通じて接続されている。
ターゲットシステム100は、解析対象ソフトウェア1と、トレース実行部3と、トレース結果送信部5と、を備える。ここで、ターゲットシステム100とは、既述のような多機能化されたコンシューマ機器(携帯電話機端末やテレビジョン受信機等の組込み機器)のことを指す。ターゲットシステム100には、演算処理や情報記憶や情報の入/出力等の情報処理機能を有するハードウェアが内蔵されており、該ハードウェアには、上記多機能化を実現するための大規模化したソフトウェアが搭載されている。従って、上記解析対象ソフトウェア1が、上記大規模化したソフトウェアに該当する。トレース実行部3は、上述した情報記憶のハードウェアに搭載されたソフトウェアにより、演算処理のハードウェアにおいて実現され、また、トレース結果送信部5は、上記情報の入/出力のハードウェアにおいて実現される。
トレース実行部3は、解析対象ソフトウェア1を入力して、該解析対象ソフトウェア1に対しトレースを実行することにより、該解析対象ソフトウェア1の挙動に関する情報を取得すると共に、取得した該挙動に関する情報を、該解析対象ソフトウェア1のトレース結果に係わる情報としてトレース結果送信部5へ出力する。本実施形態では、上記トレース実行部3には、例えば、非特許文献1に開示されているような、一般的なイベントトレーサが用いられる。また、上記トレース実行部3として、ICE(デバッグ用のハードウェアであるイン・サーキット・エミュレータの略記。CPUを外部から制御してシステム全体の動きを止め、メモリ内部を覗く機能を有する。)で取得した一般的なCPUのプログラムカウンタトレース機能を用いることとしても差し支えない。
トレース結果送信部5は、トレース実行部3から出力されるトレース結果に係わる情報を受けて、該トレース結果に係わる情報をホスト装置300へ送信する。
ホスト装置300は、ターゲットシステム100から出力される、該システム100上で動作するソフトウェア、即ち、解析対象ソフトウェア1のトレース情報を基に、該(解析対象)ソフトウェア1の解析を実行する。ホスト装置300は、メタ情報記録部7と、トレース結果記録部9と、トレース結果書き込み部11と、トレース結果受信部13と、メタ情報書き込み部15と、障害検出部17と、可視化処理部19と、ユーザ要求収集部21と、ユーザ要求保持部23と、を備える。メタ情報記録部7、及びトレース結果記録部9に対応するホスト装置300のハードウェア資源は、該ホスト装置300に備えられるメモリである。また、トレース結果書き込み部13、メタ情報書き込み部15、障害検出部17、可視化処理部19、ユーザ要求収集部21、及びユーザ要求保持部23は、上述したメモリ(即ち、情報記憶のハードウェア)に搭載されたソフトウェア(アプリケーション・プログラム)により、CPU(即ち、演算処理のハードウェア)において実現される。また、トレース結果受信部13は、該ホスト装置300の入/出力インタフェース(情報入/出力のハードウェア)において実現される。
トレース結果受信部13は、(上記ターゲットシステム100の)トレース結果送信部5から送信される上記トレース結果に係わる情報を受信し、該受信したトレース結果に係わる情報を、トレース結果書き込み部11へ出力する。トレース結果書き込み部11は、トレース結果受信部13から出力される上記トレース結果に係わる情報を入力し、該入力したトレース結果に係わる情報を、トレース結果記録部9へ書き込むための処理を実行する。トレース結果記録部9は、トレース結果書き込み部11により書き込まれた上記トレース結果に係わる情報を、保持すると共に、障害検出部17からのトレース結果の読み出し要求に応じて、上記保持しているトレース結果に係わる情報を障害検出部17、及び可視化処理部19へ夫々出力する。
ユーザ要求収集部21は、障害検出部17から出力される複数種類の障害検出手法に係わる情報を入力し、該入力した複数種類の障害検出手法に係わる情報を、例えば、(該ホスト装置300の)CPUの制御下にあるマン・マシンインタフェースである表示部に、ユーザが認識可能な表示態様で出力する。ユーザ要求収集部21は、ユーザ24が、上記マン・マシンインタフェースである(ホスト装置300の)操作部を操作したことにより該操作部から指令信号を入力すると、該指令信号に基づき、ユーザ24が上記表示されている複数種類の障害検出手法に係わる情報の中から何れの種類の障害検出手法(に係わる情報)を指定したか判別する。ユーザ要求収集部21は、上記判別処理を行った結果として、上記複数種類の障害検出手法(に係わる情報)の中から選択した特定の障害検出手法(に係わる情報)を、ユーザ24が指定した障害検出手法(に係わる情報)として、ユーザ要求保持部23へ出力する。
ユーザ要求保持部23は、ユーザ要求収集部21から出力される、上記ユーザ24が指定した障害検出手法(に係わる情報)をユーザ要求として保持すると共に、該障害検出手法に係わる情報を、障害検出部17からの障害検出手法(に係わる情報)の読み出し要求に応じて障害検出部17へ出力する。ユーザ要求保持部23は、また、可視化処理部19からの障害検出手法(に係わる情報)の読み出し要求に応じて、ユーザ要求として保持している上記障害検出手法(に係わる情報)を、可視化処理部19へ出力する。
メタ情報記録部7は、メタ情報書き込み部15により書き込まれたメタ情報(後述する障害に係わる情報、及び解析に係わる情報)を保持すると共に、可視化処理部19からのメタ情報読み出し要求に応じて、該保持しているメタ情報を、可視化処理部19へ出力する。
障害検出部17には、予め複数種類の障害検出手法に係わる情報が保持されており、例えば、ホスト装置300の起動時等の適宜のタイミングで上記複数種類の障害検出手法に係わる情報をユーザ要求収集部21へ出力する。障害検出部17は、ユーザ要求保持部23から出力される上記指定された障害検出手法に係わる情報と、トレース結果記録部9から出力される上記トレース結果に係わる情報とを、夫々入力する。そして、上記障害検出手法に係わる情報に基づき、上記トレース結果に係わる情報を解析することにより、上記トレース結果において発生した障害を検出する。障害検出部17は、上記検出した障害に係わる情報と、上記トレース結果の解析に係わる情報とを、メタ情報書き込み部15へ出力する。
メタ情報書き込み部15は、障害検出部17から出力される上記障害に係わる情報、及び上記解析に係わる情報を夫々入力する。そして、上記障害に係わる情報、及び上記解析に係わる情報を、メタ情報としてメタ情報記録部7へ書き込むための処理を実行する。可視化処理部19は、メタ情報記録部7から出力される上記メタ情報と、トレース結果記録部9から出力される上記トレース結果に係わる情報と、ユーザ要求保持部23から出力される上記指定された障害検出手法に係わる情報と、を共に入力する。そして、上記指定された障害検出手法に基づき、上記メタ情報から導出される上記解析対象ソフトウェア1上の障害発生箇所、及び付近の状態を可視化(可視画像化)するための処理を実行する。
図2は、図1に記載の障害検出部17の内部構成を示す機能ブロック図である。
障害検出部17は、既述のように、ユーザ要求保持部23に保持されている、ユーザ24により指定された障害検出手法に係わる情報を基に、トレース結果記録部9に記録されている解析対象ソフトウェア(1)のトレース結果に係わる情報を解析すると共に、その解析結果から、該解析対象ソフトウェア(1)上で発生した障害の発生時刻を算出する。障害検出部17は、図2に示すように、障害情報検出手法記録部25と、加工データ記憶部27と、障害検出手法引き当て部29と、トレース結果引き当て部31と、トレース結果加工部33と、障害検出処理部35と、を含む。
障害情報検出手法記録部25は、複数種類の障害検出手法の各々に対応する複数種類の障害検出処理プログラムを保持すると共に、上記保持している複数種類の障害検出処理プログラムの中から障害検出手法引き当て部29により引き当てられた障害検出処理プログラムを、障害検出手法引き当て部29へ出力する。障害検出手法引き当て部29は、ユーザ要求保持部23から出力される上記指定された障害検出手法に係わる情報を入力すると共に、該障害検出手法に係わる情報に基づき、障害情報検出手法記録部25に保持されている複数種類の障害検出処理プログラムの中から対応する種類の障害検出処理プログラムを引き当てる。そして、該引き当てた1種類の障害検出処理プログラムを、障害検出手法記録部25から入力する。障害検出手法引き当て部29は、障害検出手法記録部25から入力した上記1種類の障害検出処理プログラムを、障害検出処理部35へ出力する。
トレース結果引き当て部31は、障害検出手法引き当て部29による上記障害検出処理プログラムの引き当て処理を実行した後に、トレース結果記録部9に記録されている上記解析対象ソフトウェア1のトレース結果に係わる情報の中から、一定時間当たりのトレース結果に係わる情報を、上記解析対象ソフトウェア1に係わる処理が終了するまでの間に読み出す。そして、該読み出した(一定時間当たりのトレース結果に係わる)情報を、トレース結果加工部33へ出力する。トレース結果加工部33は、トレース結果引き当て部31から出力される上記一定時間当たりのトレース結果に係わる情報を読み込んで、該情報を解析効率の良い形式の情報(即ち、メタデータ)に変更する。該情報は、トレース結果加工部33により、加工データ記憶部27に書き込まれる。加工データ記憶部27は、トレース結果加工部33により書き込まれた上記情報を、一時的に保持すると共に、障害検出処理部35からのデータ読み出し要求に応じて、該情報を、障害検出処理部35へ出力する。
障害検出処理部35は、障害検出手法引き当て部29から出力される上記1種類の障害検出処理プログラムを読み込むと共に、加工データ記憶部27から出力される上記情報をも読み込む。そして、該読み込んだ障害検出処理プログラムを起動して、該読み込んだ情報を基に、解析対象ソフトウェア1における障害(データ)の検出処理を実行する。障害検出処理部35により検出された上記障害(データ)は、障害検出処理部35からメタ情報書き込み部15へ出力される。
図3は、図1に記載の可視化処理部19の内部構成を示す機能ブロック図である。
可視化処理部19は、図3に示すように、メタ情報引き当て部37と、トレース結果引き当て部39と、表示箇所抽出部41と、描画実施部43と、を含む。メタ情報引き当て部37は、表示箇所抽出部41から出力される、表示箇所抽出部41により指定された障害検出手法名(即ち、障害検出処理プログラム名)に係わる情報をキーとして、メタ情報記録部7に保持されているメタ情報の中から対応するメタ情報の引き当てを行う。該引き当てられたメタ情報は、メタ情報引き当て部37から表示箇所抽出部41へ出力される。
トレース結果引き当て部39は、表示箇所抽出部41により指定された時刻情報をキーとして、トレース結果記録部9に保持されているトレース結果に係わる情報の中から解析対象ソフトウェア1において発生した障害の検出箇所の近傍のトレース結果に係わる情報の引き当てを行う。該引き当てられたトレース結果に係わる情報は、トレース結果引き当て部39から表示箇所抽出部41へ出力される。表示箇所抽出部41は、ユーザ要求保持部23から出力されるユーザ24が指定した上記障害検出手法に係わる情報、即ち、ユーザ24の指定に対応する障害検出処理プログラムを読み込むと共に、該読み込んだ障害検出処理プログラム名に係わる情報を、(ユーザ24により)指定された障害検出手法名に係わる情報として、メタ情報引き当て部37へ出力する。表示箇所抽出部41は、また、メタ情報引き当て部37から出力される上記メタ情報を読み込んで、上記障害検出処理プログラムを起動することにより、上記メタ情報から上記解析対象ソフトウェア1において発生した障害に係わる時刻情報を抽出し、該抽出した時刻情報を、トレース結果引き当て部39へ出力する。表示箇所抽出部41は、更に、トレース結果引き当て部39から出力される、該トレース結果引き当て部39において引き当てられた上記トレース結果に係わる情報を、上記障害の検出箇所近傍のトレース結果に係わる抽出結果として読み込む。表示箇所抽出部41は、上記抽出結果、及び上記メタ情報を、描画実施部43へ出力する。
描画実施部43は、表示箇所抽出部41から出力される上記抽出結果、及び上記メタ情報を入力し、これらの情報に基づき、上記障害の検出箇所近傍のトレース結果を描画するための処理、及び該処理の結果に対する上記障害の検出箇所に対し強調表示を行うための処理を施す。そして、上記処理を経た後の可視化された情報は、描画実施部43から画面表示部45へ表示出力される。
なお、本実施形態では、描画実施部43に係わる実装については、例えば、上掲の非特許文献2において開示されているような、可視化処理機能や、非特許文献3において開示されているような公開ツールそのものか、若しくは、それらに準ずるものが採用されるものとする。
図4は、図1に記載の障害解析支援システムにおけるCPU使用効率より生成されたメタデータのデータ構造の一例を示す説明図である。
上記メタデータは、図4に示すように、障害検出手法情報記録欄51と、時間情報記録欄53と、CPU使用率情報記録欄55と、障害情報登録欄57と、を含む。障害検出手法情報記録欄51は、ユーザ(24)が指定した障害検出手法が記録されるもので、本実施形態では、障害検出手法情報記録欄51には、“CPU使用率”が記録されている。時間情報記録欄53は、上記システムにおいて、“CPU使用率”という障害検出手法を用いて、実際にCPU使用率を測定した際に要した時間が記録されている。本実施形態では、時間情報記録欄53には、“0、1、2、3、4、5、・・・、n”が記録されている。CPU使用率情報記録欄55は、上記時間情報記録欄53に記録されている個々の時間(時点)におけるCPU使用率が記録されている。本実施形態では、CPU使用率情報記録欄55における、時間“0”、及び時間“1”に夫々対応する箇所には、“10%”が、時間“2”に対応する箇所には、“50%”が、時間“3”に対応する箇所には、“80%”が、時間“4”に対応する箇所には、“90%”が、夫々記録されている。また、時間“5”に対応する箇所には、“40%”が、そして、時間“n”に対応する箇所には、“20%”が、夫々記録されている。障害情報登録欄57は、上述した解析対象ソフトウェア1に発生した障害が登録されているかどうかを示すためのフラグが登録される。本実施形態では、障害情報登録欄57における、時間“3”、及び時間“4”に夫々対応する箇所には、上記発生した障害が登録されている旨のフラグが“オン”になっている。
図5は、図1に記載の障害解析支援システムにおけるプロセス単位でのCPU使用効率より生成されたメタデータのデータ構造の一例を示す説明図である。
上記メタデータは、図5に示すように、障害検出手法情報記録欄61と、時間情報記録欄63と、動作プロセスID記録欄65と、CPU占有時間情報記録欄67と、障害情報登録欄69と、を含む。障害検出手法情報記録欄61は、図4で示した障害検出手法情報記録欄51と同様に、ユーザ(24)が指定した障害検出手法が記録されるもので、本実施形態では、障害検出手法情報記録欄61には、“CPU使用率”が記録されている。また、時間情報記録欄63も、図5で示した時間情報記録欄53と同様に、上記システムにおいて、“CPU使用率”という障害検出手法を用いて、実際にCPU使用率を測定した際に要した時間が記録されている。なお、時間情報記録欄63に記録される各々の時間情報は、図4で示した時間情報記録欄53に記録されている各々の時間情報と対応付けがなされている。動作プロセスID記録欄65は、時間情報記録欄63に記録されている時間内において動作していたプロセスのID(即ち、識別情報)が、記録されるもので、本実施形態では、動作プロセスID記録欄65には、時間“3”において動作していたプロセスのIDとして、3、5、1、2、4、5が、記録されている。
CPU占有時間情報記録欄67は、動作プロセスID記録欄65に記録されている複数のIDにより識別される個々のプロセスによるCPU占有時間が記録されるもので、該CPU占有時間とは、時間情報記録欄63に記録されている時間内において、何れのプロセスがどのタイミングでどれ位の時間、CPUを占有していたかを示している。本実施形態では、CPU占有時間情報記録欄67には、75ms、100ms、40ms、300ms、100ms、200ms、50ms、70ms、50ms、15msが記録されている。図5における左側から右側に向かって最初の75msは、ID=3で示されるプロセスがCPUを占有していた時間であり、2番目の100msは、CPUがアイドル状態であったことを示している。また、3番目の40msは、ID=5で示されるプロセスがCPUを占有していた時間であり、4番目の300msは、ID=1で示されるプロセスがCPUを占有していた時間である。また、5番目の100msは、CPUがアイドル状態であったことを示しており、6番目の200msは、ID=1で示されるプロセスがCPUを占有していた時間である。また、7番目の50msは、ID=2で示されるプロセスがCPUを占有していた時間であり、8番目の70msは、ID=4で示されるプロセスがCPUを占有していた時間である。更に、9番目の50msは、CPUがアイドル状態であったことを示しており、10番目の15msは、ID=5で示されるプロセスが、CPUを占有していた時間である。
障害情報登録欄69も、図4で示した障害情報登録欄57と同様に、上述した解析対象ソフトウェア1に発生した障害が登録されているかどうかを示すためのフラグが登録される。本実施形態では、障害情報登録欄69における、時間“3”の、上記4番目の300msに対応する箇所には、上記発生した障害が登録されている旨のフラグが“オン”になっている。
図6は、図3に記載の可視化処理部19により可視化されたピーク検出結果の一態様を示した説明図である。
図6で示すピーク検出結果において、図6(a)は、図4で示したメタデータを、可視画像化(グラフ化)したものである。図6(a)において、縦軸には、定義済みの画像ファイル(即ち、プログラムで分かり易く記したCPUの利用率のこと。階段波形状にて示される。)を重ね合わせたことが示されており、横軸は、時間軸(t)になっている。楕円により囲まれた領域である領域71は、上述した解析対象ソフトウェア1において発生した障害の箇所を示している。なお、上記楕円は、強調(箇所)を意味している。
図6で示すピーク検出結果において、図6(b)は、図4で示したメタデータ(即ち、図6(a))の一部である、図5で示したメタデータを、可視画像化(グラフ化)したものである。図6(b)において、縦軸には、IDLE、及びPID1乃至PID5(即ち、上述した定義済みの画像ファイルを重ね合わせたことを示す)が、また、横軸には、0、200、400、600、800、1000、1200が、夫々設定されている。楕円により囲まれた領域である領域73は、上記領域71と同様に、上述した解析対象ソフトウェア1において発生した障害の箇所を示している。なお、領域73(即ち、強調箇所)の描画については、上述した時刻情報を中心に、定義済みの画像ファイルを重ね合わせる処理を行うことにより、実現が可能である。
図7は、CPUの負荷よりピーク箇所を検出するに際しての、障害検出処理部35によるピーク検出処理のシーケンスの一例を示すフローチャートである。図7に示すフローチャートは、解析対象ソフトウェア1において生じ得る性能障害の一つであるCPU使用率の高騰(ピーク)の検出手法に係わるものである。図7のフローチャートで示す処理動作は、処理対象であるデータ全体の一括処理にも、また、処理対象であるデータを単位時間分に分割し、分割された各データ別に処理を行う分割処理にも、夫々対応が可能である。
図7において、障害検出処理部35は、まず、加工データ記憶部27より、該加工データ記憶部27に記憶されているトレースデータのうちから1イベント分のデータを読み込む(ステップS81)。次に、上記読み込んだ1イベント分のデータが、先頭データかどうかチェックする(ステップS82)。該チェックの結果、先頭データであると判断すると(ステップS82でYES)、障害検出処理部35は、先頭データであると判断した上記1イベント分のデータ中に記録されているイベント発生時刻に係わる情報を、先頭時刻として所定の記憶領域に記録し(ステップS83)、次のステップS84で示す処理動作に移行する。また、ステップS82でのチェックの結果、先頭データでないと判断した場合にも(ステップS82でNO)、直ちにステップS84で示す処理動作に移行する。
次に、ステップS81で読み込んだ1イベント分のデータが、上述したトレースデータの最終データかどうかチェックする(ステップS84)。該チェックの結果、上記トレースデータの最終データでないと判断すると(ステップS84でNO)、ステップS81で読み込んだ1イベント分のデータが、プロセス切り替えイベントかどうかチェックする。ここで、プロセスとは、OSレベルで見たプロセスのことであり、OSから見た1つの処理単位のことを指す(ステップS85)。該チェックの結果、プロセス切り替えイベントでないと判断すれば(ステップS85でNO)、ステップS81で示した処理動作に移行する。一方、該チェックの結果、プロセス切り替えイベントであると判断すると(ステップS85でYES)、次のステップS86で示す処理動作に移行する。
次に、障害検出処理部35は、ステップS81で読み込んだ1イベント分のデータが、最初のプロセス切り替えイベントかどうかチェックする(ステップS86)。該チェックの結果、最初のプロセス切り替えイベントであると判断すると(ステップS86でYES)、次のステップS87で示す処理動作に移行する。即ち、障害検出処理部35は、ステップS83で記録した先頭時刻と、ステップS81で読み込んだ1イベント分のデータの発生時刻とから(該最初のプロセス切り替えイベントの)実行時間を算出すると共に、該算出した実行時間を、所定の記憶領域に保存し、次のステップS89で示す処理動作に移行する(ステップS87)。
一方、該チェックの結果、最初のプロセス切り替えイベントであると判断すると(ステップS86でNO)、次のステップS88で示す処理動作に移行する。即ち、障害検出処理部35は、実行中であったプロセスの開始時刻と、ステップS81で読み込んだ1イベント分のデータの発生時刻とから(該最初のプロセス切り替えイベントの)実行時間を算出すると共に、該算出した実行時間を、所定の記憶領域に保存し、次のステップS89で示す処理動作に移行する(ステップS88)。障害検出部35は、次に、上記読み込み済みの最初のプロセス切り替えイベントの内部に記録されている、切り替え後の開始プロセスのID(n)を、所定の記憶領域に記録する処理を実行する(ステップS89)。該処理が終了すると、障害検出部35は、次に、ステップS81で読み込んだ1イベント分のデータの発生時刻を、ステップS89でID(n)を所定の記憶領域に記録したプロセス(即ち、切り替え後の開始プロセス)の開始時刻として、所定の記憶領域に記録する処理を実行し(ステップS90)、該処理が終了すると、ステップS81で示した処理動作に移行する。
そして、ステップS81で読み込んだ1イベント分のデータが、上述したトレースデータの最終データかどうかチェックし(ステップS84)。該チェックの結果、上記トレースデータの最終データであると判断すると(ステップS84でYES)、障害検出部35は、プロセス単位毎に記録されているCPU使用率とトレ−スの実行時間とを参照して、プロセス単位でのCPU使用率を算出する(ステップS91)。次に、ステップS91で算出したプロセス単位でのCPU使用率から、システム全体としてのCPU使用率を算出するための処理を実行する(ステップS92)。上記処理が終了すると、障害検出部35は、次に、ステップS91で求めたプロセス単位でのCPU使用率と、ステップS92で求めたシステム全体としてのCPU使用率とから、CPU使用率のピークを決定(検出)するための処理を実行する。この処理の仕方については、ユーザ(24)が設定した任意の手法を用いて差し支えない。例えば、CPU使用率の高い上位の10箇所からCPU使用率のピークを求める方法や、予め設定されている閾値を超えているCPU使用率だけをサンプリングして、それらサンプリングされた幾つかのCPU使用率の中からCPU使用率を求める方法等が想定され得る(ステップS93)。以上のような過程を経て生成されたCPU使用率のピークデータは、障害検出部35よりメタ情報書き込み部15に出力され(ステップS94)、これにより、障害検出部35による図7で示した一連の処理動作が終了することになる。
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
1 解析対象ソフトウェア
3 トレース実行部
5 トレース結果送信部
7 メタ情報記録部
9 トレース結果記録部
11 トレース結果書き込み部
13 トレース結果受信部
15 メタ情報書き込み部
17 障害検出部
19 可視化処理部
21 ユーザ要求収集部
23 ユーザ要求保持部
25 障害情報検出手法記録部
27 加工データ記憶部
29 障害検出手法引き当て部
31 トレース結果引き当て部
33 トレース結果加工部
35 障害検出処理部
37 メタ情報引き当て部
39 トレース結果引き当て部
41 表示箇所抽出部
43 描画実施部
45 画面表示部
100 ターゲットシステム
300 ホスト装置

Claims (6)

  1. 解析対象ソフトウェアが搭載された障害被検出装置と、前記障害被検出装置から提供される情報を基に、前記解析対象ソフトウェアにおいて発生した障害を検出する障害検出装置と、
    を備え、
    前記障害被検出装置が、
    前記解析対象ソフトウェアのトレースを実行するトレース実行部、
    を有し、
    前記障害検出装置が、
    前記障害被検出装置から出力される、前記トレース実行部によりトレースされた前記解析対象ソフトウェアに係わる情報を、解析効率の良い形式の情報に変更する情報変更部と、
    選択された障害検出手法に基づき、前記情報変更部から出力される情報を解析する情報解析部と、
    ユーザからの情報表示出力要求を契機として、前記情報解析部による解析の結果として得られた情報を、可視化された情報として表示出力する情報可視化処理部と、
    を有する障害解析支援システム。
  2. 請求項1記載の障害解析支援システムにおいて、
    前記情報解析部が、前記情報の解析の結果から前記解析対象ソフトウェアにおける障害の発生時刻を算出する障害解析支援システム。
  3. 請求項1記載の障害解析支援システムにおいて、
    前記選択された障害検出手法が、予め複数種類設定されている障害検出手法の中から、ユーザにより指定されたものである障害解析支援システム。
  4. 請求項1記載の障害解析支援システムにおいて、
    前記情報変更部による変更対象にされる情報が、前記トレース実行部による、一定時間当たりのトレース結果に係わる情報である障害解析支援システム。
  5. 請求項1記載の障害解析支援システムにおいて、
    前記情報可視化処理部が、ユーザにより指定された障害検出手法の名称に係わる情報をキーとして、前記情報変更部により解析効率の良い形式に変更された情報の中から、対応する情報を引き当て、該引き当てた情報の中から、前記解析対象ソフトウェアにおける障害発生時刻に係わる情報を抽出すると共に、該時刻情報に基づき、前記トレース結果に係わる情報の中から前記障害の検出箇所近傍の部位における情報を引き出す障害解析支援システム。
  6. 請求項5記載の障害解析支援システムにおいて、
    前記情報可視化処理部が、前記トレース結果に係わる情報の中から引き出した前記障害の検出箇所近傍の部位における情報と、前記情報変更部から出力される、前記解析効率の良い形式に変更された情報とから、前記障害の検出箇所近傍の部位におけるトレース結果を描画するための処理、及び該描画処理が施された後の可視化画像情報に対し強調表示を行うための処理を施す障害解析支援システム。
JP2009036082A 2009-02-19 2009-02-19 障害解析支援システム Expired - Fee Related JP5384136B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009036082A JP5384136B2 (ja) 2009-02-19 2009-02-19 障害解析支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009036082A JP5384136B2 (ja) 2009-02-19 2009-02-19 障害解析支援システム

Publications (2)

Publication Number Publication Date
JP2010191738A true JP2010191738A (ja) 2010-09-02
JP5384136B2 JP5384136B2 (ja) 2014-01-08

Family

ID=42817709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009036082A Expired - Fee Related JP5384136B2 (ja) 2009-02-19 2009-02-19 障害解析支援システム

Country Status (1)

Country Link
JP (1) JP5384136B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012053140A1 (ja) * 2010-10-20 2014-02-24 日本電気株式会社 サービス管理装置、表示方法およびプログラム
JP7011696B1 (ja) 2020-10-08 2022-01-27 レノボ・シンガポール・プライベート・リミテッド 電子機器、制御方法、及び学習済みモデル

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241227A (ja) * 1994-11-22 1996-09-17 Hewlett Packard Co <Hp> 記憶システムのパフォーマンス向上特定方法
JP2004348640A (ja) * 2003-05-26 2004-12-09 Hitachi Ltd ネットワーク管理システム及びネットワーク管理方法
JP2005327261A (ja) * 2004-04-16 2005-11-24 Ns Solutions Corp 性能監視装置、性能監視方法及びプログラム
JP2007207173A (ja) * 2006-02-06 2007-08-16 Fujitsu Ltd 性能分析プログラム、性能分析方法、および性能分析装置
WO2007148371A1 (ja) * 2006-06-19 2007-12-27 Nec Corporation 仮想マシンのための性能管理システムと性能管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241227A (ja) * 1994-11-22 1996-09-17 Hewlett Packard Co <Hp> 記憶システムのパフォーマンス向上特定方法
JP2004348640A (ja) * 2003-05-26 2004-12-09 Hitachi Ltd ネットワーク管理システム及びネットワーク管理方法
JP2005327261A (ja) * 2004-04-16 2005-11-24 Ns Solutions Corp 性能監視装置、性能監視方法及びプログラム
JP2007207173A (ja) * 2006-02-06 2007-08-16 Fujitsu Ltd 性能分析プログラム、性能分析方法、および性能分析装置
WO2007148371A1 (ja) * 2006-06-19 2007-12-27 Nec Corporation 仮想マシンのための性能管理システムと性能管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012053140A1 (ja) * 2010-10-20 2014-02-24 日本電気株式会社 サービス管理装置、表示方法およびプログラム
US9158614B2 (en) 2010-10-20 2015-10-13 Nec Corporation Service management device, display method, and information storage medium
JP5888239B2 (ja) * 2010-10-20 2016-03-16 日本電気株式会社 サービス管理装置、表示方法およびプログラム
JP7011696B1 (ja) 2020-10-08 2022-01-27 レノボ・シンガポール・プライベート・リミテッド 電子機器、制御方法、及び学習済みモデル
JP2022062520A (ja) * 2020-10-08 2022-04-20 レノボ・シンガポール・プライベート・リミテッド 電子機器、制御方法、及び学習済みモデル

Also Published As

Publication number Publication date
JP5384136B2 (ja) 2014-01-08

Similar Documents

Publication Publication Date Title
CN109086203B (zh) 页面的检测方法和装置
CN107025174B (zh) 用于设备的用户界面异常测试的方法、装置和可读储介质
KR101019210B1 (ko) 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법
CN103049371A (zh) Android应用程序测试方法和测试装置
US20140165023A1 (en) Method of recording and replaying call frames for a test bench
US10019346B2 (en) Generating software test script from video
CN109960642B (zh) 自动测试方法和装置
CN110580226B (zh) 操作系统级程序的目标码覆盖率测试方法、系统及介质
CN106776338B (zh) 一种测试方法、装置及服务器
CN111026601A (zh) Java应用系统的监控方法、装置、电子设备及存储介质
US9792402B1 (en) Method and system for debugging a system on chip under test
CN104699617A (zh) 一种游戏用自动化测试方法
CN109543417B (zh) 一种基于Qemu平台的漏洞挖掘方法和装置
CN110196801B (zh) 一种基于代码覆盖率的测试方法及装置
CN111897727A (zh) 软件测试方法、装置、计算机设备及存储介质
WO2007086150A1 (ja) メモリ破壊検出方法および装置
JP2010256997A (ja) フィールドトラブルのエラー再現システム、エラー再現調査方法およびシナリオ実行プログラム
JP5384136B2 (ja) 障害解析支援システム
KR101774815B1 (ko) 커서 위치 인식 테스트 자동화 시스템 및 이를 이용한 커서 위치 인식 테스트자동화 방법
CN105224465A (zh) 网页调试方法及装置
CN112861138A (zh) 软件安全性分析方法及分析装置、电子设备及存储介质
US10816600B1 (en) Protocol analysis and visualization during simulation
CN115756934A (zh) 一种应用崩溃分析方法及装置
JP5116606B2 (ja) ソフトウェア解析システム
CN114661586A (zh) 一种嵌入式计算机软件测试方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130903

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: 20130924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131002

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees