JP2020101938A - 分析プログラム、および分析装置 - Google Patents

分析プログラム、および分析装置 Download PDF

Info

Publication number
JP2020101938A
JP2020101938A JP2018238854A JP2018238854A JP2020101938A JP 2020101938 A JP2020101938 A JP 2020101938A JP 2018238854 A JP2018238854 A JP 2018238854A JP 2018238854 A JP2018238854 A JP 2018238854A JP 2020101938 A JP2020101938 A JP 2020101938A
Authority
JP
Japan
Prior art keywords
function
time
analysis
functions
unit
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
JP2018238854A
Other languages
English (en)
Other versions
JP7135831B2 (ja
Inventor
昌生 山本
Masao Yamamoto
昌生 山本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018238854A priority Critical patent/JP7135831B2/ja
Priority to US16/708,483 priority patent/US11314615B2/en
Publication of JP2020101938A publication Critical patent/JP2020101938A/ja
Application granted granted Critical
Publication of JP7135831B2 publication Critical patent/JP7135831B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】複数のOSを含むシステムにおけるプログラムの異常の発生原因を容易に分析する。【解決手段】分析プログラムは、複数のオペレーティングシステムが第1時間間隔毎に動作中のプログラムに対してサンプリングして得た、動作中の関数を識別可能な情報を取得し、関数毎に、取得された情報の数を集計し、情報の数が所定の条件を満たす関数について、第2時間間隔毎の情報の数を示す時系列データを生成し、時系列データに基づいて、複数の関数同士の因果関係分析を実行し、関数同士の因果関係分析結果を出力する処理をコンピュータに実行させる。【選択図】図18

Description

本発明は、分析プログラム、および分析装置に関する。
物理サーバ上で複数の仮想マシンが稼動するシステムにおいて、処理の遅延等の異常が発生した場合、原因の分析が行われる。この際、例えば、仮想マシンの動作状態を含むトレースデータ等を用いた原因の分析が行われる。
関連する技術として、複数のユーザ端末における遅延時間を記録し、遅延時間が閾値内にあることを条件としてユーザ端末からのリクエストを実行する技術が提案されている(例えば、特許文献1を参照)。
また、関連する技術として、物理計算機上で得られたトレースデータに基づいて、物理計算機上で稼動する仮想計算機上で得られたトレースデータを編集する技術が提案されている(例えば、特許文献2を参照)。
また、関連する技術として、仮想マシン上のプロセスの動作状態を含むトレース情報と複数の仮想マシンで動作するプロセスを識別するシンボルマップを関連付ける技術が提案されている(例えば、特許文献3を参照)。
また、関連する技術として、大規模分散処理システムにおいて、遅延している処理を抽出し、抽出した処理に関わるデータの入出力が実行された箇所を特定する技術が提案されている(例えば、特許文献4を参照)。
特開2015−139699号公報 特開2017−129931号公報 特開2014−170482号公報 特開2013−171542号公報
複数のOperating System(OS)のうちのいずれかのOS上で動作するプログラムで発生した異常の原因が、他のOS上で動作するプログラムに存在する可能性がある。例えば、仮想マシン上でプログラムの動作中に異常が発生した場合、異常の発生原因が、他の仮想マシンまたはホストOS等に存在する可能性がある。その場合、分析ツールを用いて異常の発生原因を分析したとしても、その分析ツールが複数のOSを含むシステムの分析に対応していない場合、原因の分析は容易ではない。
1つの側面として、本発明は、複数のOSを含むシステムにおけるプログラムの異常の発生原因を容易に分析することを目的とする。
1つの態様では、分析プログラムは、複数のオペレーティングシステムが第1時間間隔毎に動作中のプログラムに対してサンプリングして得た、動作中の関数を識別可能な情報を取得し、前記関数毎に、取得された前記情報の数を集計し、前記情報の数が所定の条件を満たす関数について、第2時間間隔毎の前記情報の数を示す時系列データを生成し、前記時系列データに基づいて、複数の前記関数同士の因果関係分析を実行し、前記関数同士の因果関係分析結果を出力する処理をコンピュータに実行させる。
1つの側面によれば、複数のOSを含むシステムにおけるプログラムの異常の発生原因を容易に分析することができる。
実施形態のシステムの全体構成の一例を示す図である。 分析装置2の機能構成の一例を示す図である。 OSのサンプリング方法の一例を示す図である。 複数の関数に対するサンプリング実施状況の一例を示す図である。 サンプルの適用除外方法の一例を示す図である。 所定時間内における関数の頻度の一例を示す図である。 所定時間内における関数の頻度の時系列データの一例を示す図である。 所定時間内における関数毎のサンプル数と頻度の一例を示す図である。 サンプル数の時系列データの一例を示す図である。 全OSのサンプル数の時系列データの一例を示す図である。 重複データ削除後における全OSのサンプル数の時系列データの一例を示す図である。 所定時間内における全OSの関数毎のサンプル数と頻度の一例を示す図である。 関数の因果関係の第1の例を示す図である。 関数の因果関係の第2の例を示す図である。 計算例における、サンプル数の時系列データの一例を示す図である。 関数の因果関係の第3の例を示す図である。 因果関係分析結果の一例を示す図である。 実施形態の分析装置の処理の一例を示すフローチャートである。 本実施形態の処理の適用例を示す図である。 分析装置のハードウェア構成の一例を示す図である。
例えば、仮想マシンのユーザが、仮想マシン上で動作するプログラムの異常を検知し、ホスト装置の管理者に問い合わせを行うとする。プログラムの異常は、例えば、特定の関数の処理時間が長期化し、処理遅延が発生することである。そして、管理者は、異常が発生している仮想マシンの性能プロファイル調査を行った結果、異常が発生している関数が特定される。そして、異常の発生原因を特定するために、例えば、命令トレース、関数トレース、メモリダンプ等の手法が用いられる。しかし、仮想マシンで動作する関数に異常が発生し、異常の発生原因が、その仮想マシンの外部(他の仮想マシン、ハイパーバイザ、またはホストOS等)に存在する可能性がある。このような場合、上記の手法は、複数のOSを含むシステムの分析に対応しておらず、異常の原因を特定することは困難である。
また、上記の各手法は、処理のオーバーヘッドが大きいという課題がある。また、関数トレースおよびメモリダンプを用いる場合、フックポイントの挿入など、プログラムの改変とリコンパイルを事前に行うため、ユーザの作業が増加する。また、関数トレースを用いる場合、調査対象が特定種類のプログラム(カーネルまたは特定のアプリケーション)に限定される可能性がある。そして、上記の各手法を用いて異常の分析を特定するためには、プログラム内容に精通しているユーザがトレースデータ、ソースコード等を分析することとなり、そのユーザの作業が増加する。
以下、図面を参照して、実施形態について説明する。図1は、実施形態のシステムの全体構成の一例を示す図である。実施形態のシステムは、ホスト装置1と分析装置2とを含む。実施形態のシステムは、複数のホスト装置1を含んでいてもよい。実施形態のシステムが複数のホスト装置1を含む場合、複数のホスト装置1は、Local Area Network(LAN)、またはWide Area Network(WAN)等の通信ネットワークを介して相互に通信を行うことができる。ホスト装置1および分析装置2は、例えば、サーバ、またはパーソナルコンピュータ等が適用される。分析装置2は、コンピュータの一例である。
ホスト装置1は、ホストOS11と、ホストOS11上で稼動する仮想マシン12とを含む。図1に示す例では、一つのホスト装置1で稼動する仮想マシン12の数は3であるが、仮想マシン12の数は、他の数であってもよい。仮想マシン12は、例えば、図示しない仮想化ソフトウェア上で稼動する。ホスト装置1は、ホストOS11および仮想化ソフトウェアの代わりにハイパーバイザを含んでいてもよい。
仮想マシン12は、OS13とOS13上で稼動する1または複数のアプリケーション14とを含む。各アプリケーション14は、1または複数の関数を含むプログラムにより実現される。仮想マシン12は、例えば、図示しない1または複数の仮想的なCentral Processing Unit(CPU)により動作する。
なお、以下の説明において、ホストOS11と仮想マシン12のOS13を区別しない場合、単にOSと称することがある。
分析装置2は、ホスト装置1とLANまたはWAN等の通信ネットワークを介して相互に通信を行うことができる。分析装置2は、ホスト装置1から収集した情報を用いて、仮想マシン12上で動作するプログラムの異常の分析を行う。
図2は、分析装置2の機能構成の一例を示す図である。分析装置2は、測定部21と指示部22と取得部23と集計部24と生成部25と分析部26と出力部27と記憶部28とを含む。
測定部21は、複数のOSに対するレイテンシを測定する。測定部21は、例えば、複数のOS(図1に示すホスト装置1のホストOS11および仮想マシン12のOS13)に所定のコマンド(例えば、pingコマンド)を送信し、応答を受信するまでの時間の1/2をレイテンシとして記憶部28に記憶する。
指示部22は、例えば、性能監視ツールから異常通知を受けた場合、分析対象のOS(ホスト装置1のホストOS11および仮想マシン12のOS13)にサンプリングの実行指示を送信する。なお、性能監視ツールは、分析装置2に予め搭載されており、各OSの性能を監視し、異常を検知した場合、通知を送る。
取得部23は、複数のOSが第1時間間隔毎に動作中のプログラムに対してサンプリングして得た、動作中の関数を識別可能な情報を、各OSから取得する。第1時間間隔は、例えば、1msである。以下、動作中の関数を識別可能な情報をサンプルと称することがある。取得部23は、取得したサンプルを、各OSがサンプリングした時刻に対応付けて記憶部28に記憶する。
集計部24は、関数毎に、所定時間内(例えば、30秒間)で取得されたサンプルの数を集計する。なお、集計部24は、サンプル数の集計対象の時間から、測定部21により測定された、OS毎のレイテンシに基づく時間を除外する。
集計部24は、例えば、各OSの集計結果においてサンプル数が大きい順に所定数(例えば、3個)の関数を時系列データの生成対象として選択する。または、集計部24は、例えば、全OSの集計結果においてサンプル数が大きい順に所定数(例えば、10個)の関数を時系列データの生成対象として選択してもよい。
生成部25は、サンプル数が所定の条件を満たす関数について、第2時間間隔毎のサンプルの数を示す時系列データを生成する。サンプル数が所定の条件を満たす関数は、例えば、上述のように、集計部24がサンプル数に基づいて選択した関数である。第2時間間隔は、例えば、1秒間である。なお、生成部25は、時系列データの生成対象の時間から、測定部21により測定された、OS毎のレイテンシに基づく時間を除外する。
分析部26は、生成部25が生成した時系列データに基づいて、複数の関数の因果関係分析を実行する。分析部26は、因果関係分析において、例えば、第2時間間隔内の全サンプル数に対する、第2時間間隔内の関数を示すサンプル数の割合(頻度)をその関数の動作確率として用いて、ベイズ推定を実行する。分析部26は、ベイズ推定を実行することにより、いずれかの関数が動作した場合に他の関数が動作していた確率を算出する。
出力部27は、分析部26が実行した因果関係分析の結果を出力する。出力部27は、例えば、表示装置であり、因果関係分析結果を表示させてもよい。出力部27は、例えば、因果関係分析結果を他の情報処理装置等に送信してもよい。
記憶部28は、分析装置2が実行する処理に関する各種データを記憶する。記憶部28は、例えば、測定部21が測定したレイテンシの測定結果、取得部23が取得したサンプル、集計部24による集計結果、生成部25が生成した時系列データ、分析部26による因果関係分析結果等を記憶する。
図3は、OSのサンプリング方法の一例を示す図である。図3は、仮想マシン12のOS13が行うサンプリング方法を示している。OS13は、カーネル33を含み、カーネル33は、サンプリングドライバ34を含む。CPU32は、仮想マシン12を稼動させる仮想CPUである。CPU32が有するPerformance Monitoring Counter(PMC)31は、例えば、レジスタのカウンタのオーバーフローをトリガーとした割り込みをサンプリングドライバ34に出力する。割り込み発生間隔は、例えば、1msであるとする。
サンプリングドライバ34は、PMC31からの割り込みに応じた間隔(第1間隔)で、アプリケーション14から情報を取得(サンプリング)する。サンプリングドライバ34が取得する情報は、動作中のプログラムや関数を識別可能な情報(サンプル)であり、例えばProcess identification(PID)、または命令アドレス等である。
図4は、複数の関数に対するサンプリング実施状況の一例を示す図である。図4に示すA,B,Cは、動作中の関数を示す。OS13のサンプリングドライバ34は、上述のように、PMC31からの割り込みに応じた間隔(例えば、1ms)で、アプリケーション14からサンプリングを行う。図4に示すように、サンプリングドライバ34は、一定間隔でサンプリングを行うため、関数の動作時間が長い程、その関数を示すサンプルを多く取得する。すなわち、取得されたサンプル数が関数の動作時間に対応する。PMC31を用いたサンプリングは、オーバーヘッドが低いため、サンプリングによる性能低下は少ない。
分析装置2は、性能監視ツールから性能低下を示す異常通知を受けた場合、指示部22からOS13にサンプリングの実行指示を送信する。OS13は、実行通知を受信後、所定時間(例えば、1分)、図3に示すようにサンプリングを行い、取得したサンプルを、分析装置2に送信する。OS13は、例えば、アプリケーション14からのサンプリングを常時実行し続けていてもよい。そして、指示部22からサンプリングの実行指示を受信した場合、実行指示の受信時点までの所定時間に収集されたサンプルを分析装置2に送信してもよい。
仮想マシン12が性能監視ツールを有している場合、OS13は、性能監視ツールから異常を示す通知を受けた後、所定時間サンプリングを行い、取得したサンプルを、分析装置2に送信する。また、仮想マシン12が性能監視ツールを有している場合、OS13は、サンプリングを常時実行し続けて、性能監視ツールから異常を示す通知を受けた場合、通知を受けた時点までの所定時間に収集されたサンプルを分析装置2に送信してもよい。
なお、仮想マシン12のOS13が実行するサンプリングについて説明したが、ホストOS11が行うサンプリングについても同様であるとする。
図5は、サンプルの適用除外方法の一例を示す図である。指示部22は、例えば、性能監視ツールから異常通知を受けた場合、分析対象のOS(ホスト装置1のホストOS11および仮想マシン12のOS13)にサンプリングの実行指示を送信する。実行指示には、例えば、Secure Shell(ssh)が用いられる。指示部22は、サンプリング実行指示とともにサンプリング間隔やサンプリング継続時間等のパラメータをホスト装置1に送信してもよい。
指示部22がサンプリング実行指示を送信した後、各OSがサンプリングを開始するまでの時間(レイテンシ)がOS毎に異なる可能性がある。そのため、各OSがサンプリングを開始するタイミングが異なる可能性がある。よって、測定部21は、予め、各OSにpingコマンドを送信し、応答を受信するまでの時間の1/2をレイテンシとして記憶部28に記憶する。測定部21が測定したレイテンシは、分析装置2がホスト装置1にサンプリング実行指示を送信してからOSがサンプリングを開始するまでの時間に相当すると考えられる。
図5に示す例では、複数のOS(OS,OS,OS)のレイテンシのうち、OSのレイテンシlが最も長い。この最も長いレイテンシlをLとする。集計部24は、指示部22が各OSにサンプリング実行指示を送信してからL秒が経過するまでの時間(除外対象時間)をサンプル数の集計対象の時間から除外する。同様に、生成部25は、その除外対象時間を時系列データ生成対象の時間から除外する。図5に示すように、OSにおける除外対象時間は、L−l秒であり、OSにおける除外対象時間は、l(L)秒であり、OSにおける除外対象時間は、L−l秒である。
以上のように、分析装置2は、サンプル数の集計対象の時間および時系列データの生成対象の時間から、OS毎のレイテンシに基づく時間を除外する。これにより、分析装置2は、複数のOSの時刻の起点合わせや時刻同期等の設定をしなくても、レイテンシの影響により分析結果の精度が低下することを防ぐことができる。
図6は、所定時間内における関数の頻度の一例を示す図である。図6に示す頻度(%)は、所定時間内におけるサンプリングで得られた合計サンプル数の関数毎の割合である。図6に示す例のように、関数毎の頻度は、関数A、B、Cの順に大きいとする。
図7は、所定時間内における関数の頻度の時系列データの一例を示す図である。図7に示す例のように、ほとんどの時間帯において、頻度は、関数A、B、Cの順に大きいとする。しかし、各関数の頻度が大きく増加している時間帯Tにおいて、関数Cの頻度が最も高くなっている。すなわち、分析装置2は、時系列データを生成することにより、関数の挙動の変化を確認することが可能となり、特定の時間帯において異常な動作をした関数を特定することが可能となる。これにより、分析装置2は、例えば、間欠障害を容易に発見することができる。
図8は、所定時間内における関数毎のサンプル数と頻度の一例を示す図である。図8に示すデータは、一つのOSのサンプルについて集計部24が集計した結果であるとする。集計部24は、所定時間内におけるサンプリングで得られたサンプルを、関数毎に集計する。図8に示す頻度は、所定時間内におけるサンプリングで得られた合計サンプル数に対する各関数のサンプル数の割合を示す。
集計部24は、例えば、サンプル数が大きい順に関数をソートし、上位N個(例えば、3個)の関数を時系列データの生成対象(例えば、図8の破線枠内の関数)として選択する。集計部24は、例えば、時系列データの生成対象の関数の比率の合計が所定値(例えば、80%)以上となるように、1または複数の関数を時系列データの生成対象として選択してもよい。選択する関数の数(上記のN個)または比率の合計(上記の所定値)の設定はユーザからの指示により変更可能であってもよい。例えば、ユーザが分析結果を参照してから、選択する関数の数または比率の合計を変更する指示を分析装置2に入力した場合、集計部24は、指示に従って設定変更を行い、再度の集計を行ってもよい。
集計部24は、各OSから取得したサンプルを用いて、同様の集計処理を行い、図8と同様の集計結果をOS毎に生成する。
図9は、サンプル数の時系列データの一例を示す図である。図9に示すデータは、一つのOSのサンプルについて集計した結果であるとする。T1、T2・・・Tnは、第2時間間隔の例である。図8に示すように、生成対象として、関数1、関数2、関数7が選択されていたとする。生成部25は、選択された関数について、第2時間間隔毎のサンプル数の時系列データを生成する。生成部25は、各OSのサンプルについて同様の処理を行い、図9と同様の時系列データをOS毎に生成する。
なお、生成部25は、全関数について図9と同様に時系列データを生成し、第2時間間隔毎に、サンプル数が大きい上位N個(例えば、3個)を抽出した新たな時系列データを生成してもよい。そして、分析部26は、その時系列データを用いて因果関係分析を行ってもよい。
図10は、全OSのサンプル数の時系列データの一例を示す図である。生成部25は、各OSの第2時間間隔毎のサンプル数の時系列データ(例えば、図9)を組み合わせて、図10の例に示す時系列データを生成する。なお、hostは、ホスト装置1の例であり、VM1、VM2は、仮想マシン12の例である。
図10において、VM2−hostは、ホスト装置1のホストOS11がサンプリングしたVM2を示すサンプルの数である。このサンプル数は、VM2のOS13がサンプリングしたサンプルの数(関数3−VM2、関数5−VM2、関数8−VM2のサンプル数)と重複する。すなわち、生成部25は、仮想マシン12がサンプリングして得たサンプルが存在する場合、ホストOS11がその仮想マシン12からサンプリングして得たサンプルの数を時系列データから削除する。
図11は、重複データ削除後における全OSのサンプル数の時系列データの一例を示す図である。図11に示す時系列データは、図10に示す時系列データから、VM2−hostのデータを除いたデータである。このように、生成部25は、仮想マシン12がサンプリングして得たサンプルが存在する場合、ホストOS11がその仮想マシン12からサンプリングして得たサンプルの数を時系列データから削除する。これにより、分析装置2は、重複する結果を出力することを防ぐことができる。
なお、図10および図11に示す時系列データは、図8に示すデータと同様に、第2時間間隔内におけるサンプリングで得られた合計サンプル数に対する各関数のサンプル数の割合を示す頻度を含んでいてもよい。
図12は、所定時間内における全OSの関数毎のサンプル数と頻度の一例を示す図である。図8に示す例は、集計部24が一つのOSのサンプルについて集計した結果であったが、図12に示す例は、集計部24が全OSのサンプルについて集計した結果である。頻度は、全OSから取得した合計サンプル数に対する各関数のサンプル数の割合を示す。なお、集計部24は、予め、ホストOS11が、仮想マシン12からサンプリングして得たサンプル数のデータを削除しておくとする。
集計部24は、図12に示すデータにおいて、例えば、サンプル数が大きい順に関数をソートし、上位N個(例えば、10)の関数を時系列データの集計対象(例えば、図12の破線枠内の関数)として選択する。集計部24は、例えば、集計対象の関数の頻度の合計が所定値(例えば、80%)以上となるように、1または複数の関数を時系列データの集計対象として選択してもよい。そして、生成部25は、選択された関数に関して、図11に示す例と同様の時系列データを生成する。
なお、同じ仮想マシン12上で動作する関数であっても、使用する物理CPUが異なる可能性がある。そのため、生成部25は、物理CPUを区別した時系列データを生成してもよい。
分析装置2は、図12に示す例のように、全OSのサンプル数をまとめて集計し、サンプル数が大きい関数を時系列データの集計対象とすることにより、例えば、分析対象のOSの数が多い場合であっても一度に集計ができ、集計処理を簡略化することができる。
次に、分析部26が行う計算例について詳細に説明する。分析部26は、例えば、ベイズ推定を用いて、関数が他の関数の動作の原因となっている確率を算出する。例えば、P(A)は、Aが起こる確率であり、P(B)は、Bが起こる確率であり、P(A|B)は、Bが起こった後にAが起こる確率であり、P(B|A)は、Aが起こった後にBが起こる確率であるとする。この場合、以下の式(1)が成立する。
P(A|B)=P(B|A)×P(A)/P(B) (1)
また、式(1)において、P(A)を事前確率、P(A|B)を事後確率と称する。事象Aの後に事象Bが起こるとすると、P(A|B)は、事象Bが起こった場合に事象Aが起こっていた確率である。
ある時間tの関数Fの頻度(%)をP(F(t))とすると、P(F(t))は、以下の式(2)のように表される。t-1からtは、第2時間間隔の例である。すなわち、関数Fの頻度は、第2時間間隔内の全サンプル数に対する、第2時間間隔内の関数Fを示すサンプル数の割合である。
P(F(t))=(t-1からtにおける関数Fのサンプル数)/(t-1からtにおける全関数の全サンプル数) (2)
そして、A=F(t)、B=F(t+1)として、式(1)に示したベイズ推定を用いると、以下の式(3)が得られる。
P(F(t)|F(t+1))=P(F(t+1)|F(t))×P(F(t))/P(F(t+1)) (3)
さらに、関数が複数存在する場合、各関数をFi(i=1,2,…)、Fj(j=1,2,…)と表すと、以下の式(4)が得られる。
P(Fi(t)|Fj(t+1))=P(Fj(t+1)|Fi(t))×P(Fi(t))/P(Fj(t+1)) (4)
図13は、関数の因果関係の第1の例を示す図である。図13は、F1(t+1)に関して、2つの原因候補関数F1(t)、F2(t)が存在する例を示す。例えば、F1(t+1)が動作する原因がF2(t)である確率は以下のように表される。
P(F2(t)|F1(t+1))=P(F1(t+1)|F2(t))×P(F2(t))/P(F1(t+1)) (5)
式(5)における右辺の3項のうちP(F2(t))とP(F1(t+1))は、それぞれの関数に関する頻度であるため、分析部26は、式(2)と同様の式により算出することができる。P(F1(t+1)|F2(t))は、F2(t)が起こってからF1(t+1)が起こる確率なので、分析部26は、時系列で保持されているサンプル上の時間tからt+1までの間のデータを用いて、以下の式(6)のように算出することができる。
P(F1(t+1)|F2(t))=(F2のサンプルの次にF1のサンプルが存在している数)/(F2のサンプル総数) (6)
図14は、関数の因果関係の第2の例を示す図である。図14は、関数F1(t+1)の発生に対して2つの原因候補関数が存在する例を示す。図14に示す例では、分析部26は、t−1まで時間をさかのぼってベイズ推定を適用する。例えば、関数F1(t+1)の発生原因がF2(t-1)である確率は、P(F2(t-1)|F1(t+1))と表される。P(F2(t-1)|F1(t+1))は、図14に示す経路1と経路2の合計であると考えられるため、分析部26は、まず、P(F2(t-1)|F1(t+1))のうちの経路1に関する部分を算出する。経路1は、F2(t)を経由する経路であるため、分析部26は、式(7)に示すように、P(F2(t-1)|F1(t+1))におけるF1(t+1)を、F2(t)|F1(t+1)に置き換えて算出する。
P(F2(t-1)|F1(t+1))の経路1→P(F2(t-1)|((F2(t)|F1(t+1)))
=P((F2(t)|F1(t+1))|F2(t-1))×P(F2(t-1))/P(F2(t)|F1(t+1))) (7)
なお、式(7)におけるP((F2(t)|F1(t+1))|F2(t-1))は、図14に示すように、経路1のうちF2(t-1)からF2(t)への経路を示し、P(F2(t)|F2(t-1))のうちF2(t)をF2(t)|F1(t+1)に置き換えた確率である。分析部26は、この確率を、式(6)と同様に、サンプル数のデータに基づいて算出することができる。分析部26は、P(F2(t)|F1(t+1))を、式(5)と同様に算出することができる。
同様に、分析部26は、図14に示す経路2が示す確率を算出し、経路1が示す確率と経路2が示す確率を加算することにより、F1(t+1)の動作原因がF2(t-1)である確率を算出することができる。このように、分析部26は、第2時間間隔内の全サンプル数に対する、第2時間間隔内の関数を示す情報の数の割合(例えば、式(2)に示す頻度)をその関数の動作確率として用いて、ベイズ推定による因果関係分析を実行する。そして、いずれかの関数が動作した場合に、他の関数が動作していた確率(原因確率)を算出することができる。
図15は、計算例における、サンプル数の時系列データの一例を示す図である。以下、図15に示す時系列データを用いた因果関係分析結果の計算について説明する。生成部25は、3つの関数A、B、Cに対し、図15のような時系列データを生成したとする。T0はt-1からtまでの時間間隔を示し、T1はtからt+1までの時間間隔を示し、T2は、t+1からt+2までの時間間隔を示す。各数値は第2時間間隔内(1秒間)のサンプル数であり、カッコ内は式(2)と同様の式により算出された頻度である。下線が付けられた数値は後述する計算において使用される数値である。
図16は、関数の因果関係の第3の例を示す図である。図16に示す例は、図15に示す時系列データに対応しており、各関数A〜Cを示すノードに付されている数値は、図15に示す頻度である。また、矢印に付されている数値は、その経路の確率を示し、式(6)と同様の式により算出される。例えば、t+1で関数Aが動作した後に、t+2で関数Bが動作する確率は、0.8であることが示されている。各経路の確率は、下記のように表される。
P(B(t+2)|A(t+1))=0.8 (8−1)
P(B(t+2)|B(t+1))=0.1 (8−2)
P(B(t+2)|C(t+1))=0.2 (8−3)
P(A(t+1)|A(t))=0.03 (8−4)
P(B(t+1)|A(t))=0.04 (8−5)
P(C(t+1)|A(t))=0.01 (8−6)
図15、16に示すデータを用いて、t+2における関数Bの動作原因がtにおける関数Aの動作である確率P(A(t)|B(t+2))の計算例について説明する。P(A(t)|B(t+2))は、以下の式(9)のように表される。
P(A(t)|B(t+2))
=P(A(t)|A(t+1)|B(t+2))+P(A(t)|B(t+1)|B(t+2))+P(A(t)|C(t+1)|B(t+2))
=P(A(t)|(A(t+1)|B(t+2)))+P(A(t)|(B(t+1)|B(t+2)))+P(A(t)|(C(t+1)|B(t+2)))
(9)
分析部26は、式(9)の各項を、ベイズ推定を用いて以下の式(10−1)〜(10−3)のように変換する。
P(A(t)|(A(t+1)|B(t+2)))
=P((A(t+1)|B(t+2))|A(t))×P(A(t))/P(A(t+1)|B(t+2)) (10−1)
P(A(t)|(B(t+1)|B(t+2)))
=P((B(t+1)|B(t+2))|A(t))×P(A(t))/P(B(t+1)|B(t+2)) (10−2)
P(A(t)|(C(t+1)|B(t+2)))
=P((C(t+1)|B(t+2))|A(t))×P(A(t))/P(C(t+1)|B(t+2)) (10−3)
図16に示す例では、t+2において関数Bのみ動作しているので、(10−1)のP((A(t+1)|B(t+2))|A(t))をP(A(t+1)|A(t))に置き換えることができる。同様にP((B(t+1)|B(t+2))|A(t))をP(B(t+1)|A(t))に置き換え、P((C(t+1)|B(t+2))をP(C(t+1)|A(t))に置き換えることができる。さらに、(8−4)〜(8−6)の計算結果を用いると、分析部26は、式(10−1)〜(10−3)の第1項を、以下のように計算することができる。
P((A(t+1)|B(t+2))|A(t))=P(A(t+1)|A(t))=0.03 (11−1)
P((B(t+1)|B(t+2))|A(t))=P(B(t+1)|A(t))=0.04 (11−2)
P((C(t+1)|B(t+2))|A(t))=P(C(t+1)|A(t))=0.01 (11−3)
式(10−1)〜(10−3)における第2項のP(A(t))は、図15に示すように、0.5である。また、分析部26は、式(10−1)〜(10−3)の第3項にベイズ推定を用い、さらに図15に示す頻度および(8−1)〜(8−3)の計算結果を用いると、以下の式(12−1)〜(12−3)のように計算することができる。
P(A(t+1)|B(t+2))=P(B(t+2)|A(t+1))×P(A(t+1))/P(B(t+2))
=0.8×0.1/0.6
=0.13 (12−1)
P(B(t+1)|B(t+2))=P(B(t+2)|B(t+1))×P(B(t+1))/P(B(t+2))
=0.1×0.7/0.6
=0.12 (12−2)
P(C(t+1)|B(t+2))=P(B(t+2)|C(t+1))×P(C(t+1))/P(B(t+2))
=0.2×0.2/0.6
=0.07 (12−3)
以上により、分析部26は、式(10−1)〜(10−3)を以下の式(13−1)〜(13−3)のように計算することができる。
P(A(t)|(A(t+1)|B(t+2)))=P((A(t+1)|B(t+2))|A(t))×P(A(t))/P(A(t+1)|B(t+2))
=0.03×0.5/0.13
=0.12 (13−1)
P(A(t)|(B(t+1)|B(t+2)))=P((B(t+1)|B(t+2))|A(t))×P(A(t))/P(B(t+1)|B(t+2))
=0.04×0.5/0.12
=0.17 (13−2)
P(A(t)|(C(t+1)|B(t+2)))=P((C(t+1)|B(t+2))|A(t))×P(A(t))/PP(C(t+1)|B(t+2))
=0.01×0.5/0.07
=0.07 (13−3)
分析部26は、式(13−1)〜(13−3)の計算結果を式(9)に当てはめることにより、P(A(t)|B(t+2))について、式(14)のような計算結果を得ることができる。
P(A(t)|B(t+2))
=P(A(t)|(A(t+1)|B(t+2)))+P(A(t)|(B(t+1)|B(t+2)))+P(A(t)|(C(t+1)|B(t+2)))
=0.12+0.17+0.07
=0.36 (14)
すなわち、t+2における関数Bの動作原因がtにおける関数Aの動作である確率は、0.36(36%)となる。
以上、分析部26がベイズ推定を用いて複数の関数の因果関係分析を実行する例を説明したが、分析部26は、ベイズ推定以外の方法を用いて、因果関係分析を実行してもよい。分析部26は、例えば、ランダム化比較試験(RCT:Randomized Controlled Trial)を用いて、複数の関数の因果関係分析を実行してもよい。
図17は、因果関係分析結果の一例を示す図である。分析部26は、上述のようにベイズ推定等の手法を用いて、いずれかの関数(図17における結果の関数)が動作した場合に他の関数(図17における原因の関数)が動作していた確率を算出する。図17に示す各数値は、分析部26が算出した確率である。出力部27は、例えば、図17の例に示す因果関係分析結果を出力する。
ユーザは、因果関係分析結果を参照することにより、いずれかの関数に異常が発生した場合、どの関数が原因であるかを推定することができる。例えば、関数5−VM3に異常が発生した場合、ユーザは、図17における関数5−VM3の行を参照することにより、原因である確率が最も確率が高い関数が関数2−VM1であることを知ることができる。そして、ユーザは、関数2−VM1に処理遅延が発生したことにより関数5−VM3に処理遅延が発生した可能性があると推定することができる。
なお、因果関係分析結果の出力態様は、図17の例には限られない。例えば、ユーザから、異常が発生した関数の入力を受け付けた場合、出力部27は、その関数の動作の原因となる関数のうち確率が高い順に所定数の関数の識別情報を、原因関数の候補として確率とともに出力してもよい。または、出力部27は、入力された関数の動作原因となる関数の候補として、確率が所定の閾値以上である関数の識別情報を確率とともに出力してもよい。
図18は、実施形態の分析装置の処理の一例を示すフローチャートである。測定部21は、複数のOSに対するレイテンシを測定する(ステップS101)。指示部22は、性能監視ツールから異常通知を受けた場合(ステップS102でYES)、分析対象のOSにサンプリングの実行指示を送信する(ステップS103)。ステップS102でNOの場合、処理は次に進まない。
取得部23は、複数のOSが第1時間間隔(例えば、1ms)毎に動作中のプログラムに対してサンプリングして得た、動作中の関数を識別可能な情報を、各OSから取得する(ステップS104)。集計部24は、関数毎に、所定時間内(例えば、30秒間)で取得されたサンプルの数を集計する(ステップS105)。なお、集計部24は、サンプル数の集計対象の時間から、測定部21により測定された、OS毎のレイテンシに基づく時間を除外する。集計部24の集計結果は、例えば、図8または図12に示すような、サンプル数と頻度を含むデータである。
生成部25は、サンプル数が所定の条件を満たす関数について、第2時間間隔毎のサンプルの数を示す時系列データを生成する(ステップS106)。なお、生成部25は、時系列データの生成対象の時間から、測定部21により測定された、OS毎のレイテンシに基づく時間を除外する。生成部25が生成する時系列データは、例えば、図11に示すデータである。また、生成部25は、仮想マシン12がサンプリングして得たサンプルが存在する場合、データの重複を避けるため、ホストOS11がその仮想マシン12からサンプリングして得たサンプルの数を時系列データから削除する。
分析部26は、生成部25が生成した時系列データに基づいて、複数の関数の因果関係分析を実行する(ステップS107)。分析部26は、例えば、第2時間間隔内の全サンプル数に対する、第2時間間隔内の関数を示すサンプル数の割合(頻度)をその関数の動作確率として用いて、ベイズ推定による因果関係分析を実行する。
出力部27は、分析部26が実行した因果関係分析の結果を出力する(ステップS108)。出力部27は、例えば、表示装置であり、因果関係分析結果を表示させる。出力部27は、例えば、因果関係分析結果を他の情報処理装置等に送信してもよい。
以上のように、分析装置2は、複数のOS上で動作する関数で発生した異常の原因を容易に分析することができる。例えば、図1に示す例のように仮想マシン12上で動作する関数に異常が発生した場合、原因となる関数が他の仮想マシン12やホストOS11に存在していたとしても、容易に原因を分析することができる。また、分析装置2は、仮想マシン12が稼動しているホスト装置1とは別の装置であるため、仮想マシン12が稼動しているホスト装置1を停止させずに分析を行うことができる。また、分析装置2は、サンプリングにより得られた情報に基づいて分析を行うため、分析対象のプログラムのリコンパイルを行わなくても、分析を行うことができる。
図19は、本実施形態の処理の適用例を示す図である。図19において、仮想マシン12−1、12−2は、図1の仮想マシン12に相当する。第1CPU15−1、第2CPU15−2は、物理CPUである。仮想マシン12−1で動作する関数1−1は、第1CPU15−1を使用し、仮想マシン12−1で動作する関数2と仮想マシン12−2で動作する関数1−2は、第2CPU15−2を使用する。図19における関数の物理CPUへの割り当ては固定であるとする。
同じ物理CPUを使用する関数は、一方が動作すると他方が影響を受けることは容易に想定される。しかし、複数の関数が、異なる物理CPUを使用している場合、その関数同士の因果関係を分析することは容易ではない。例えば、図19に示す例では、関数1−2と関数1−1が、仮想マシン12−1で動作するロック関数に関連しているとする。そして、関数1−2が動作するとロック関数が動作し、関数1−1の動作に影響を与えるとする。このような場合、関数1−1に処理遅延が発生したとしても、原因を特定することは容易ではない。
本実施形態の分析装置2は、複数のOSから取得されたサンプル数に基づいて、関数の因果関係を分析する。そのため、図19に示す例のように、動作する仮想マシンおよび使用する物理CPUのいずれも異なる関数同士(関数1−1および関数1−2)であっても、因果関係を分析することができる。
次に、分析装置2のハードウェア構成の一例を説明する。図20は、分析装置2のハードウェア構成の一例を示す図である。図20の例に示すように、分析装置2において、バス100に、プロセッサ111とメモリ112と補助記憶装置113と通信インタフェース114と媒体接続部115と入力装置116と出力装置117とが接続される。
プロセッサ111は、メモリ112に展開されたプログラムを実行する。実行されるプログラムには、実施形態における処理を行う分析プログラムが適用されてもよい。
メモリ112は、例えば、Random Access Memory(RAM)である。補助記憶装置113は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等が適用されてもよい。補助記憶装置113に実施形態の処理を行う分析プログラムが記憶されていてもよい。
通信インタフェース114は、Local Area Network(LAN)、Wide Area Network(WAN)等の通信ネットワークに接続され、通信に伴うデータ変換等を行う。図2に示す出力部27には、図20に示す通信インタフェース114が適用されてもよい。
媒体接続部115は、可搬型記録媒体118が接続可能なインタフェースである。可搬型記録媒体118には、光学式ディスク(例えば、Compact Disc(CD)またはDigital Versatile Disc(DVD))、半導体メモリ等が適用されてもよい。可搬型記録媒体118に実施形態の処理を行う分析プログラムが記録されていてもよい。
メモリ112、補助記憶装置113および可搬型記録媒体118は、コンピュータが読み取り可能であって非一時的な有形の記憶媒体であり、信号搬送波のような一時的な媒体ではない。
入力装置116は、例えば、キーボード、ポインティングデバイス等であり、ユーザからの指示及び情報等の入力を受け付ける。
出力装置117は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザへの問い合わせ又は指示、及び処理結果等を出力する。図2に示す出力部27には、図20に示す出力装置117が適用されてもよい。
図2に示す記憶部28は、メモリ112、補助記憶装置113または可搬型記録媒体118等により実現されてもよい。図2に示す測定部21、指示部22、取得部23、集計部24、生成部25、および分析部26は、メモリ112に展開された分析プログラムをプロセッサ111が実行することにより実現されてもよい。
なお、分析装置2が図20に示す全ての構成要素を含んでいなくてもよく、一部の構成要素が省略されていてもよい。また、一部の構成要素が分析装置2の外部装置に存在し、分析装置2が外部装置に接続して、外部装置内の構成要素を利用してもよい。
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で様々な変更、追加、省略が適用可能である。
1 ホスト装置
2 分析装置
11 ホストOS
12 仮想マシン
13 OS
14 アプリケーション
21 測定部
22 指示部
23 取得部
24 集計部
25 生成部
26 分析部
27 出力部
28 記憶部
100 バス
111 プロセッサ
112 メモリ
113 補助記憶装置
114 通信インタフェース
115 媒体接続部
116 入力装置
117 出力装置
118 可搬型記録媒体

Claims (5)

  1. 複数のオペレーティングシステムが第1時間間隔毎に動作中のプログラムに対してサンプリングして得た、動作中の関数を識別可能な情報を取得し、
    前記関数毎に、取得された前記情報の数を集計し、
    前記情報の数が所定の条件を満たす関数について、第2時間間隔毎の前記情報の数を示す時系列データを生成し、
    前記時系列データに基づいて、複数の前記関数同士の因果関係分析を実行し、
    前記関数同士の因果関係分析結果を出力する
    処理をコンピュータに実行させるための分析プログラム。
  2. 前記複数のオペレーティングシステムは、仮想マシンのオペレーティングシステムおよび前記仮想マシンが稼動するホスト装置のオペレーティングシステムを含み、
    前記複数のオペレーティングシステムが前記第1時間間隔毎に動作中のプログラムに対してサンプリングして得た、前記動作中の関数を識別可能な情報を取得する
    処理を前記コンピュータに実行させることを特徴とする請求項1記載の分析プログラム。
  3. 前記因果関係分析において、前記第2時間間隔内の全ての前記情報の数に対する、前記第2時間間隔内のいずれかの関数を識別可能な前記情報の数の割合を前記いずれかの関数の動作確率として用いて、ベイズ推定を実行することにより、前記いずれかの前記関数が動作した場合に他の前記関数が動作していた確率を算出し、
    算出された前記確率を前記因果関係分析結果として出力する
    処理を前記コンピュータに実行させることを特徴とする請求項1または2記載の分析プログラム。
  4. 前記複数のオペレーティングシステムに対するレイテンシを測定し、
    前記複数のオペレーティングシステムにサンプリング実行指示を送信してから、前記レイテンシが経過するまでの時間に基づく除外対象時間を、前記情報の数の集計対象の時間および前記時系列データの生成対象の時間から除外する
    処理を前記コンピュータに実行させることを特徴とする請求項1乃至3のうち何れか1項に記載の分析プログラム。
  5. 複数のオペレーティングシステムが第1時間間隔毎に動作中のプログラムに対してサンプリングして得た、動作中の関数を識別可能な情報を取得する取得部と、
    前記関数毎に、取得された前記情報の数を集計する集計部と、
    前記情報の数が所定の条件を満たす関数について、第2時間間隔毎の前記情報の数を示す時系列データを生成する生成部と、
    前記時系列データに基づいて、複数の前記関数同士の因果関係分析を実行する分析部と、
    前記関数同士の因果関係分析結果を出力する出力部と
    を備えることを特徴とする分析装置。
JP2018238854A 2018-12-20 2018-12-20 分析プログラム、および分析装置 Active JP7135831B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018238854A JP7135831B2 (ja) 2018-12-20 2018-12-20 分析プログラム、および分析装置
US16/708,483 US11314615B2 (en) 2018-12-20 2019-12-10 Recording medium and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018238854A JP7135831B2 (ja) 2018-12-20 2018-12-20 分析プログラム、および分析装置

Publications (2)

Publication Number Publication Date
JP2020101938A true JP2020101938A (ja) 2020-07-02
JP7135831B2 JP7135831B2 (ja) 2022-09-13

Family

ID=71097679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018238854A Active JP7135831B2 (ja) 2018-12-20 2018-12-20 分析プログラム、および分析装置

Country Status (2)

Country Link
US (1) US11314615B2 (ja)
JP (1) JP7135831B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016197450A (ja) * 2016-07-25 2016-11-24 日本電気株式会社 運用管理装置、運用管理システム、情報処理方法、及び運用管理プログラム
JP2018194988A (ja) * 2017-05-16 2018-12-06 富士通株式会社 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9173574B2 (en) * 2009-04-22 2015-11-03 Rodrigo E. Teixeira Mechanical health monitor apparatus and method of operation therefor
JP5915006B2 (ja) * 2011-06-29 2016-05-11 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP5642725B2 (ja) 2012-02-22 2014-12-17 日本電信電話株式会社 性能分析装置、性能分析方法及び性能分析プログラム
JP6079317B2 (ja) 2013-03-05 2017-02-15 富士通株式会社 仮想計算機システム及びその管理方法並びに仮想計算機システムの管理プログラム
JP5602963B1 (ja) 2014-01-30 2014-10-08 グリー株式会社 ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム
JP5719470B1 (ja) 2014-08-20 2015-05-20 グリー株式会社 ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム
JP6510430B2 (ja) 2016-01-18 2019-05-08 株式会社日立製作所 トレースデータ編集装置及び方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016197450A (ja) * 2016-07-25 2016-11-24 日本電気株式会社 運用管理装置、運用管理システム、情報処理方法、及び運用管理プログラム
JP2018194988A (ja) * 2017-05-16 2018-12-06 富士通株式会社 情報処理装置、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
US20200201738A1 (en) 2020-06-25
US11314615B2 (en) 2022-04-26
JP7135831B2 (ja) 2022-09-13

Similar Documents

Publication Publication Date Title
Notaro et al. A survey of aiops methods for failure management
US9753801B2 (en) Detection method and information processing device
JP6160673B2 (ja) 運用管理装置、運用管理方法、及びプログラム
JP5874936B2 (ja) 運用管理装置、運用管理方法、及びプログラム
US10868744B2 (en) Influence range identification method and influence range identification apparatus
US10733009B2 (en) Information processing apparatus and information processing method
JP2006227999A (ja) ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム
Gulenko et al. A system architecture for real-time anomaly detection in large-scale nfv systems
JP2015026197A (ja) ジョブ遅延検知方法、情報処理装置、およびプログラム
Arif et al. Empirical study on the discrepancy between performance testing results from virtual and physical environments
US20190196897A1 (en) Influence range specifying method, influence range specifying apparatus, and storage medium
US20180095819A1 (en) Incident analysis program, incident analysis method, information processing device, service identification program, service identification method, and service identification device
EP4182796A1 (en) Machine learning-based techniques for providing focus to problematic compute resources represented via a dependency graph
CN116089482A (zh) 分析大规模数据处理作业
JPWO2017150286A1 (ja) システム分析装置、システム分析方法、及び、プログラム
KR20150091716A (ko) 수집된 이벤트 정보 기반 악성코드 탐지 장치 및 방법
JP7135831B2 (ja) 分析プログラム、および分析装置
JP2018014000A (ja) テスト支援プログラム、テスト支援装置、及びテスト支援方法
JP2010108266A (ja) 障害検知装置、障害検知方法、障害検知プログラム、単語集作成装置、及び障害発生分析装置
JP6973445B2 (ja) 表示方法、表示装置、および、プログラム
JP7564447B2 (ja) 異常要因判定方法および異常要因判定プログラム
US9396083B2 (en) Computer system processes
JP7552895B2 (ja) プロセス情報解析装置、プロセス情報解析方法およびプログラム
JP2715904B2 (ja) 計算機システム性能評価装置
US20160239363A1 (en) Analysis device and information processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7135831

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150