JP2010146146A - トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法 - Google Patents

トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法 Download PDF

Info

Publication number
JP2010146146A
JP2010146146A JP2008320628A JP2008320628A JP2010146146A JP 2010146146 A JP2010146146 A JP 2010146146A JP 2008320628 A JP2008320628 A JP 2008320628A JP 2008320628 A JP2008320628 A JP 2008320628A JP 2010146146 A JP2010146146 A JP 2010146146A
Authority
JP
Japan
Prior art keywords
series
candidate
threshold value
event
threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008320628A
Other languages
English (en)
Other versions
JP5422989B2 (ja
Inventor
Toshihiro Shimizu
智弘 清水
Nobuhiro Yugami
伸弘 湯上
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 JP2008320628A priority Critical patent/JP5422989B2/ja
Priority to US12/630,090 priority patent/US8732323B2/en
Publication of JP2010146146A publication Critical patent/JP2010146146A/ja
Application granted granted Critical
Publication of JP5422989B2 publication Critical patent/JP5422989B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/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/3447Performance evaluation by modeling
    • 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/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】系列化の判定に用いる時間間隔の適切な閾値を自動で決定する。
【解決手段】処理時間設定手段1cにより、メッセージ記憶手段1b内の要求メッセージと応答メッセージとの組から各サーバで実行された処理が判断され、処理の開始時刻と終了時刻とが処理時間情報記憶手段1dに格納される。すると、時間間隔計算手段1eにより、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理間の時間間隔が計算される。次に、候補閾値生成手段1fにより、閾値の候補を示す候補閾値が複数生成される。すると、系列生成手段1gにより、候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理が、同一系列にまとめられる。生成された系列のうち、呼び出し元となる処理が存在しない系列は、系列分割手段1hによって分割される。そして、閾値決定手段1iにより、系列数が最少となる候補閾値が、時間間隔の閾値に決定される。
【選択図】図1

Description

本発明はトランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法に関し、特にサービスが多階層で処理されるトランザクションのモデルを生成するトランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法に関する。
インターネットの普及によって、インターネット経由で多数のWebページが閲覧可能となっている。インターネットによるWebページなどの情報提供サービスは、一般的に、Web3階層モデルと呼ばれるシステムで提供される。Web3階層モデルでは、クライアント装置からの要求を受けたWebサーバがアプリケーションソフトウェア(以下、単に「アプリケーション」という)を呼び出す。そして、Webサーバから呼び出されたアプリケーションが、データベース管理ソフトウェア(以下、単に「データベース」という)を呼び出す。このとき、Webサーバ、アプリケーション、データベースはそれぞれ別々のコンピュータで動いていることが多い。
このようなWeb3階層モデルにおいて、性能などの問題があったときにその原因がどこにあるのかを調査するのは容易ではない。それぞれのソフトウェアが個別のコンピュータで分散して動いていること自体も難しさの原因である。さらにそれらのソフトウェアの開発元が異なっており、ソフトウェアの処理の内部を解析して原因を追及することが現実的に不可能な点も問題をより難しくしている。
このような問題を解決するため、ネットワーク上を流れるメッセージを観測することでトランザクションに対してWebサーバ、アプリケーション、データベースにおける所用時間を計測するシステムが提案されている。このようなシステムでは、分析装置でネットワークを観測し、観測メッセージからイベント間の呼び出し関係のモデル(トランザクションモデル)を生成する。
ここでイベントとは、クライアントまたは他のサーバからの要求に応じて実行される処理単位である。イベントは、要求の出力元に応答を返して終了する。従って、ネットワークを介して要求メッセージと応答メッセージとを採取することで、個々のイベントの開始時刻と終了時刻を知ることができる。イベント間の呼び出し関係は、呼び出し元のイベントの実行時間帯の包含関係、呼び出し元のイベントを実行するコンピュータのIP(Internet Protocol)アドレス、および呼び出される先のコンピュータのIPアドレスによって判断される。
トランザクションモデルを生成した後、分析装置は観測メッセージとトランザクションモデルとを照合することで、発生したトランザクションを判定する。
このように予めトランザクションモデルを生成することで、運用中のネットワーク経由で実行されたトランザクションを分類することができる。そして、分類されたトランザクションに含まれるメッセージの発生時刻に基づいて、トランザクションの処理ごとに、各サーバによる処理時間を算出することができる。
特開2006−11683号公報
ところで、トランザクションモデルを生成する場合、連続した複数個のイベントを一連の処理と考え、それらの処理を1つにまとめたトランザクションモデルを生成することができる。連続した複数個のイベントを1つにまとめれば、例えば銀行口座の入出金照会のように、データベースへのアクセスの回数が異なるだけのものを同一視することが可能となる。その結果、ネットワーク上を流れるメッセージの内容に合致するトランザクションモデルの検索処理を効率化できる。また、トランザクションの種別ごとに各サーバの処理時間を算出する際にも、単にデータアクセス回数が異なるだけの同種のトランザクションは、1つのまとまりとして解析することができる。このように連続するイベントの集合を一連の処理と把えて、それらイベントを含む系列を生成する処理を系列化と呼ぶ。系列化で生成された系列は1つのトランザクション内の処理と判断され、その系列を含むトランザクションモデルが生成される。
連続する複数のイベントがある場合に、それらを系列化するか否かの判断方法の1つとして、イベント間の時間間隔と所定の閾値とを比較する方法がある。この方法では、閾値以下の時間間隔で連続して発生したイベントは、1つのトランザクション内の連続する処理と判断して系列化を行う。このように閾値を使って適切に系列が生成できるのは、1つのトランザクション内の一連の処理のイベント間の時間間隔が、他のトランザクションによるアプリケーションの間の時間間隔よりも十分に短いと想定できるためである。
しかし、系列化を行うための時間間隔の閾値として適切な値は、自明ではない。設定された閾値が短すぎると、本来系列化して1つのトランザクションモデルに属するべき複数のトランザクションそれぞれから、個別のトランザクションモデルが生成されてしまう。また、設定された閾値が長すぎると、系列化すべきでない複数のイベントが系列化されてしまい、正しいトランザクションモデルが生成できない。そこで、実際にいくつかの値を閾値としてトランザクションモデルの生成を試行し、生成されたトランザクションモデルの適否によって、その後使用する閾値を決めることとなる。ところが、このようなトランザクションモデルの生成の試行には手間がかかる。
本発明はこのような点に鑑みてなされたものであり、系列化の判定に用いる時間間隔の適切な閾値を自動で決定することができるトランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法を提供することを目的とする。
上記課題を解決するために、サービスが多階層で処理されるトランザクションのモデル生成支援を行うトランザクションモデル生成支援装置が提供される。トランザクションモデル生成支援装置は、時間間隔計算手段、候補閾値生成手段、系列生成手段、系列分割手段、および閾値決定手段を有する。
時間間隔計算手段は、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する。候補閾値生成手段は、処理間の時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する。系列生成手段は、候補閾値生成手段で生成された候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理を同一系列にまとめる。系列分割手段は、系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する。閾値決定手段は、系列数が最少となる候補閾値を閾値に決定する。
また、上記課題を解決するために、上記のトランザクションモデル生成支援装置と同様の機能をコンピュータに実行させるトランザクションモデル生成支援プログラムが提供される。
さらに、上記課題を解決するために、上記のトランザクションモデル生成支援装置と同様の処理をコンピュータで実行するトランザクションモデル生成支援方法が提供される。
上記トランザクションモデル生成支援装置では、系列化を行うための時間間隔の適切な閾値を自動で決定できる。
以下、本実施の形態を、図面を参照して説明する。
図1は、実施の形態の概要を示す図である。本実施の形態では、クライアント2からの要求がネットワーク6を介してサーバ3に入力される。サーバ3は、ネットワーク7を介して接続されたサーバ4と、サーバ4にさらにネットワーク8を介して接続されたサーバ5と連携して、要求された処理を実行するサービスをクライアント2に提供する。このようなサービスをWWW(World Wide Web)により行うシステムは、Web3階層モデルと呼ばれる。このような多階層のサーバ3〜5で構成されるシステムで実行されるトランザクションの内容に応じて、トランザクションモデルを生成することができる。その際、同様な処理が連続して実行される場合、その処理を1まとめにする系列化が行われる。連続する処理を同一の系列にまとめるか否かは、連続する処理の時間間隔が予め設定された閾値以下か否かによって判断できる。
系列化のための閾値の適切な値を決定するために、本実施の形態では、図1に示す各機能が設けられている。すなわち、メッセージ観測手段1a、メッセージ記憶手段1b、処理時間設定手段1c、処理時間情報記憶手段1d、時間間隔計算手段1e、候補閾値生成手段1f、系列生成手段1g、系列分割手段1h、閾値決定手段1i、およびトランザクションモデル生成手段1jが設けられている。
メッセージ観測手段1aは、サービスを提供する複数のサーバ3〜5が接続されたネットワーク6〜8から複数のサーバ3〜5間で送受信されたメッセージを取得し、取得したメッセージに取得時刻を付加してメッセージ記憶手段1bに格納する。
処理時間設定手段1cは、メッセージ記憶手段1bを参照し、要求メッセージと応答メッセージとの組から各サーバで実行された処理を判断する。その判断に基づいて、処理時間設定手段1cは、要求メッセージの取得時刻を処理の開始時刻とし、応答メッセージの取得時刻を処理の終了時刻とする。そして、処理時間設定手段1cは、処理の開始時刻と終了時刻とを処理時間情報記憶手段1dに格納する。
時間間隔計算手段1eは、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段1dを参照し、処理間の時間間隔を計算する。時間間隔計算手段1eは、各処理の直前の処理との間の時間間隔を処理時間情報記憶手段1dに登録する。
候補閾値生成手段1fは、処理間の時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する。
系列生成手段1gは、候補閾値生成手段1fで生成された候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する。
系列分割手段1hは、系列生成手段1gで生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する閾値に決定する。
トランザクションモデル生成手段1jは、閾値決定手段1iで決定された閾値以下の時間間隔で実行された連続する処理を1つの系列にまとめて、トランザクションモデルを生成する。
ここで、トランザクションモデルを生成する場合、クライアント2に対するサーバ3〜5によるサービスの提供を開始する。そして、クライアント2から要求をサーバ3〜5に処理させる。すると、メッセージ観測手段1aによりサーバ3〜5間で送受信されたメッセージが取得される。取得したメッセージには取得時刻が付加され、メッセージ記憶手段1bに格納される。
その後、処理時間設定手段1cにより、要求メッセージと応答メッセージとの組から各サーバで実行された処理が判断される。そして、処理時間設定手段1cにより、処理の開始時刻と終了時刻とが処理時間情報記憶手段1dに格納される。すると、時間間隔計算手段1eにより、サービス内の他の処理から呼び出されて発生した同一サーバ内の処理間の時間間隔が計算される。
次に、候補閾値生成手段1fにより、閾値の候補を示す候補閾値が複数生成される。すると、系列生成手段1gにより、候補閾値ごとに、処理間の時間間隔が候補閾値以下の連続する処理が、同一系列にまとめられる。この際、系列生成手段1gで生成された系列のうち、呼び出し元となる処理が存在しない系列は、系列分割手段1hによって、処理ごとの系列に分割される。
そして、閾値決定手段1iにより、系列数が最少となる候補閾値が、時間間隔の閾値に決定される。決定された閾値に基づき、トランザクションモデル生成手段1jにより、閾値以下の時間間隔で実行された連続する処理を1つの系列にまとめたトランザクションモデルが生成される。
このようにして、適切な閾値を自動で決定し、その閾値に基づいて系列化を伴うトランザクションモデルの生成処理を実行することができる。しかも、トランザクションモデル生成試行を行わずに、適切な閾値を決定することができる。トランザクションモデルを生成する場合、サーバ3とサーバ4との呼び出し関係の整合性、およびサーバ4とサーバ5との呼び出し関係との整合性を保ったトランザクションモデルが生成される。すなわち、サーバ3とサーバ4との呼び出し関係の整合性も考慮した上で、トランザクションモデルが生成される。
一方、図1に示した方法で、サーバ5で実行される処理の系列化のために閾値を決定するには、生成された系列の呼び出し元として選択可能な処理がサーバ4に存在するか否かを確認すればよい。すなわち、サーバ4とサーバ5との呼び出し関係を考慮すればよい。そのため、閾値決定に必要な判断要素が少なくなり、トランザクションモデルを生成して閾値を決定する場合に比べ短時間で閾値を決定することができる。
ところで、候補閾値を生成する場合、最初から多数の候補閾値を生成し、すべての候補閾値について系列生成処理および系列分割処理を行うこともできる。しかし、より適切な閾値を見つけ出すには、候補閾値を生成する刻み幅を短くして、各候補閾値で系列化した場合の系列数を計数することが望まれる。例えば、所定の探索区間を数ミリ秒単位で刻むことで得られた時間を、候補閾値とする。このような細かい間隔で生成された候補閾値を、想定される探索区間のすべてに対して生成すると、候補閾値の数が膨大となる。そこで、本実施の形態では、最初は広い刻み幅で候補閾値を生成し、系列数が少なくなる候補閾値周辺に探索区間を徐々に絞り込む。そして、探索区間が絞り込まれるのに従い、候補閾値生成のための時間の刻み幅も徐々に細かくする。これにより、閾値決定までに生成される候補閾値の数を削減できる。
以下、このような閾値の探索区間の段階的な絞り込みを行うことで、閾値決定に要する処理負荷の軽減を図る場合を例に採り、本実施の形態を詳細に説明する。なお、以下の説明では、各サーバで実行される処理単位をイベントと呼ぶこととする。
図2は、本実施の形態のシステム構成例を示す図である。図2に示すように、インターネット10には複数のクライアント21〜23が接続されている。また、インターネット10にはルータ31が接続されている。図中、ルータ31およびルータ31より右側の各装置によって、サービス提供側のネットワークシステムが構成されている。サービス提供側のネットワークシステムは、Webサーバ41、アプリケーションサーバ42,43、およびデータベース(DB)サーバ44,45による3階層構造となっている。
ルータ31にはスイッチ32を介してWebサーバ41が接続されている。Webサーバ41は、クライアント21〜23に対してWWW(World Wide Web)による情報提供を行う。Webサーバ41には、スイッチ33を介してアプリケーションサーバ42,43が接続されている。アプリケーションサーバ42,43は、Webサーバ41からの要求に応じてデータ処理を実行する。アプリケーションサーバ42,43には、スイッチ34を介してDBサーバ44,45が接続されている。DBサーバ44,45は、アプリケーションサーバ42,43からの要求に応じてデータベースへのデータの入出力を行う。
各スイッチ32〜34は、ポートモニタリング機能を有している。ポートモニタリング機能とは、スイッチ32〜34のポートを介して送受信されるパケットのコピーを、予め指定したポートへ送出する機能である。各スイッチ32〜34のコピーされたパケットを送出するポートには、スイッチ35を介してサービス処理状況分析装置100が接続されている。
サービス処理状況分析装置100は、サービス提供側のネットワーク内で送受信されるパケットの内容を解析し、複数のサーバで処理されるトランザクションを検出する。そして、サービス処理状況分析装置100は、検出したトランザクションを実行するのに各サーバが要した時間を分析する。
図3は、本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。サービス処理状況分析装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ106、および通信インタフェース107が接続されている。
RAM102は、サービス処理状況分析装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
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は、スイッチ35に接続されている。通信インタフェース107は、スイッチ35を介して、ルータ31、Webサーバ41、アプリケーションサーバ42,43、およびDBサーバ44,45間で送受信されるパケットを取得(キャプチャ)する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3ではサービス処理状況分析装置100のハードウェア構成を示したが、クライアント21〜23、Webサーバ41、アプリケーションサーバ42,43、DBサーバ44も同様のハードウェア構成で実現することができる。
図4は、サービス処理状況分析装置の機能を示すブロック図である。サービス処理状況分析装置100は、パケットデータ収集部110、メッセージ解析部120、メッセージ記憶部130、系列化閾値決定部140、閾値記憶部150、モデル生成部160、モデル記憶部170、および分析部180を有している。
パケットデータ収集部110は、スイッチ35を介して送受信されるパケットを取得し、取得したパケットをメッセージ解析部120に渡す。
メッセージ解析部120は、パケットデータ収集部110から渡されたパケットの内容を解析し、1つ以上のパケットで構成されるメッセージを検出する。そして、メッセージ解析部120は、検出したメッセージを示すメッセージデータをメッセージ記憶部130に格納する。
メッセージ記憶部130は、メッセージデータを格納するための記憶機能である。例えば、RAM102の記憶領域の一部がメッセージ記憶部130として使用される。
系列化閾値決定部140は、メッセージ記憶部130内のメッセージを参照し、トランザクションモデルを生成するときのイベントの系列化の要否判断に用いる時間間隔の閾値を決定する。系列化閾値決定部140は、決定した閾値を閾値記憶部150に格納する。
閾値記憶部150は、系列化閾値決定部140で決定された系列化のための時間間隔の閾値を記憶する。例えば、RAM102の記憶領域の一部が閾値記憶部150として使用される。
モデル生成部160は、メッセージ記憶部130に格納されたメッセージに基づいてトランザクションモデルを生成する。その際、モデル生成部160は、閾値記憶部150に格納された閾値以下の時間間隔で連続して実行されたイベントについては、同一トランザクション内の一連の処理と判断し、系列化する。モデル生成部160は、生成したトランザクションモデルをモデル記憶部170に格納する。
モデル記憶部170は、トランザクションに含まれるメッセージの組合せを示すトランザクションモデルを記憶する記憶機能である。例えば、HDD103の記憶領域の一部がモデル記憶部170として使用される。なお、トランザクションモデルは、クライアントから出力される要求の種別ごとに設けられる。
分析部180は、トランザクションモデルが生成された後、メッセージ記憶部130に格納されたメッセージに基づいて、各トランザクションにおけるサーバとの処理時間などを分析する。そして、分析部180は、分析結果をグラフなどでモニタ11に表示する。
このような構成のサービス処理状況分析装置100で、次のようなシステム分析処理が実行される。
図5は、サービス処理状況分析処理の手順を示すフローチャートである。以下、図5に示す処理をステップ番号に沿って説明する。
[ステップS11]パケットデータ収集部110がスイッチ35を介して、ルータ31、Webサーバ41、アプリケーションサーバ42,43、およびDBサーバ44,45で相互に送受信されるパケットを収集する。
[ステップS12]メッセージ解析部120は、パケットデータ収集部110が収集したパケットを解析し、メッセージデータを生成する。そして、メッセージ解析部120は、生成したメッセージデータをメッセージ記憶部130に格納する。
[ステップS13]その後、モデル生成部160により、モデル生成指示が入力されているか否かが判断されると共に、分析部180により、分析指示が入力されているかが判断される。モデル生成指示や分析指示は、例えば、サービス処理状況分析装置100の管理者によるキーボード12などを用いた操作入力によって与えられる。モデル生成指示が入力されている場合、処理がステップS14に進められる。分析指示が入力されている場合、処理がステップS16に進められる。
[ステップS14]モデル生成指示が入力されている場合、系列化閾値決定部140が、トランザクションモデルの系列化を行うための時間間隔の閾値を決定する。決定された閾値は、モデル生成部160に渡される。
[ステップS15]モデル生成部160は、メッセージ記憶部130に格納されているメッセージを参照し、トランザクションモデルを生成する。この際、モデル生成部160は、系列化閾値決定部140で決定された閾値以下の時間間隔で連続するイベントの系列化処理を行う。モデル生成部160は、生成したトランザクションモデルをモデル記憶部170に格納する。その後、処理が終了する。
[ステップS16]分析指示が入力されている場合、分析部180は、モデル記憶部113に格納されているトランザクションモデルとプロトコルログ記憶部112に格納されている情報とを参照し、実行されているトランザクションに関する情報を分析する。その後、処理が終了する。
このようにして、パケットの収集からトランザクションモデルの生成、またはトランザクションモデルに基づくトランザクションの分析が行われる。
図6は、メッセージ記憶部内のメッセージシーケンスを示す図である。メッセージ記憶部130には、キャプチャされたパケットから生成された複数のメッセージデータが時系列で格納されている。
メッセージデータの先頭は時刻を示すタイムスタンプである。なお、タイムスタンプは、パケットデータ収集部110がパケットを取得したときに取得したパケットに付与している。そして、メッセージ解析部120は、メッセージデータの生成元となったパケットに付与されていたタイムスタンプを、生成されたメッセージデータに付与して、メッセージ記憶部130に格納している。
メッセージデータ内のタイムスタンプの後には、セッション番号が付与される。セッション番号は、要求メッセージと応答メッセージとに同じ値が設定される。同じセッション番号の2つのメッセージデータのうち、タイムスタンプの時刻が早い方が要求メッセージを示している。また、タイムスタンプの時刻が遅い方が応答メッセージを示している。
メッセージデータ内のセッション番号の後には、プロトコル名が設定されている。図6の例では、プロトコル名として「HTTP」、「IIOP」、「RDB2」といった値が設定されている。
メッセージデータ内のプロトコル名の後には、メッセージの内容が設定されている。
このようなメッセージデータに基づいて、イベント51〜59の系列化を行った上で、トランザクションモデルが生成される。系列化を行う場合、まずメッセージデータの中から、イベントの開始を示す要求メッセージが検索される。次に、要求メッセージと同じセッション番号の応答メッセージが検索される。セッション番号が共通の要求メッセージと応答メッセージとにより、1つのイベントの開始時刻と終了時刻が表される。
図6には、2個のHTTPのイベント51,52、1個のIIOPのイベント53、6個のDBアクセス処理のイベント54〜59が示されている。ここで、DBアクセス処理のイベント54〜59に着目する。これらのイベント54〜59に対し、0.02秒(20ms)の時間間隔を閾値として系列化処理を施す場合を考える。
イベント54〜59は、連続して実行されている。このうちイベント54の終了時刻からイベント55の開始時刻までの時間間隔は、0.004秒(4ms)という短い時間間隔である。このような短い時間間隔で連続して発生したDBアクセスのイベント54,55は、同一のIIOPのイベント53から呼び出されたものと推定できる。そこで、2個のイベント54,55から1つの系列61が生成される。
また、連続するイベント56〜59の時間間隔は、最も長い部分がイベント58とイベント59との間である。このイベント58,59間の時間間隔は0.013秒である。従って、イベント56〜59から1つの系列62が生成される。
一方、イベント55とイベント56との時間間隔は、0.021秒(21ms)である。そのため、イベント55とイベント56とは別系列と判断される。その結果、図6の例では系列化処理により2つの系列61,62を生成できる。
このように系列化を行うことで、トランザクションモデルの一般化が可能となる。ここでいうトランザクションモデルの一般化とは、生成されたトランザクションモデルを、個々のイベントの処理内容はほぼ同じであるがイベントの発生回数が異なるトランザクションにも適用可能とすることを意味する。
例えば、系列62内のイベント57は、DBからデータを取得(FETCH)する処理である。また、イベント58は、DB内のデータをアップデート(UPDATE)する処理である。そこで、モデル生成部160は、トランザクションモデルを生成する際に、系列62内のイベント57,58と同様のイベントが、複数回繰り返してもよいと定義する。これにより、データアクセス回数が異なるだけの複数のトランザクションからは、1つのトランザクションモデルが生成される。その結果、無駄なトランザクションモデルの生成を抑制し、メッセージ分析時のトランザクションモデルの検索処理負荷が軽減される。また、メッセージを分析する際に、分析部180はデータベースへのアップデート回数が異なるだけの複数のトランザクションを同種のトランザクションとしてまとめることができ、分析結果の正確性が増す。
以下、図7、図8に、系列化を行わない場合と系列化を行った場合との、生成されるトランザクションモデルの違いを示す。
図7は、系列化を行わない場合に生成されるトランザクションモデルの例を示す図である。図7の左側には、メッセージ記憶部130に格納されているメッセージデータを解析して得られるメッセージシーケンス70の例を示している。図中、右向きの矢印は要求メッセージを示し、左向きの矢印は応答メッセージを示す。
このメッセージシーケンス70は、クライアント21からの要求メッセージに応じてWebサーバ41、アプリケーションサーバ42、およびDBサーバ44が処理を実行している。クライアント21からの処理要求は2回行われている。
1回目の処理要求で実行されたトランザクション71では、クライアント21からの要求メッセージに応じてWebサーバ41でイベント71aが実行されている。アプリケーションサーバ42では、Webサーバ41からの要求メッセージに応じてイベント71bが実行されている。DBサーバ44では、アプリケーションサーバ42からの2回の要求メッセージに応じて、イベント71c,71dを実行されている。
2回目の処理要求で実行されたトランザクション72では、クライアント21からの要求メッセージに応じてWebサーバ41でイベント72aが実行されている。アプリケーションサーバ42では、Webサーバ41からの要求メッセージに応じてイベント72bが実行されている。DBサーバ44では、アプリケーションサーバ42からの3回の要求メッセージに応じて、イベント72c,72d,72eを実行されている。
ここでトランザクション71とトランザクション72とは、Webサーバ41やアプリケーションサーバ42で実行されたイベントの内容は、同様の処理であるものとする。アプリケーションサーバ42からDBサーバ44への要求メッセージの送信回数の違いは、単にアクセス対象のデータ量の違いに起因しているものとする。
このような場合、メッセージシーケンス70に基づいて系列化を行わずにモデル生成処理を行うと、各トランザクション71,72に基づいて個別のトランザクションモデル73,74が生成される。
図8は、系列化を行った場合に生成されるトランザクションモデルの例を示す図である。図8の例は、図7と同じメッセージシーケンス70に対して系列化を行った後、トランザクションモデルの生成処理を行った場合である。メッセージシーケンス70内のトランザクション71では、イベント71c,71dを含む系列71eが生成されている。またトランザクション72では、イベント72c,72d,72eを含む系列72fが生成されている。
このような系列化を行った後にトランザクションモデルの生成処理を行うと、2つのトランザクション71,72は、同種であるものとして統合した1つのトランザクションモデル75が生成される。例えばモデル生成部160は、系列71e内の処理と、系列72f内の処理とが、同様なイベントの発生回数のみが異なることを検出し、該当イベントの複数回の繰り返しを許容するトランザクションモデル75を生成する。
このようなトランザクションモデル75を生成しておけば、分析時において、DBサーバ44におけるイベントの繰り返し回数が異なるだけのトランザクションを、同種のトランザクションとして分析することができる。
このように、イベントの系列化を行うことで生成するトランザクションモデルの一般化が図れる。ただし、時間間隔の閾値が不適当だとトランザクションモデルの一般化を適切に行うことができない。従って、適切な時間間隔の閾値を決定することが重要となる。
ここで、適切な系列に望まれる性質は、以下の通りである。
[第1の性質]すべての系列に呼び出し元として選択可能なイベントが存在すること。
[第2の性質]呼び出し元として選択可能なイベントの個数が少ないこと。
[第3の性質]系列全体の個数が少ないこと。
なお、系列の呼び出し元として選択可能なイベントとは、その系列の実行される時間帯を包含する時間帯に実行されている呼び出し元(上位層)のサーバのイベントである。時間帯包含するとは、系列の最初のイベントが上位層のイベントの開始時刻より後に始まり、系列の最後のイベントが上位層のイベントの終了時刻より前に終わることである。このような系列は、その上位層のイベントから呼び出された可能性がある。
第1の性質は、系列を含むトランザクションモデルを生成するために要求される性質である。すなわち、イベントの系列化は、上位層のサーバにおける1つのイベントにおいて、下位層のサーバに繰り返し送信される要求メッセージに基づくイベントをまとめるものである。そのため、生成された系列全体に対しも呼び出し元のイベントが存在していることが求められる。しかも、系列の呼び出し元のイベントが存在しない場合、その系列を含むトランザクションモデルを生成できず、系列化をした意義が失われてしまう。従って、生成した系列に呼び出し元となるイベントが存在しなければ、その系列を、系列に含まれるイベント単位の個別の系列に解体することとなる。
第2の性質は、生成されるトランザクションモデルの正確性を増すために要求される性質である。系列の呼び出し元として選択可能なイベント数が多いということは、その系列を用いて生成可能なトランザクションモデルのパターンが多数存在することを意味する。すると、生成されたトランザクションモデルが不適切である(他に適切なトランザクションモデルが存在していた)可能性が増大する。そのため、系列を生成する段階で、呼び出し元として選択可能なイベント数ができるだけ少ない数に絞り込まれていることが望まれる。この第2の性質は、時間間隔の閾値をできるだけ大きくすることで対応できる。すなわち、時間間隔の閾値が大きければ、多くのイベントを1つの系列にまとめることが可能となる。多くのイベントを含む系列は開始時刻から終了時刻までの時間が長くなり、その系列の呼び出し元として選択可能なイベントも限定される。
第3の性質は、系列化によるトランザクションモデル生成数の削減効果を高めるために要求される性質である。系列全体の個数が多いということは、本来1つの系列にすべきイベントが個別の系列に属している可能性が高いことを意味する。このように本来1つの系列にまとめるべきイベントが異なる系列に属すると、生成されるトランザクションモデルの数も増加し、系列化を行うことによるトランザクションモデル数削減効果が減少する。トランザクションモデル数が少なくできれば、分析部180によるメッセージを分析する際の探索空間が減少し、処理の効率化も図れる。
系列化閾値決定部140では、このような系列を生成可能な時間間隔の閾値を決定する。
図9は、系列化閾値決定部の内部機能を示すブロック図である。系列化閾値決定部140は、イベント情報テーブル生成部141、イベント情報記憶部142、時間間隔算出部143、候補閾値生成部144、系列生成部145、系列分割部146、および閾値決定部147を有している。
イベント情報テーブル生成部141は、メッセージ記憶部130に格納されたメッセージデータに基づいて、イベント情報テーブルを生成する。イベント情報テーブルは、イベントごとの開始時刻と終了時刻とが登録されたデータテーブルである。イベント情報テーブル生成部141は、生成したイベント情報テーブルをイベント情報記憶部142に格納する。
イベント情報記憶部142は、イベント情報テーブルを記憶する。例えば、RAM102の記憶領域の一部がイベント情報記憶部142として使用される。
時間間隔算出部143は、イベント情報記憶部142内のイベント情報テーブルを参照し、イベント間の時間間隔を算出する。時間間隔算出部143は、算出した時間間隔をイベント情報記憶部142内のイベント情報テーブルに登録する。
候補閾値生成部144は、系列化のための時間間隔の閾値の候補となる値(候補閾値)を生成する。候補閾値生成部144は、閾値決定部147から選択された候補閾値が示されると、その候補閾値の前後の所定の範囲を細分化した候補閾値を再度生成する。そして、候補閾値生成部144は、生成した候補閾値を系列生成部145に渡す。
系列生成部145は、イベント情報記憶部142内のイベント情報テーブルを参照し、候補閾値生成部144から受け取った候補閾値を閾値としてイベントの系列化を行い、系列を生成する。系列生成部145は、生成した系列をイベント情報記憶部142内のイベント情報テーブル142aに登録する。
系列分割部146は、生成された系列のうち、呼び出し元として選択可能なイベントが存在しない系列をイベントごとの系列に分割する。具体的には、系列生成部145で生成された系列を、イベント情報記憶部142を介して取得する。そして、系列分割部146は、メッセージ記憶部130を参照し、各系列の呼び出し元として選択可能なイベントを検索する。系列分割部146は、呼び出し元として選択可能なイベントが存在しない系列を、その系列に含まれるイベントごとの個別の系列に分割する。系列分割部146は、系列を分割した場合、その結果をイベント情報記憶部142内のイベント情報テーブルに登録する。
閾値決定部147は、イベント情報記憶部142内のイベント情報テーブルを参照し、系列の数が最も少ない候補閾値を選択する。閾値決定部147は、所定の終了条件を満たしているか否かを判断し、終了条件を満たしたときに選択している候補閾値を、トランザクションモデル生成時における系列生成の時間間隔の閾値と決定する。終了条件を満たしていなければ、閾値決定部147は、選択した候補閾値を候補閾値生成部144に通知し、次の候補閾値の生成を要求する。終了条件は、例えば候補閾値間の間隔が、予め設定された基準値以下となることである。閾値決定部147は、最終的に決定した閾値をモデル生成部160に通知する。
次に、系列化閾値決定部140で実行される処理の手順について説明する。
図10は、系列化閾値決定処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。なお、系列化閾値決定部140には、予め探索区間最小値t1の初期値、探索区間最大値t2の初期値、区間幅の基準値D、および分割数nが設定されているものとする。探索区間最小値t1は、適切な閾値を探索する区間の最小値を示している。探索区間最大値t2は、適切な閾値を探索する区間の最大値を示している。区間幅の基準値Dは、適切な閾値の探索の終了条件となる区間幅を示している。基準値D未満の幅の区間が次の探索区間とされた場合、系列化閾値決定処理が終了する。
[ステップS21]イベント情報テーブル生成部141は、イベント情報テーブルを生成する。そして、イベント情報テーブル生成部141は、生成したイベント情報テーブルをイベント情報記憶部142に格納する。
[ステップS22]時間間隔算出部143は、連続するイベント間の時間間隔を算出する。そして、時間間隔算出部143は、算出した時間間隔をイベント情報記憶部142内のイベント情報テーブルに登録する。
[ステップS23]候補閾値生成部144は、複数の候補閾値δを生成する。具体的には、候補閾値生成部144は、探索区間最小値t1と探索区間最大値t2との間の区間を分割数nで分割する。候補閾値生成部144は、分割によって生成された各区間の端点を候補閾値δとする。
[ステップS24]系列生成部145は、候補閾値δごとにステップS25,S26の処理を開始する。
[ステップS25]系列生成部145は、候補閾値δを閾値としてイベントの系列化を行う。
[ステップS26]系列分割部146は、呼び出し元候補として選択可能なイベントが存在しない系列を、内包するイベントごとの系列に分割する。
[ステップS27]閾値決定部147は、ステップS23で生成された端点ごとの候補閾値δそれぞれについてステップS25,S26の処理が完了したことを確認すると、処理をステップS28に進める。
[ステップS28]閾値決定部147は、ステップS23で生成された候補閾値δの中から、系列の個数が最少になる候補閾値δを選択する。このとき系列の個数が最少となる候補閾値δが複数あれば、複数の候補閾値δが選択される。
[ステップS29]閾値決定部147は、選択した候補閾値δのうちの値が最大の候補閾値δの値を、最良候補閾値Δとする。
[ステップS30]閾値決定部147は、探索区間最小値t1と探索区間最大値t2との値を更新する。具体的には、閾値決定部147は分割幅dを以下の式で求める。
d=(t2−t1)/n ・・・(1)
すなわち、ステップS23で分割したときの分割後の区間の幅が分割幅dである。閾値決定部147は、分割幅dを用いて以下の式により探索区間最小値t1と探索区間最大値t2とを更新する。
t1=max(t1,Δ−d) ・・・(2)
t2=min(t2,Δ+d) ・・・(3)
式(2)中の「max」は、括弧内の変数のうち大きい方の値を採ることを意味する。また、式(3)中の「min」は、括弧内の変数のうち小さい方の値を採ることを意味する。
この式(2)、(3)により、探索区間最小値t1については、現在の探索区間最小値t1と、最良候補閾値Δより分割幅dだけ小さい値とのうち大きい方の値が、新たな探索区間最小値t1とされる。また、探索区間最大値t2については、現在の探索区間最大値t2と、最良候補閾値Δより分割幅dだけ大きい値とのうち小さい方の値が、新たな探索区間最大値t2とされる。このようにして探索区間最小値t1と探索区間最大値t2とを更新することで、最良候補閾値Δを中心として、分割幅dの2倍の幅の区間が次の探索区間となる。
ただし、最良候補閾値Δが元の探索区間最小値t1と一致する場合には、探索区間最小値t1は変更しない。この場合、次の探索区間の区間幅は分割幅dとなる。また、最良候補閾値Δが元の探索区間最大値t2と一致する場合には、探索区間最大値t2は変更しない。この場合にも、次の探索区間の区間幅は分割幅dとなる。
[ステップS31]閾値決定部147は、終了条件を判断する。具体的には、探索区間最大値t2から探索区間最小値t1を減算した値(探索区間幅)が、区間幅の基準値Dより小さければ、終了条件が満たされたと判断する。終了条件が満たされた場合、処理がステップS32に進められる。終了条件が満たされていなければ、処理がステップS23に進められる。
[ステップS32]閾値決定部147は、現在の最良候補閾値Δの値を時間間隔の閾値として、閾値記憶部150に格納する。その後、系列化閾値決定処理が終了する。
次に、系列化閾値決定処理の各ステップについて詳細に説明する。まず、イベント情報テーブル生成部141によるイベント情報テーブルの生成処理(図10のステップS21)について詳細に説明する。
図11は、イベント情報テーブルのデータ構造例を示す図である。イベント情報テーブル142aには、イベントID、開始時刻、終了時刻、時間間隔、および候補閾値の欄が設けられている。本実施の形態では、最下層のサーバであるDBサーバ44で発生したイベントついてのみ系列化処理が行われる。そこで、イベント情報テーブル生成部141は、DBサーバ44で発生したイベントに関してのイベント情報テーブル142aを生成する。
イベントIDの欄には、最下層のサーバ(図2の例ではDBサーバ44)で発生したイベントの識別情報(イベントID)が設定される。イベント情報テーブル生成部141は、メッセージ記憶部130内のメッセージデータを参照し、セッション番号が共通の要求メッセージと応答メッセージとの組みにより、1つのイベントを認識する。
なお、図6の例では省略されているが、各メッセージデータに送信元のIPアドレスと宛先のIPアドレスとを含ませることで、要求メッセージか応答メッセージかの判断が可能である。すなわち、メッセージデータの送信元がアプリケーションサーバ42のIPアドレスであり、宛先がDBサーバ44のIPアドレスであれば、そのメッセージデータは要求メッセージを示している。逆に、メッセージデータの送信元がDBサーバ44のIPアドレスであり、宛先がアプリケーションサーバ42のIPアドレスであれば、そのメッセージデータは応答メッセージを示している。
イベント情報テーブル生成部141は、開始時刻が早いイベント情報テーブル生成部141から昇順でイベントIDを設定する。そして、イベント情報テーブル生成部141は、イベントIDが小さいイベントの情報ほど上位になるように、各イベントのイベントIDをイベントIDの欄に設定する。
開始時刻の欄には、対応するイベントの開始時刻が設定される。開始時刻は、イベントの発生要因となった要求メッセージの取得時刻である。なお、図11では、説明を簡略化するために、時刻情報のうちミリ秒単位の数値のみを示している。
終了時刻の欄には、対応するイベントの終了時刻が設定される。終了時刻は、イベントの終了時に送信される応答メッセージの取得時刻である。なお、図11では、説明を簡略化するために、時刻情報のうちミリ秒単位の数値のみを示している。
時間間隔の欄には、直前のイベントの終了時刻から、対応するイベントの開始時刻までの時間差(時間間隔)が設定される。時間間隔の値は時間間隔算出部143によって設定される。従って、イベント情報テーブル生成部141がイベント情報テーブル142aを生成した時点では、時間間隔の欄は空欄である。
候補閾値の欄には、候補閾値生成部144で生成された候補閾値ごとに、その候補閾値で系列化を行ったときに各イベントが属する系列の識別暗号(系列ID)が設定される。候補閾値と系列IDとは、系列生成部145によって設定される。従って、イベント情報テーブル生成部141がイベント情報テーブル142aを生成した時点では、候補閾値と系列IDの欄は空欄である。
このようなイベント情報テーブル142aに対して、時間間隔算出部143によって時間間隔が設定される。以下、時間間隔算出処理(図10のステップS22)について詳細に説明する。
図12は、時間間隔の算出方法を示す図である。図12に示すように、各イベントの時間間隔は、該当イベントの開始時刻から直前のイベントの終了時刻を減算した値である。式で表すと以下のようになる。
時間間隔=イベントの開始時刻−直前のイベントの終了時刻 ・・・(4)
時間間隔算出部143は、先頭のイベントを除き、イベント情報テーブル142a内の各イベントの時間間隔を計算する。そして、時間間隔算出部143は、イベント情報テーブル142aの時間間隔の欄に算出した値を設定する。
図13は、時間間隔設定後のイベント情報テーブルを示す図である。図13に示すように、時間間隔算出部143によってイベントごとの時間間隔が、イベント情報テーブル142aの時間間隔の欄に設定される。
次に、候補閾値生成部144によって、候補閾値が生成される。以下、候補閾値の生成処理(ステップS23)について詳細に説明する。
図14は、候補閾値の生成例を示す図である。図14の例では、探索区間最小値t1の初期値が0ms、探索区間最大値t2の初期値が20msであるものとする。また、分割数nには10が設定されているものとする。
1回目の候補閾値δの生成処理では、0msから20msの探索区間が10分割される。そして、分割区間の端点が候補閾値δとなる。すると0ms、2ms、4ms、・・・、20msが、それぞれ候補閾値δとなる。その後、系列化によって候補閾値δごとの系列が生成される。そして、最も系列数が少なくなる候補閾値δが選択され、最良候補閾値Δとなる。図14の例では、6msの候補閾値δが選択され、最良候補閾値Δに設定される。
その後、分割幅dが計算される。探索区間最小値t1が0ms、探索区間最大値t2が20ms、分割数が10であれば、分割幅dは2ms(d=(20−0)/10)となる。すると、最良候補閾値Δが6msであれば、探索区間最小値t1は4(t1=6−2)となる。また、探索区間最大値t2は8(t2=6+2)となる。
すると、2回目の候補閾値δの生成処理では、4msから8msの区間が10分割されることとなる。その結果、4ms、4.4ms、4.8ms、・・・、8msが候補閾値δとなる。このうち、4ms、6ms、8msの候補閾値δについては、既に1回目の処理で系列化が行われている。従って、2回目の系列化処理では、4ms、6ms、8ms以外の候補閾値δについて系列化を行えばよい。このように徐々に探索区間が絞り込まれると共に、候補閾値生成の区切り幅が狭くなる。
候補閾値δが生成されると、候補閾値δごとに系列生成処理が行われる。以下、系列生成処理(図10のステップS25)について詳細に説明する。
図15は、候補閾値「5ms」での系列生成例を示す図である。系列生成部145は、イベント情報テーブル142aを参照し、各イベントの時間間隔と候補閾値の値とを比較する。イベントの時間間隔が候補閾値以下であれば、系列生成部145は、そのイベントを直前のイベントと同じ系列にまとめる。一方、イベントの時間間隔が候補閾値を超えていれば、系列生成部145は、そのイベントと直前のイベントとを別の系列とする。
図15の例では、イベントID「2」のイベントの時間間隔は「3ms」である。すると、時間間隔が候補閾値「5ms」よりも小さいため、イベントID「1」のイベントと同じ系列にイベントID「2」のイベントがまとめられる。また、イベントID「4」のイベントの時間間隔は「6ms」である。すると、時間間隔が候補閾値「5ms」より大きいため、イベントID「4」のイベントは、イベントID「3」のイベントとは別の系列となる。
このようにして生成された系列それぞれに対して、系列生成部145は、系列IDを付与する。そして、系列生成部145は、イベント情報テーブル142aの候補閾値の欄に候補閾値の値「5ms」を設定する。さらに、系列生成部145は、系列の生成を行った候補閾値の下の系列IDの欄に、各イベントが属する系列の系列IDを設定する。
さらに系列生成部145は、生成した系列に関する系列情報テーブル142bを生成する。系列情報テーブル142bには、系列を生成したときの候補閾値が設定されている。また、系列情報テーブル142bには、系列ID、開始時刻、および終了時刻の欄が設けられている。
系列IDの欄には、生成された系列の系列IDが設定される。開始時刻の欄には、生成された系列の開始時刻が設定される。系列の開始時刻は、その系列に含まれるイベントIDが最も小さいイベント(系列内の最初のイベント)の開始時刻である。終了時刻の欄には、生成された系列の終了時刻が設定される。系列の終了時刻は、その系列に含まれるイベントIDが最も大きいイベント(系列内の最後のイベント)の終了時刻である。
系列生成部145は、生成した系列情報テーブル142bをイベント情報記憶部142内に格納する。
図16は、候補閾値「2ms」での系列生成例を示す図である。候補閾値「2ms」で系列を生成すると、候補閾値「5ms」よりも多数の系列が生成される。例えば、イベントID「2」のイベントの時間間隔は「3ms」である。すると、時間間隔が候補閾値「2ms」より大きいため、イベントID「2」のイベントは、イベントID「1」のイベントとは別の系列となる。
系列生成部145は、候補閾値「2ms」で生成した系列の系列情報テーブル142cを生成し、イベント情報記憶部142に格納する。
系列生成処理を行った段階では、候補閾値δの値が小さいほど系列数が多くなる。系列が生成されると、系列分割部146によって系列分割処理(ステップS26)が行われる。以下、系列分割処理について詳細に説明する。
図17は、系列分割処理の第1の例を示す図である。図17の例では、アプリケーションサーバ42の2つのイベントA,Bが実行される間には、DBサーバ44の4つのイベントa,b,c,dと、DBサーバ45の4つのイベントe,f,g,hとが実行されているものとする。イベントの系列化は、同一のDBサーバで実行されたイベント同士でのみ行われる。例えば、イベントbとイベントeとが同一系列になることはない。
このようなイベントシーケンスがあるときに、イベントb,c間の時間間隔を候補閾値δとして系列生成処理を行ったものとする。連続するイベントa,b,c,dの各イベント間の時間間隔は、候補閾値以下である。そこで、最終的には、イベントe,f,g,hが属する系列81bと、イベントa,b,c,dが属する系列81aとが生成される。
系列分割部146は、生成された系列81a,81bについて、呼び出し元として選択可能なアプリケーションサーバ42のイベントが少なくとも1つ存在するか否かを判断する。アプリケーションサーバ42のイベントA,BがDBサーバ44,45のイベントをまとめた系列81a,81bの呼び出し元であるためには、イベントA,Bの処理時間帯内に系列81a,81bの時間帯が包含されることが条件となる。すると、系列81a,81bには、いずれも呼び出し元として選択可能なイベントが存在しないことが分かる。
系列分割部146は、呼び出し元候補のない系列81a,81bを、イベントごとの個別の系列に分割する。すると系列81aは、4つの系列82a,82b,82c,82dに分割される。同様に系列81bは、4つの系列82e,82f,82g,82hに分割される。その結果、系列数は「8」となる。
図18は、系列分割処理の第2の例を示す図である。図18の例では、イベントシーケンスは図17の例と同様である。ただし、系列生成処理における候補閾値δが、イベントeとイベントfとの時間間隔よりも若干短い時間である。この場合、図17の例と比べると、イベントeとイベントfとの時間間隔は、候補閾値δより大きくなる。また、イベントbとイベントcとの時間間隔も、候補閾値δより大きくなる。
その結果、系列生成処理によりイベントa,bが属する系列83a、イベントc,dが属する系列83b、イベントeが属する系列83c、およびイベントf,g,hが属する系列83dが生成される。
系列分割部146は、生成された系列83a,83b,83c,83dについて、呼び出し元として選択可能なアプリケーションサーバ42のイベントが少なくとも1つ存在するか否かを判断する。すると、系列83dには呼び出し元として選択可能なイベントが存在しないことが分かる。
系列分割部146は、呼び出し元候補のない系列83dを、イベントごとの個別の系列に分割する。すると系列83dは、3つの系列84a,84b,84cに分割される。その結果、系列数は「6」となる。
図17、図18に示したように、系列分割処理を行うことによって、候補閾値が大きすぎた場合、呼び出し元のイベントが存在しない系列が発生する。その場合、該当する系列がイベントごとの系列に分割される。イベントごとの系列に分割することで、呼び出し元の存在しない系列に属するイベント数を最小限に抑えることができる。
このように候補閾値が大きすぎると系列生成処理で生成される系列数は少なくなるが、系列分割処理を行うことで最終的な系列数は多くなる。よって、値が大きすぎる候補閾値はステップS28の処理において選択されなくなる。他方、候補閾値が小さすぎると系列生成処理で生成される系列数は最初から多くなる。よって、値が小さすぎる候補閾値はステップS28の処理において選択されなくなる。従って、系列化により生成される系列数が少ない候補閾値を最良候補閾値として選択し、最良候補閾値周辺の細かな探索を繰り返すことで、適切な閾値を決定できる。
そして、適切な時間間隔の閾値を用いて系列化を伴うモデル生成処理を実行すれば、適切なトランザクションモデルを生成することができる。
図19は、系列を含むトランザクションモデルの例を示す図である。モデル記憶部170には、生成されたトランザクションモデル90を示すモデル情報171が格納されている。系列を含むモデル情報171には、名寄せ規則171aと系列一般化規則171bとが含まれる。
名寄せ規則171aには、トランザクションモデル90に定義されたメッセージの内容が示されている。図19の例では、要求メッセージとして、クライアントからWebサーバへのHTTPリクエストメッセージ、WebサーバからアプリケーションサーバへのIIOP(Internet Inter-ORB Protocol)メッセージがある。また、アプリケーションサーバからDBサーバへの要求メッセージには、データベースの「OPEN」、「FETCH」、「CLOSE」それぞれを要求するメッセージがある。そして、各要求メッセージに対応する応答メッセージが定義されている。
系列一般化規則171bには、系列に含まれるか否かを判定するための規則が定義されている。図19の例では以下のように定義されている。
R1RS1^{1,1}−R2RS1^{1−3}−R3RS1^{1,1}
ここでR1は、データベースの「OPEN」処理のイベントを示す。R2は、データベースの「FETCH」処理のイベントを示す。R3は、データベースの「CLOSE」処理のイベントを示す。RS1は、DBサーバからの応答メッセージを示す。「−」は、イベントの区切りを示す。系列一般化規則171b内の左側に定義されたイベントほど、先に実行される。
「R1RS1^{1,1}」は、「R1」と「RS1」とで示されるイベントが1以上1以下含まれることを意味する。
「R2RS1^{1−3}」は、「R2」と「RS1」とで示されるイベントが1以上3以下含まれることを意味する。
「R3RS1^{1,1}」は、「R3」と「RS1」とで示されるイベントが1以上1以下含まれることを意味する。
以上のようにして、適切な閾値を用いて系列化を行うことで、系列の一般化を図ったトランザクションモデルを生成することができる。しかも、適切な閾値を用いたことで、無関係のイベントが誤って同一系列に含まれる事態ことを抑制できる。また、適切な閾値を用いたことで、同様のイベントから呼び出される複数のイベントを1つの系列に的確にまとめることが可能となる。その結果、生成されるトランザクションモデルの数が抑制される。トランザクションモデルの数が少なければ、サービス運用時のトランザクションを分析する際に、発生したトランザクションとトランザクションモデルとの対比処理負荷が軽減される。
また、本実施の形態では、処理の時間間隔の最小値と最大値を探索区間の初期値とし、探索区間の幅が基準値以下になるまで、探索区間の段階的な絞り込みが行われる。そして、探索区間の幅が小さくなる程、小さい刻み幅で候補閾値が生成される。これにより、最適な閾値を決定するまでに生成する候補閾値数を削減することができ、閾値決定までの処理負荷が軽減される。
なお、すべてのイベントに呼び出し元がある場合には、すべての系列について呼び出し元がある最大の閾値を求めればよい。しかし実際のシステムでは、呼び出し元のアプリケーションのイベントが観測されないことがある。図17、図18の例では、イベントgについては、それ単独で系列を構成しても、呼び出し元のイベントが存在しない。呼び出し元が存在しないイベントが検出される原因としては、以下のような原因がある。
第1の原因は、ネットワーク上のパケット落ちである。ネットワーク上のパケットが大量にあることにより、メッセージの観測が追い着かない場合がある。呼び出し元のイベントに関するパケットが欠落すると、そのイベントが検出されず、呼び出し先のイベントのみが検出されることがある。この場合、呼び出し先のイベントに対応する呼び出し元のイベントを探しても、該当するイベントを見つけ出すことができない。
第2の原因は、アプリケーションサーバ42,43の内部処理(Webサーバ41からの要求に基づかない処理)に起因して発生するイベントの存在である。アプリケーションサーバ42,43では、内部の管理機能によってDBサーバ44,45に要求メッセージを出力する場合がある。このような場合、イベントgのように呼び出し元のイベントが存在しない。
呼び出し元のイベントが存在しないイベント(以下、「呼び出し元欠落イベント」という)が存在するとき、なるべく多くの系列に呼び出し元があり、かつ全体の系列数が少なくなる系列を与える閾値が、適切な閾値となる。呼び出し元欠落イベントについては、系列生成処理で他のイベントとまとめられたとしても、系列分割処理によりイベントごとの個別の系列に常に分割される。その結果、候補閾値がどのような値となっても、呼び出し元欠落イベントは、そのイベント単独の系列となる。その結果、候補閾値ごとに生成される系列数の比較において、呼び出し元欠落イベントの存在が、最良候補閾値の選択に大きな影響を及ぼすことはない。
従って、本実施の形態によれば、呼び出し元欠落イベントの有無に拘わらず統一的な方法で最適な閾値を求めることができる。
なお、図17、図18の例では、イベントa,b,c,dがDBサーバ44で実行され、イベントe,f,g,hがDBサーバ45で実行されたものとした。このため、イベントa,b,c,dとイベントe,f,g,hとが互いに同じ系列を構成しないことを容易に判別できた。しかし、実際に運用中のシステムからメッセージシーケンスを生成すると、1つのDBサーバ(例えばDBサーバ44)内の処理であっても、イベントaとイベントeの用に処理の時間帯が重複する複数のイベントが発生することがある。このような場合、系列生成処理において、処理時間が重複するイベント同士は同じ系列に含めないようにする。
例えば、図17に示したイベントシーケンスであれば、以下のような手順で系列が生成される。なお、候補閾値δは、イベントbとイベントcとの時間間隔に等しいものとする。
系列生成部145は、開始時刻が早いイベントから順に、系列が判断する。その場合、最初にイベントeによって1つの系列81bが生成される。次のイベントaは、イベントeとの間に処理時間の重複がある。そこで、系列生成部145は、イベントaが属する2つめの系列81aを生成する。次のイベントbは、イベントaとの間の時間間隔が候補閾値δ以下である。そのため系列生成部145は、イベントbをイベントaと同じ系列81aにまとめる。
次のイベントfは、イベントbとの間に処理時間の重複がある。そこで系列生成部145は、イベントfの系列化の判断対象として、イベントbが含まれる系列81aを除外する。するとイベントfの系列化の判断対象は、系列81bとなる。そこで、時間間隔算出部143は、イベント情報記憶部142に設定されているイベントfの時間間隔を、イベントeとの間の時間間隔に更新する。イベントeとイベントfとの時間間隔は候補閾値δ以下である。そこで、イベントfは、イベントeが属する系列81bにまとめられる。以後、他のイベントc,d,g,fについても、属する系列が判断される。その結果、図17と同様の2つの系列81a,81bが生成される。
このように処理時間が重複するイベント同士を同じ系列に含めないことで、システム運用中に発生する複雑なメッセージシーケンスに基づいて、的確な閾値を決定することが可能となる。
また、上記実施の形態では、系列数が最少となる候補閾値が複数ある場合、値が大きい方の候補閾値が閾値に決定される。これにより、ある程度の範囲内のいずれの候補閾値でも適切な系列化が可能な場合、その範囲のうち最も大きな候補閾値が閾値に決定される。閾値が大きな値である程、系列生成処理で生成される系列(分割処理の判断対象となる系列)の数が少なくなる。系列分割処理では、呼び出し元となるイベントの検索処理が必要となるため、分割処理の判断対象となる系列が少ないほど系列分割処理における負荷が軽減される。すなわちできるだけ大きな値の閾値候補を閾値とすることで、処理の効率化を図ることができる。
しかも、閾値が大きいほど、トランザクションモデル生成時に1つの系列に多くのイベントをまとめることができる。すると、系列の開始時刻から終了時刻までの時間が長くなり、呼び出し元として選択可能なイベントが限定される。その結果、系列の呼び出し元イベントの選択を誤る可能性が低下し、トランザクションモデルの正確性が増す。
また、上記実施の形態では、閾値の探索区間の最大値と最小値が初期値として指定される。これにより、無駄に広い範囲を探索区間とする必要がなくなり、処理の効率化が図れる。
また、上記実施の形態では、探索区間が所定の数で分割され、分割により得られた区間の端点となる時間間隔が候補閾値となる。このように、探索区間内に均等間隔で候補閾値を生成することで探索漏れの発生を防止できる。
また、上記実施の形態では、所定の探索終了条件が満たされるまで、既に生成されている候補閾値のうち系列数が最少となる候補閾値が最良候補閾値として選択される。そして、最良候補閾値を中心とした所定の範囲が探索区間として再度候補閾値が生成される。このようにして、徐々に探索区間を絞り込むことで、無駄な候補閾値が生成されるのを防止できる。生成される候補閾値の数が減れば、その分、処理負荷も軽減される。
また、上記実施の形態では、最良候補閾値が入力されると、直前に候補閾値を生成したときの探索区間が所定の数で除算され、除算結果が最良候補閾値に加減算した値の範囲を新たな探索区間として候補閾値が生成される。これにより、最良候補閾値を中心とした範囲を次の探索区間とすることができる。これにより、探索範囲の絞り込みを的確に行うことができる。
また、上記実施の形態では、メッセージ記憶部130内のメッセージに基づいて、要求メッセージと応答メッセージとの組から各サーバで実行された処理が判断される。さらに、要求メッセージの取得時刻が処理の開始時刻とされ、応答メッセージの取得時刻を処理の終了時刻とされる。そして、開始時刻と終了時刻とがイベント情報記憶部142に格納される。これにより、ネットワーク上を伝送されたメッセージに基づいて、イベント情報テーブル142aを自動生成が可能となる。
また、上記実施の形態では、サービスを提供する複数のサーバが接続されたネットワークから複数のサーバ間で送受信されたメッセージが取得される。そして、取得されたメッセージに取得時刻を付加してメッセージ記憶部130に格納される。これにより、実際に運用されているWeb3階層システムのメッセージ観測結果に基づいて、実態に即した閾値決定が可能となる。
また、上記実施の形態では、自動で決定された閾値を用いて、その閾値以下の時間間隔で実行された連続する処理を1つの系列にまとめて、トランザクションモデルが生成される。これにより、閾値の決定とトランザクションモデルの生成とを一連の処理で実行できる。すなわちトランザクションモデルを生成するときに、トランザクションモデル生成元となるメッセージデータに基づいて、系列化のための適切な閾値が決定できる。その結果、システムの運用状況に応じて適切な閾値が異なる場合であっても、その都度適切な閾値を用いてトランザクションモデルを生成できる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サービス処理状況分析装置100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM、CD−R/RWなどがある。光磁気記録媒体には、MOなどがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援プログラムにおいて、
前記コンピュータを、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段、
前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段、
前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段、
系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段、
として機能させることを特徴とするトランザクションモデル生成支援プログラム。
(付記2) 前記閾値決定手段は、系列数が最少となる前記候補閾値が複数ある場合、値が大きい方の前記候補閾値を前記閾値に決定することを特徴とする付記1記載のトランザクションモデル生成支援プログラム。
(付記3) 前記候補閾値生成手段は、前記閾値の探索区間が予め指定されており、前記探索区間内の前記候補閾値を生成することを特徴とする付記1記載のトランザクションモデル生成支援プログラム。
(付記4) 前記候補閾値生成手段は、前記探索区間を所定の数で分割し、分割により得られた区間の端点となる時間間隔を前記候補閾値とすることを特徴とする付記3記載のトランザクションモデル生成支援プログラム。
(付記5) 前記候補閾値生成手段は、最良候補閾値が入力されると、前記最良候補閾値を中心とした所定の範囲を前記探索区間として再度前記候補閾値を生成し、
前記閾値決定手段は、所定の探索終了条件が満たされるまで、既に生成されている前記候補閾値のうち系列数が最少となる前記候補閾値を前記最良候補閾値として選択し、前記候補閾値生成手段に対して前記最良候補閾値を出力することを特徴とする付記3記載のトランザクションモデル生成支援プログラム。
(付記6) 前記候補閾値生成手段は、前記最良候補閾値が入力されると、直前に前記候補閾値を生成したときの前記探索区間を所定の数で除算し、除算結果を前記最良候補閾値に加減算した値の範囲を新たな前記探索区間として前記候補閾値を生成することを特徴とする付記5記載のトランザクションモデル生成支援プログラム。
(付記7) 前記コンピュータを、さらに、
前記サービスの各階層の処理を実行する複数のサーバ間で受け渡されるメッセージと、前記メッセージの取得時刻とが格納されたメッセージ記憶手段を参照し、要求メッセージと応答メッセージとの組から各サーバで実行された処理を判断し、前記要求メッセージの取得時刻を前記処理の開始時刻とし、前記応答メッセージの取得時刻を前記処理の終了時刻として、前記処理の開始時刻と終了時刻とを前記処理時間情報記憶手段に格納する処理時間設定手段として機能させることを特徴とする付記1記載のトランザクションモデル生成支援プログラム。
(付記8) 前記コンピュータを、さらに、
前記サービスを提供する複数のサーバが接続されたネットワークから前記複数のサーバ間で送受信されたメッセージを取得し、取得したメッセージに取得時刻を付加して前記メッセージ記憶手段に格納するメッセージ観測手段をさらに有することを特徴とする付記7記載のトランザクションモデル生成支援プログラム。
(付記9) 前記コンピュータを、さらに、
前記閾値決定手段で決定された前記閾値以下の時間間隔で実行された連続する処理を1つの系列にまとめて、トランザクションモデルを生成するトランザクションモデル生成手段、
として機能させることを特徴とする付記1記載のトランザクションモデル生成支援プログラム。
(付記10) サービスが多階層で処理されるトランザクションのモデル生成支援を行うトランザクションモデル生成支援装置において、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段と、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段と、
前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段と、
前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段と、
系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段と、
を有することを特徴とするトランザクションモデル生成支援装置。
(付記11) サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援方法において、
前記コンピュータが、
前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算し、
処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成し、
生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成し、
生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割し、
系列数が最少となる前記候補閾値を前記閾値に決定する、
ことを特徴とするトランザクションモデル生成支援方法。
実施の形態の概要を示す図である。 本実施の形態のシステム構成例を示す図である。 本実施の形態に用いるサービス処理状況分析装置のハードウェア構成例を示す図である。 サービス処理状況分析装置の機能を示すブロック図である。 サービス処理状況分析処理の手順を示すフローチャートである。 メッセージ記憶部内のメッセージシーケンスを示す図である。 系列化を行わない場合に生成されるトランザクションモデルの例を示す図である。 系列化を行った場合に生成されるトランザクションモデルの例を示す図である。 系列化閾値決定部の内部機能を示すブロック図である。 系列化閾値決定処理の手順を示すフローチャートである。 イベント情報テーブルのデータ構造例を示す図である。 時間間隔の算出方法を示す図である。 時間間隔設定後のイベント情報テーブルを示す図である。 候補閾値の生成例を示す図である。 候補閾値「5ms」での系列生成例を示す図である。 候補閾値「2ms」での系列生成例を示す図である。 系列分割処理の第1の例を示す図である。 系列分割処理の第2の例を示す図である。 系列を含むトランザクションモデルの例を示す図である。
符号の説明
1a メッセージ観測手段
1b メッセージ記憶手段
1c 処理時間設定手段
1d 処理時間情報記憶手段
1e 時間間隔計算手段
1f 候補閾値生成手段
1g 系列生成手段
1h 系列分割手段
1i 閾値決定手段
1j トランザクションモデル生成手段
2 クライアント
3〜5 サーバ
6〜8 ネットワーク

Claims (7)

  1. サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援プログラムにおいて、
    前記コンピュータを、
    前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段、
    処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段、
    前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段、
    前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段、
    系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段、
    として機能させることを特徴とするトランザクションモデル生成支援プログラム。
  2. 前記閾値決定手段は、系列数が最少となる前記候補閾値が複数ある場合、値が大きい方の前記候補閾値を前記閾値に決定することを特徴とする請求項1記載のトランザクションモデル生成支援プログラム。
  3. 前記候補閾値生成手段は、前記閾値の探索区間が予め指定されており、前記探索区間内の前記候補閾値を生成することを特徴とする請求項1記載のトランザクションモデル生成支援プログラム。
  4. 前記候補閾値生成手段は、最良候補閾値が入力されると、前記最良候補閾値を中心とした所定の範囲を前記探索区間として再度前記候補閾値を生成し、
    前記閾値決定手段は、所定の探索終了条件が満たされるまで、既に生成されている前記候補閾値のうち系列数が最少となる前記候補閾値を前記最良候補閾値として選択し、前記候補閾値生成手段に対して前記最良候補閾値を出力することを特徴とする請求項3記載のトランザクションモデル生成支援プログラム。
  5. 前記コンピュータを、さらに、
    前記サービスの各階層の処理を実行する複数のサーバ間で受け渡されるメッセージと、前記メッセージの取得時刻とが格納されたメッセージ記憶手段を参照し、要求メッセージと応答メッセージとの組から各サーバで実行された処理を判断し、前記要求メッセージの取得時刻を前記処理の開始時刻とし、前記応答メッセージの取得時刻を前記処理の終了時刻として、前記処理の開始時刻と終了時刻とを前記処理時間情報記憶手段に格納する処理時間設定手段として機能させることを特徴とする請求項1記載のトランザクションモデル生成支援プログラム。
  6. サービスが多階層で処理されるトランザクションのモデル生成支援を行うトランザクションモデル生成支援装置において、
    前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算する時間間隔計算手段と、
    処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成する候補閾値生成手段と、
    前記候補閾値生成手段で生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成する系列生成手段と、
    前記系列生成手段で生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割する系列分割手段と、
    系列数が最少となる前記候補閾値を前記閾値に決定する閾値決定手段と、
    を有することを特徴とするトランザクションモデル生成支援装置。
  7. サービスが多階層で処理されるトランザクションのモデル生成支援処理をコンピュータに実行させるトランザクションモデル生成支援方法において、
    前記コンピュータが、
    前記サービス内の他の処理から呼び出されて発生した同一サーバ内の処理の開始時刻と終了時刻とを記憶する処理時間情報記憶手段を参照し、処理間の時間間隔を計算し、
    処理間の前記時間間隔に応じて処理を系列化する際の判断基準とする閾値の候補を示す候補閾値を複数生成し、
    生成された前記候補閾値ごとに、処理間の前記時間間隔が前記候補閾値以下の連続する処理を同一系列にまとめて、各処理が属する系列を生成し、
    生成された系列のうち、呼び出し元となる処理が存在しない系列を、処理ごとの系列に分割し、
    系列数が最少となる前記候補閾値を前記閾値に決定する、
    ことを特徴とするトランザクションモデル生成支援方法。
JP2008320628A 2008-12-17 2008-12-17 トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法 Expired - Fee Related JP5422989B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008320628A JP5422989B2 (ja) 2008-12-17 2008-12-17 トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法
US12/630,090 US8732323B2 (en) 2008-12-17 2009-12-03 Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008320628A JP5422989B2 (ja) 2008-12-17 2008-12-17 トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法

Publications (2)

Publication Number Publication Date
JP2010146146A true JP2010146146A (ja) 2010-07-01
JP5422989B2 JP5422989B2 (ja) 2014-02-19

Family

ID=42241893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008320628A Expired - Fee Related JP5422989B2 (ja) 2008-12-17 2008-12-17 トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法

Country Status (2)

Country Link
US (1) US8732323B2 (ja)
JP (1) JP5422989B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012083918A (ja) * 2010-10-08 2012-04-26 Fujitsu Ltd 情報処理プログラム、装置及び方法
JP2012128811A (ja) * 2010-12-17 2012-07-05 Fujitsu Ltd 管理装置、管理プログラム、および管理方法
WO2013147226A1 (ja) * 2012-03-30 2013-10-03 日本電信電話株式会社 利用者体感品質推定装置、端末ボトルネック判定装置、類似操作抽出装置、及び方法、並びにプログラム
US8677364B2 (en) 2010-01-29 2014-03-18 Fujitsu Limited Computer program, method, and apparatus for grouping tasks into series
JP2014154888A (ja) * 2013-02-04 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> 通信分類装置及び方法及びプログラム
US8930369B2 (en) 2011-03-14 2015-01-06 Fujitsu Limited Information processing apparatus, message classifying method and non-transitory medium for associating series of transactions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997006494A1 (en) * 1995-08-10 1997-02-20 Advanced System Technologies, Inc. Response time measurement apparatus and method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181687B1 (en) * 1998-10-22 2001-01-30 International Business Machines Corporation System and a method for continuously adjustable, splitting group, multi-contention resolution in multi-access computer communication systems
US20020161823A1 (en) * 2001-04-25 2002-10-31 Fabio Casati Dynamically defining workflow processes using generic nodes
JP4610240B2 (ja) 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
US8005943B2 (en) * 2005-10-12 2011-08-23 Computer Associates Think, Inc. Performance monitoring of network applications
US9060208B2 (en) * 2008-01-30 2015-06-16 Time Warner Cable Enterprises Llc Methods and apparatus for predictive delivery of content over a network
US20110268172A1 (en) * 2008-12-12 2011-11-03 Panasonic Corporation Receiver apparatus and receiving method
JP5471859B2 (ja) * 2010-06-10 2014-04-16 富士通株式会社 解析プログラム、解析方法、および解析装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997006494A1 (en) * 1995-08-10 1997-02-20 Advanced System Technologies, Inc. Response time measurement apparatus and method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677364B2 (en) 2010-01-29 2014-03-18 Fujitsu Limited Computer program, method, and apparatus for grouping tasks into series
JP2012083918A (ja) * 2010-10-08 2012-04-26 Fujitsu Ltd 情報処理プログラム、装置及び方法
JP2012128811A (ja) * 2010-12-17 2012-07-05 Fujitsu Ltd 管理装置、管理プログラム、および管理方法
US8930369B2 (en) 2011-03-14 2015-01-06 Fujitsu Limited Information processing apparatus, message classifying method and non-transitory medium for associating series of transactions
WO2013147226A1 (ja) * 2012-03-30 2013-10-03 日本電信電話株式会社 利用者体感品質推定装置、端末ボトルネック判定装置、類似操作抽出装置、及び方法、並びにプログラム
JPWO2013147226A1 (ja) * 2012-03-30 2015-12-14 日本電信電話株式会社 利用者体感品質推定装置、端末ボトルネック判定装置、類似操作抽出装置、及び方法、並びにプログラム
US9794149B2 (en) 2012-03-30 2017-10-17 Nippon Telegraph And Telephone Corporation User experienced quality estimation apparatus, terminal bottleneck determination apparatus, similar operation extraction apparatus, method and program
JP2014154888A (ja) * 2013-02-04 2014-08-25 Nippon Telegr & Teleph Corp <Ntt> 通信分類装置及び方法及びプログラム

Also Published As

Publication number Publication date
US20100153571A1 (en) 2010-06-17
JP5422989B2 (ja) 2014-02-19
US8732323B2 (en) 2014-05-20

Similar Documents

Publication Publication Date Title
US10698777B2 (en) High availability scheduler for scheduling map-reduce searches based on a leader state
US11636397B1 (en) Graphical user interface for concurrent forecasting of multiple time series
US11822640B1 (en) User credentials verification for search
US11061918B2 (en) Locating and categorizing data using inverted indexes
US11755390B1 (en) Using keep-alive markers to extend redelivery deadlines
US11880399B2 (en) Data categorization using inverted indexes
US9251221B1 (en) Assigning scores to objects based on search query results
US20190073409A1 (en) Search result replication management in a search head cluster
US10692007B2 (en) Behavioral rules discovery for intelligent computing environment administration
JP5422989B2 (ja) トランザクションモデル生成支援プログラム、トランザクションモデル生成支援装置、およびトランザクションモデル生成支援方法
US20170220672A1 (en) Enhancing time series prediction
JP5203733B2 (ja) コーディネータサーバ、データ割当方法及びプログラム
US11768776B1 (en) Evicting data associated with a data intake and query system from a local storage
US11106713B2 (en) Sampling data using inverted indexes in response to grouping selection
US11792157B1 (en) Detection of DNS beaconing through time-to-live and transmission analyses
JP5482243B2 (ja) 系列生成プログラム、系列生成方法、および系列生成装置
Stanoi et al. Whitewater: Distributed processing of fast streams
US11934869B1 (en) Enhancing efficiency of data collection using a discover process
US20240143612A1 (en) Generation of modified queries using a field value for different fields

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130614

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5422989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees