JP5794181B2 - プログラム、分析方法、情報処理装置 - Google Patents

プログラム、分析方法、情報処理装置 Download PDF

Info

Publication number
JP5794181B2
JP5794181B2 JP2012058464A JP2012058464A JP5794181B2 JP 5794181 B2 JP5794181 B2 JP 5794181B2 JP 2012058464 A JP2012058464 A JP 2012058464A JP 2012058464 A JP2012058464 A JP 2012058464A JP 5794181 B2 JP5794181 B2 JP 5794181B2
Authority
JP
Japan
Prior art keywords
response
processing
analysis
time
input
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
JP2012058464A
Other languages
English (en)
Other versions
JP2013191145A (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.)
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 JP2012058464A priority Critical patent/JP5794181B2/ja
Priority to US13/733,546 priority patent/US8924551B2/en
Priority to EP13151433.3A priority patent/EP2639696B1/en
Publication of JP2013191145A publication Critical patent/JP2013191145A/ja
Application granted granted Critical
Publication of JP5794181B2 publication Critical patent/JP5794181B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • 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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server 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/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/0745Error 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 an input/output transactions management context
    • 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
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation

Description

本発明は、装置の処理状況を分析するプログラム、分析方法、および情報処理装置に関する。
サーバを用いて、ネットワークを介してユーザに安定したサービスを提供する場合において、運用中にサーバの応答時間が悪化することがある。例えば、サーバの応答時間悪化は1日の中で何度も発生する場合がある。
応答時間の悪化要因の中には、外部のトラフィック変動による外因的なものと、内部のプログラム構造に起因する内因的なものがある。応答時間悪化要因が外因的なものであれば、サーバ台数を増やしたりトラフィックをコントロールしたりするなど、ハードリソースを増強することで、応答時間悪化を抑止できる。一方、応答時間悪化要因が内因的なものであれば、ソフトウェアの作りを変更するなどの対処によって、応答時間悪化を抑止できる。
このように、応答時間が悪化した場合、悪化要因が内因的なのか外因的なのかに応じて、対処方法が異なる。そのため、悪化要因が内因的なのか外因的なのかを早期に判別することが出来れば、サーバの応答時間を迅速に改善することができる。
これらの要因を分類する手法としては、短い間での挙動を詳細に観察する「ドリルダウン」手段で行うことが多い。ただし、ドリルダウンを人手で行うため効率が悪い。
なお、コンピュータを用いてサーバの性能を解析するための、さまざまな技術が考えられている。例えば、複数のサーバを含むコンピュータ・システムのレスポンスに関する分析を行う分析方法が考えられている。
国際公開第2006/046297号
しかし、従来のコンピュータによるサーバの性能解析技術は、例えば内因性なのか外因性なのかといったような応答時間の悪化要因について、効率的に分析するものではない。そのため、依然として、分析の初期段階でドリルダウンによる人手の分析判断が行われ、応答時間の悪化要因の切り分けに時間がかかる。その結果、サーバの応答時間の改善を迅速に行うことが困難となっている。
1つの側面では、本発明は、応答時間の悪化要因を判定することができるプログラム、分析方法、および情報処理装置を提供することを目的とする。
1つの案では、以下の処理を情報処理装置に実行させるプログラムが提供される。該プログラムに基づいて情報処理装置は、分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出する。次に情報処理装置は、抽出した処理期間情報の要求時刻に基づいて、応答時間が閾値を超えている処理に関する、処理要求の入力頻度の推移を分析する。さらに情報処理装置は、抽出した処理期間情報の応答時刻に基づいて、応答時間が閾値を超えている処理に関する、応答の出力頻度の推移を分析する。そして情報処理装置は、処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が閾値を超えている処理の発生要因を判定する。
1態様によれば、応答時間の悪化要因が判定できる。
第1の実施の形態に係る装置の機能構成例を示す図である。 第2の実施の形態のシステムの全体構成を示す図である。 第2の実施の形態に用いる分析サーバのハードウェアの一構成例を示す図である。 第2の実施の形態に係る分析サーバの機能の一例を示すブロック図である。 分析処理の手順を示すフローチャートである。 キャプチャデータ記憶部のデータ構造の一例を示す図である。 メッセージデータ記憶部のデータ構造の一例を示す図である。 メッセージ対記憶部のデータ構造の一例を示す図である。 分析結果記憶部のデータ構造の一例を示す図である。 分析処理の手順の一例を示すフローチャートである。 分析対象メッセージ対抽出処理の手順の一例を示すフローチャートである。 分析対象メッセージ対の抽出例を示す図である。 分析期間短縮処理の手順の一例を示すフローチャートである。 分析期間短縮処理の例を示す図である。 入力タイプ判定処理の手順の一例を示すフローチャートである。 出力タイプ判定処理の手順の一例を示すフローチャートである。 レスポンス悪化要因出力処理の手順を示すフローチャートである。 レスポンス悪化要因の判定パターンを示す図である。 競合発生時のリクエスト・レスポンス頻度の例を示す図である。 入力サージ発生時のリクエスト・レスポンス頻度の例を示す図である。 オーバーロード発生時のリクエスト・レスポンス頻度の例を示す図である。 入力サージ+競合発生時のリクエスト・レスポンス頻度の例を示す図である。 オーバーロード+競合発生時のリクエスト・レスポンス頻度の例を示す図である。 レスポンス悪化要因判定例を示す図である。 分析結果表示画面の一例を示す図である。 散布図の切り替え表示例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、分析対象装置の処理の応答時間の悪化要因を判定するものである。第1の実施の形態では、情報処理装置が、応答時間が所定の閾値より長い処理に関する処理要求時刻と応答時刻とを用いて、該当処理の入出力に特化して、処理要求の入力頻度の推移と応答の出力頻度の推移とを分析する。これにより、応答時間の悪化要因となる状態を際立たせた分析結果を得ることができ、その分析結果に応じて、応答時間の悪化要因を判定することが可能となる。
図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置1は、分析対象装置2で実行された処理の応答時間の悪化要因を分析する。例えば情報処理装置1は、端末装置3から分析対象装置2に入力された処理要求4と、分析対象装置2から端末装置3への応答5とに基づいて、分析を行う。そのために情報処理装置1は、記憶手段1a、抽出手段1b、第1の分析手段1c、第2の分析手段1d、および判定手段1eを有する。
記憶手段1aは、分析対象装置2に対して処理要求4が入力された要求時刻と、該処理要求4に応じて実行された処理の応答5が分析対象装置2から出力された応答時刻とを含む処理期間情報が、分析対象装置2で実行された処理ごとに格納されている。
抽出手段1bは、記憶手段1aから、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出する。
第1の分析手段1cは、抽出した処理期間情報の要求時刻に基づいて、応答時間が閾値を超えている処理に関する、処理要求の入力頻度の推移を分析する。例えば第1の分析手段1cは、処理要求の入力頻度が高レベルか低レベルかの状態の推移に応じて、一時高レベル、一定高レベル、一定低レベルのいずれかに、入力タイプを決定する。一時高レベルは、処理要求の入力頻度が一時的に高レベルとなったときの入力タイプである。一定高レベルは、処理要求の入力頻度が継続して高レベルであるときの入力タイプである。一定低レベルは、処理要求の入力頻度が継続して低レベルであるときの入力タイプである。なお入力タイプが一定高レベルか一定低レベルかは、例えば所定の分析期間内の処理要求の数が所定値を超えるか否かで判断できる。この場合、処理要求の数が所定値を超えれば、入力タイプが一定高レベルと判断され、処理要求の数が所定値以下であれば、入力タイプが一定低レベルと判断される。
第2の分析手段1dは、抽出した処理期間情報の応答時刻に基づいて、応答時間が閾値を超えている処理に関する、応答の出力頻度の推移を分析する。例えば第2の分析手段1dは、応答の出力頻度が高レベルか低レベルかの状態の推移に応じて、一時高レベル、一定高レベル、一定低レベルのいずれかに、出力タイプを決定する。一時高レベルは、応答の出力頻度が一時的に高レベルであるときの出力タイプである。一定高レベルは、応答の出力頻度が継続して高レベルであるときの出力タイプである。一定低レベルは、応答の出力頻度が継続して低レベルであるときの出力タイプである。なお出力タイプが一定高レベルか一定低レベルかは、例えば所定の分析期間内の応答の数が所定値を超えるか否かで判断できる。この場合、応答の数が所定値を超えれば、出力タイプが一定高レベルと判断され、応答の数が所定値以下であれば、出力タイプが一定低レベルと判断される。
判定手段1eは、処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が閾値を超えている処理の発生要因を判定する。例えば判定手段1eは、入力タイプと出力タイプとの組み合わせに応じて、応答時間が閾値を超えている処理の発生要因を判定する。例えば判定手段1eは、入力タイプが一定高レベル、出力タイプが一定高レベルであれば、応答時間が閾値を超えている処理の発生要因を、過負荷(オーバーロード)と判定する。また判定手段1eは、入力タイプが一時高レベル、出力タイプが一定高レベルであれば、応答時間が閾値を超えている処理の発生要因を、処理要求の短時間の集中(入力サージ)と判定する。さらに判定手段1eは、入力タイプが一定高レベル、出力タイプが一時高レベルであれば、応答時間が閾値を超えている処理の発生要因を、処理で使用する資源の競合と判定する。
また、判定手段1eは、応答時間が閾値を超えている処理の発生要因を、複合的な要因であると判定することもできる。例えば判定手段1eは、入力タイプが一時高レベル、出力タイプが一時高レベルであれば、応答時間が閾値を超えている処理の発生要因を、処理要求の短時間の集中と、処理で使用する資源の競合との複合要因と判定する。
このような情報処理装置1により、分析対象装置2の応答時間の悪化要因が、判定できる。例えば図1の例では、分析対象となる分析期間内に分析対象装置2で実行された処理のうち、4つの処理6a,6b,6c,6dが、閾値より応答時間が長いものとする。なお図1では、各処理を矢印で示しており、矢印の始点の位置が処理の要求時刻であり、矢印の終点の位置が処理の応答時刻である。図1の例では、抽出手段1bによって、処理6a,6b,6c,6dの処理期間情報が記憶手段1aから抽出される。
次に第1の分析手段1cにより、抽出された処理6a,6b,6c,6dの要求時刻に基づいて、入力タイプが判断される。図1の例では、要求時刻は分散しており、処理要求数も多くなく、入力タイプは一定低レベルであるものとする。また第2の分析手段1dにより、抽出された処理6a,6b,6c,6dの応答時刻に基づいて、出力タイプが判断される。図1の例では、応答時刻が集中しており、出力レベルが一時高レベルであるものとする。
その後、判定手段1eによって、応答時間が閾値を超えている処理の発生要因が判定される。例えば入力タイプが一定低レベル、出力タイプが一時高レベルであれば、使用する資源の競合があったものと判定される。
このように第1の実施の形態では、応答時間が閾値以上の処理に関する処理期間情報だけを対象に、入力の頻度と出力の頻度の関係を分析し、応答時間の悪化要因を判定したことで、適切な要因を判定できる。例えば、短時間に発生した性能悪化についても検出できる。応答時間悪化要因としては、例えば、オーバーロード、入力サージ、競合、入力サージ+競合などがある。
応答時間の適切な悪化要因が判定できることで、迅速に応答時間を改善させることができる。例えば、応答時間悪化要因がオーバーロードであれば、分析対象装置2の処理性能が不十分であることが分かり、分析対象装置2のハードウェア資源の増強を行うことで、以後の応答時間の悪化を抑止できる。また、応答時間悪化要因が入力サージであれば、端末装置3から出力する処理要求を、時間的に分散させるように端末装置3の設定を行うことで、応答時間の悪化を抑止できる。
なお、図1に示す抽出手段1b、第1の分析手段1c、第2の分析手段1d、および判定手段1eは、情報処理装置1が有するCPU(Central Processing Unit)により実現することができる。また、記憶手段1aは、情報処理装置1が有するRAM(Random Access Memory)やハードディスクドライブ(HDD:Hard Disk Drive)などにより実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、複数階層システムに含まれるサーバのレスポンス悪化の外的要因としてオーバーロードと入力サージ、内的要因としてアクセス競合を判別するものである。ここでオーバーロードは、継続的に処理負荷が過大であることである。入力サージは、一時的にリクエストが集中したことである。競合は、複数の処理が同一資源を同時に利用しようとすることである。
図2は、第2の実施の形態のシステムの全体構成を示す図である。このシステムは、分析サーバ100、Webサーバ21,22,23、Appサーバ24,25、DBサーバ26、およびロードバランサ27を有する。Webサーバ21,22,23と、Appサーバ24,25とは、スイッチ装置31を介して相互に接続されている。Appサーバ24,25とDBサーバ26とは、スイッチ装置32を介して相互に接続されている。ロードバランサ27は、Webサーバ21,22,23それぞれと、ネットワークタップ33,34,35を介して接続されている。
スイッチ装置31,32は、ポートミラーリング機能を有している。スイッチ装置31,32それぞれのポートミラーリング用のポートには、スイッチ装置36が接続されている。スイッチ装置31は、ポートミラーリングにより、Webサーバ21,22,23とAppサーバ24,25との間で送受信されるパケットをコピーし、スイッチ装置36に送信する。スイッチ装置32は、ポートミラーリングにより、Appサーバ24,25とDBサーバ26との間で送受信されるパケットをコピーし、スイッチ装置36に送信する。
ネットワークタップ33,34,35のモニタ用ポートには、スイッチ装置36が接続されている。ネットワークタップ33は、Webサーバ21とロードバランサ27との間で通信されるパケットをコピーし、スイッチ装置36に送信する。ネットワークタップ34は、Webサーバ22とロードバランサ27との間で通信されるパケットをコピーし、スイッチ装置36に送信する。ネットワークタップ35は、Webサーバ23とロードバランサ27との間で通信されるパケットをコピーし、スイッチ装置36に送信する。
スイッチ装置36には、分析サーバ100が接続されている。スイッチ装置36は、他のスイッチ装置31,33や、ネットワークタップ33,34,35から送られたパケットを、分析サーバ100に転送する。
ロードバランサ27は、ネットワーク10を介して端末装置29a,29b,・・・に接続されている。ロードバランサ27は、端末装置29a,29b,・・・からWebサーバ21,22,23宛に出された処理要求を、いずれかのWebサーバに転送する。例えばロードバランサ27は、各Webサーバ21,22,23の処理量が均等になるように、処理要求のWebサーバ21,22,23への振り分けを行う。
端末装置29a,29b,・・・は、ネットワーク10およびロードバランサ27を介してWebサーバ21,22,22にアクセス可能である。端末装置29a,29b,・・・のユーザは、Webサーバ21,22,23が提供するGUI(Graphical User Interface)を端末装置29a,29b,・・・から操作してシステムを利用できる。
分析サーバ100は、Webサーバ21,22,23、Appサーバ24,25およびDBサーバ26の稼働状況を管理する。分析サーバ100は、稼働状況を管理するための情報を、スイッチ装置36を介して取得することができる。すなわち、分析サーバ100は、スイッチ装置36から送信される通信パケットを受信して、記憶する(パケットキャプチャ)。分析サーバ100は、スイッチ装置36を介して転送されてくるIPパケットを受信可能なネットワークインタフェースを有している。そして分析サーバ100は、転送されてきたIPパケット格納用の十分に大きなハードディスクを有している。さらに、分析サーバ100は、IPパケットをキャプチャするのに十分なCPU性能を保有していることが望ましい。転送されてきたIPパケットは、分析サーバ100上でキャプチャされ、その後にメッセージを抽出するための処理が実施される。
Webサーバ21,22,23は、Webブラウザを実行する端末装置29a,29b,・・・から出力された処理要求(メッセージ)を受け付ける。ここで、Webサーバ21,22,23と端末装置29a,29b,・・・とのメッセージ交換は、例えばHTTPによって行われるものとする。ただし、他のプロトコルが用いられてもよい。
以下の説明では、端末装置29a,29b,・・・からWebサーバ21,22,23へ送信する処理要求をHTTPリクエストと呼ぶこととする。また、それに対する応答をHTTPレスポンスと呼ぶこととする。
Webサーバ21,22,23は、端末装置29a,29b,・・・から受信したHTTPリクエストに基づいて、静的コンテンツに関しては自装置でHTTPレスポンスを生成し、端末装置29a,29b,・・・に送信する。なお、動的コンテンツに関しては、Appサーバ24,25に依頼すべき処理の処理要求(メッセージ)を生成して、Appサーバ24,25に送信する。
ここで、Webサーバ21,22,23とAppサーバ24,25とのメッセージ交換は、IIOP(Internet Inter-ORB(Object Request Broker) Protocol)によって行われるものとする。ただし、他のプロトコルが用いられてもよい。
Webサーバ21,22,23は、IIOPリクエストに対するIIOPレスポンスを受信すると、その内容に基づいてHTTPレスポンスを生成して、端末装置29a,29b,・・・に送信する。
Appサーバ24,25は、Webサーバ21,22,23から受信したIIOPリクエストに基づいてDBサーバ26に依頼すべき処理のクエリを生成し、DBサーバ26に送信する。
ここで、Appサーバ24,25が生成するクエリは、例えばSQL(Structured Query Language)文によって表記され、DBサーバに固有のプロトコルでDBサーバへと送信される。以下では、Appサーバ24,25がDBサーバ26に送信するクエリをDBリクエストと呼ぶこととする。また、それに対する応答をDBレスポンスと呼ぶこととする。
Appサーバ24,25は、DBリクエストに対するDBレスポンスを受信すると、その内容に基づいてIIOPレスポンスを生成してWebサーバ21,22,23に送信する。
DBサーバ26は、Appサーバ24,25から受信したDBリクエストに含まれるSQL文を実行してDBの参照や更新等の処理を実行する。DBサーバ26は、その処理結果に基づいてDBレスポンスを生成し、Appサーバ24,25に送信する。
なお、Web層、App層、DB層の階層間を跨って送受信されるメッセージを取得する手法には何通りか考えられるが、第2の実施の形態では、ネットワーク上を流れるIPパケットから情報を取得するものとする。
また、以下では各サーバという場合、Webサーバ21,22,23、Appサーバ24,25およびDBサーバ26を示すものとする。さらに、Webサーバ21,22,23は、Appサーバ24,25およびDBサーバ26よりも上位層のサーバであるとする。また、Appサーバ24,25は、DBサーバ26よりも上位層のサーバであるとする。このような階層関係を定義する情報は、分析サーバ100に予め格納される。
図3は、第2の実施の形態に用いる分析サーバのハードウェアの一構成例を示す図である。分析サーバ100は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM102と複数の周辺機器が接続されている。なお分析サーバ100が有するCPU数は1つに限定されず、複数であってもよい。分析サーバ100が複数のCPUを有する場合、複数のCPUが連係動作し、装置全体を制御する。
RAM102は、分析サーバ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、分析サーバ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース107は、スイッチ装置36に接続されている。通信インタフェース107は、スイッチ装置36を介して、他のサーバまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、図3には分析サーバ100のハードウェア構成を示したが、Webサーバ21,22,23、Appサーバ24,25、DBサーバ26、および複数の端末装置29a,29b,・・・も、分析サーバ100と同様のハードウェア構成で実現することができる。なお、第1の実施の形態に示した情報処理装置1も、図3に示した分析サーバと同様のハードウェアにより実現することができる。
図4は、第2の実施の形態に係る分析サーバの機能の一例を示すブロック図である。分析サーバ100は、キャプチャ部110、キャプチャデータ記憶部120、メッセージ解析部130、メッセージデータ記憶部140、メッセージ対抽出部150、メッセージ対記憶部160、分析部170、分析結果記憶部180、および表示部190を有する。
キャプチャ部110は、スイッチ装置31,32のミラーポートまたはネットワークタップ33〜35から出力された通信パケットを、スイッチ装置36を介して受信する。キャプチャ部110は、受信した通信パケットを、キャプチャデータ記憶部120に格納する。この際、キャプチャ部110は、例えば、格納する通信パケットに対して、現在の時刻を示す情報(タイムスタンプ)を付与し、時刻情報が付与された通信パケット情報をキャプチャデータ記憶部120に格納する。
キャプチャデータ記憶部120は、キャプチャ部110がキャプチャした通信パケットを記憶する。例えば分析サーバ100のRAM102またはHDD103の記憶領域の一部が、キャプチャデータ記憶部120として使用される。
メッセージ解析部130は、受信したパケットを解析し、Webサーバ21,22,23、Appサーバ24,25、DBサーバ26および端末装置29a,29b,・・・において通信されたメッセージを再構成する。そしてメッセージ解析部130は、再構成したメッセージを、メッセージデータ記憶部140に格納する。
メッセージデータ記憶部140は、再構成されたメッセージを記憶する。例えばRAM102またはHDD103の記憶領域の一部がメッセージデータ記憶部140として使用される。
メッセージ対抽出部150は、メッセージデータ記憶部140から、リクエストメッセージと、そのリクエストメッセージに対するレスポンスメッセージとの対を抽出する。メッセージ対抽出部150は、抽出したメッセージ対を、メッセージ対記憶部160に格納する。
メッセージ対記憶部160は、メッセージ対を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、メッセージ対記憶部160として使用される。なおメッセージ対記憶部160は、図1に示した第1の実施の形態における記憶手段1aの一例である。
分析部170は、メッセージ対記憶部160に格納されたメッセージ対に基づいて、レスポンス悪化要因を分析する。例えば分析部170は、オーバーロード、入力サージ、アクセス競合、またはこれらの組み合わせのいずれかのレスポンス悪化要因が存在する場合、そのレスポンス悪化要因を特定する。分析部170は、分析結果を分析結果記憶部180に格納する。なお分析部170は、図1に示した第1の実施の形態における、抽出手段1b、第1の分析手段1c、第2の分析手段1d、および判定手段1eを包含する機能の一例である。
分析結果記憶部180は、分析結果を記憶する。例えばRAM102またはHDD103の記憶領域の一部が、分析結果記憶部180として使用される。
表示部190は、メッセージ対記憶部160に格納されているメッセージ対に基づいて、レスポンス時間の状況を視覚的な図で表示する。例えば表示部190は、時間経過に伴う、メッセージ対ごとのレスポンス時間を散布図で表示する。また表示部190は、分析結果記憶部180に格納された分析結果を表示することもできる。
なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
以上のような構成の分析サーバ100における分析処理について以下に説明する。
図5は、分析処理の手順を示すフローチャートである。以下、図5に示す処理をステップ番号に沿って説明する。
[ステップS101]キャプチャ部110は、Webサーバ21〜23、Appサーバ24,25、またはDBサーバ26に入出力されたパケットをキャプチャする。例えばキャプチャ部110は、スイッチ装置31,32やネットワークタップ33〜35でコピーされたパケットを、スイッチ装置36を介して取得する。キャプチャ部110は、キャプチャしたパケットにタイムスタンプを付与し、キャプチャデータ記憶部120に格納する。
[ステップS102]メッセージ解析部130は、キャプチャデータ記憶部120に格納されたパケットに基づいて、メッセージを再構成する。再構成されるメッセージには、リクエストメッセージとレスポンスメッセージとがある。そしてメッセージ解析部130は、再構成したメッセージを、メッセージデータ記憶部140に格納する。
[ステップS103]メッセージ対抽出部150は、メッセージデータ記憶部140から、分析対象のサーバに入出力されたメッセージによるメッセージ対を生成する。なお分析対象のサーバは、予め指定されているものとする。例えばメッセージ対抽出部150は、DBサーバ26を解析対象とする場合、メッセージデータ記憶部140内のメッセージのうち、DBサーバ26を宛先とするリクエストメッセージおよびDBサーバ26を送信元とするレスポンスメッセージを抽出する。次にメッセージ対抽出部150は、抽出したメッセージの中から、リクエストメッセージと、そのリクエストメッセージに対するレスポンスメッセージとを対応付け、メッセージ対とする。例えばメッセージ対抽出部150は、同じセッション番号が付与されたリクエストメッセージとレスポンスメッセージとを対応付け、メッセージ対とする。メッセージ対抽出部150は、抽出したメッセージ対をメッセージ対記憶部160に格納する。
[ステップS104]分析部170は、メッセージ対記憶部160に格納されたメッセージ対を分析し、レスポンス悪化期間の存在の有無、およびレスポンス悪化期間が存在する場合におけるその期間のレスポンス悪化要因を解析する。例えば分析部170は、メッセージ対記憶部160から、レスポンス時間が所定の閾値以上のメッセージ対を抽出し、抽出したメッセージ対を用いて分析を行う。そして分析部170は、分析結果を、分析結果記憶部180に格納する。なお、この処理の詳細には後述する(図10参照)。
[ステップS105]表示部190は、分析結果記憶部180に格納された分析結果を、モニタ11などに表示する。
次に、図5に示した各記憶部に格納される情報について、具体的に説明する。
図6は、キャプチャデータ記憶部のデータ構造の一例を示す図である。キャプチャデータ記憶部120には、複数のパケット121〜127,・・・が格納されている。また各パケット121〜127,・・・には、受信時刻を示すタイムスタンプ121a,122a,123a,124a,125a,126a,127a,・・・が付与されている。
キャプチャされたパケットに基づいて、メッセージ解析部130により、メッセージが再構成され、メッセージデータ記憶部140に格納される。
図7は、メッセージデータ記憶部のデータ構造の一例を示す図である。メッセージデータ記憶部140には、復元された複数のメッセージが、時系列に格納されている。このように時系列に並べられたメッセージが、時系列データである。図7では、各メッセージの左に、メッセージデータ記憶部140内での行番号を示している。なお、メッセージデータ記憶部140には、各階層間の処理要求および応答に関連するメッセージ以外のメッセージに関しては図示を省略している。
各行に示されるメッセージには、日付フィールド141、時刻フィールド142、セッション番号フィールド143、送信元アドレスフィールド144、送信先アドレスフィールド145、コマンド種別フィールド146およびメッセージフィールド147が含まれる。
日付フィールド141は、メッセージをキャプチャした日付を示すフィールドである。
時刻フィールド142は、メッセージをキャプチャした時刻を示すフィールドである。
セッション番号フィールド143は、業務システムにおけるメッセージの送受信に用いるリソースを管理するためのセッション番号を示すフィールドである。
送信元アドレスフィールド144は、メッセージの送信元のサーバのIP(Internet Protocol)アドレスおよびポート番号を示すフィールドである。
送信先アドレスフィールド145は、メッセージの送信先のサーバのIPアドレスおよびポート番号を示すフィールドである。
コマンド種別フィールド146は、コマンドのリクエスト/レスポンス属性やプロトコル(HTTP、IIOPおよびDBクエリ用等)の種別を示すフィールドである。
メッセージフィールド147は、コマンド種別フィールド146に示されたリクエスト等のメッセージ内容を示すフィールドである。
このようなメッセージデータ記憶部140内のメッセージを参照することで、いずれのサーバに対して、どのようなメッセージが送信されたかを検出することができる。
ここで、メッセージデータ記憶部140内のメッセージ中のその他のIPアドレスと各装置との対応関係は次の通りである。
“194.23.5.226”は、Webサーバ21のIPアドレスを示す。“194.23.7.168”は、Appサーバ24のIPアドレスを示す。“194.23.8.198”は、DBサーバのIPアドレスを示す。“194.185.39.24”は、端末装置29aのIPアドレスを示す。
なお、日付フィールド141および時刻フィールド142の情報として、キャプチャ部110が通信パケットをキャプチャしたタイミングにおけるタイムスタンプを設定するものとしたが、設定方法はこれに限らない。例えば、通信パケット中に各サーバにおけるパケットの生成時刻や送信時刻の情報が含まれている場合には、その日時を日付フィールド141および時刻フィールド142の情報としてもよい。その場合、各サーバで精度良く時刻同期が行われていることが望ましい。
メッセージデータ記憶部140に格納されたメッセージから、分析対象のサーバに入出力されたメッセージのメッセージ対が抽出され、メッセージ対記憶部160に格納される。
図8は、メッセージ対記憶部のデータ構造の一例を示す図である。なお図8には、DBサーバ26を分析対象とした場合の取得されるメッセージ対の例が示されている。メッセージ対記憶部160には、メッセージ対管理テーブル161が格納されている。メッセージ対管理テーブル161には、項番、リクエスト時刻、レスポンス時刻、およびプロトコルの欄が設けられている。
項番の欄には、メッセージ対の識別番号が設定される。
リクエスト時刻の欄には、メッセージ対に含まれるリクエストメッセージの検出時刻が設定される。
レスポンス時刻の欄には、メッセージ対に含まれるレスポンスメッセージの検出時刻が設定される。
プロトコルの欄には、メッセージ対に含まれるメッセージのプロトコルが設定される。
このようなメッセージ対に基づいて、サーバのレスポンス悪化要因が分析される。分析結果は、分析結果記憶部180に格納される。
図9は、分析結果記憶部のデータ構造の一例を示す図である。分析結果記憶部180には、レスポンス悪化要因テーブル181が格納されている。レスポンス悪化要因テーブル181には、区間、入力タイプ、出力タイプ、およびレスポンス悪化要因の欄が設けられている。
区間の欄には、レスポンス悪化要因の判別対象となった時間的な区間(期間)の識別番号が設定される。
入力タイプの欄には、区間内でレスポンス悪化が検出された場合における入力タイプが設定される。入力タイプには、例えば一定低レベル、一定高レベル、および一時高レベルがある。一定低レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるリクエストメッセージの量が、区間内を通して低レベルである場合の入力タイプである。一定高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるリクエストメッセージの量が、区間内を通して高レベルである場合の入力タイプである。一時高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるリクエストメッセージの量が、区間内で一時的に高レベルとなり、それ以外は低レベルである場合の入力タイプである。
出力タイプの欄には、区間内でレスポンス悪化が検出された場合における出力タイプが設定される。出力タイプには、例えば一定低レベル、一定高レベル、および一時高レベルがある。一定低レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるレスポンスメッセージの量が、区間内を通して低レベルである場合の出力タイプである。一定高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるレスポンスメッセージの量が、区間内を通して高レベルである場合の出力タイプである。一時高レベルとは、レスポンス時間が所定の閾値以上のメッセージ対におけるレスポンスメッセージの量が、区間内で一時的に高レベルとなり、それ以外は低レベルである場合の出力タイプである。
レスポンス悪化要因の欄には、区間内でレスポンス悪化が検出された場合の、その区間のレスポンス悪化要因が設定される。例えばレスポンス悪化要因としては、オーバーロード、入力サージ、競合、およびこれらの組み合わせがある。
次に、分析処理の手順について詳細に説明する。分析処理では、予め以下のパラメータの値が設定されているものとする。
・ΔT:分析時間幅(正の実数)
・THR:レスポンス閾値(正の整数)
・A:希釈パラメータ(1以上の整数、例えば2〜3程度)
・C:頻度マージンパラメータ(1以上の整数、例えば2〜3程度)
分析時間幅ΔTは、レスポンス悪化要因の分析を行う区間の時間幅である。観測期間を分析時間幅ΔTの複数の区間に分割して得られた各区間が、レスポンス悪化要因の分析の対象となる。
レスポンス閾値THRは、レスポンス時間の良否判定の閾値である。メッセージ対に対応する処理の処理時間が、レスポンス閾値で示される時間を超えている場合、そのメッセージ対に対応する処理は、レスポンスが悪いと判定される。
希釈パラメータAは、解析対象の区間内をさらに小時間枠に分割する際の、各小時間枠の時間幅の決定に用いられるパラメータである。希釈パラメータAの値が大きいほど、小時間枠の時間幅は小さくなる。
頻度マージンパラメータCは、リクエストメッセージまたはレスポンスメッセージの集中度合いの判断に用いられるパラメータである。すなわちリクエストメッセージまたはレスポンスメッセージの検出時刻が、特定の小時間枠内に集中していれば、一時高レベルと判断できる。頻度マージンパラメータCが大きい程、一時高レベルと判断するために要求されるメッセージの集中度合いが高くなる。
図10は、分析処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS111]分析部170は、レスポンス時間がレスポンス閾値THR以下のメッセージ対における平均のレスポンス時間を計算し、Rに設定する。例えば分析部170は、メッセージ対管理テーブル161に登録された各メッセージ対のレスポンス時間を計算する。レスポンス時間は、例えばレスポンス時刻からリクエスト時刻を減算した値である。次に分析部170は、各メッセージ対のレスポンス時間とレスポンス閾値THRとを比較する。さらに分析部170は、メッセージ対記憶部160から、レスポンス時間がレスポンス閾値THR以下のメッセージ対を抽出する。そして分析部170は、抽出したメッセージ対のレスポンス時間の平均を計算し、計算結果をRに設定する。
[ステップS112]分析部170は、パケットキャプチャによる観測された期間を分析時間幅ΔTごとの区間に分割する。分割した区間には、例えば1から昇順の識別番号が付与される。
[ステップS113]分析部170は、分割して得られたすべての区間について、ステップS113〜ステップS122の処理を実行したか否かを判断する。すべての区間について処理が完了していれば、分析部170は、分析処理を終了する。また、未処理の区間があれば、分析部170は、処理をステップS114に進める。
[ステップS114]分析部170は、未処理の区間を1つ選択し、選択した区間の識別番号をTとする。
[ステップS115]分析部170は、識別番号Tの区間内に実行された処理のメッセージ対を、分析対象メッセージ対として抽出する。この処理の詳細は後述する(図11参照)。
[ステップS116]分析部170は、分析期間短縮処理を行う。分析期間短縮処理は、区間内で、レスポンス時間が閾値を超えた処理が実行されていない期間を、分析対象から除外する処理である。分析部170は、短縮後の分析時間枠の長さをT’とする。この処理の詳細は後述する(図13参照)。
[ステップS117]分析部170は、T’が0か否かを判断する。T’が0ということは、選択された区間T内で実行された処理は、すべての処理がレスポンス閾値THR以下の時間で完了しており、レスポンスの悪化が発生していないことを意味する。そこで分析部170は、T’が0であれば、以降のレスポンス悪化要因の解析処理(ステップS118〜S122をスキップして、処理をステップS113に進める。また分析部170は、T’が0でなければ、処理をステップS118に進める。
[ステップS118]分析部170は、ステップS115で抽出されたメッセージ対に基づいて、入力タイプ判定処理を行う。この処理の詳細は後述する(図15参照)。
[ステップS119]分析部170は、ステップS115で抽出されたメッセージ対に基づいて、出力タイプ判定処理を行う。この処理の詳細は後述する(図16参照)。
[ステップS120]分析部170は、判定された入力タイプと出力タイプとに基づいて、レスポンス悪化要因出力処理を行う。この処理の詳細は後述する(図17参照)。分析部170は、レスポンス悪化要因出力処理が終了すると、処理をステップS113に進める。
このようにして、区間ごとに、レスポンス悪化の有無、およびレスポンスの悪化が存在する場合にはレスポンス悪化要因が判定される。
図11は、分析対象メッセージ対抽出処理の手順の一例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS131]分析部170は、メッセージ対記憶部160から、区間Tに実行期間が存在するメッセージ対を特定する。
[ステップS132]分析部170は、ステップS131で抽出したメッセージ対のうち、レスポンス時間がレスポンス閾値THR以上のメッセージ対を抽出し、分析対象メッセージ対として抽出する。
図12は、分析対象メッセージ対の抽出例を示す図である。図12には、観測期間が時間幅ΔTの区間に分けられており、識別番号Tの区間40における分析対象として抽出されるメッセージ対41〜44が示されている。メッセージ対41〜44は、リクエストメッセージの検出時刻からレスポンスメッセージの検出時刻までの期間を矢印で示している。
例えば、リクエストメッセージとレスポンスメッセージとの両方の受信時刻が区間40内のメッセージ対41が、分析対象として抽出される。また、リクエストメッセージの検出時刻が区間40より前であり、レスポンスメッセージの検出時刻が区間40より後のメッセージ対42が、分析対象として抽出される。また、リクエストメッセージの検出時刻が区間40より前であり、レスポンスメッセージの検出時刻が区間40内のメッセージ対43が、分析対象として抽出される。さらに、リクエストメッセージの検出時刻が区間40内であり、レスポンスメッセージの検出時刻が区間40より後のメッセージ対44が、分析対象として抽出される。
このように、リクエストメッセージの検出時刻からレスポンスメッセージの検出時刻までの期間の少なくとも一部が、分析対象の区間40に含まれるメッセージ対が抽出される。
次に、分析期間短縮処理について詳細に説明する。
図13は、分析期間短縮処理の手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS141]分析部170は、抽出された各メッセージ対に対応する処理の実行期間の論理和をとる。メッセージ対に対応する処理の実行期間は、リクエストメッセージの検出時刻からレスポンスメッセージの検出時刻までの期間である。
[ステップS142]分析部170は、論理和で得られた期間を、連続した時間にマッピングする。
[ステップS143]分析部170は、マッピング後の分析期間の長さをT’に設定する。
図14は、分析期間短縮処理の例を示す図である。図14の例では、ΔTの区間の間に、6個のメッセージ対51〜56が含まれている。各メッセージ対51〜56を示す矢印の始点がリクエストメッセージの検出時刻であり、終点がレスポンスメッセージの検出時刻である。すなわちメッセージ対のリクエストメッセージに応じてサーバで実行された処理の実行期間が、各メッセージの矢印で示されている。
メッセージ対51〜53に対応する処理の実行期間の論理和をとると、連続の実行期間57となる。同様にメッセージ対54〜56に対応する処理の実行期間の論理和をとると、連続の実行期間58となる。実行期間57と実行期間58との間には、いずれの処理も実行されていない空白の期間が存在する。この空白の期間は、レスポンス閾値以上の処理時間を要した処理に対応するメッセージ対が存在しない期間である。そこで時間軸上の連続の時間に、処理実行期間57,58がマッピングされる。マッピングされた時間の長さがT’となる。
このように入力タイプや出力タイプの判断前に空白の期間を除外しておくことで、レスポンス悪化要因の判定の正確性を高めることができる。すなわち、入力タイプや出力タイプの判定では、マッピングされた時間をさらに小時間枠に分割し、リクエストメッセージまたはレスポンスメッセージを含む小時間枠の割合を用いて、入力または出力タイプが判定される。この際、レスポンスの悪化と無関係の小時間枠を分析対象に含めると、そのような小時間枠の有無により判定結果が左右されてしまい、判定の正確性に欠ける可能性がある。換言すると、入力タイプや出力タイプの判断前に空白の期間を、分析対象から除外しておけば、レスポンス悪化に関係のある期間のみを用いた精度の高い判定が可能となる。
次に、入力タイプ判定処理について詳細に説明する。
図15は、入力タイプ判定処理の手順の一例を示すフローチャートである。以下、図15の示す処理をステップ番号に沿って説明する。
[ステップS151]分析部170は、T’を、識別番号Tの区間内のリクエストメッセージの数と希釈パラメータAとで除算し、除算の結果をΔtとする。なおリクエストメッセージの数は、ステップS115で分析対象として抽出されたメッセージ対のうち、識別番号Tの区間内のリクエスト時刻が設定されたメッセージ対の数である。リクエストメッセージの数をN(Nは1以上の整数)とすると、「Δt=(T’/N)/A」で表される。希釈パラメータAは定数であるため、Δtは、識別番号Tの区間内のリクエストメッセージの数に応じた値となる。リクエストメッセージの数が多いほど、Δtは小さくなる。
なお、識別番号Tの区間内のリクエストメッセージの数が0の場合も考えられる。この場合、「Δt=(T’/N)/A」によるΔtの計算はできない。リクエストメッセージの数が0の場合、例えば分析部170は、ステップS151〜S158を実行せずに、入力タイプを一定低レベルに決定し、レスポンス悪化要因テーブル181に設定する。
[ステップS152]分析部170は、短縮された分析期間を、Δt時間の小時間枠に分割し、各小時間枠内のリクエストメッセージの出現回数を計算する。なお小時間枠内のリクエストメッセージの出現回数は、ステップS115で分析対象として抽出されたメッセージ対のうち、小区間枠内のリクエスト時刻が設定されたメッセージ対の数である。この出現回数の期待値は「1/A」である。
[ステップS153]分析部170は、リクエストメッセージの出現回数が1以上の小時間枠数の、全体に対する割合を求める。例えば分析部170は、リクエストメッセージの出現回数が1以上の小時間枠数を、すべての小時間枠数で除算する。分析部170は、除算結果を、出現率Bに設定する。ここで、識別番号Tの区間内のリクエストメッセージが、すべて異なる小時間枠に分散して出現した場合、出現率Bの値は「1/A」となる。また識別番号Tの区間内のリクエストメッセージが、すべて共通の小時間枠に集中して出現した場合、出現率Bの値は「1/(N×A)」となる。すなわち、リクエストメッセージの出現する小時間枠の集中度が高いほど、出現率Bの値は小さくなる。
[ステップS154]分析部170は、ステップS153で算出した出現率Bの値が、1を希釈パラメータAと頻度マージンパラメータCとで除算した値「(1/A)/C)」より大きいか否かを判断する。分析部170は、「(1/A)/C)」より出現率Bの値の方が大きければ、処理をステップS156に進める。また分析部170は、出現率Bが「(1/A)/C)」以下であれば、処理をステップS155に進める。
[ステップS155]分析部170は、リクエストメッセージの集中度が高いため、入力タイプを一時高レベルと判断し、レスポンス悪化要因テーブル181に設定する。その後、分析部170は入力タイプ判定処理を終了する。
[ステップS156]分析部170は、リクエストメッセージの集中度は高くないため、入力レベルは、一定低レベルと一定高レベルとのいずれかであると判断する。そこで分析部170は、Δtが、レスポンス時間がレスポンス閾値THR以下のメッセージ対における平均のレスポンス時間Rより小さいか否か「Δt<R」を判断する。分析部170は、ΔtがRより小さければ、処理をステップS158に進める。また分析部170は、ΔtがR以上であれば、処理をステップS157に進める。
なお「Δt=(T’/N)/A」であるため、「Δt<R」の式は、「(T’/A)/R<N」と変形できる。これは、レスポンス時間がレスポンス閾値THRを超えたメッセージ対におけるリクエストメッセージの数Nが、所定値「(T’/A)/R」より多いか否かの判定を意味する。
[ステップS157]ΔtがR以上の場合、メッセージ数Nがあまり多くないものと考えられる。この場合、分析部170は、入力タイプを一定低レベルと判断し、レスポンス悪化要因テーブル181に設定する。その後、分析部170は入力タイプ判定処理を終了する。
[ステップS158]ΔtがRより小さい場合、メッセージ数Nが多いものと考えられる。この場合、分析部170は、入力タイプを一定高レベルと判断し、レスポンス悪化要因テーブル181に設定する。その後、分析部170は入力タイプ判定処理を終了する。
このようにして、入力タイプが決定され、レスポンス悪化要因テーブル181に設定される。
次に、出力タイプ判定処理について詳細に説明する。
図16は、出力タイプ判定処理の手順の一例を示すフローチャートである。以下、図16の示す処理をステップ番号に沿って説明する。
[ステップS161]分析部170は、T’を、識別番号Tの区間内のレスポンスメッセージの数と希釈パラメータAとで除算し、除算の結果をΔtとする。なおレスポンスメッセージの数は、ステップS115で分析対象として抽出されたメッセージ対のうち、識別番号Tの区間内のレスポンス時刻が設定されたメッセージ対の数である。レスポンスメッセージの数をM(Mは1以上の整数)とすると、「Δt=(T’/M)/A」で表される。希釈パラメータAは定数であるため、Δtは、識別番号Tの区間内のレスポンスメッセージの数に応じた値となる。レスポンスメッセージの数が多いほど、Δtは小さくなる。
なお、識別番号Tの区間内のレスポンスメッセージの数が0の場合も考えられる。この場合、「Δt=(T’/M)/A」によるΔtの計算はできない。レスポンスメッセージの数が0の場合、例えば分析部170は、ステップS161〜S168を実行せずに、出力タイプを一定低レベルに決定し、レスポンス悪化要因テーブル181に設定する。
[ステップS162]分析部170は、短縮された分析期間を、Δt時間の小時間枠に分割し、各小時間枠内のレスポンスメッセージの出現回数を計算する。なお小時間枠内のレスポンスメッセージの出現回数は、ステップS115で分析対象として抽出されたメッセージ対のうち、小区間枠内のレスポンス時刻が設定されたメッセージ対の数である。この出現回数の期待値は「1/A」である。
[ステップS163]分析部170は、レスポンスメッセージの出現回数が1以上の小時間枠数の、全体に対する割合を求める。例えば分析部170は、レスポンスメッセージの出現回数が1以上の小時間枠数を、すべての小時間枠数で除算する。分析部170は、除算結果を出現率Bに設定する。ここで、識別番号Tの区間内のレスポンスメッセージが、すべて異なる小時間枠に分散して出現した場合、出現率Bの値は「1/A」となる。また識別番号Tの区間内のレスポンスメッセージが、すべて共通の小時間枠に集中して出現した場合、出現率Bの値は「1/(M×A)」となる。すなわち、レスポンスメッセージの出現する小時間枠の集中度が高いほど、出現率Bの値は小さくなる。
[ステップS164]分析部170は、ステップS163で算出した出現率Bの値が、1を希釈パラメータAと頻度マージンパラメータCとで除算した値「(1/A)/C)」より大きいか否かを判断する。分析部170は、「(1/A)/C)」より出現率Bの値の方が大きければ、処理をステップS166に進める。また分析部170は、出現率Bが「(1/A)/C)」以下であれば、処理をステップS165に進める。
[ステップS165]分析部170は、レスポンスメッセージの集中度が高いため、出力タイプを一時高レベルと判断し、レスポンス悪化要因テーブル181に設定する。その後、分析部170は出力タイプ判定処理を終了する。
[ステップS166]分析部170は、レスポンスメッセージの集中度は高くないため、出力レベルは、一定低レベルと一定高レベルとのいずれかであると判断する。そこで分析部170は、Δtが、レスポンス時間がレスポンス閾値THR以下のメッセージ対における平均のレスポンス時間Rより小さいか否かを判断する。分析部170は、ΔtがRより小さければ、処理をステップS168に進める。また分析部170は、ΔtがR以上であれば、処理をステップS167に進める。
なお「Δt=(T’/M)/A」であるため、「Δt<R」の式は、「(T’/A)/R<M」と変形できる。これは、レスポンス時間がレスポンス閾値THRを超えたメッセージ対におけるレスポンスメッセージの数Mが、所定値「(T’/A)/R」より多いか否かの判定を意味する。
[ステップS167]ΔtがR以上の場合、メッセージ数Mがあまり多くないものと考えられる。この場合、分析部170は、出力タイプを一定低レベルと判断し、レスポンス悪化要因テーブル181に設定する。その後、分析部170は出力タイプ判定処理を終了する。
[ステップS168]ΔtがRより小さい場合、メッセージ数Mが多いものと考えられる。この場合、分析部170は、出力タイプを一定高レベルと判断し、レスポンス悪化要因テーブル181に設定する。その後、分析部170は出力タイプ判定処理を終了する。
このようにして、出力タイプが決定され、レスポンス悪化要因テーブル181に設定される。
次に、入力タイプと出力タイプとに応じたレスポンス悪化要因出力処理について詳細に説明する。
図17は、レスポンス悪化要因出力処理の手順を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS171]分析部170は、レスポンス悪化要因テーブル181を参照し、識別番号がTの区間の入力タイプを判断する。分析部170は、入力タイプが一定低レベルであれば、処理をステップS172に進める。また分析部170は、入力タイプが一定高レベルであれば、処理をステップS176に進める。さらに分析部170は、入力タイプが一時高レベルであれば、処理をステップS180に進める。
[ステップS172]分析部170は、レスポンス悪化要因テーブル181を参照し、識別番号がTの区間の出力タイプを判断する。分析部170は、出力タイプが一定低レベルであれば、処理をステップS173に進める。また分析部170は、出力タイプが一定高レベルであれば、処理をステップS174に進める。さらに分析部170は、出力タイプが一時高レベルであれば、処理をステップS175に進める。
[ステップS173]分析部170は、入力タイプが一定低レベル、出力タイプが一定低レベルの場合、レスポンス悪化要因を「競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS174]分析部170は、入力タイプが一定低レベル、出力タイプが一定高レベルの場合、レスポンス悪化要因を「オーバーロード+競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS175]分析部170は、入力タイプが一定低レベル、出力タイプが一時高レベルの場合、レスポンス悪化要因を「競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS176]分析部170は、レスポンス悪化要因テーブル181を参照し、識別番号がTの区間の出力タイプを判断する。分析部170は、出力タイプが一定低レベルであれば、処理をステップS177に進める。また分析部170は、出力タイプが一定高レベルであれば、処理をステップS178に進める。さらに分析部170は、出力タイプが一時高レベルであれば、処理をステップS179に進める。
[ステップS177]分析部170は、入力タイプが一定高レベル、出力タイプが一定低レベルの場合、レスポンス悪化要因を「オーバーロード+競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS178]分析部170は、入力タイプが一定高レベル、出力タイプが一定高レベルの場合、レスポンス悪化要因を「オーバーロード」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS179]分析部170は、入力タイプが一定高レベル、出力タイプが一時高レベルの場合、レスポンス悪化要因を「オーバーロード+競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS180]分析部170は、レスポンス悪化要因テーブル181を参照し、識別番号がTの区間の出力タイプを判断する。分析部170は、出力タイプが一定低レベルであれば、処理をステップS181に進める。また分析部170は、出力タイプが一定高レベルであれば、処理をステップS182に進める。さらに分析部170は、出力タイプが一時高レベルであれば、処理をステップS183に進める。
[ステップS181]分析部170は、入力タイプが一時高レベル、出力タイプが一定低レベルの場合、レスポンス悪化要因を「入力サージ+競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS182]分析部170は、入力タイプが一時高レベル、出力タイプが一定高レベルの場合、レスポンス悪化要因を「入力サージ」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
[ステップS183]分析部170は、入力タイプが一時高レベル、出力タイプが一時高レベルの場合、レスポンス悪化要因を「入力サージ+競合」と判定し、判定結果をレスポンス悪化要因テーブル181に設定する。その後、分析部170は、レスポンス悪化要因出力処理を終了する。
このようにして、入力タイプと出力タイプとの組み合わせに応じて、レスポンス悪化要因を判定することができる。上記の判定内容をまとめると、図18のようになる。
図18は、レスポンス悪化要因の判定パターンを示す図である。図18では、列の項目名として入力レベルが設定され、行の項目名として出力レベルが設定されている。各列と行の交わった位置に、列の項目名に示される入力レベルと行の項目名に示される出力レベルとの組に応じたレスポンス悪化要因が設定されている。
例えば、入力一定低レベルで出力一定低レベルの場合(第1パターン)、レスポンス悪化要因は「競合」である。入力一定高レベルで出力一定低レベルの場合(第2パターン)、レスポンス悪化要因は「オーバーロード+競合」である。入力一時高レベルで出力一定低レベルの場合(第3パターン)、レスポンス悪化要因は「入力サージ+競合」である。
また、入力一定低レベルで出力一定高レベルの場合(第4パターン)、レスポンス悪化要因は「オーバーロード+競合」である。入力一定高レベルで出力一定高レベルの場合(第5パターン)、レスポンス悪化要因は「オーバーロード」である。入力一時高レベルで出力一定高レベルの場合(第6パターン)、レスポンス悪化要因は「入力サージ」である。
さらに、入力一定低レベルで出力一時高レベルの場合(第7パターン)、レスポンス悪化要因は「競合」である。入力一定高レベルで出力一時高レベルの場合(第8パターン)、レスポンス悪化要因は「オーバーロード+競合」である。入力一時高レベルで出力一時高レベルの場合(第9パターン)、レスポンス悪化要因は「入力サージ+競合」である。
以下、図19〜図23を参照し、レスポンス悪化要因ごとの、リクエスト・レスポンスメッセージ対の入力・出力頻度の時間遷移について説明する。なお図19〜図23では、横軸に時間、縦軸にリクエスト・レスポンスメッセージの頻度(単位時間当たりの数)を採っている。リクエスト・レスポンスメッセージの頻度には、レスポンス時間がレスポンス閾値を超えるリクエスト対に含まれるリクエストメッセージおよびレスポンスメッセージによって、計算されている。
図19は、競合発生時のリクエスト・レスポンス頻度の例を示す図である。図19には、競合発生時のリクエストメッセージの頻度の時間遷移を表すリクエストメッセージ頻度曲線61と、競合発生時のレスポンスメッセージの頻度の時間遷移を表すレスポンスメッセージ頻度曲線62とが示されている。
ある処理(タスク、プロセス、スレッドなど)がハードウェアまたはソフトウェア資源を長期間専有したとき、その資源が開放されるまで、その資源を利用する他の処理が待たされる。そして、専有された資源が開放されると、滞っていた処理が一気に実行される。この場合、リクエストメッセージの頻度は低いまま一定である。またレスポンスメッセージの頻度は、極めて低い値が継続した後、急激に高くなり、またすぐに低い値となる。
このような競合発生時に、レスポンスメッセージ頻度が急激に高くなる前の期間を検出したのが、図18に示す第1パターンである。また、レスポンスメッセージ頻度が一時的に高い値になる期間を含めて検出したのが、図18に示す第7パターンである。
図20は、入力サージ発生時のリクエスト・レスポンス頻度の例を示す図である。図20には、入力サージ発生時のリクエストメッセージ頻度曲線63と、入力サージ発生時のレスポンスメッセージ頻度曲線64とが示されている。
入力サージ発生時には、ある一時期にリクエストメッセージが急増することで、リクエストメッセージの頻度が一時的に上がる。その後、リクエストメッセージの頻度は、低レベルで推移する。またレスポンスメッセージの頻度は、リクエストメッセージの急増がある前は低く、リクエストメッセージの急増後から高レベルで推移する。
このような入力サージ発生時の一連の状態を検出したのが、図18に示す第6パターンである。
図21は、オーバーロード発生時のリクエスト・レスポンス頻度の例を示す図である。図21には、オーバーロード発生時のリクエストメッセージ頻度曲線65と、オーバーロード発生時のレスポンスメッセージ頻度曲線66とが示されている。
オーバーロード発生時には、リクエストメッセージの頻度とレスポンスメッセージの頻度とが、共に高いまま推移する。このようなオーバーロード発生時の一連の状態を検出したのが、図18に示す第5パターンである。
図22は、入力サージ+競合発生時のリクエスト・レスポンス頻度の例を示す図である。図22には、入力サージ+競合発生時のリクエストメッセージ頻度曲線67と、入力サージ+競合発生時のレスポンスメッセージ頻度曲線68とが示されている。
入力サージ+競合発生時には、ある一時期にリクエストメッセージの頻度が急増することで、リクエストメッセージの頻度が一時的に上がる。その後、リクエストメッセージの頻度は、低レベルで推移する。またレスポンスメッセージの頻度は、極めて低い値が継続した後、急激に高くなり、またすぐに低い値となる。
このような入力サージ+競合発生時における、レスポンスメッセージ頻度の上昇前の期間を検出したのが、図18に示す第3パターンである。またリクエストメッセージが高レベルから低レベルに変化した後、レスポンスメッセージ頻度の上昇前の期間を検出したのが、図18に示す第1パターンである。さらに、入力サージ+競合の一連の状態を通して検出したのが、図18に示す第9パターンである。
図23は、オーバーロード+競合発生時のリクエスト・レスポンス頻度の例を示す図である。図23には、オーバーロード+競合発生時のリクエストメッセージ頻度曲線69と、オーバーロード+競合発生時のレスポンスメッセージ頻度曲線70とが示されている。
オーバーロード+競合発生時には、リクエストメッセージの頻度は、高レベルで推移した後、ある時期に低レベルに変化し、その後、低レベルのまま推移する。またレスポンスメッセージの頻度は、低レベルで推移した後、ある時期に高レベルに変化し、その後、高レベルのまま推移する。
このようなオーバーロード+競合発生時における、リクエストメッセージの頻度が高レベルの状態から低レベルに変化するまで、レスポンスメッセージの頻度が高レベルに変化する前を検出したのが、図18に示す第2パターンである。また、リクエストメッセージの頻度が低レベルに変化した後から、レスポンスメッセージの頻度が高レベルに変化し、高レベルが継続するまでを検出したのが、図18の第4パターンである。またリクエストメッセージの頻度が高レベルの状態から低レベルに変化し、さらにレスポンスメッセージの頻度が高レベルに変化したときまでを検出したのが、図18に示す第8パターンである。そして、オーバーロード+競合の一連の状態を通して検出したのが、図18に示す第5パターンである。
このようにして、競合、入力サージ、オーバーロード、およびこれらの組み合わせのいずれかのレスポンス悪化要因を検出することができる。
図24は、レスポンス悪化要因判定例を示す図である。図24の例では、ΔTが100ms、希釈パラメータAが2、頻度マージンパラメータCが2であるものとする。このとき、観測期間を100msで分割したときの1番目の区間(0〜100ms)のレスポンス悪化要因を分析する。
まず、観測期間全体におけるレスポンス時間がレスポンス閾値THR(20ms)以下のメッセージ対におけるレスポンス時間の平均Rが計算される。図24の例では、R=5msである。
次に、分析対象の区間から、レスポンス時間が20msを超えるメッセージ対が抽出される。図24の例では、4つのメッセージ対が抽出されている。
次に抽出されたメッセージ対に対応する処理が実行されていない期間が、分析対象から除外され、分析期間が短縮される。図24の例では、80ms〜100msの期間には、抽出されたメッセージ対に対応する処理は実行されていない。そこで、分析対象の期間が0ms〜80msの期間に短縮され、T’=80msとなる。
次に入力タイプ判定時であれば、リクエストメッセージ数に基づいてΔtが計算される。また出力タイプ判定時であれば、レスポンスメッセージ数に基づいてΔtが計算される。図24の例では、区間Tに含まれるリクエストメッセージ数とレスポンスメッセージ数とは、共に4である。そのため、入力タイプ判定時と出力タイプ判定時とも、Δt=(T’/メッセージ数)/希釈パラメータA=(80/4)/2=10msとなる。
そこで、T’の区間が10msごとの小区間枠に分割される。その結果、0ms〜10ms、10ms〜20ms、20ms〜30ms、30ms〜40ms、40ms〜50ms、50ms〜60ms、60ms〜70ms、70ms〜80msの8つの小区間枠が生成される。
ここで、入力タイプ判定時には、リクエストメッセージ出現回数が1以上の小区間枠数を、小区間枠の総数で除算した値が計算され、出現率Bに設定される。図24の例では、4つのメッセージ対それぞれのリクエストメッセージの検出時刻は、すべて異なる小区間枠に属している。そのため、4つの小区間枠でリクエストメッセージの出現頻度が1以上となっている。その結果、出現率B=4/8=1/2となる。ここで出現率Bが、1を希釈パラメータAと頻度マージンパラメータCとで除算した値「(1/2)/2=1/4」と比較される。するとB(1/2)>1/4となる。この場合、リクエストメッセージが集中しておらず、入力タイプは、一時高レベルではないことが分かる。すなわち入力タイプが、一定低レベルまたは一定高レベルであることが分かる。
また、出力タイプ判定時には、レスポンスメッセージ出現回数が1以上の小区間枠数を、小区間枠の総数で除算した値が計算され、出現率Bに設定される。図24の例では、4つのメッセージ対それぞれのレスポンスメッセージの検出時刻は、すべて同一の小区間枠に属している。そのため、1つの小区間枠でレスポンスメッセージの出現頻度が1以上となっている。その結果、出現率B=1/8となる。ここで出現率Bが、1を希釈パラメータAと頻度マージンパラメータCとで除算した値「(1/2)/2=1/4」と比較される。するとB(1/8)<1/4となる。この場合、レスポンスメッセージが集中しており、出力タイプは、一時高レベルであると判定される。
入力タイプ判定時には、さらにΔtとRとが比較される。図24の例では、Δt(10ms)>R(5ms)である。この場合、入力タイプは、一定低レベルであると判定される。
以上より、入力タイプが一定低レベル、出力タイプが一時高レベルであることが分かった。このような入力タイプと出力タイプとの組み合わせに該当するレスポンス悪化要因は、「競合」である。従って、分析した区間Tのレスポンス悪化要因が「競合」であると判定される。
ΔTの時間間隔の区間ごとに判定されたレスポンス悪化要因の分析結果は、分析結果記憶部180内のレスポンス悪化要因テーブル181に設定される。そして、例えば表示部190によって分析結果がモニタ11に表示される。
図25は、分析結果表示画面の一例を示す図である。分析結果表示画面80には、横軸を時刻、縦軸をレスポンス時間とするグラフが表示されている。グラフは、例えば、単位時間内でリクエストメッセージまたはレスポンスメッセージを受信したメッセージ対の最大のレスポンス時間を示す点を、線で接続したものである。グラフ中で、レスポンス時間が過大となっている部分について、レスポンス悪化要因が視覚的に判別可能なように表示されている。図25の例では、ハッチング種別によってレスポンス悪化要因を示している。なお、色の違いによってレスポンス悪化要因を示してもよい。
図25の例では、観測期間内に、4回のレスポンス悪化期間がある。最初のレスポンス悪化時におけるレスポンス悪化要因は、オーバーロードである。2番目のレスポンス悪化時におけるレスポンス悪化要因は、競合である。3番目のレスポンス悪化時におけるレスポンス悪化要因は、オーバーロードである。4番目のレスポンス悪化時におけるレスポンス悪化要因は、入力サージである。
ユーザがこのような分析結果表示画面80を見ることで、レスポンス悪化の発生と、その要因とを容易に認識することができる。レスポンス悪化要因をさらに詳細に分析する場合、例えば、ユーザは、分析結果表示画面80上で一部の時間帯を選択し、その時間帯に含まれるメッセージ対の情報を抽出する。そしてユーザは、抽出されたメッセージ対の内容を画面に表示させ、より詳細なレスポンス悪化要因の分析(ドリルダウン)を行う。
ところで、表示部190は、横軸に時刻、縦軸にレスポンス時間をとり、メッセージ対に対応する点をプロットした散布図で表すことができる。
このとき、表示部190は、散布図を使った対話的なデータ分析の表示モード自動変更を行うことができる。「散布図を使った対話的なデータ分析」とは散布図の一部分をマウスなどで範囲指定してデータ分析を行う分析方法である。この場合、散布図の点のうち、分析対象とするメッセージ対を示す点が矩形で囲めると、使い勝手がよい。メッセージ対を示す点を散布図にプロットする場合、リクエストメッセージ検出時刻でプロットするやり方と、レスポンスメッセージ検出時刻でプロットするやり方があるが、レスポンス悪化の要因種別によって向き不向きがある。そこで第2の実施の形態では、以下のようにプロット方法を自動選別することにより矩形による範囲指定を容易にする。
図26は、散布図の切り替え表示例を示す図である。図26では、メッセージ対を示す点の位置を、リクエストメッセージ検出時刻に基づいて決定した散布図91を上段に示している。またメッセージ対を示す点の位置を、レスポンスメッセージ検出時刻に基づいて決定した散布図92を下段に示している。表示部190は、ユーザからの表示方法を指定する入力に応じて、2種類の散布図91,92を相互に切り替えて表示する。ユーザは、レスポンス悪化要因に応じて、適当な散布図を表示させ、詳細なデータ分析の対象となるメッセージ対を、矩形で囲むことができる。さらに、表示部190は、例えばユーザからの入力に応じて、矩形内に含まれる点に対応するメッセージ対の情報を表示する。ユーザは、表示された情報に基づいて、ドリルダウンなどの手法によるさらに詳細な分析を行うことができる。
例えばレスポンス悪化要因が入力サージの場合、リクエストメッセージが短時間に集中して発生したことが原因である。すると、集中して発生したリクエストメッセージに対応する点の集合を矩形91aで囲み、囲まれた点で示されるメッセージ対の内容を分析するには、リクエストメッセージ受信時間で点をプロットした散布図91の方が囲みやすい。
またレスポンス悪化要因が競合の場合、資源を専有していた処理がその資源を開放することで、競合によって他の滞っていた多数の処理が進行し、短時間に多数のレスポンスメッセージが出力される。すると、集中して発生したレスポンスメッセージに対応する点の集合を矩形92aで囲み、囲まれた点で示されるメッセージ対の内容を分析するには、レスポンスメッセージ受信時間で点をプロットした散布図92の方が囲みやすい。
以上説明したように、サーバで実行された処理に関するリクエストメッセージとレスポンスメッセージとの検出時刻に基づいて、レスポンス悪化の発生の有無、およびレスポンス悪化が発生した場合における悪化要因を判定することができる。その結果、ユーザは、レスポンス悪化への適切な対処を迅速に行うことができる。例えばオーバーロードが発生している期間があれば、分析対象のサーバの資源を増強することで、以後のオーバーロードの発生を抑止できる。また競合が発生している期間があれば、資源の競合が発生しないように、分析対象のサーバ内部での設定変更が行われる。また入力サージが発生している期間があれば、リクエストメッセージの同時多発を抑止するように、分析対象のサーバにリクエストメッセージを送信している他のサーバの設定変更が行われる。
しかも第2の実施の形態では、レスポンス時間が閾値より悪いメッセージ対に、解析対象の絞り込みを行ってから分析を行っているため、単発で発生した性能悪化についても検出し、要因を分析できる。
〔その他の実施の形態〕
なお、上記の各実施の形態に示した処理機能を、分析サーバ100などのコンピュータに実行させる場合、情報処理装置1または分析サーバ100が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 情報処理装置
1a 記憶手段
1b 抽出手段
1c 第1の分析手段
1d 第2の分析手段
1e 判定手段
2 分析対象装置
3 端末装置
4 処理要求
5 応答

Claims (12)

  1. 分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が前記分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出し、
    抽出した処理期間情報の要求時刻に基づいて、応答時間が前記閾値を超えている処理に関する、処理要求の入力頻度の推移を分析し、
    抽出した処理期間情報の応答時刻に基づいて、応答時間が前記閾値を超えている処理に関する、応答の出力頻度の推移を分析し、
    処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が前記閾値を超えている処理の発生要因を判定する、
    処理を情報処理装置に実行させるプログラム。
  2. 処理要求の入力頻度の推移の分析では、処理要求の入力頻度の推移に応じて、処理要求の入力頻度が一時的に高レベルである一時高レベル、処理要求の入力頻度が継続して高レベルである一定高レベル、処理要求の入力頻度が継続して低レベルである一定低レベルのいずれかに、入力タイプを決定し、
    応答の出力頻度の推移の分析では、応答の出力頻度の推移に応じて、応答の出力頻度が一時的に高レベルである一時高レベル、応答の出力頻度が継続して高レベルである一定高レベル、応答の出力頻度が継続して低レベルである一定低レベルのいずれかに、出力タイプを決定し、
    発生要因の判定では、入力タイプと出力タイプとの組み合わせに応じて、応答時間が前記閾値を超えている処理の発生要因を判定する、
    処理を情報処理装置に実行させる請求項1記載のプログラム。
  3. 処理要求の入力頻度の推移の分析では、分析対象の分析期間を、該分析期間内に入力された処理要求数以上の数の小時間枠に分割し、各小時間枠内での処理要求の入力の有無を判断し、処理要求の入力が少なくとも1回あった小時間枠の割合が所定値以下であれば、入力タイプを一時高レベルと決定し、
    応答の出力頻度の推移の分析では、分析対象とする分析期間を、該分析期間内に出力された応答数以上の数の小時間枠に分割し、各小時間枠内での応答の出力の有無を判断し、応答の出力が少なくとも1回あった小時間枠の割合が所定値以下であれば、出力タイプを一時高レベルと決定する、
    処理を情報処理装置に実行させる請求項2記載のプログラム。
  4. 処理要求の入力頻度の推移の分析では、分析の対象とする分析期間を、該分析期間内に入力された処理要求数以上の数で小時間枠に分割したときの該小時間枠の時間幅が、該分析期間内に入力された処理要求に応じた処理の平均応答時間以上であれば、入力タイプを一定低レベルと決定し、該時間幅が該平均応答時間よりも小さければ、入力タイプを一定高レベルと決定し、
    応答の出力頻度の推移の分析では、分析対象とする分析期間を、該分析期間内に出力された応答数以上の数で小時間枠に分割したときの該小時間枠の時間幅が、該分析期間内に応答した処理の平均応答時間以上であれば、出力タイプを一定低レベルと決定し、該時間幅が該平均応答時間よりも小さければ、出力タイプを一定高レベルと決定する、
    処理を情報処理装置に実行させる請求項2または3のいずれかに記載のプログラム。
  5. 処理要求の入力頻度の推移の分析および応答の出力頻度の推移の分析では、応答時間が前記閾値を超えている処理が実行されていない期間を除外した期間を、分析期間とする、
    処理を情報処理装置に実行させる請求項3または4のいずれかに記載のプログラム。
  6. 発生要因の判定では、入力タイプが一定高レベル、出力タイプが一定高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、過負荷と判定する、
    処理を情報処理装置に実行させる請求項2乃至5のいずれかに記載のプログラム。
  7. 発生要因の判定では、入力タイプが一時高レベル、出力タイプが一定高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、処理要求の短時間の集中と判定する、
    処理を情報処理装置に実行させる請求項2乃至6のいずれかに記載のプログラム。
  8. 発生要因の判定では、入力タイプが一定低レベル、出力タイプが一時高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、処理で使用する資源の競合と判定する、
    処理を情報処理装置に実行させる請求項2乃至7のいずれかに記載のプログラム。
  9. 発生要因の判定では、入力タイプが一時高レベル、出力タイプが一時高レベルであれば、応答時間が前記閾値を超えている処理の発生要因を、処理要求の短時間の集中と、処理で使用する資源の競合との複合要因と判定する、
    処理を情報処理装置に実行させる請求項2乃至8のいずれかに記載のプログラム。
  10. さらに、
    表示方法を指定する入力に応答し、前記記憶手段を参照し、横軸に要求時刻、縦軸に応答時間とする第1の散布図と、横軸に応答時刻、縦軸に応答時間とする第2の散布図とのいずれかを表示する、
    処理を情報処理装置に実行させる請求項1乃至9のいずれかに記載のプログラム。
  11. 情報処理装置が、
    分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が前記分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出し、
    抽出した処理期間情報の要求時刻に基づいて、応答時間が前記閾値を超えている処理に関する、処理要求の入力頻度の推移を分析し、
    抽出した処理期間情報の応答時刻に基づいて、応答時間が前記閾値を超えている処理に関する、応答の出力頻度の推移を分析し、
    処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が前記閾値を超えている処理の発生要因を判定する、
    分析方法。
  12. 分析対象装置に対して処理要求が入力された要求時刻と、該処理要求に応じて実行された処理の応答が前記分析対象装置から出力された応答時刻とを含む処理期間情報が、記憶手段に格納されており、該記憶手段から、要求時刻から応答時刻までの応答時間が閾値を超えている処理の処理期間情報を抽出する抽出手段と、
    抽出した処理期間情報の要求時刻に基づいて、応答時間が前記閾値を超えている処理に関する、処理要求の入力頻度の推移を分析する第1の分析手段と、
    抽出した処理期間情報の応答時刻に基づいて、応答時間が前記閾値を超えている処理に関する、応答の出力頻度の推移を分析する第2の分析手段と、
    処理要求の入力頻度の推移と応答の出力頻度の推移とに基づいて、応答時間が前記閾値を超えている処理の発生要因を判定する判定手段と、
    を有する情報処理装置。
JP2012058464A 2012-03-15 2012-03-15 プログラム、分析方法、情報処理装置 Expired - Fee Related JP5794181B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012058464A JP5794181B2 (ja) 2012-03-15 2012-03-15 プログラム、分析方法、情報処理装置
US13/733,546 US8924551B2 (en) 2012-03-15 2013-01-03 Analysis method and information processing apparatus
EP13151433.3A EP2639696B1 (en) 2012-03-15 2013-01-16 Analysis method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012058464A JP5794181B2 (ja) 2012-03-15 2012-03-15 プログラム、分析方法、情報処理装置

Publications (2)

Publication Number Publication Date
JP2013191145A JP2013191145A (ja) 2013-09-26
JP5794181B2 true JP5794181B2 (ja) 2015-10-14

Family

ID=47594549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012058464A Expired - Fee Related JP5794181B2 (ja) 2012-03-15 2012-03-15 プログラム、分析方法、情報処理装置

Country Status (3)

Country Link
US (1) US8924551B2 (ja)
EP (1) EP2639696B1 (ja)
JP (1) JP5794181B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2717162A4 (en) * 2011-05-23 2015-10-28 Fujitsu Ltd MESSAGE DETECTION DEVICE AND MESSAGE MESSAGE PROGRAM
CN107005748B (zh) * 2014-11-28 2020-08-28 三菱电机株式会社 通信设备、通信适配器、通信系统以及通信参数响应方法
US10250511B2 (en) * 2016-06-10 2019-04-02 International Business Machines Corporation Persistent flow identifiers enabling disparate applications
US11855850B2 (en) * 2017-04-25 2023-12-26 Nutanix, Inc. Systems and methods for networked microservice modeling and visualization
CN107992397A (zh) * 2017-12-21 2018-05-04 联想(北京)有限公司 Bios程序启动监控方法以及电子设备
US10528489B2 (en) 2018-02-28 2020-01-07 Micron Technology, Inc. Multiple memory type memory module systems and methods

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US7181438B1 (en) * 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
US7930285B2 (en) * 2000-03-22 2011-04-19 Comscore, Inc. Systems for and methods of user demographic reporting usable for identifying users and collecting usage data
US8510468B2 (en) * 2000-04-17 2013-08-13 Ciradence Corporation Route aware network link acceleration
JP2002268922A (ja) 2001-03-09 2002-09-20 Ntt Data Corp Wwwサイトの性能監視装置
US7353279B2 (en) * 2004-01-08 2008-04-01 Hughes Electronics Corporation Proxy architecture for providing quality of service(QoS) reservations
WO2006046297A1 (ja) 2004-10-28 2006-05-04 Fujitsu Limited 分析方法及び装置
US7613131B2 (en) * 2005-11-10 2009-11-03 Citrix Systems, Inc. Overlay network infrastructure
US8032867B2 (en) 2007-06-05 2011-10-04 Computer Associates Think, Inc. Programmatic root cause analysis for application performance management
JP5152186B2 (ja) * 2007-07-10 2013-02-27 日本電気株式会社 コンピュータシステム、管理装置、及びコンピュータシステム管理方法
US7886046B1 (en) * 2008-05-16 2011-02-08 Google Inc. Methods and apparatus for predicting impact of proposed changes and implementations in distributed networks
JP5338346B2 (ja) * 2009-02-02 2013-11-13 富士通株式会社 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置
US8473558B2 (en) * 2009-09-22 2013-06-25 Thwapr, Inc. Progressive registration for mobile media sharing
US9953100B2 (en) * 2010-01-27 2018-04-24 Auraplayer Ltd. Automated runtime command replacement in a client-server session using recorded user events

Also Published As

Publication number Publication date
US8924551B2 (en) 2014-12-30
EP2639696A1 (en) 2013-09-18
EP2639696B1 (en) 2018-08-15
JP2013191145A (ja) 2013-09-26
US20130246613A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5794181B2 (ja) プログラム、分析方法、情報処理装置
US11855863B1 (en) Animated visualizations of network activity across network address spaces
TWI686709B (zh) 業務受理及共識的方法及裝置
JP6336606B2 (ja) 可視化されたネットワーク運用及び保守のための方法及び装置
US10002144B2 (en) Identification of distinguishing compound features extracted from real time data streams
US9455890B2 (en) Deep path analysis of application delivery over a network
KR102076862B1 (ko) 네트워크 성능지표를 시각화하는 방법 및 장치, 및 시스템
US9582395B2 (en) Critical systems inspector
US20080065928A1 (en) Technique for supporting finding of location of cause of failure occurrence
EP3316139B1 (en) Unified monitoring flow map
US10601671B1 (en) Creating and displaying a graph representation of a computer network topology for an executing application
US10795744B2 (en) Identifying failed customer experience in distributed computer systems
JP6608689B2 (ja) 非同種ネットワーク内でリンク性能をテストするための方法、コンピュータ・プログラム、およびコンピュータ・システム
TW201119285A (en) Identification of underutilized network devices
US9479414B1 (en) System and method for analyzing computing performance
CN109379305A (zh) 一种数据下发方法、装置、服务器及存储介质
US9565079B1 (en) Holographic statistics reporting
CN112636942B (zh) 业务主机节点的监测方法及装置
US8732323B2 (en) Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method
JP2015529914A (ja) データ視覚化の方法及びシステム
EP4102371A1 (en) Systems and methods for non-intrusive monitoring of intraprocess latency of application
JP5556507B2 (ja) 仮想マシン管理プログラム、仮想マシン管理方法、および仮想マシン管理装置
US9374412B2 (en) Information processing apparatus, information acquiring method, and computer readable recording medium in which information acquisition program is stored
JP5974905B2 (ja) 応答時間監視プログラム、方法および応答時間監視装置
Hanakawa et al. Software and Infrastructure Log-Based Framework for Identifying the Causes of System Faults

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150727

R150 Certificate of patent or registration of utility model

Ref document number: 5794181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees