説明

プログラム、情報処理装置、及び、情報処理方法

【課題】遅延を引き起こしている処理を特定することが可能なプログラム等を提供する。
【解決手段】情報処理装置は、要求データの要求時刻及び応答データの応答時刻を制御部により取得する。情報処理装置は一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を制御部により計数する。情報処理装置は計数した計数値が第1の閾値を超える場合に、複数の要求データの要求時刻に基づき算出される第1の時間及び複数の応答データの応答時刻に基づき算出される第2の時間を制御部により算出する。情報処理装置は、算出した第1の時間と第2の時間との差または比が第2の閾値を超える場合に、制御部により遅延情報を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御部を有するコンピュータにより情報処理を行うプログラム、情報処理装置、及び、情報処理方法に関する。
【背景技術】
【0002】
ネットワーク上を流れる通信パケットに基づき、処理要求に対する各コンピュータの処理時間及び応答時間を分析することで遅延箇所を特定する技術が知られている(例えば、特許文献1及び2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−11683号公報
【特許文献2】特開2011−128969号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術では、業務モデル別の各階層の処理時間内訳から特定のURL(UniformResource Locator)に対する遅延を求めることは可能だが、処理間の影響を把握できない。また特許文献2の技術は、処理要求滞在数の頻度分布に基づき遅延を判断するため、処理要求滞在数の制限に伴う飽和がない場合、遅延を判断できない。
【0005】
1つの側面では、本発明は、遅延を引き起こしている処理を特定することが可能なプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
本願に開示するプログラムは、要求データの要求時刻及び応答データの応答時刻を取得し、一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、計数した計数値が第1の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第1の時間を算出するとともに、複数の応答データの応答時刻に基づいて第2の時間を算出し、算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する処理をコンピュータに実行させる。
【発明の効果】
【0007】
本願の一態様によれば、遅延を引き起こしている処理を特定することが可能となる。
【図面の簡単な説明】
【0008】
【図1】情報処理システムの概要を示す説明図である。
【図2】情報処理装置のハードウェア群を示すブロック図である。
【図3】履歴ファイルのレコードレイアウトを示す説明図である。
【図4】プロトコル及びメッセージIDによるソート処理を示す説明図である。
【図5】URLによるソート処理を示す説明図である。
【図6】抽出処理後のレコードを示す説明図である。
【図7】データの記憶処理手順を示すフローチャートである。
【図8】遅延判断処理の手順を示すフローチャートである。
【図9】遅延判断処理の手順を示すフローチャートである。
【図10】履歴ファイルのレコードレイアウトを示す説明図である。
【図11】プロトコル及びメッセージIDによるソート処理を示す説明図である。
【図12】URLによるソート処理を示す説明図である。
【図13】FIFOに違反するグループの排除処理手順を示すフローチャートである。
【図14】FIFOに違反するグループの排除処理手順を示すフローチャートである。
【図15】遅延情報の出力画面のイメージを示す説明図である。
【図16】他の画面データの表示形態を示す説明図である。
【図17】遅延状況を示すグラフである。
【図18】遅延情報の出力処理の手順を示すフローチャートである。
【図19】遅延情報の出力処理の手順を示すフローチャートである。
【図20】上述した形態の情報処理装置の動作を示す機能ブロック図である。
【図21】実施の形態3に係る情報処理装置のハードウェア群を示すブロック図である。
【発明を実施するための形態】
【0009】
実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理システムの概要を示す説明図である。情報処理システムは情報処理装置1、クライアントコンピュータ21、22、23(以下、場合により2で代表する)、サーバコンピュータ31、32、33(以下、場合により3で代表する)及びスイッチ4等を含む。サーバコンピュータ3は例えばWebサーバコンピュータ31、アプリケーションサーバコンピュータ32またはデータベース(以下DBという)サーバコンピュータ33等である。なお、本実施形態ではクライアントコンピュータ2及びサーバコンピュータ3の数を3としているが、一例でありこれに限るものではない。
【0010】
情報処理装置1は例えばサーバコンピュータまたはパーソナルコンピュータである。情報処理装置1、各サーバコンピュータ3はスイッチ4を介して相互に接続されている。またスイッチ4はインターネットまたはLAN(Local Area Network)等の通信網Nを介してクライアントコンピュータ2と接続されている。Webサーバコンピュータ31、アプリケーションサーバコンピュータ32、及びDBサーバコンピュータ33は、クライアントコンピュータ21,22,23からの要求に応じて、サービスを提供する。
【0011】
サービスを提供する為のトランザクションにおいて、Webサーバコンピュータ31、アプリケーションサーバコンピュータ32、及びDBサーバコンピュータ33間で、スイッチ4を介してメッセージの送受信が行われる場合がある。このスイッチ4を介して送受信されるメッセージを情報処理装置1が監視することで、システムの動作状態の分析を行う。スイッチ4は自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。
【0012】
例えばWebサーバコンピュータ31が接続されたポート、アプリケーションサーバコンピュータ32が接続されたポート、及びDBサーバコンピュータ33が接続されたポートのミラーリング先として、情報処理装置1が接続されたポートが指定されている。これにより、各サーバコンピュータ3宛のパケットは宛先となるサーバコンピュータ3に入力されるとともに、情報処理装置1にも入力される。
【0013】
例えば、クライアントコンピュータ21の要求に応じて、各サーバコンピュータ3が連動してサービスを提供する場合を想定する。この場合、まず、クライアントコンピュータ21からWebサーバコンピュータ31に対し、HTTP(HyperText Transfer Protocol)パケットが送信される。このとき、HTTPパケットと同内容のHTTPパケットが情報処理装置1に入力される。次に、Webサーバコンピュータ31からアプリケーションサーバコンピュータ32へIIOP(Internet Inter-ORB Protocol)パケットが送信される。
【0014】
この場合、IIOPパケットと同内容のIIOPパケットが情報処理装置1に入力される。さらに、アプリケーションサーバコンピュータ32からDBサーバコンピュータ33へ、DBアクセスパケットが送信された場合、DBアクセスパケットと同内容のDBアクセスパケットが情報処理装置1に入力される。
【0015】
情報処理装置1は処理の要求を示すパケット(以下、要求データという)と、要求データに対応して処理が行われた応答を示すパケット(以下、応答データという)とに基づき、遅延を検出する。情報処理装置1は要求データを受信する度に要求時刻を記憶し、応答データを受信する度に応答時刻を記憶する。情報処理装置1は一の要求データの要求時刻から、当該一の要求データに対応する応答データの応答時刻までの間に、要求時刻を有する要求データを抽出する。情報処理装置1は抽出した要求データの要求時刻及び応答時刻を読み出す。情報処理装置1は複数の要求データの要求時刻間の第1の時間(以下、第1時間という)と、複数の応答データの応答時刻間の第2の時間(以下、第2時間という)とを比較する。情報処理装置1は第1時間と第2時間との差または比が第2の閾値(以下、第2閾値という)を超える場合に、遅延情報を出力する。以下詳細を説明する。
【0016】
図2は情報処理装置1のハードウェア群を示すブロック図である。情報処理装置1は制御部(算出処理部)としてのCPU(Central Processing Unit)11、RAM(RandomAccess Memory)12、入力部13、表示部14、記憶部15、通信部16及び時計部18等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【0017】
入力部13はマウス、キーボード、またはタッチパネル等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、CPU11の指示に従い各種情報を表示する。通信部16は例えばLANカード等であり、スイッチ4との間で情報の送受信を行う他、通信網Nを介して他のコンピュータと情報の送受信を行う。時計部18は現在時刻、または、任意の時点を起点とした経過時間をCPU11へ出力する。記憶部15は例えば、ハードディスクまたは大容量フラッシュメモリ等であり、制御プログラム15P及び履歴ファイル151等を格納する。
【0018】
図3は履歴ファイル151のレコードレイアウトを示す説明図である。履歴ファイル151はタイムスタンプフィールド、プロトコルフィールド、メッセージIDフィールド、メッセージ種別フィールド及びオブジェクトフィールド等を含む。タイムスタンプフィールドには、CPU11が要求データまたは応答データを、通信部16を介して受信した際に、時計部18から出力される現在時刻が記憶されている。なお、本実施形態では現在時刻を記憶する例を挙げて説明するがこれに限るものではない。例えば、任意の時刻を起点とした経過時刻をタイムスタンプフィールドに記憶しても良い。また以下では要求データを受信した際の時刻を要求時刻といい、応答データを受信した際の時刻を応答時刻という。CPU11は要求データ及び応答データを受信する度に、履歴ファイル151のタイムスタンプフィールドに要求時刻及び応答時刻を記憶する。
【0019】
プロトコルフィールドには要求データ及び応答データのプロトコル種別が記憶されている。例えばプロトコルは、HTTPまたはSQL(Structured Query Language)等である。メッセージIDフィールドは要求データ及び応答データを特定するためのIDが記憶される。メッセージ種別フィールドには、取得したデータが要求データであるか、または、応答データを示す情報が記憶される。図3の例ではメッセージ種別が要求と記憶されているのは要求データであり、応答と記憶されているのは応答データである。
【0020】
オブジェクトフィールドには、プロトコルがHTTPであり、メッセージ種別が要求である場合に、要求データの要求先のURLが記憶されている。CPU11は要求データ及び応答データのヘッダに記述されたプロトコル、メッセージID、メッセージ種別及びオブジェクトを抽出し、履歴ファイル151に記憶する。例えば、タイムスタンプ000(簡略化のため、場合により小数点以下を表示する)の場合、プロトコルはHTTP、メッセージIDは1、メッセージ種別は要求、オブジェクトはURL1となる。ここで、オブジェクトは、類似の要求をグルーピングするために、URLの文字列から特定の文字列を抽出して記載してもよい。例えば、URLのパス部分のみを抽出したり、URLのパスといくつかの特定のCGIパラメタを抽出して記載することができる。当該要求データに対応する応答データはタイムスタンプ015のフィールドに記憶されている。CPU11はプロトコル及びメッセージIDが一致するメッセージ種別が要求の要求データと、メッセージ種別が応答の応答データを相互に対応するデータであると判断する。同様にプロトコルはHTTPであり、メッセージIDは1、メッセージ種別は応答と記憶されている。なお、本実施形態では履歴ファイル151を記憶部15に設ける例を挙げたがこれに限るものではない。RAM12に記憶するほか、図示しない外部のDBに記憶しても良い。また、履歴ファイル151のデータレイアウトはあくまで一例であり、これに限るものではない。データ間の関係が維持されていれば、他の記憶形態であっても良い。
【0021】
図4はプロトコル及びメッセージIDによるソート処理を示す説明図である。CPU11はプロトコルとメッセージIDとを同じくする要求データ及び応答データのレコードを抽出する。例えば、CPU11はプロトコルHTTP、メッセージIDが1、タイムスタンプが000の要求データと、タイムスタンプ015の応答データとを抽出する。またCPU11はプロトコルSQL、メッセージIDが2、タイムスタンプが007の要求データと、タイムスタンプ009の応答データとを抽出する。CPU11は抽出した要求データと対応する応答データとの関係をRAM12に記憶する。
【0022】
CPU11は抽出した要求データの要求時刻と対応する応答データの応答時刻とに基づき、経過時間を算出する。具体的には応答時刻から要求時刻を減じることで経過時間を算出する。例えば、応答時刻(タイムスタンプ)0.015から、要求時刻0.000を減じ、0.015を算出する。CPU11は算出した経過時間を要求データ及び応答データに対応づけてRAM12に記憶する。
【0023】
図5はURLによるソート処理を示す説明図である。CPU11はオブジェクトフィールドに記憶されたURLを参照し、抽出した要求データ及び応答データの組み合わせをグループ化する。ここで、ファーストインファーストアウト(以下、FIFOという)の条件も加味してグループ化する。なお、図3及び図4では記載を省略したが、図5において、FIFO違反の例を示すべく、タイムスタンプが01.000〜01.018、オブジェクトがURL2のレコードをも追加した。図5の例では、オブジェクトURL1のグループ、オブジェクトが記憶されていないグループ(プロトコルがSQLの要求データと応答データ)、及び、オブジェクトURL2のグループが2つの、計4つに分けられる。ここで、CPU11は記憶部15から閾時間(所定時間、例えば0.005秒)を読み出し、CPU11は経過時間が閾時間を越える要求データと応答データのみの組み合わせのみをグループとして抽出してもよい。図5の例では、閾時間0.005以上の経過時間が記憶された要求データおよび応答データの組み合わせのみがグループとして抽出される。CPU11はグループ化した要求データの内、最先の要求データに係る要求時刻と当該要求時刻に対応する応答時刻とを読み出す。CPU11は読み出した要求時刻と応答時刻との間に、要求時刻及び応答時刻の双方を有する他の要求データ及び応答データが存在するか否かを判断する。CPU11は存在すると判断した場合、当該グループについてはFIFO違反であるとして、遅延処理を行うことなく処理を終了する。図5の例では、CPU11は、最先の要求データに係る要求時刻1.000と応答時刻1.016とを読み出す。ここで、メッセージID5の要求時刻は、1.006、応答時刻は1.012であり、当該要求時刻及び応答時刻の双方が、最先の要求データに係る要求時刻1.000と応答時刻1.016との間に存在する。この場合、CPU11は当該グループについて遅延処理を行うことなく処理を終了する。
【0024】
なお、グループの抽出は、第1番目の要求データの要求時刻と応答時刻との間に要求時刻が存在する他の要求データ数に関する制約を前記方法に加えて行っても良い。CPU11は第1番目の要求データの要求時刻と応答時刻とを履歴ファイル151から読み出す。次いで、CPU11は読み出した要求時刻と応答時刻との間の要求時刻を有する要求データを計数する。CPU11は計数した計数値をRAM12に記憶する。例えば、図3のタイムスタンプ000の例では、計数値は2となる。すなわち第1番目の要求データの要求時刻000と応答時刻015とを読み出す。CPU11は要求時刻001、008を有する2つの要求データを計数する。CPU11は記憶部15から第1の閾値(以下、第1閾値という)を読み出す。第1閾値は例えば1である。CPU11は第1閾値を超える計数値を有するグループを抽出する。CPU11は抽出処理後のレコードをRAM12に記憶する。
【0025】
図6は抽出処理後のレコードを示す説明図である。CPU11は要求時刻間の時間を加算し第1時間を算出する。図6の例では要求時刻000と要求時刻001との間の時間(001)に、要求時刻001と要求時刻008との間の時間(007)を加算し、第1時間である0.008(001+007)を算出する。CPU11はRAM12にグループに対応づけて0.008を記憶する。同様に、CPU11は応答時刻間の時間を加算し第2時間を算出する。図6の例では応答時刻015と応答時刻016との間の時間(001)に、応答時刻016と応答時刻017との間の時間(001)を加算し、第2時間である0.002(001+001)を算出する。CPU11はRAM12にグループに対応づけて0.002を記憶する。
【0026】
CPU11は第1時間と第2時間との差または比を算出する。本実施形態では比を用いた例を挙げて説明するが、差であっても良い。CPU11は第1時間を第2時間で除す。なお、第2時間を第1時間で除しても良い。CPU11は記憶部15から第2閾値を読み出す。CPU11は除した値が第2閾値を超えるか否かを判断する。CPU11は除した値が第2閾値を超える場合に、遅延を示す遅延情報を出力する。なお、遅延情報の出力は、表示部14への出力、図示しないスピーカ等への出力、通信網Nを介して接続される他のコンピュータへ出力しても良い。
【0027】
以上のハードウェアにおいて、ソフトウェア処理を、フローチャートを用いて説明する。図7はデータの記憶処理手順を示すフローチャートである。CPU11はスイッチ4から送信された要求データのプロトコル、メッセージID、メッセージ種別及びオブジェクトを、通信部16を介して受信する(ステップS71)。CPU11は受信時に時計部18から出力された要求時刻、プロトコル、メッセージID、メッセージ種別及びオブジェクトを履歴ファイル151に記憶する(ステップS72)。なお、CPU11はメッセージ種別を参照し、データを要求データ、時刻を要求時刻と判断する。
【0028】
CPU11はスイッチ4から送信された応答データのプロトコル、メッセージID、メッセージ種別及びオブジェクトを、通信部16を介して受信する(ステップS73)。CPU11は受信時に時計部18から出力された応答時刻、プロトコル、メッセージID、メッセージ種別及びオブジェクトを履歴ファイル151に記憶する(ステップS74)。なお、CPU11はメッセージ種別を参照し、データを応答データ、時刻を応答時刻と判断する。
【0029】
図8及び図9は遅延判断処理の手順を示すフローチャートである。CPU11は履歴ファイル151にデータを記憶した後、一定時間毎、任意の時間または予め定めた適宜の時間に以下の処理を行う。CPU11は履歴ファイル151から要求データの要求時刻、プロトコル、メッセージID、メッセージ種別及びオブジェクトを取得する(読み出す)(ステップS81)。CPU11は履歴ファイル151から応答データの応答時刻、プロトコル、メッセージID、メッセージ種別及びオブジェクトを取得する(読み出す)(ステップS82)。
【0030】
CPU11は取得した要求時刻、応答時刻、プロトコル、メッセージID、メッセージ種別及びオブジェクトをRAM12に展開する(ステップS83)。CPU11はプロトコル及びメッセージIDを共通にする組み合わせを抽出する(ステップS84)。CPU11はオブジェクトとFIFOに基づき、グループ化する(ステップS85)。CPU11は要求時刻と応答時刻との組み合わせに基づき、経過時間を算出する(ステップS86)。具体的にはグループ内の抽出された組み合わせに係る応答時刻から要求時刻を減じ、経過時間を算出する。
【0031】
CPU11は記憶部15から閾時間を読み出す(ステップS87)。CPU11は経過時間が閾時間を超える組み合わせをステップS85で作成したグループ内のデータから削除する(ステップS88)。CPU11は抽出したグループの要求時刻が最も先の要求データ(一の要求データ)に係る要求時刻を読み出す(ステップS89)。CPU11は当該先の要求データに対応する応答データに係る応答時刻をRAM12から読み出す(ステップS91)。
【0032】
CPU11は読み出した先の要求データに係る要求時刻と応答時刻との間の要求時刻を有する要求データ数を、RAM12を参照し、計数する(ステップS92)。CPU11は記憶部15から第1閾値を読み出す(ステップS93)。CPU11はステップS92で計数した計数値が第1閾値を超えるか否か判断する(ステップS94)。CPU11は第1閾値を超えないと判断した場合(ステップS94でNO)、処理を終了する。CPU11は第1閾値を超えると判断した場合(ステップS94でYES)、処理をステップS95へ移行させる。
【0033】
CPU11はRAM12から第1閾値を超えないグループを削除する。CPU11はRAM12に記憶した各要求時刻間の時間を加算し第1時間を算出する(ステップS95)。具体的には、CPU11は相互に連続する要求時刻間の時間を求め、合計することで第1時間を算出する。なお、第1時間の算出は一例であり、複数の要求データに係る要求時刻を用いるものであれば、これに限るものではない。例えば、時刻が最も後の要求時刻からそれ以前のそれぞれの要求時刻を減じたものの総和で第1時間を算出しても良い。その他、CPU11は相互に連続する要求時刻間の時間の合計値、または、時刻が最も後の要求時刻から時刻が最も先の要求時刻を減じた値を、ステップS92で計数した計数値で除すことにより第1時間を算出しても良い。
【0034】
CPU11はRAM12に記憶した各応答時刻間の時間を加算し第2時間を算出する(ステップS96)。具体的には、CPU11は相互に連続する応答時刻間の時間を求め、合計することで第2時間を算出する。なお、第2時間の算出は一例であり、複数の応答データに係る応答時刻を用いるものであれば、これに限るものではない。例えば、時刻が最も後の応答時刻からそれ以前のそれぞれの応答時刻を減じたものの総和で第2時間を算出しても良い。その他、CPU11は相互に連続する応答時刻間の時間の合計値、または、時刻が最も後の応答時刻から時刻が最も先の応答時刻を減じた値を、ステップS92で計数した計数値で除すことにより第2時間を算出しても良い。
【0035】
CPU11は第1時間を第2時間で除算する(ステップS97)。CPU11は記憶部15から第2閾値を読み出す(ステップS98)。CPU11は除算した値が第2閾値を超えるか否か判断する(ステップS99)。なお、第2閾値は例えば2等である。CPU11は第2閾値を越えないと判断した場合(ステップS99でNO)、処理を終了する。CPU11はRAM12に記憶したグループのレコードを消去する。CPU11は除算した値が第2閾値を超えると判断した場合(ステップS99でYES)、遅延していることを示す遅延情報を表示部14または通信部16を介して外部のコンピュータ(図示せず)へ出力する(ステップS910)。これにより、特定のサーバコンピュータ3の処理が全般的に遅延しているのか、或いは、当該サーバにおいて、特定の処理に起因して遅延しているのかを判別することが可能となる。
【0036】
続いてFIFO抽出処理について説明する。CPU11はグループ化した要求データの内、最先の要求データに係る要求時刻と応答時刻とを読み出す。CPU11は読み出した要求時刻と応答時刻との間に、要求時刻と応答時刻との双方を有する要求データ及び当該要求データに対応する応答データが記憶されている場合、遅延と判断せず、処理を終了する。
【0037】
図10は履歴ファイル151のレコードレイアウトを示す説明図である。履歴ファイル151は、タイムスタンプフィールド、プロトコルフィールド、メッセージIDフィールド、メッセージ種別フィールド及びオブジェクトフィールドを含む。
【0038】
図11はプロトコル及びメッセージIDによるソート処理を示す説明図である。CPU11はプロトコルとメッセージIDとを同じくする要求データ及び応答データのレコードを抽出する。例えば、CPU11はプロトコルHTTP、メッセージIDが1、タイムスタンプが1.000の要求データと、タイムスタンプ1.016の応答データとを抽出する。またCPU11はプロトコルSQL、メッセージIDが1、タイムスタンプが1.002の要求データと、タイムスタンプ1.005の応答データとを抽出する。CPU11は抽出した要求データの要求時刻と対応する応答データの応答時刻とに基づき、経過時間を算出する。
【0039】
図12はURLによるソート処理を示す説明図である。CPU11はオブジェクトフィールドに記憶されたURLを参照し、抽出した要求データ及び応答データの組み合わせをグループ化する。図12の例では、オブジェクトURL2のグループ、オブジェクトが記憶されていないグループ(プロトコルがSQLの要求データと応答データ)、及び、オブジェクトURL1のグループの3つに分けられる。ここで、オブジェクトがURL2のグループに着目する。CPU11はグループ化した要求データの内、最先の要求データに係る要求時刻1.000と応答時刻1.016とを読み出す。ここで、メッセージIDが5の要求時刻は、1.006、応答時刻は1.012であり、当該要求時刻及び応答時刻の双方が、最先の要求データに係る要求時刻1.000と応答時刻1.016との間に存在する。この場合、CPU11は当該グループについて遅延処理を行うことなく処理を終了する。
【0040】
図13及び図14はFIFOに違反するグループの排除処理手順を示すフローチャートである。ステップS81〜S91間での処理は上述したとおりであるので詳細な説明は省略する。CPU11はステップS91の後、RAM12を参照し、最先の要求データに係る要求時刻と応答時刻との間に要求時刻と応答時刻を有する要求データ及び応答データの組み合わせが存在するか否かを判断する(ステップS131)。CPU11は存在しないと判断した場合(ステップS131でNO)、処理をステップS92へ移行させる。ステップS92以降の処理は上述したとおりであるので、詳細な説明を省略する。
【0041】
CPU11は組み合わせが存在すると判断した場合(ステップS131でYES)、FIFOに反するとして処理をステップS132へ移行させる。CPU11はRAM12からステップS131において組み合わせが存在するグループに係るレコードをRAM12から削除する(ステップS132)。CPU11はステップS131における処理を、ステップS88で抽出した全てのグループについて実行したか否かを判断する(ステップS133)。CPU11は全てのグループについて処理を実行していないと判断した場合(ステップS133でNO)、ステップS89へ移行し、未処理のグループについて同様の処理を行う。
【0042】
CPU11は全てのグループについて処理を実行したと判断した場合(ステップS133でYES)、処理を終了する。この場合、ステップS92で述べた計数処理、ステップS95及びS96における算出処理、並びに、ステップS910における出力処理が中止(スキップ)される。なお、本実施形態で追加したステップS131〜S133の処理は、ステップS92〜S94の計数処理の後に実行しても良い。この場合、ステップS95及びS96における算出処理、並びに、ステップS910における出力処理が中止される。また本実施形態で追加したステップS131〜S133の処理は、ステップS95〜S99の算出処理の後に実行しても良い。
【0043】
この場合、ステップS910における出力処理が中止される。このようにFIFOに反するグループを除去することで、特定処理の遅延に起因しない遅延情報の出力を防止することが可能となる。
【0044】
実施の形態2
実施の形態2は遅延情報を出力する形態に関する。図15は遅延情報の出力画面のイメージを示す説明図である。CPU11はステップS99において第2閾値を超えると判断した場合、記憶部15から遅延情報を表示するための画面データを読み出す。テンプレートとなる画面データには、図15に示すように、「以下の要求データにより遅延が発生しています。」等の遅延が発生したことを示す情報が記憶されている。CPU11はステップS89でRAM12から読み出した最も先の要求データに係る要求時刻を読み出す。またCPU11は要求データに対応するプロトコル、メッセージID、メッセージ種別及びオブジェクトを読み出す。CPU11はテンプレートとなる画面データに要求データに係る要求時刻(タイムスタンプ)、プロトコル、メッセージID、メッセージ種別及びオブジェクトを記述する。CPU11は記述後の遅延情報を表示部14へ出力する。
【0045】
図15の例では要求時刻が00:00:00.000、プロトコルがHTTP、メッセージIDが1、メッセージ種別が要求、オブジェクトがURL1と表示される。なお、これら全てを表示する必要はない。例えば、要求時刻のみを表示しても良い。なお、本実施形態では遅延情報の出力先を表示部14としたがこれに限るものではない。例えば、CPU11は電子メールアドレスを記憶部15に記憶しておき、遅延情報を出力する際に、記憶した電子メールアドレス宛に上述した記述済みの画面データを送信しても良い。またCPU11は遅延情報を含む画面データを記憶部15に記憶しておき、図示しない他のコンピュータから送信要求があった場合に、当該画面データを他のコンピュータへ送信しても良い。
【0046】
図16は他の画面データの表示形態を示す説明図である。さらにCPU11はステップS88で残ったグループの内、ステップS99で第2閾値を超えると判断されたグループの各種データを表示しても良い。CPU11はグループの要求データ及び応答データに係るタイムスタンプ(要求時刻及び応答時刻)、プロトコル、メッセージID、メッセージ種別、オブジェクト、経過時間、第1時間及び第2時間を、記述する。なお、少なくとも要求データの要求時刻と応答データの応答時刻とを記述すればよい。他の表示項目については適宜追加するようにすればよい。図16にはタイムスタンプの他、経過時間、第1時間及び第2時間もが表示される。
【0047】
図17は遅延状況を示すグラフである。CPU11はさらにRAM12に記憶したデータに基づき、遅延状況をグラフ表示しても良い。横軸は時間、縦軸は要求または応答の有無を示す。実線は要求時刻000及び応答時刻015の要求データ及び応答データを示す。点線は要求時刻001及び応答時刻016の要求データ及び応答データを示す。一点鎖線は要求時刻008及び応答時刻017の要求データ及び応答データを示す。CPU11は要求データの要求時刻及び応答データの応答時刻に基づき、時間的変化をグラフ表示する。CPU11は時間的変化の表示処理を各要求データ及び応答データの組み合わせが識別できるよう、相違する形態でグラフ表示する。例えば、本実施形態の如く、実線及び点線で識別するほか、着色により識別できるようにしても良い。
【0048】
CPU11は要求データの要求時刻及び応答データの応答時刻を横軸上に記述する。またCPU11はRAM12から第1時間及び第2時間を読み出す。CPU11は時間的に最も先の第1番目の要求データの時刻と、時間的に最終の要求データの時刻との間に、第1時間を記述する。図17の例では要求時刻000と008との間に、左右に伸びる双方向矢印が表示され、さらに第1時間0.008と表示されている。CPU11は時間的に最も先の第1番目の応答データの時刻と、時間的に最終の応答データの時刻との間に、第2時間を記述する。図17の例では要求時刻015と017との間に左右に伸びる双方向矢印が表示され、さらに第2時間0.002と表示されている。
【0049】
図18及び図19は遅延情報の出力処理の手順を示すフローチャートである。CPU11は第2閾値を超えるグループを抽出する(ステップS181)。具体的には、ステップS88で抽出されたグループの内、ステップS99で第2閾値を超えるグループを抽出する。CPU11は当該グループの要求データ及び応答データに係るタイムスタンプ、プロトコル、メッセージID、メッセージ種別及びオブジェクトをRAM12から読み出す(ステップS182)。同様に、CPU11は要求データ及び応答データに係る経過時間、第1時間及び第2時間を読み出す(ステップS183)。なお、経過時間、第1時間及び第2時間はステップS86、S95及びS96で算出され、RAM12に要求データ及び応答データに対応づけて記憶されているデータを利用すればよい。
【0050】
CPU11は記憶部15からテンプレートとなる画面データを読み出す(ステップS184)。テンプレートとなる画面データには、遅延が発生していることを示す文章が予め記述されている。CPU11は画面データに、タイムスタンプ、プロトコル、メッセージID、メッセージ種別、オブジェクト、経過時間、第1時間及び第2時間を記述する(ステップS185)。CPU11は記述後の画面データを表示部14に図16の如く表示する(ステップS186)。CPU11は入力部13からグラフを表示する旨の要求を受け付けた場合、以下の処理を行う。
【0051】
CPU11はテンプレートとなるグラフデータを読み出す(ステップS187)。テンプレートとなるグラフデータには、遅延が発生していることを示す文章の他、クライアントコンピュータ2とサーバコンピュータ3との間の通信状況を時系列で示すことができるよう横軸が予め記述されている。例えば下側をクライアントコンピュータ2、上側をサーバコンピュータ3とすれば良い。なお、グラフの表示例はあくまで一例であり、これに限るものではない。例えば、時計方向に90度回転させても良い。すなわち、時間の経過方向を上から下へと定義し、左側をクライアントコンピュータ2、右側をサーバコンピュータ3としても良い。
【0052】
CPU11はステップS182で読み出した要求データ及び応答データの要求時刻及び応答時刻に基づき、要求データ及び応答データの時間的変化を記述する(ステップS188)。具体的には要求時刻を起点とし、クライアントコンピュータ2の軸からサーバコンピュータ3の軸へと向かう矢印を記述する。またCPU11は応答時刻を起点とし、サーバコンピュータ3の軸からクライアントコンピュータ2の軸へと向かう矢印を記述する。最後に要求データを示す線の矢印先端と、応答データを示す線の末端とを結ぶ線を記述する。
【0053】
CPU11はステップS182で読み出した要求時刻及び応答時刻を記述する(ステップS189)。CPU11は全ての要求データ及び応答データに対するステップS188及びS189に対する処理が終了したか否かを判断する(ステップS191)。CPU11は全ての処理が終了していないと判断した場合(ステップS191でNO)、処理をステップS188に戻し、他の組み合わせに係る要求データ及び応答データに対する処理を行う。CPU11はステップS188の処理を実行する際、既に記述済みの線と識別することができる線を記述する。
【0054】
CPU11はグループ内の全ての要求データ及び応答データに対する処理が終了したと判断した場合(ステップS191でYES)、処理をステップS192へ移行させる。CPU11は、ステップS183で読み出した第1時間を読み出す(ステップS192)。CPU11は最初の要求時刻及び最終の要求時刻をRAM12から読み出す(ステップS193)。CPU11は第1時間を最初の要求時刻と最終の要求時刻との間に記述する(ステップS194)。CPU11は、ステップS183で読み出した第2時間を読み出す(ステップS195)。CPU11は最初の応答時刻及び最終の応答時刻をRAM12から読み出す(ステップS196)。CPU11は第2時間を最初の応答時刻と最終の応答時刻との間に記述する(ステップS197)。CPU11は記述後のグラフを表示部14に表示する(ステップS198)。
【0055】
CPU11は遅延の原因となった最初の要求時刻を他の時刻とは識別できるよう表示する(ステップS199)。具体的には、時刻を点滅させるか、または、他の時刻の色とは異なる色により表示する。図17の例では要求時刻000が点滅する。またCPU11は遅延の原因となった最初の要求データに係る線を、他の線とは識別できるように表示する(ステップS1910)。例えば、最初の要求データに係る矢印線を点滅または他の矢印とは異なる色、または、点線により表示する。図17の例では要求時刻000にクライアントコンピュータ2の軸を起点に、サーバコンピュータ3の軸まで上向きに伸びる矢印を点滅させる。
【0056】
CPU11は遅延を示す第1時間を第2時間とは異なる形態で表示する(ステップS1911)。例えば、第1時間を点滅または第2時間とは異なる色で表示する。図17の例では第2時間を黒、第1時間を赤色とすれば良い。これにより、ユーザは特定の原因に起因する遅延を容易に特定することができ、速やかに対処することが可能となる。
【0057】
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【0058】
実施の形態3
図20は上述した形態の情報処理装置1の動作を示す機能ブロック図である。CPU11が制御プログラム15P等を実行することにより、情報処理装置1は以下のように動作する。CPU11は制御プログラム15Pのモジュールに係る取得部121、計数部122、算出部123及び出力部124をRAM12に展開する。取得部121は、要求データの要求時刻及び応答データの応答時刻を取得する。計数部122は取得部121により取得した一の要求データの要求時刻から応答時刻までの間に要求時刻を有する他の要求データ数を計数する。算出部123は、計数部122により計数した計数値が第1閾値を超える場合に、各要求データの要求時刻に基づき算出される第1時間及び各要求データの応答時刻に基づき算出される第2時間を算出する。出力部124は算出部123により算出した要求時間と応答時間との差または比が第2閾値を超える場合に、遅延情報を出力する。
【0059】
図21は実施の形態3に係る情報処理装置1のハードウェア群を示すブロック図である。情報処理装置1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(DigitalVersatile Disc)ディスクまたはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bを情報処理装置1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
【0060】
図21に示す情報処理装置1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述した情報処理装置1として機能する。
【0061】
本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【0062】
以上の実施の形態1乃至3を含む実施形態に関し、さらに以下の付記を開示する。
【0063】
(付記1)
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第1の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第1の時間を算出するとともに、複数の応答データの応答時刻に基づいて第2の時間を算出し、
算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する
処理をコンピュータに実行させるプログラム。
【0064】
(付記2)
各要求データの要求時刻間の時間を加算することにより第1の時間を算出し、各応答データの応答時刻間の時間を加算することにより第2の時間を算出する
付記1に記載のプログラム。
【0065】
(付記3)
各要求データの要求時刻間の時間を加算し、前記計数値で除すことにより第1の時間を算出し、各応答データの応答時刻間の時間を加算し、前記計数値で除すことにより第2の時間を算出する
付記1に記載のプログラム。
【0066】
(付記4)
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第1の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第1の時間を算出するとともに、複数の応答データの応答時刻に基づいて第2の時間を算出し、
算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力し、
一の要求データの要求時刻から応答時刻までの間に要求時刻及び応答時刻を有する他の要求データが存在する場合、前記制御部は前記計数、算出または出力処理を中止する
処理をコンピュータに実行させるプログラム。
【0067】
(付記5)
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間の経過時間を前記制御部により算出し、
算出した経過時間が記憶部に記憶した所定時間以上の場合に、前記制御部により他の要求データ数を計数する
付記1乃至4のいずれか一つに記載のプログラム。
【0068】
(付記6)
算出した要求時間と応答時間との差または比が第2の閾値を超える場合に、前記制御部により前記一の要求データを特定するための情報を出力する
付記1乃至5のいずれか一つに記載のプログラム。
【0069】
(付記7)
算出した要求時間と応答時間との差または比が第2の閾値を超える場合に、前記制御部により前記一の要求データ及び他の要求データの要求時刻及び応答時刻を特定するための情報を出力する
付記1乃至5のいずれか一つに記載のプログラム。
【0070】
(付記8)
要求データの要求時刻及び応答データの応答時刻を取得する取得部と、
該取得部により取得した一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数する計数部と、
該計数部により計数した計数値が第1の閾値を超える場合に、複数の要求データの要求時刻に基づいて第1の時間を算出すると共に、複数の応答データの応答時刻に基づいて第2の時間を算出する算出部と、
該算出部により算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する出力部と
を備える情報処理装置。
【0071】
(付記9)
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第1の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第1の時間を算出すると共に、複数の応答データの応答時刻に基づいて第2の時間を算出し、
算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する
情報処理方法。
【符号の説明】
【0072】
1 情報処理装置
1A 可搬型記録媒体
1B 半導体メモリ
2、21、22、23 クライアントコンピュータ
3、31、32、33 サーバコンピュータ
4 スイッチ
10A 読み取り部
11 CPU
12 RAM
13 入力部
14 表示部
15 記憶部
15P 制御プログラム
16 通信部
18 時計部
121 取得部
122 計数部
123 算出部
124 出力部
151 履歴ファイル
N 通信網

【特許請求の範囲】
【請求項1】
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第1の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第1の時間を算出するとともに、複数の応答データの応答時刻に基づいて第2の時間を算出し、
算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する
処理をコンピュータに実行させるプログラム。
【請求項2】
各要求データの要求時刻間の時間を加算することにより第1の時間を算出し、各応答データの応答時刻間の時間を加算することにより第2の時間を算出する
請求項1に記載のプログラム。
【請求項3】
各要求データの要求時刻間の時間を加算し、前記計数値で除すことにより第1の時間を算出し、各応答データの応答時刻間の時間を加算し、前記計数値で除すことにより第2の時間を算出する
請求項1に記載のプログラム。
【請求項4】
要求データの要求時刻及び応答データの応答時刻を取得する取得部と、
該取得部により取得した一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数する計数部と、
該計数部により計数した計数値が第1の閾値を超える場合に、複数の要求データの要求時刻に基づいて第1の時間を算出すると共に、複数の応答データの応答時刻に基づいて第2の時間を算出する算出部と、
該算出部により算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する出力部と
を備える情報処理装置。
【請求項5】
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第1の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第1の時間を算出すると共に、複数の応答データの応答時刻に基づいて第2の時間を算出し、
算出した前記第1の時間と前記第2の時間との間の差、または、比が第2の閾値を超える場合に、遅延情報を出力する
情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2013−61885(P2013−61885A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−201090(P2011−201090)
【出願日】平成23年9月14日(2011.9.14)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】