JP5229028B2 - システム分析方法、装置及びプログラム - Google Patents

システム分析方法、装置及びプログラム Download PDF

Info

Publication number
JP5229028B2
JP5229028B2 JP2009063814A JP2009063814A JP5229028B2 JP 5229028 B2 JP5229028 B2 JP 5229028B2 JP 2009063814 A JP2009063814 A JP 2009063814A JP 2009063814 A JP2009063814 A JP 2009063814A JP 5229028 B2 JP5229028 B2 JP 5229028B2
Authority
JP
Japan
Prior art keywords
packet
chunk
storage unit
processing
time
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.)
Active
Application number
JP2009063814A
Other languages
English (en)
Other versions
JP2010218185A (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 JP2009063814A priority Critical patent/JP5229028B2/ja
Priority to US12/698,580 priority patent/US8305908B2/en
Publication of JP2010218185A publication Critical patent/JP2010218185A/ja
Application granted granted Critical
Publication of JP5229028B2 publication Critical patent/JP5229028B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本技術は、システムの稼働状況を分析するための技術に関する。
多階層システムでは、役割の異なる複数のサーバがメッセージを交換することにより連携して動作し、クライアントからの要求に応じた処理を実施する。例えばオンラインバンキングのシステムやネットショッピングにおける受発注システムにおいては、ウェブサーバ(以下、Webサーバと呼ぶ)、アプリケーションサーバ(以下、APサーバと呼ぶ)及びデータベースサーバ(以下、DBサーバと呼ぶ)から構成されるWeb3階層システムが採用されることが多い。一般にこのようなシステムは、大規模で複雑になりやすいため、システム全体の稼動状況を把握することが難しく、例えば障害が発生した場合に問題箇所を直ちに特定することは容易ではない。
このようなシステムの稼動状況を分析するための技術として、例えば、サーバ間で送受信されるパケットを収集し、収集したパケットの内容を解析するような技術がある。この技術では、収集したパケットのペイロードに含まれる識別子等に基づき、サーバ間におけるリクエストメッセージとレスポンスメッセージとの対応関係を特定し、プロトコルログとして出力する。また、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づきサーバ間の呼出の制約条件を満たすトランザクションモデルを生成する。そして、トランザクションモデルに合致するプロトコルログによりトランザクションの処理状態を分析する。
特開2006−11683号公報 特開2007−241805号公報
しかしながら、サーバ間で送受信されるパケットのペイロードが暗号化されているような場合には、識別子等を用いて複数のリクエストメッセージと複数のレスポンスメッセージの中で特定のリクエストメッセージと特定のレスポンスメッセージとの対応付けを行うことができず、トランザクションモデルの生成、ひいてはシステムの稼動状況の分析を行うことができないという問題があった。
そこで、本技術の目的は、システム内のサーバ間で通信されるデータのうち暗号などにより保護されている部分を用いることなくシステムの稼動状況を分析できるようにするための技術を提供することである。
本システム分析方法は、ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法である。そして、本方法は、複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ上位階層サーバから下位階層サーバへの下りパケット及び下位階層サーバから上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす上りパケット及び下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、特定された組み合わせのうち特定の組み合わせに含まれる上りパケットから、特定の組み合わせの直後の組み合わせに含まれる下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、特定の組み合わせに含まれる上りパケットの受信時刻と特定の組み合わせの直後の組み合わせに含まれる下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、チャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻とが共に含まれるチャンクのチャンクIDをチャンク・データ格納部から特定し、処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納するステップと、下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての処理IDに対応付けて包含関係データ格納部に格納されている各チャンクIDについて、当該チャンクIDに対応付けてチャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、特定の処理について算出されたチャンク処理時間の総和を求めることにより、特定の処理における上位階層サーバの処理時間を算出し、特定の処理についての処理IDに対応付けて解析結果格納部に格納するステップとを含む。
システム内のサーバ間で通信されるデータのうち暗号などにより保護されている部分を用いることなくシステムの稼動状況を分析できるようになる。
本技術の一実施の形態に係るシステムの構成図である。 システム分析装置の機能ブロック図である。 (a)はプロトコルログ格納部に格納されるデータの一例を示す図である。(b)はモデル格納部に格納されるデータの一例を示す図である。 トランザクションデータ格納部に格納されるデータの一例を示す図である。 システム分析装置における処理の処理フローを示す図である。 (a)及び(b)はパケットデータ格納部に格納されるデータの一例を示す図である。 DBチャンクデータ格納部に格納されるデータの一例を示す図である。 解析結果格納部に格納されるデータの一例を示す図である。 各サーバの処理時間の算出方法を説明するための模式図である。 算出結果格納部に格納されるデータの一例を示す図である。 出力結果の一例を示す図である。 コネクション毎に処理を実施することを説明するための模式図である。 DBチャンクの区切りを判定する方法を説明するための模式図である。 DBチャンク解析処理の処理フローを示す図である。 DBチャンク解析処理の処理フローを示す図である。 コネクション管理データ格納部に格納されるデータの一例を示す図である。 チャンク番号格納部に格納されるデータの一例を示す図である。 DBサーバの処理時間の算出方法を説明するための模式図である。 呼出関係解析処理の処理フローを示す図である。 包含関係データ格納部に格納されるデータの一例を示す図である。 振り分けデータ格納部に格納されるデータの一例を示す図である。 コンピュータの機能ブロック図である。
図1に、本実施の形態に係るシステムの構成図を示す。例えばインターネットであるネットワーク1には、ユーザ端末7と例えばルータであるスイッチ5とが接続されている。スイッチ5には、本実施の形態における主要な処理を実施するシステム分析装置3と、Webサーバ9と、APサーバ11と、DBサーバ13とが接続されている。ここでは、ユーザ端末7、Webサーバ9、APサーバ11及びDBサーバ13はそれぞれ1つしか図示していないが、数に限定はない。
Webサーバ9、APサーバ11及びDBサーバ13からなるこのシステムは、いわゆるウェブ3階層システムである。ユーザ端末7からWebサーバ9に対して処理の要求があった場合、Webサーバ9、APサーバ11及びDBサーバ13はメッセージを交換することにより連携して処理を実施し、要求に対する応答をユーザ端末7に返す。ユーザ端末7とWebサーバ9との間(以下、CL−WB間と呼ぶ)は、例えばHTTP(HyperText Transfer Protocol)で通信が行われる。Webサーバ9とAPサーバ11との間(以下、WB−AP間と呼ぶ)は、例えばIIOP(Internet Inter-ORB Protocol)で通信が行われる。APサーバ11とDBサーバ13との間(以下、AP−DB間と呼ぶ)は、DBサーバ13の仕様に応じたプロトコルで通信が行われる。そして、システム分析装置3は、スイッチ5を通過するパケットを例えばポートミラーリングにより受信できるようになっている。
図2に、システム分析装置3の機能ブロック図を示す。システム分析装置3は、下記の処理部及びデータ格納部を有する。
・スイッチ5からパケットを受信するパケットキャプチャ部301
・受信したパケットを格納するパケットデータ格納部302
・後で説明するDBチャンク解析処理を実施するDBチャンク解析部303
・DBチャンク解析部303により生成されるコネクション管理データを格納するコネクション管理データ格納部304
・DBチャンク解析処理の解析結果を格納するDBチャンクデータ格納部305
・チャンクIDを生成するためのチャンク番号を格納するチャンク番号格納部306
・後で説明する呼出関係解析処理を実施する呼出関係解析部307
・呼出関係解析部307により生成される振り分けデータを格納する振り分けデータ格納部308
・呼出関係解析部307により生成される包含関係データを格納する包含関係データ格納部309
・呼出関係解析処理の解析結果を格納する解析結果格納部310
・Webサーバ9及びAPサーバ11の処理時間を算出する処理時間算出部311
・処理時間算出部311により算出された結果を格納する算出結果格納部312
・算出結果格納部312に格納されている結果を表示装置等に出力する出力部313
・パケットデータ格納部302から読み出したパケットの内容を解析し、解析結果をプロトコルログ格納部315に格納するメッセージ解析部314
・メッセージ解析部314による解析結果を格納するプロトコルログ格納部315
・プロトコルログ格納部315に格納されているデータに基づきトランザクションモデルを生成するモデル生成部316
・モデル生成部316により生成されたトランザクションモデルを格納するモデル格納部317
・プロトコルログ格納部315に格納されているデータ及びモデル格納部317に格納されているトランザクションモデルに基づきトランザクションの処理状態を解析するマッチング処理部318
・マッチング処理部318による解析結果が格納されるトランザクションデータ格納部319
なお、メッセージ解析部314、プロトコルログ格納部315、モデル生成部316、モデル格納部317、マッチング処理部318及びトランザクションデータ格納部319により実施される処理は、例えば特開2006−11683号公報に記載されている処理と同様である。本実施の形態においては、この従来技術を用いてCL−WB間及びWB−AP間のパケットについて処理を行う。詳細は特開2006−11683号公報に記載されているので、ここでは処理の内容を簡単に説明する。
メッセージ解析部314は、パケットのペイロードに含まれるトランザクションID等に基づきリクエストメッセージとレスポンスメッセージとの対応付け等を行い、解析結果をプロトコルログ格納部315に格納する。プロトコルログ格納部315に格納されるデータの一例を図3(a)に示す。図3(a)の例では、受信時刻の列と、トランザクションIDの列と、プロトコルの列と、メッセージ種別の列と、オブジェクト/応答時間の列とが含まれる。オブジェクト/応答時間には、リクエストメッセージであれば処理の内容を識別するためのオブジェクト名が、レスポンスメッセージであればリクエストメッセージの受信時刻との差が格納される。なお、「受信時刻」とはパケットキャプチャ部301がパケットを受信した時刻のことであり、以下の記述においても同様である。
モデル生成部316は、プロトコルログ格納部315に格納されているデータに基づきトランザクションモデルを生成し、モデル格納部317に格納する。例えば、他のトランザクションに遮られることなく一連の処理を終了したトランザクションを抽出することにより、トランザクションモデルを生成する。モデル格納部317に格納されるデータの一例を図3(b)に示す。図3(b)の例では、受信時刻の列と、トランザクションIDの列と、プロトコルの列と、メッセージ種別の列と、オブジェクト/応答時間の列とが含まれる。例えば、オブジェクト名から特定されるトランザクションの種別毎にこのようなトランザクションモデルが生成される。生成されたモデルにはモデルIDが割り当てられる。
マッチング処理部318は、プロトコルログ格納部315に格納されているデータを、モデル格納部317に格納されているトランザクションモデルと比較することにより、各トランザクションについて分析を行い、結果をトランザクションデータ格納部319に格納する。図4に、トランザクションデータ格納部319に格納されるデータの一例を示す。図4の例では、トランザクションIDの列と、モデルIDの列と、HTTPリクエスト時刻の列と、HTTPレスポンス時刻の列と、IIOPリクエスト時刻の列と、IIOPレスポンス時刻の列とが含まれる。
このような処理を実施することにより、CL−WB間及びWB−AP間のパケットについてトランザクションデータを生成する。
一方、本実施の形態においては、AP−DB間で送受信されるパケットが、例えば暗号などにより保護されており、ペイロードからトランザクションID等のデータを取得することができないものとする。この場合、AP−DB間のパケットについては、上で述べたような処理を実施することができないため、以下で述べるような処理を実施する。そして、以下で得られる処理結果と、上で述べた処理で得られたトランザクションデータを合わせて解析することにより、システム全体の稼働状況を分析する。
以下では、図5を用いて、図2に示したシステム分析装置3においてAP−DB間のパケットを分析する処理の概要を説明する。まず、システム分析装置3のパケットキャプチャ部301は、パケットを受信すると、受信したパケットからペイロードを取り出し、受信した時刻の情報及びペイロードの長さに対応付けてパケットデータ格納部302に格納する(図5:ステップS1)。ここでは、ペイロードは受信時刻の順にパケットデータ格納部302に格納される。
図6(a)に、イーサネット(登録商標)・フレームを受信した場合にパケットデータ格納部302に格納されるデータの一例を示す。このように、パケットデータ格納部302には、MACヘッダの後ろのフレームが受信時刻の情報及びMACヘッダに含まれるフレーム長のデータに対応付けて格納されるようになっている。すなわち、図6(b)に示すように、MACヘッダの後ろの部分をフレームと呼び、当該フレームにはIPヘッダ、TCPヘッダ及びTCPデータが含まれる。なお、IPヘッダに含まれる送信元及び宛先IPアドレス、及びTCPヘッダに含まれる送信元及び宛先ポート番号は、後で説明するDBチャンク解析処理で利用される。また、以下ではフレームの部分をパケットと呼ぶこととする。
なお、先に述べたように、パケットデータ格納部302に格納されているフレームのうち、CL−WB間のパケット及びWB−AP間のパケットについては、従来技術により解析を行う。そして、解析の結果は、トランザクションデータ格納部319に格納されているものとする。
図5の説明に戻り、DBチャンク解析部303は、DBチャンク解析処理を実施する(ステップS3)。DBチャンク解析処理については後で図14及び図15を用いて詳しく説明するが、ここで処理の内容を簡単に説明する。
上で述べたようにAPサーバ11とDBサーバ13との間でやりとりされるパケットのペイロード部分は暗号化などによって保護されているので、正確にはリクエストとレスポンスとの対応付けは不可能である。そこで、DBチャンク解析処理では、ペイロードの解析を行うのではなく、APサーバ11とDBサーバ13との間のパケットのやりとりから、DBサーバ13からAPサーバ11への下りパケットとAPサーバ11からDBサーバ13への上りパケットとの受信時刻の差が所定の閾値以上となっている部分を処理の区切りであるとみなして、当該処理の区切りを特定する。そして、この処理の区切りに係る上りパケットから次の処理の区切りの下りパケットまでをDBチャンクとして特定するものである。そして、DBチャンクを表す上りパケットと下りパケットの受信時刻などをDBチャンクデータ格納部305に格納する。
図7に、DBチャンクデータ格納部305に格納されるデータの一例を示す。図7の例では、受信時刻の列と、チャンクIDの列と、種別の列とが含まれる。なお、チャンクIDは、コネクション番号とチャンク番号とからなる。例えばチャンクIDが5−3である場合、コネクション番号が5でチャンク番号が3である(すなわち、5番のコネクションにおいて3番目に特定されたDBチャンクである)ことを示している。また、種別がBegin(開始)であれば、DBチャンクにおける最初のパケット(すなわち、受信時刻が最も早いパケット)であることを示し、種別がEnd(終了)であれば、DBチャンクにおける最後のパケット(すなわち、受信時刻が最も遅いパケット)であることを示している。
そして、呼出関係解析部307は、呼出関係解析処理を実施する(ステップS5)。呼出関係解析処理については後で図19を用いて詳しく説明するが、ここで処理の内容を簡単に説明する。
呼出関係解析では、まず、IIOPリクエストの受信時刻とIIOPレスポンスの受信時刻との間に包含されるDBチャンクを特定する。また、特定されたDBチャンクについて、DBチャンクにおける最初のパケットの受信時刻と最後のパケットの受信時刻との差を用いてチャンク処理時間を計算し、このチャンク処理時間の総和をDBサーバ13の処理時間とする。そして、解析結果は解析結果格納部310に格納される。
図8に、解析結果格納部310に格納されるデータの一例を示す。図8の例では、トランザクションIDの列と、モデルIDの列と、HTTPリクエスト時刻の列と、HTTPレスポンス時刻の列と、IIOPリクエスト時刻の列と、IIOPレスポンス時刻の列と、DBサーバの処理時間の列とが含まれる。解析結果格納部310に格納されているデータは、呼出関係解析処理において算出されたDBサーバ13の処理時間、及びトランザクションデータ格納部319に格納されているデータから生成されたものである。
図5の説明に戻り、処理時間算出部311は、各トランザクションについて、各サーバの処理時間を算出し、算出結果格納部312に格納する(ステップS7)。具体的には、まず、解析結果格納部310に格納されているIIOPレスポンス時刻とIIOPリクエスト時刻との差から、DBサーバ13の処理時間を差し引くことにより、APサーバ11の処理時間を算出する。また、解析結果格納部310に格納されているHTTPレスポンス時刻とHTTPリクエスト時刻との差から、APサーバ11の処理時間及びDBサーバ13の処理時間を差し引くことにより、Webサーバ9の処理時間を算出する。
ステップS7の算出方法について、図9を用いて具体的に説明する。図では、上から下へ時間が進行するものとする。呼出関係解析処理によって算出されたDBサーバ13の処理時間は、図のD1に相当する。APサーバ11の処理時間はIIOPレスポンス時刻とのIIOPリクエスト時刻との差から、D1を差し引くことにより算出できる。これは、図のA1とA2の和に相当する(なお、便宜上「A1とA2の和」という表現をしているが、ここではA1とA2それぞれの処理時間を算出しているわけではない。Webサーバ9についても同様である)。また、Webサーバ9の処理時間はHTTPレスポンス時刻とHTTPリクエスト時刻との差から、APサーバ11の処理時間及びDBサーバ13の処理時間を差し引くことにより算出できる。これは、図のW1とW2の和に相当する。
このようにして、各トランザクションについて、各サーバの処理時間を算出することができる。図10に、算出結果格納部312に格納されるデータの一例を示す。図10の例では、トランザクションIDの列と、Webサーバの処理時間の列と、APサーバの処理時間の列と、DBサーバの処理時間の列とが含まれる。
図5の説明に戻り、出力部313は、算出結果格納部312に格納されているデータを表示装置や印刷装置等の出力装置に出力する(ステップS9)。図11に、出力されるデータの一例を示す。図11の例は、トランザクションの種別(例えばオンラインバンキングであれば、入金や残高照会など)毎に、所定の期間における各サーバの平均処理時間を棒グラフにして示したものである。図11のような表示は、トランザクションID毎に行ってもよいし、トランザクション種別毎に平均値や中央値等の統計量を算出して、測定期間を代表する数値を基に行ってもよい。このような表示例以外にも、例えばサーバ毎に処理時間についてのヒストグラムを生成して出力する等、目的に応じた統計処理を実施し、さらに様々な表示形態により効果的に分析結果を提示することも可能である。
以上のような処理を実施すれば、DBサーバ13の処理時間の算出結果と、別途得られたトランザクションデータとを用いて算出された各サーバの処理時間を基に、システムの稼動状況を分析することができるようになる。
次に、図12乃至図17を用いて、DBチャンク解析処理について説明する。先に述べたように、AP−DB間のパケットのペイロードは暗号などにより保護されているため、ペイロードに含まれるデータを用いてリクエストメッセージとレスポンスメッセージとの対応付けを行うことはできない。そこで、DBチャンク解析処理では、以下で述べるような処理を実施することにより、DBサーバ13における処理の区切りを特定し、当該処理の区切りに係る上りパケットから次の処理の区切りの下りパケットまでを処理の塊であるとみなす。
なお、サーバ間では複数のコネクションを張って複数の処理に係るパケットを並行して送受信するのが普通であり、同じコネクション上のパケットについて処理の区切りを特定しなければ、全く関係の無い処理に係るパケットを同じ処理の塊に含めてしまうことになる。
そこで、本実施の形態では、図12に示すように、同じコネクション上のパケットについて処理の区切りを特定する。図12においては、上から下へ時間が進行する。APサーバとDBサーバには下向きの矢印がそれぞれ2本あるが、これはAPサーバとDBサーバとの間で2つのコネクションが張られていることを示している。左から1番目の矢印と3番目の矢印とに挟まれている部分は1番のコネクションでパケットの送受信が行われ、左から2番目の矢印と4番目の矢印とに挟まれている部分は2番のコネクションでパケットの送受信が行われることを示している。色が付いた長方形の部分はDBチャンクであることを示し、それぞれにチャンクIDが割り当てられている。ここでは、1番のコネクション上ではチャンクIDが1−1であるDBチャンクと1−2であるDBチャンクとが特定されており、2番のコネクション上ではチャンクIDが2−1であるDBチャンクと2−2であるDBチャンクとが特定されている。右向きの矢印はDBチャンクにおける最初のパケットであり、左向きの矢印はDBチャンクにおける最後のパケットである。
図13は、処理の区切りを特定する方法を説明するための模式図である。図中、上から下へ時間が進行する。左右方向の矢印はAP−DB間でのパケットのやりとりを示しており、また色の付いた部分はDBチャンクであることを示している。図13に示すように、DBチャンク解析処理では、上りパケットと直前の下りパケットの受信時刻の差が所定の閾値以上になる部分を処理の区切りであるとみなしている。そして、この処理の区切りにより、DBチャンクが特定される。
次に、図14乃至図17を用いて、DBチャンク解析処理の内容を詳細に説明する。まず、DBチャンク解析部303は、パケットデータ格納部302から、一つ分の未処理のパケットと当該パケットの受信時刻の情報とを読み出す(図14:ステップS11)。なお、上で述べたように、パケットデータ格納部302には受信時刻の順にパケットが格納されており、ステップS11においては未処理のパケットを受信時刻の順に読み出す。
そして、DBチャンク解析部303は、読み出したパケットのIPヘッダ及びTCPヘッダから、送信元IPアドレス、送信先IPアドレス、送信元ポート番号及び送信先ポート番号を特定する(ステップS13)。
そして、DBチャンク解析部303は、送信先ポート番号が所定の番号であるか判断する(ステップS15)。ここでは、DBサーバ13との通信であることを示す番号であるかを判断する。これは、AP−DB間のパケットのみに対して以下の処理を実施するためである。送信先ポート番号が所定の番号ではない場合(ステップS15:Noルート)、次のパケットについて処理を実施するため、ステップS11の処理に戻る。
一方、送信先ポート番号が所定の番号である場合(ステップS15:Yesルート)、DBチャンク解析部303は、ステップS11で読み出したパケットに係るコネクションと同じコネクションのパケットのデータがコネクション管理データ格納部304に格納されているか判断する(ステップS17)。同じコネクションのパケットのデータがコネクション管理データ格納部304に格納されていない場合(ステップS17:Noルート)、DBチャンク解析部303は、ステップS11で読み出したパケットに対して新たにコネクション番号を割り当て、当該コネクション番号に対応付けて送信先IPアドレス、送信元IPアドレス、送信先ポート番号、送信元ポート番号及び受信時刻の情報をコネクション管理データ格納部304に格納する(ステップS19)。また、ステップS19において、新たに割り当てたコネクション番号に対応付けてチャンク番号格納部306にチャンク番号「1」を格納する。すなわち、新たにコネクションが張られた場合、チャンク番号格納部306にレコードが生成される。そして、処理は端子Aを介して図15のステップS39へ移行する。
図16に、コネクション管理データ格納部304に格納されるデータの一例を示す。図16の例では、コネクション番号の列と、送信元IPアドレスの列と、送信先IPアドレスの列と、送信元ポート番号の列と、送信先ポート番号の列と、受信時刻の列とが含まれる。APサーバ11とDBサーバ13が1つしかない場合であっても、APサーバ側のポート番号が異なるのでコネクションを区別することができる。
また、図17に、チャンク番号格納部306に格納されるデータの一例を示す。図17の例では、コネクション番号の列とチャンク番号の列とが含まれる。チャンク番号は、特定のコネクション上においてDBチャンクがいくつ特定されているかを判別するための番号である。例えば1行目のレコードは、コネクション番号が1でチャンク番号が6であるので、1番のコネクションにおいてはDBチャンクが既に5つ特定され、現在6つ目のDBチャンクを特定するための処理を実施しているということを示している。
図14の説明に戻り、同じコネクションのパケットのデータがコネクション管理データ格納部304に格納されている場合(ステップS17:Yesルート)、DBチャンク解析部303は、同じコネクションのパケットのコネクション番号を特定し、特定したコネクション番号に対応付けて、ステップS13で特定した送信先IPアドレス、送信元IPアドレス、送信先ポート番号、送信元ポート番号及び受信時刻の情報をコネクション管理データ格納部304に格納する(ステップS21)。
そして、DBチャンク解析部303は、同じコネクションのパケットのうち直前のパケット(すなわち、受信時刻が最も遅いパケット)のデータをコネクション管理データ格納部304から特定し、当該直前のパケットが「上り」と「下り」のどちらであるか判断する(ステップS23)。ここでは、「上り」とはAPサーバ11からDBサーバ13へ送信されたパケットであり、「下り」とはDBサーバ13からAPサーバ11へ送信されたパケットである。また、「上り」と「下り」のどちらであるかは例えば送信先IPアドレスにより判断される。
そして、同じコネクションのパケットのうち直前のパケットが「下り」ではない場合(ステップS25:Noルート)、次のパケットについて処理を実施するため、ステップS11の処理に戻る。一方、同じコネクションのパケットのうち直前のパケットが「下り」である場合(ステップS25:Yesルート)、DBチャンク解析部303は、ステップS11において読み出したパケットが「上り」と「下り」のどちらであるか判断する(ステップS27)。処理は端子Bを介して図15のステップS29へ移行する。
次に、図15について説明する。DBチャンク解析部303は、ステップS11において読み出したパケットが「上り」でない場合(ステップS29:Noルート)、次のパケットについて処理を実施するため、処理は端子Cを介して図14のステップS11に戻る。一方、ステップS11において読み出したパケットが「上り」である場合(ステップS29:Yesルート)、DBチャンク解析部303は、同じコネクションのパケットのうち直前のパケットとステップS11において読み出したパケットの受信時刻の差を算出する(ステップS31)。そして、DBチャンク解析部303は、算出した差が所定の閾値を超えているか判断する(ステップS33)。
そして、DBチャンク解析部303は、算出した差が所定の閾値を超えていない場合(ステップS33:Noルート)、次のパケットについて処理を実施するため、処理は端子Cを介して図14のステップS11に戻る。
一方、算出した差が所定の閾値を超えている場合(ステップS33:Yesルート)、DBチャンク解析部303は、同じコネクションのパケットのうち直前のパケットについて、受信時刻の情報と種別End(終了)とチャンクIDとを含むDBチャンクデータを生成し、当該DBチャンクデータをDBチャンクデータ格納部305に格納する(ステップS35)。チャンクIDは、ステップS21において特定されたコネクション番号及び当該コネクション番号に対応付けてチャンク番号格納部306に格納されているチャンク番号を含むチャンクIDである。そして、DBチャンク解析部303は、ステップS21において特定されたコネクション番号に対応付けてチャンク番号格納部306に格納されているチャンク番号を1インクリメントする(ステップS37)。
そして、DBチャンク解析部303は、ステップS11で読み出したパケットについて、受信時刻の情報と種別Begin(開始)とチャンクIDとを含むDBチャンクデータを生成し、当該DBチャンクデータをDBチャンクデータ格納部305に格納する(ステップS39)。チャンクIDは、ステップS19又はステップS21で特定されたコネクション番号、及び当該コネクション番号に対応付けてチャンク番号格納部306に格納されているチャンク番号を含むチャンクIDである。なお、パケットデータ格納部302に格納されている先頭のパケットが、DBチャンクの最初のパケットであるとは限らない。しかし、本実施の形態では、最初であるか否かを確認できないので、最初のDBチャンクについては以下の処理では用いないものとする。
そして、DBチャンク解析部303は、パケットデータ格納部302に格納されている全てのパケットを処理したか判断する(ステップS41)。全てのパケットを処理していない場合(ステップS41:Noルート)、次のパケットについて処理を実施するため、処理は端子Cを介して図14のステップS11に戻る。一方、全てのパケットを処理している場合(ステップS41:Yesルート)、元の処理に戻る。
以上のような処理を実施することにより、AP−DB間のパケットのペイロードに含まれるトランザクションID等を用いることができず、リクエストメッセージとそれに対するレスポンスメッセージとを対応付けることができない場合であっても、DBサーバ13における処理の塊を特定することができる。
なお、DBチャンク解析処理の変形例として、以下のような処理を実施してもよい。例えば、最初に、パケットデータ格納部302から、AP−DB間のパケットをすべて読み出し、当該パケットに対してコネクション番号の付与を行ってしまう。その後、受信時刻の早いパケットから順番に、同じコネクションに係るパケットであって、直前又は直後のパケットとの上り下りの関係を判断したり、受信時刻の差が所定の閾値を超えるかを判断する。このような処理であっても、上で述べた処理と同じ処理結果を得ることができる。
次に、図18乃至21を用いて、呼出関係解析処理について説明する。呼出関係解析処理では、APサーバ11に対するリクエストメッセージの受信時刻と対応するレスポンスメッセージの受信時刻との間に包含されるDBチャンクについてチャンク処理時間を算出し、当該チャンク処理時間の総和をDBサーバ13の処理時間として算出する。
図18に、DBサーバ13の処理時間を算出する方法を説明するための模式図を示す。図中、上から下へ向かって時間が進行するものとする。左右方向の矢印はメッセージが送信されていることを示し、トランザクション1に係るメッセージは実線で、トランザクション2に係るメッセージは点線で示されている。トランザクション1において、HTTPリクエストメッセージH1に対応するHTTPレスポンスメッセージはH3であり、IIOPリクエストメッセージI1に対応するIIOPレスポンスメッセージはI3である。また、トランザクション2において、HTTPリクエストメッセージH2に対応するHTTPレスポンスメッセージはH4であり、IIOPリクエストメッセージI2に対応するIIOPレスポンスメッセージはI4である。AP−DB間についてはリクエストメッセージとレスポンスメッセージとの対応付けはされていないが、DBチャンクが4つ特定されている。T1はDBチャンク1における最初のパケットの受信時刻と最後のパケットの受信時刻との差に相当する。T2、T3、T4も同様に算出される。
例えばトランザクション1におけるDBサーバの処理時間を算出する場合、I1とI3との間に包含されているDBチャンクはDBチャンク1、DBチャンク2及びDBチャンク3であるので、T1、T2及びT3を用いて処理時間を算出する。但し、DBチャンク2及びDBチャンク3については、I2とI4との間にも包含されているので、トランザクション2におけるDBサーバの処理を含んでいる可能性がある。そこで、トランザクション1におけるDBサーバの処理時間は、T1/1(=包含元トランザクション(トランザクション1)の数)+T2/2(=包含元トランザクション(トランザクション1及び2)の数)+T3/2(=包含元トランザクション(トランザクション1及び2)の数)として算出する。すなわち、注目しているDBチャンクにおける最初のパケットの受信時刻と最後のパケットの受信時刻との差を、当該注目しているDBチャンクを包含するトランザクションの数で除することによりチャンク処理時間を算出し、当該チャンク処理時間の総和をDBサーバの処理時間としている。トランザクション2についても、同様に、T2/2+T3/2+T4/1としてDBサーバの処理時間を算出する。
次に、図19乃至図21を用いて、呼出関係解析処理の内容を詳細に説明する。まず、呼出関係解析部307は、トランザクションデータ格納部319に格納されている未処理のトランザクションデータを1つ分読み出し、トランザクションIDとIIOPリクエスト時刻の情報とIIOPレスポンス時刻の情報とを特定する(図19:ステップS51)。そして、呼出関係解析部307は、DBチャンクデータ格納部305から、種別が「Begin」であるパケットの受信時刻がIIOPリクエスト時刻よりも後であり、且つ同じチャンクIDで種別が「End」であるパケットの受信時刻がIIOPレスポンス時刻よりも前であるDBチャンクのチャンクIDを特定し、当該チャンクIDをステップS51で特定したトランザクションIDに対応付けて包含関係データ格納部309に格納する(ステップS53)。
図20に、包含関係データ格納部309に格納されるデータの一例を示す。図20の例では、トランザクションID毎に、当該トランザクションIDに係るトランザクションに包含される1又は複数のDBチャンクのチャンクIDとが格納されるようになっている。例えば1行目のレコードは、トランザクションIDが1であるトランザクションは、チャンクIDが1−1であるDBチャンクと、チャンクIDが1−2であるDBチャンクと、チャンクIDが2−1であるDBチャンクとを包含していることを示している。
図19の説明に戻り、呼出関係解析部307は、ステップS53で特定したチャンクIDに対応付けてDBチャンクデータ格納部305に格納されている種別「End」のパケットの受信時刻と種別「Begin」のパケットの受信時刻との差を算出し、算出結果をチャンクIDに対応付けて振り分けデータ格納部308に格納する(ステップS55)。ステップS53で特定したチャンクIDが複数ある場合には、それぞれのチャンクIDについて処理が実施される。なお、既に差が算出されているDBチャンクについては、ステップS55の処理をスキップする。
図21に、振り分けデータ格納部308に格納されるデータの一例を示す。図21の例では、チャンクIDの列と、時間の列と、振り分け数の列とが含まれる。なお、「時間」とはDBチャンクにおける最初のパケットの受信時刻と最後のパケットの受信時刻との差である。「振り分け数」とはDBチャンクを包含するトランザクションの数であり、初期値は「0」である。
図19の説明に戻り、呼出関係解析部307は、ステップS53で特定したチャンクIDに対応付けて振り分けデータ格納部308に格納されている振り分け数を1インクリメントする(ステップS57)。ステップS53で特定したチャンクIDが複数ある場合には、それぞれのチャンクIDについて処理が実施される。そして、呼出関係解析部307は、全トランザクションデータを処理したか判断する(ステップS59)。全トランザクションデータを処理したわけではない場合(ステップS59:Noルート)、次のトランザクションデータについて処理を実施するため、ステップS51の処理に戻る。
一方、全トランザクションデータを処理した場合(ステップS59:Yesルート)、呼出関係解析部307は、包含関係データ格納部309から未処理の包含関係データを1つ分読み出し、トランザクションIDと1又は複数のチャンクIDとを特定する(ステップS61)。そして、呼出関係解析部307は、特定したチャンクIDについて、当該チャンクIDに対応付けて振り分けデータ格納部308に格納されている時間及び振り分け数を特定し、当該時間を当該振り分け数で除することによりチャンク処理時間を算出し、当該チャンク処理時間の総和をDBサーバ13の処理時間として算出する(ステップS63)。この処理は図18を用いて説明したとおりである。
そして、呼出関係解析部307は、ステップS61で特定したトランザクションIDを含み且つトランザクションデータ格納部319に格納されているトランザクションデータと、ステップS63で算出したDBサーバ13の処理時間とを含む解析結果のデータを解析結果格納部310に格納する(ステップS65)。解析結果格納部310に格納されているデータの一例については上で説明しているので、ここでは説明を省略する。
そして、呼出関係解析部307は、全包含関係データを処理したか判断する(ステップS67)。全包含関係データを処理したわけではない場合(ステップS67:Noルート)、次の包含関係データについて処理を実施するため、ステップS61の処理に戻る。一方、全包含関係データを処理した場合(ステップS67:Yesルート)、元の処理に戻る。
以上のような処理を実施することにより、個別のDBチャンクの内容を解析できずDBサーバ13におけるDBチャンクがどのトランザクションに係るDBチャンクであるか特定できない場合であっても、受信時刻に基づき特定される、トランザクションとDBチャンクとの包含関係に基づき、各トランザクションについてDBサーバ13の処理時間を算出することができるようになる。
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したシステム分析装置3の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、本実施の形態ではWebサーバ9、APサーバ11及びDBサーバ13からなるウェブ3階層システムを分析する例を示したが、このような例に限られるわけではなく、同じように階層構造を有するシステムであれば分析を行うことが可能である。
また、DBチャンクにおける最初の上りパケットの受信時刻と最後の下りパケットの受信時刻との差を、当該DBチャンクを包含するトランザクションに均等に配分しているが、例えば重み付けを行い、特定のトランザクションに多く又は少なく配分するようにしてもよい。
また、チャンクIDは例えば「2−1」などのようにコネクション番号及びチャンク番号から生成する例を示したが、単純に「1」「2」「3」というような識別番号を用いるようにしてもよい。この場合、チャンク番号格納部306の代わりに、例えばコネクション毎に現在何番の識別番号を使用しているかを管理するようなテーブルを用いればよい。
なお、システム分析装置3、ユーザ端末7、Webサーバ9、APサーバ11及びDBサーバ13は、図22に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
また、上で述べたような処理をハードウエアに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
以上本実施の形態をまとめると以下のようになる。
本システム分析方法は、ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法である。そして、本方法は、(a)複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ上位階層サーバから下位階層サーバへの下りパケット及び下位階層サーバから上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす上りパケット及び下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、(b)特定された組み合わせのうち特定の組み合わせに含まれる上りパケットから、特定の組み合わせの直後の組み合わせに含まれる下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、特定の組み合わせに含まれる上りパケットの受信時刻と特定の組み合わせの直後の組み合わせに含まれる下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、(c)下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、チャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻とが共に含まれるチャンクのチャンクIDをチャンク・データ格納部から特定し、処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納するステップと、(d)下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての処理IDに対応付けて包含関係データ格納部に格納されている各チャンクIDについて、当該チャンクIDに対応付けてチャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、(e)特定の処理について算出されたチャンク処理時間の総和を求めることにより、特定の処理における上位階層サーバの処理時間を算出し、特定の処理についての処理IDに対応付けて解析結果格納部に格納するステップとを含む。
本方法では、下位階層サーバ(実施の形態におけるAPサーバ)と上位階層サーバ(実施の形態におけるDBサーバ)とのデータ通信が暗号化されていてトランザクションIDなどのデータを取得できないため、おおまかには以下のような処理を実施する。すなわち、(1)下位階層サーバと上位階層サーバとのパケットのやりとりから上位階層サーバの処理の塊(実施の形態におけるDBチャンク)を特定し(上の(a)及び(b))、(2)また逆に下位階層サーバの処理の塊(例えばトランザクション)に包含される、上位階層サーバの処理の塊を特定し(上の(c))、(3)当該上位階層サーバの処理の塊の時間を用いて、下位階層サーバの処理の塊の間に行われる当該下位階層サーバの処理のための、上位階層サーバの処理時間を算出する(上の(d)及び(e))。
このように、本方法では、例えばトランザクションIDなど、リクエストメッセージとレスポンスメッセージとの対応付けを行うためのデータをパケットのペイロードから取得することなく、上位階層サーバの処理時間を算出し、稼働状況を分析することができる。
また、上で述べたシステム分析方法が、特定の処理について、下位階層サーバに対する特定の処理要求のパケットを受信した時刻と当該処理要求のパケットに対応する応答のパケットを受信した時刻との差を第1の応答時間として算出するステップと、特定の処理について算出された第1の応答時間から、特定の処理についての処理IDに対応付けて解析結果格納部に格納されている上位階層サーバの処理時間を差し引くことにより、特定の処理における下位階層サーバの処理時間を算出し、特定の処理についての処理IDに対応付けて算出結果格納部に格納するステップとをさらに含むようにしてもよい。
このようにすれば、上位階層サーバについて算出した処理時間を用いて、下位階層サーバについても処理時間を算出し、稼働状況を分析することができるようになる。
また、上で述べた算出ステップが、チャンクIDに対応付けてチャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻との差を、チャンクIDに対応付けて包含関係データ格納部に格納されている処理IDの数で除することによりチャンク処理時間を算出するステップを含むようにしてもよい。上位階層サーバの処理の塊を包含する下位階層サーバの処理の塊が複数ある場合には、上位階層サーバの処理の塊における処理時間を、各下位階層サーバの処理の塊に均等配分するものである。
また、所定の条件が、送信先IPアドレス、送信元IPアドレス、送信先ポート番号及び送信元ポート番号により特定されるコネクションが同一であり、且つ送信先ポート番号がデータベースサーバとアプリケーションサーバとの間の通信であることを示す番号であるという条件であってもよい。サーバ間では複数のコネクションを張って複数の処理に係るパケットを並行して送受信するのが普通であり、同じコネクション上のパケットについて処理の塊を特定しなければ、全く関係の無い処理に係るパケットを同じ処理の塊に含めてしまうことになるからである。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するための処理をコンピュータに実行させるためのシステム分析プログラムであって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクIDを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納するステップと、
前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理IDに対応付けて前記包含関係データ格納部に格納されている各前記チャンクIDについて、当該チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて解析結果格納部に格納するステップと、
を前記コンピュータに実行させるためのシステム分析プログラム。
(付記2)
前記特定の処理について、前記下位階層サーバに対する前記特定の処理要求のパケットを受信した時刻と当該処理要求のパケットに対応する応答のパケットを受信した時刻との差を第1の応答時間として算出するステップと、
前記特定の処理について算出された前記第1の応答時間から、前記特定の処理についての処理IDに対応付けて前記解析結果格納部に格納されている前記上位階層サーバの処理時間を差し引くことにより、前記特定の処理における前記下位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて算出結果格納部に格納するステップと、
をさらに含む付記1記載のシステム分析プログラム。
(付記3)
前記算出ステップが、
前記チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を、前記チャンクIDに対応付けて前記包含関係データ格納部に格納されている前記処理IDの数で除することによりチャンク処理時間を算出するステップ
を含む付記1記載のシステム分析プログラム。
(付記4)
前記所定の条件が、送信先IPアドレス、送信元IPアドレス、送信先ポート番号及び送信元ポート番号により特定されるコネクションが同一であり、且つ前記送信先ポート番号がデータベースサーバとアプリケーションサーバとの間の通信であることを示す番号であるという条件である
付記1記載のシステム分析プログラム。
(付記5)
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するシステム分析装置であって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定し、特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納する手段と、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクIDを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納し、前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理IDに対応付けて前記包含関係データ格納部に格納されている各前記チャンクIDについて、当該チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出すると共に、前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて解析結果格納部に格納する手段と、
を有するシステム分析装置。
(付記6)
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法であって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクIDを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納するステップと、
前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理IDに対応付けて前記包含関係データ格納部に格納されている各前記チャンクIDについて、当該チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて解析結果格納部に格納するステップと、
を含むシステム分析方法。
1 ネットワーク 3 システム分析装置
5 スイッチ 7 ユーザ端末
9 Webサーバ 11 APサーバ
13 DBサーバ
301 パケットキャプチャ部 302 パケットデータ格納部
303 DBチャンク解析部 304 コネクション管理データ格納部
305 DBチャンクデータ格納部 306 チャンク番号格納部
307 呼出関係解析部 308 振り分けデータ格納部
309 包含関係データ格納部 310 解析結果格納部
311 処理時間算出部 312 算出結果格納部
313 出力部 314 メッセージ解析部
315 プロトコルログ格納部 316 モデル生成部
317 モデル格納部 318 マッチング処理部
319 トランザクションデータ格納部

Claims (6)

  1. ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するための処理をコンピュータに実行させるためのシステム分析プログラムであって、
    前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
    特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
    前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクIDを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納するステップと、
    前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理IDに対応付けて前記包含関係データ格納部に格納されている各前記チャンクIDについて、当該チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
    前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて解析結果格納部に格納するステップと、
    を前記コンピュータに実行させるためのシステム分析プログラム。
  2. 前記特定の処理について、前記下位階層サーバに対する前記特定の処理要求のパケットを受信した時刻と当該処理要求のパケットに対応する応答のパケットを受信した時刻との差を第1の応答時間として算出するステップと、
    前記特定の処理について算出された前記第1の応答時間から、前記特定の処理についての処理IDに対応付けて前記解析結果格納部に格納されている前記上位階層サーバの処理時間を差し引くことにより、前記特定の処理における前記下位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて算出結果格納部に格納するステップと、
    をさらに含む請求項1記載のシステム分析プログラム。
  3. 前記算出ステップが、
    前記チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を、前記チャンクIDに対応付けて前記包含関係データ格納部に格納されている前記処理IDの数で除することによりチャンク処理時間を算出するステップ
    を含む請求項1記載のシステム分析プログラム。
  4. 前記所定の条件が、送信先IPアドレス、送信元IPアドレス、送信先ポート番号及び送信元ポート番号により特定されるコネクションが同一であり、且つ前記送信先ポート番号がデータベースサーバとアプリケーションサーバとの間の通信であることを示す番号であるという条件である
    請求項1記載のシステム分析プログラム。
  5. ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するシステム分析装置であって、
    前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定し、特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納する手段と、
    前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクIDを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納し、前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理IDに対応付けて前記包含関係データ格納部に格納されている各前記チャンクIDについて、当該チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出すると共に、前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて解析結果格納部に格納する手段と、
    を有するシステム分析装置。
  6. ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法であって、
    前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
    特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクIDに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
    前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクIDを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理IDに対応付けて包含関係データ格納部に格納するステップと、
    前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理IDに対応付けて前記包含関係データ格納部に格納されている各前記チャンクIDについて、当該チャンクIDに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
    前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理IDに対応付けて解析結果格納部に格納するステップと、
    を含むシステム分析方法。
JP2009063814A 2009-03-17 2009-03-17 システム分析方法、装置及びプログラム Active JP5229028B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009063814A JP5229028B2 (ja) 2009-03-17 2009-03-17 システム分析方法、装置及びプログラム
US12/698,580 US8305908B2 (en) 2009-03-17 2010-02-02 System analysis method, system analysis apparatus, and computer readable storage medium storing system analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009063814A JP5229028B2 (ja) 2009-03-17 2009-03-17 システム分析方法、装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2010218185A JP2010218185A (ja) 2010-09-30
JP5229028B2 true JP5229028B2 (ja) 2013-07-03

Family

ID=42737521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009063814A Active JP5229028B2 (ja) 2009-03-17 2009-03-17 システム分析方法、装置及びプログラム

Country Status (2)

Country Link
US (1) US8305908B2 (ja)
JP (1) JP5229028B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4865068B1 (ja) * 2010-07-30 2012-02-01 株式会社東芝 録再装置及び録再装置のタグリスト生成方法及び録再装置の制御装置
CN103282896B (zh) * 2010-12-28 2016-01-20 三菱电机株式会社 通信网络系统
JP5686001B2 (ja) 2011-03-14 2015-03-18 富士通株式会社 情報処理装置、メッセージ切分け方法およびメッセージ切分けプログラム
CN103812705B (zh) * 2014-02-26 2017-04-12 国家电网公司 跨网络故障分析定位机制计算机生成方法
CN103825783A (zh) * 2014-03-10 2014-05-28 珠海市君天电子科技有限公司 一种测试方法及装置
US10048994B2 (en) * 2014-10-20 2018-08-14 Teachers Insurance And Annuity Association Of America Identifying failed customer experience in distributed computer systems
JP2018113599A (ja) * 2017-01-12 2018-07-19 日本電気株式会社 通信処理システム、通信監視装置、通信監視方法及び通信監視プログラム
CN107274654A (zh) * 2017-07-17 2017-10-20 科大智能电气技术有限公司 一种电力载波网络的路由协议
JP7147361B2 (ja) 2018-08-20 2022-10-05 富士通株式会社 異常診断プログラムおよび異常診断方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041042A (en) * 1997-05-27 2000-03-21 Cabletron Systems, Inc. Remote port mirroring system and method thereof
JP4610240B2 (ja) * 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
JP2007221207A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd 管理装置及び通信システム
JP4594258B2 (ja) * 2006-03-10 2010-12-08 富士通株式会社 システム分析装置およびシステム分析方法
JP2009223543A (ja) * 2008-03-14 2009-10-01 Kansai Electric Power Co Inc:The ネットワークシステム、状態出力装置、状態出力プログラム、および状態出力方法

Also Published As

Publication number Publication date
US20100238820A1 (en) 2010-09-23
JP2010218185A (ja) 2010-09-30
US8305908B2 (en) 2012-11-06

Similar Documents

Publication Publication Date Title
JP5229028B2 (ja) システム分析方法、装置及びプログラム
CN103853627B (zh) 由与物理机器相关地分析虚拟机器性能问题原因的方法和系统
US7873594B2 (en) System analysis program, system analysis method, and system analysis apparatus
KR102553831B1 (ko) 집계 지불을 위한 백엔드 아키텍처 방법 및 시스템, 컴퓨터 디바이스 및 저장 매체
US9185033B2 (en) Communication path selection
CN106953758A (zh) 一种基于Nginx服务器的动态配置管理方法及系统
EP3697042A1 (en) Traffic analysis method, public service traffic attribution method and corresponding computer system
US8751184B2 (en) Transaction based workload modeling for effective performance test strategies
CN107078921A (zh) 用于基于商业意图驱动策略的网络业务表征、监视和控制的方法和系统
US8738682B2 (en) Monitoring a path of a transaction across a composite application
TWI603206B (zh) Server cluster based data processing method and cluster based data processing system
JP5024394B2 (ja) システム可視化プログラム、方法及び装置
WO2017092582A1 (zh) 一种数据处理方法和装置
CN102571946B (zh) 一种基于对等网络的协议识别与控制系统的实现方法
GB2463952A (en) Analysing a service processing status in a network
CN106559498A (zh) 风控数据收集平台及其收集方法
JP5024453B2 (ja) 業務フロー分散処理システム及び方法
CN105184559B (zh) 一种支付系统及方法
KR102423039B1 (ko) 대용량 네트워크 모니터링을 위한 실시간 패킷 데이터 저장 방법 및 장치
CN102055620B (zh) 监控用户体验的方法和系统
JP2019201342A (ja) 検証パケット生成装置、検証システム、および検証パケット生成プログラム
JP2009277023A (ja) データ紐付けプログラム,情報処理装置およびデータ紐付け方法
WO2023065848A1 (zh) 业务调度方法、装置、设备及计算机可读存储介质
CN116723154A (zh) 一种基于负载均衡的路由分发方法及系统
WO2022267458A1 (zh) 负载均衡方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

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

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5229028

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150