JP3945521B2 - Distributed processing system and performance monitoring method thereof - Google Patents
Distributed processing system and performance monitoring method thereof Download PDFInfo
- Publication number
- JP3945521B2 JP3945521B2 JP2005171794A JP2005171794A JP3945521B2 JP 3945521 B2 JP3945521 B2 JP 3945521B2 JP 2005171794 A JP2005171794 A JP 2005171794A JP 2005171794 A JP2005171794 A JP 2005171794A JP 3945521 B2 JP3945521 B2 JP 3945521B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- processing
- program
- call
- performance data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、複数の計算機上に複数のオブジェクが分散して配置される分散処理システムに係わり、特にその性能モニタリング方法に関する。 The present invention relates to a distributed processing system in which a plurality of objects are distributed and arranged on a plurality of computers, and more particularly to a performance monitoring method thereof.
一つの計算機上で複数のプロセスが協調して一つの処理を行う場合に関連する複数のプロセスの稼動状況を測定する装置として、例えば特開平7−295864号公報に示されているような計算機システムの稼動状況をプロセスごとに時系列データとして測定する装置がある。
これを製品化した例として、『日経バイト特別増刊号』1998.11−8、No.184 pp192−193にあるように一台の計算機で実行されるアプリケーションの性能上のボトルネックをモジュールレベル、関数レベル、ソースレベルで解析するプロファイラであるラショナルソフトウェア(Rational Software)社のビジュアル・クオンティファイ(Visual Quantify)などが知られている。
For example, a computer system as disclosed in Japanese Patent Application Laid-Open No. 7-295864 is an apparatus for measuring the operation status of a plurality of processes related to a case where a plurality of processes cooperate to perform one process on one computer. There is a device that measures the operational status of each as time-series data for each process.
As an example of commercializing this, “Nikkei Byte Special Special Issue” 1998.11-8, No. 184 pp192-193 Visual Quantifier of Rational Software, a profiler that analyzes performance bottlenecks of applications executed on one computer at the module level, function level, and source level (Visual Quantify) is known.
一方、複数の計算機からなる分散処理システムにおいて複数のプロセスが相互に協調して一つの処理を行うような場合、遠隔手続き呼び出しを意識しないで性能測定を行う方法として、例えば特開平5−274185号公報に示されるように、遠隔手続き呼び出し発行検出手段、遠隔手続き呼び出し終了検出手段、中央性能測定制御手段を持つことによってプロセスの対応づけを行う仕組みを実現した例がある。この方法は遠隔手続きをすべて中央性能測定制御装置に通知することによって、呼び出した側と呼び出された側の対応づけを行うものである。 On the other hand, in a distributed processing system composed of a plurality of computers, when a plurality of processes perform one process in cooperation with each other, as a method for measuring performance without being aware of remote procedure call, for example, Japanese Patent Laid-Open No. 5-274185 As disclosed in the official gazette, there is an example in which a mechanism for associating processes is realized by having a remote procedure call issuance detection unit, a remote procedure call end detection unit, and a central performance measurement control unit. In this method, all the remote procedures are notified to the central performance measurement control device, thereby associating the calling side with the called side.
今後、複数計算機に亘る処理の分散化が進み、複数の計算機を有し、これら複数の計算機上に分散して配置され実行されるプログラムであるオブジェクトと、これらオブジェクト間の通信機能を有する分散オブジェクトシステムが広く普及することが予想されている。 In the future, the distribution of processing across multiple computers will progress, and there will be a distributed object that has a plurality of computers, a program that is distributed and executed on these multiple computers, and a communication function between these objects. The system is expected to become widespread.
特開平7−295864号公報に開示されている技術を用いることによって、一台の計算機内の性能のボトルネック検出は可能である。しかしこれを分散オブジェクトシステムの各計算機に適用しただけでは、それぞれの計算機において採取した性能データの対応づけがないため、分散オブジェクトシステムの性能のボトルネックを検出することは困難である。 By using the technique disclosed in Japanese Patent Laid-Open No. 7-295864, it is possible to detect a bottleneck of the performance in one computer. However, simply applying this to each computer of the distributed object system makes it difficult to detect the performance bottleneck of the distributed object system because there is no correspondence between the performance data collected in each computer.
また特開平5−274185号公報に開示されている技術を用いることにより、分散オブジェクトシステムにおいて個々のオブジェクト間通信についてその送信オブジェクトと受信オブジェクトを対応づけることは可能である。しかしオブジェクト間通信を介して複数のオブジェクトの処理を経由した後に一つの処理が完結するような場合、関連するオブジェクト間通信を対応づける手段がないため、この一連の処理の流れを追跡することは困難である。 Further, by using the technique disclosed in Japanese Patent Application Laid-Open No. 5-274185, it is possible to associate the transmission object and the reception object for each inter-object communication in the distributed object system. However, if one process is completed after passing through the processing of multiple objects via inter-object communication, there is no means to correlate related inter-object communication. Have difficulty.
このように従来技術では各計算機、各オブジェクトのようにポイントの性能データは収集できるが、分散オブジェクトシステム全体を対象とした性能モニタリングはできないという問題点がある。 As described above, in the conventional technique, performance data of points can be collected like each computer and each object, but there is a problem that performance monitoring for the entire distributed object system cannot be performed.
本発明は、上記のような事情に鑑み為されたもので、その目的とするところは、分散処理システム全体を対象とした性能モニタリングを行う方法及びそのような分散処理システムを提供することにある。 The present invention has been made in view of the above circumstances, and an object thereof is to provide a method for performing performance monitoring for the entire distributed processing system and such a distributed processing system. .
また性能のボトルネックを絞り込める分散処理システムの性能モニタリング方法を提供することを目的とする。 Moreover, it aims at providing the performance monitoring method of the distributed processing system which can narrow down the bottleneck of performance.
本発明は、各計算機上に配置されるモニタリング手段によつて計測対象となるプログラム実体について他プログラム実体からのメッセージの受信時刻及び他プログラム実体へのメッセージの送信時刻の少なくとも一方を性能データとして収集し、各モニタリング手段によって収集された性能データを集約して処理フローを構成する各プログラム実体の処理時間及びプログラム実体間の通信時間を算出し、表示装置上に表示する分散処理システムの性能モニタリング方法を特徴とする。 The present invention collects, as performance data, at least one of a message reception time from another program entity and a message transmission time to another program entity for a program entity to be measured by a monitoring means arranged on each computer A performance monitoring method for a distributed processing system that aggregates the performance data collected by each monitoring means and calculates the processing time of each program entity constituting the processing flow and the communication time between the program entities and displays them on the display device It is characterized by.
また本発明は、(a)処理フローを構成する各オブジェクトの処理時間を計測し、(b)(a)で計測した処理時間があらかじめ定められた当該オブジェクトの処理時間の閾値を越えているとき、当該オブジェクトが配置される計算機で実行されるオブジェクト群について各オブジェクトが他のオブジェクトにリクエストを発行してから結果を得るまでの待ち時間を計測し、(c)(b)で計測した待ち時間があらかじめ定められた当該オブジェクトの待ち時間の閾値を越えているとき、当該オブジェクトの処理を先頭とする処理フローについて(a)を実行する分散オブジェクトシステムの性能モニタリング方法を特徴とする。 In the present invention, (a) the processing time of each object constituting the processing flow is measured, and (b) when the processing time measured in (a) exceeds a predetermined processing time threshold of the object. Measure the waiting time until each object obtains a result after issuing a request to another object for the object group executed on the computer where the object is arranged, and the waiting time measured in (c) and (b) Is characterized by a performance monitoring method for a distributed object system that executes (a) for a processing flow starting from the processing of the object when the threshold of the object exceeds a predetermined waiting time threshold.
本発明によれば、オブジェクト間通信を介して複数のオブジェクトの処理を経由した後に1つの処理が完結するような処理フローについて各オブジェクトの処理時間及びオブジェクト間の通信時間を取得できるので、分散処理システム全体を対象とした性能モニタリングを行うことができる。また処理フローを対象とする性能モニタリングと特定の計算機を対象とする性能モニタリングとを動的に切り替えることができるので、性能のボトルネックの解析を容易にするという効果がある。 According to the present invention, the processing time of each object and the communication time between objects can be acquired for a processing flow in which one process is completed after passing through the processing of a plurality of objects via inter-object communication. Performance monitoring for the entire system can be performed. In addition, since the performance monitoring for the processing flow and the performance monitoring for a specific computer can be dynamically switched, there is an effect of facilitating the analysis of the performance bottleneck.
以下に本発明の実施形態について図面を用いて詳細に説明する。 Embodiments of the present invention will be described below in detail with reference to the drawings.
(1)第1の実施形態
図1は、本実施形態の性能モニタリング方法を実現する計算機システムの構成図である。本計算機システムは、採取した性能に関するデータの処理と表示を行うプログラムであるマネージャ130を実行する計算機103と、性能モニタリングを行う対象であるオブジェクトを搭載する計算機101,102および計算機間を接続するLAN140から成る。本例ではモニタリングの対象となる計算機は2台であるが、その台数に制約はない。また各計算機はLAN140によって相互通信が可能であるが、通信を実現する手段もLANに限定されるわけではない。コレクタ131,132は、マネージャ130から指示を受け、必要に応じて性能データの採取、採取データのマネージャへの転送を行うプログラムである。121から126までは実際にモニタリングの対象となるプログラム実体であるオブジェクトである。マネージャはそれぞれのオブジェクトに対してオブジェクトIDと呼ばれる一意のIDを用いることによってこれを区別する。オブジェクトIDとして、例えば分散オブジェクト技術の標準の一つであるCORBAで用いられているオブジェクトリファレンスを用いる。CORBA技術に関しては、「"The Common Object Request Broker:A
rchitecture and Specification” OMG Document Revision 2.2, February 1998」に詳しい。
(1) 1st Embodiment FIG. 1: is a block diagram of the computer system which implement | achieves the performance monitoring method of this embodiment. The computer system includes a
For details, refer to "structure and specification" OMG Document Revision 2.2, February 1998.
なお各計算機101,102,103には図示しないが表示装置及び入力装置が接続される。特に計算機103の表示装置は、オブジェクトIDの一覧、オブジェクトからオブジェクトへ亘る一連の処理について各オブジェクトの処理時間及びオブジェクト間の通信時間等を表示する。また計算機103の入力装置は、モニタリングの対象とするオブジェクトを指定するなどのデータ入力や指令入力のために使用される。
Although not shown, a display device and an input device are connected to each
また図1ではマネージャ130は計算機101,102とは独立した計算機103上に配置されているが、マネージャ130を例えば計算機101のようにコレクタ131と同一の計算機101に配置しても本発明を実施できる。マネージャ130を独立した計算機103上に配置すると、マネージャ130が性能モニタリングに与える性能上の影響を除去することができる。
In FIG. 1, the
またマネージャ130及びコレクタ131,132をプログラムとして格納する記憶媒体を作成することが可能である。この記憶媒体上のプログラムを計算機101,102,103に接続される駆動装置から読み込むか、または他の計算機からネットワークを経由して計算機101,102,103へ伝送し、各々の計算機に配置されるプログラム部分であるコレクタ131,132又はマネージャ130をその計算機のメモリにロードしてその計算機によって実行することができる。
In addition, it is possible to create a storage medium that stores the
図2は、第1の実施形態のシステム全体の処理の概略手順を示す図である。この処理手順はマネージャ130の担当部分であるブロック201とコレクタ131,132の担当部分であるブロック202の2つのブロックから成る。
FIG. 2 is a diagram illustrating a schematic procedure of processing of the entire system according to the first embodiment. This processing procedure consists of two blocks: a
まずマネージャ130が実行するブロック201について説明する。マネージャ130は最初にステップ210においてオブジェクトの一覧を表示し、性能データを採取するオブジェクトの選択入力を受け付ける。次にステップ220において、ステップ210で入力された性能データを採取するオブジェクトのオブジェクトIDを全てのコレクタ131,132にブロードキャストによつて通知する。マネージャ130はステップ230において、コレクタ131,132から転送されてくる性能データの到着を待つ。性能データを受信すると、ステップ240で各コレクタから送信される断片的な性能データの対応づけを行う。ここで対応づけとは、同一処理シーケンスに属する性能データをグループにまとめ、かつ時系列に従って配列することである。対応づけられた性能データをステップ250において表示する。表示後、ステップ255において終了条件の判定を行う
。本実施形態では任意の動作時間をあらかじめ設定しておき、ステップ255では設定された時間を超えていないかをチェックする。超えていれば処理を終了するが、超えていなければステップ230に戻る。このようにステップ230、240および250の処理は、マネージャ130が最初にコレクタ131,132から性能データを受け取ってからあらかじめ設定された一定時間、繰り返し行われる。
First, the
続いてコレクタ131,132が実行するブロック202について説明する。コレクタ131,132はステップ270において、マネージャ130によってブロードキャストされた少なくとも1つのオブジェクトIDからなるデータを受信する。コレクタ131,132は、そのコレクタが実行されている計算機101,102内に受信したオブジェクトIDと同じオブジェクトIDを持つオブジェクトがあれば、そのオブジェクトの監視を開始する。以下このオブジェクトを計測対象オブジェクトと呼ぶ。コレクタ131,132はステップ280で計測対象オブジェクトに処理が発生すると、性能に係わるデータを採取し、採取したデータをステップ290においてマネージャに送信する。性能データ送信後、ステップ295において終了条件の判定を行う。本実施形態ではステップ255の動作時間と同じ動作時間をあらかじめ設定しておき、ステップ295で設定された時間を超えていないかをチェックする。超えていれば処理を終了するが、超えていなければステップ280に戻る。このようにステップ280および290の処理は、コレクタ131,132がマネージャ130からオブジェクトIDのデータを受け取ってからあらかじめ設定された一定時間、繰り返し行われる。
Next, the
図3は、計算機103の表示装置上に表示される計測対象オブジェクト選択画面301の例を示す図である。オブジェクト一覧ウィンドウ302上には性能データを取得する対象候補としてオブジェクトのIDが複数個表示され、その中から計測対象とする1個又は1個以上のオブジェクトを選択可能である。同時に複数のオブジェクトが選択される場合には、選択される複数のオブジェクトは通常オブジェクト間通信によつて関連づけられるオブジェクトのグループである。計測開始ボタン303は、計測対象オブジェクトの選択後にマネージャ130に計測開始を指示するためボタンである。計測開始ボタン303が押下されると、ステップ220で、マネージャ130は各コレクタ131,132に対し選択されたオブジェクトIDのブロードキャストを行う。
FIG. 3 is a diagram illustrating an example of the measurement target object selection screen 301 displayed on the display device of the
この例は、オブジェクト一覧ウィンドウ302にはコレクタ131および132が計測対象とするオブジェクトのオブジェクトID、20001,20002,20003,20004,20005および20006が表示され、このうち20001,20004および20005が選択されていることを示している。
In this example, the object list window 302 displays object
図4は、コレクタ131,132が各々計算機101,102のメモリ上に作成する採取データリスト501のデータ構成を示す図である。採取データリスト501は、オブジェクトID502、受信側オブジェクトID503、受信側メッセージID504、受信時刻505、送信側オブジェクトID506、送信側メッセージID507および送信時刻508の各フィールドから成る。採取データリスト501は、計測対象オブジェクトが他のオブジェクトからメッセージを受信するか、他のオブジェクトにメッセージを送信するか、またはメッセージ受信に続いてメッセージ送信をするごとに1つ生成される。オブジェクトID502は計測対象オブジェクトのIDである。受信側オブジェクトID503は計測対象オブジェクトがメッセージ受信したときの相手オブジェクトのIDである。受信側メッセージID504は、その受信メッセージに付加されているメッセージIDを格納する。受信時刻505はメッセージ受信時刻を格納する。送信側オブジェクトID506は、計測対象オブジェクトがメッセージ送信したときの相手オブジェクトのIDである。送信側メッセージID507は、その送信メッセージに付加されるメッセージIDである。送信時刻508はメッセージ送信時刻を格納する。なお利用者からのデータ入力等のイベントが発生して処理を開始するオブジェクトID502については、受信側オブジェクトID503および受信側メッセージID504の格納はなく、受信時刻505に処理開始時刻が格納される。また他のオブジェクトへのメッセージ送信の代わりにその計測対象オブジェクトをもって処理を終了するオブジェクトID502については、送信側オブジェクトID506および送信側メッセージID507の格納はなく、送信時刻508に処理終了時刻が格納される。ここでメッセージIDとして、例えば分散オブジェクト技術の標準の一つであるCORBAにおいて内部的に用いられているメッセージIDを使用することができる。
FIG. 4 is a diagram showing the data structure of the collection data list 501 created by the
計測対象オブジェクトは、データ入力等のイベントが発生し、処理開始する時点でその計算機に設けられるコレクタへその計測対象オブジェクトのID及び処理開始時刻を通知する。また計測対象オブジェクトは、他のオブジェクトにメッセージを送信する時点でそのコレクタへその計測対象オブジェクトのID、相手オブジェクトのID、送信するメッセージID及びメッセージ送信時刻を通知する。また他のオブジェクトからメッセージを受信した時点でそのコレクタへ計測対象オブジェクトのID、相手オブジェクトのID、受信したメッセージID、メッセージ受信時刻、および引き続きメッセージ送信が発生するか否かを示すフラグを通知する。また一連の処理を終了する時点で計測対象オブジェクトのID及び処理終了時刻をコレクタに通知する。コレクタは、マネージャ130から計測対象オブジェクトの通知を受けた後、計測対象オブジェクトに指令を送付してオブジェクトの時刻などの通知を開始させる。
The measurement target object notifies the collector of the measurement target object ID and processing start time to the collector provided in the computer when an event such as data input occurs and processing is started. The measurement target object notifies the collector of the ID of the measurement target object, the ID of the counterpart object, the message ID to be transmitted, and the message transmission time at the time of transmitting a message to another object. When a message is received from another object, the collector is notified of the ID of the object to be measured, the ID of the partner object, the received message ID, the message reception time, and a flag indicating whether or not message transmission will continue to occur. . Further, the ID of the measurement target object and the processing end time are notified to the collector when the series of processing ends. After receiving the measurement target object notification from the
図5は、性能データを採取するコレクタ131,132の処理の流れを示すフローチャートである。コレクタ131,132は、計測対象オブジェクトから通知を受けると、メモリ上に採取データリスト501の領域を確保し(ステップ420)、確保した採取データリスト501領域のオブジェクトID502に通知を受けた計測対象オブジェクトのオブジェクトIDを格納し、他の各フィールドを−1によって初期化する(ステップ430)。次に発生した通信の種類をチェックする(ステップ440)。計測対象オブジェクトから処理開始通知とメッセージ送信通知を受けたときには(ステップ440送信)、採取データリスト501の受信時刻505に処理開始時刻を格納し、メッセージ送信通知の情報に基づいて採取データリスト501の送信側オブジェクトID506、送信側メッセージID507及び送信時刻508を格納し(ステップ445)、採取データリスト501が完成する。
FIG. 5 is a flowchart showing a processing flow of the
計測対象オブジェクトからメッセージ受信通知を受けたときには(ステップ440受信)、メッセージ受信通知の情報に基づいて採取データリスト501の受信側オブジェクトID503、受信側メッセージID504及び受信時刻505を格納する(ステップ450)。次に計測対象オブジェクトから受け取ったフラグによって引き続き送信が発生するか否かを判定する(ステップ455)。引き続き送信が発生する場合には(ステップ455Yes)、同一計測対象オブジェクトからのメッセージ送信通知を待ち、メッセージ送信通知を受け取ったとき採取データリスト501の送信側オブジェクトID506、送信側メッセージID507及び送信時刻508を格納し(ステップ460)、採取データリスト501が完成する。引き続き送信が発生しない場合には(ステップ455No)、同一計測対象オブジェクトからの処理終了通知を待ち、処理終了通知を受け取ったとき採取データリスト501の送信時刻508に処理終了時刻を格納し(ステップ465)、採取データリスト501が完成する。
When a message reception notification is received from the measurement target object (step 440 reception), the reception
なお同一のオブジェクトについて処理開始時刻からメッセージ送信時刻までの処理時間又はメッセージ受信時刻から処理終了時刻までの処理時間を性能モニタリング上無視できる場合には、処理開始時刻又は処理終了時刻の採取を省略してもよい。処理終了時刻を無視する場合には、ステップ465の処理はない。
If the processing time from the processing start time to the message transmission time or the processing time from the message reception time to the processing end time can be ignored for performance monitoring for the same object, the collection of the processing start time or the processing end time is omitted. May be. When ignoring the processing end time, there is no processing in
図6は、マネージャ130が計算機103のメモリ上に作成するリクエストフローテーブル701のデータ構成を示す図である。リクエストフローテーブル701は、通信によつて関連づけられる計測対象オブジェクトのグループについてマネージャ130に到着した採取データリスト501を処理が行われた順に従って時系列に配列されるようにソートしたものである。リクエストフローテーブル701の各行は採取データリスト501そのものであり、オブジェクトID702、受信側オブジェクトID703、受信側メッセージID704、受信時刻705、送信側オブジェクトID706、送信側メッセージID707及び送信時刻708の各フィールドの内容は、各々オブジェクトID502、受信側オブジェクトID503、受信側メッセージID504、受信時刻505、送信側オブジェクトID506、送信側メッセージID507及び送信時刻508と同じである。リクエストフローテーブル701の各行について送信時刻708と受信時刻705との差がその計測対象オブジェクトの処理時間(同一計算機内の待ち時間を含む処理の経過時間)である。またある行の送信側オブジェクトID706に格納されるオブジェクトIDが次の行のオブジェクトID702であり、次の行の受信側オブジェクトID703に格納されるオブジェクトIDがある行のオブジェクトID702であり、送信側のメッセージIDと受信側のメッセージIDが一致する場合、同一トランザクションについての処理の流れの中で両方の計測対象オブジェクト間に通信が行われたことを示し、ある行の送信時刻708と次の行の受信時刻705との差が両オブジェクト間の通信時間である。リクエストフローテーブル701は一連の処理の流れごとに各々作成される。
FIG. 6 is a diagram showing a data configuration of the request flow table 701 created by the
図7は、計算機103の表示装置上に表示される計測結果表示画面810の例を示す図である。計測結果表示画面810は、リクエストフローテーブル701を図式化した処理フロー820を表示する。処理フロー820は処理が行われたオブジェクトのオブジェクトID801を処理が行われた順に従って時系列に配列し、オブジェクトID801の前後を線分804によって結んだものである。処理フロー820は、オブジェクトID801、その処理時間を示す802、オブジェクト間の通信時間を示す803の組、および各オブジェクトを結び付ける線分804から構成される。各オブジェクトID801はリクエストフローテーブル701の各オブジェクトID702に相当する。
FIG. 7 is a diagram illustrating an example of a measurement
図8は、リクエストフローテーブル701を作成し表示するマネージャ130の処理の流れを示すフローチャートである。マネージャ130はコレクタ131,132から採取データリスト501が到着するのを待つ(ステップ610)。
採取データリスト501が到着すると(ステップ610Yes)、その受信側オブジェクトID503をチェックし、このIDが選択された計測対象オブジェクトのIDのいずれかと一致しているか否かを判定する(ステップ620)。一致していない場合(ステップ620No)、計算機103のメモリ上に新規にリクエストフローテーブル701の領域を確保し、到着した採取データリスト501をその先頭の要素とする(ステップ635)。なおこの完成していないリクエストフローテーブル701を以降、作成中リクエストフローテーブルと呼ぶ。作成中リクエストフローテーブルは、図8に示された処理が行われている間、複数作成され得る。
FIG. 8 is a flowchart showing a processing flow of the
When the collection data list 501 arrives (step 610 Yes), the receiving
一致している場合(ステップ620Yes)、作成中リクエストフローテーブルを探索し、その中にテーブルの最後尾を構成する採取データリストの送信側メッセージIDと、今取得した採取データリストの受信メッセージIDが一致しているテーブルがあるかどうかをチェックする(ステップ645)。チェックの結果、一致するものがあれば(ステップ645Yes)、当該作成中リクエストフ
ローテーブルの最後尾に今取得した採取データリストを付加する(ステップ647)。また一致するものがなければ(ステップ645No)、採取データリストをメモリ上の一時保存領域である採取データリストバッファに保存し(ステップ649)、ステップ610に戻って新たな採取データリストの到着を待つ。
If they match (Yes in step 620), the request flow table being created is searched, and the transmission side message ID of the collection data list constituting the tail of the table and the received message ID of the collection data list just acquired are It is checked whether there is a matching table (step 645). If there is a match as a result of the check (step 645 Yes), the acquired data list just acquired is added to the end of the request flow table being created (step 647). If there is no match (No in step 645), the collection data list is stored in the collection data list buffer, which is a temporary storage area on the memory (step 649), and the process returns to step 610 to wait for the arrival of a new collection data list. .
ステップ635、ステップ647に続くステップ650において、作成中リクエストフローテーブルの最後尾に付加された採取データリストの送信側オブジェクトID706をチェックする(ステップ650)。これが選択された計測対象オブジェクトのIDでなければ(ステップ650No)、このリクエストフローテーブルはこれで完結するので、このリクエストフローテーブルの表示を行う(
ステップ652)。表示後、あらかじめ設定された時間を超えていないかをチェックする(ステップ654)。超えていなければ(ステップ654Yes)、ステップ610に戻って新たな採取データリストの到着を待つ。超えていれば(ステップ654No)、マネージャ130の処理を終了する。
In
Step 652). After the display, it is checked whether or not a preset time has been exceeded (step 654). If not exceeded (Yes in step 654), the process returns to step 610 to wait for the arrival of a new collection data list. If it exceeds (No in Step 654), the process of the
ステップ650のチェックの結果、送信側オブジェクトが選択された計測対象オブジェクトのIDであった場合には(ステップ650Yes)、送信側メッセージID707と同じ受信側メッセージIDを持つ採取データリストを採取データリストバッファから探索する(ステップ655)。採取データリストが見つかれば(ステップ655有)、この採取データリストをステップ635又は647で対象とした作成中リクエストフローテーブルの最後尾に付加し、その後ステップ650に戻る。採取データリストがなければ(ステップ655無し)、ステップ610に戻り新たな採取データリストの到着を待つ。
If the result of the check in
図8に示すマネージャ130の処理手順によれば、複数のトランザクションに属する採取データリスト501が混在してマネージャ130に到着したり、各オブジェクトの処理のシーケンスと採取データリスト501到着のシーケンスとが異なっても、各トランザクションごとにリクエストフローテーブル701が作成され、リクエストフローテーブル701を構成する採取データリストは処理のシーケンスに従って時系列に配列される。リクエストフローテーブルに格納すべき時点より早く到着した採取データリストはステップ649で採取データリストバッファに保存され、格納すべき時点になったときステップ665で同テーブルに格納される。
According to the processing procedure of the
第1の実施形態ではあらかじめ一定の動作時間を定めておき、この時間だけマネージャ130とコレクタ131,132の性能データ収集処理を繰り返し行うが、マネージャ130にユーザからの終了指示を受け付ける機能を付与することにより任意の時間、処理を行うことが可能になる。この処理を行うために必要な図2に示したフローチャートについての変更点は以下の通りである。マネージャ130の変更点は、終了判定ステップ255を「ユーザからの終了指示があるか?」とすることと、終了指示があれば終了前にコレクタに終了指示を送信することの2点である。コレクタ131,132の変更点は、ステップ295を「マネージャからの終了指示があるか?」とすることである。
In the first embodiment, a certain operation time is set in advance, and the performance data collection processing of the
以上説明した第1の実施形態によれば、選択された計測対象オブジェクトに係わる処理時間を採取することが可能である。さらに選択された複数の計測対象オブジェクトに亘って処理が行われる場合、これらの処理を一つの処理フロー820として表示し、各オブジェクトについての処理時間とオブジェクト間の通信時間を表示することが可能である。
According to the first embodiment described above, the processing time related to the selected measurement target object can be collected. Furthermore, when processing is performed over a plurality of selected measurement target objects, these processing can be displayed as one
(2)第2の実施形態
第1の実施形態では、処理フローを取得したい場合に、ユーザはその処理フローに関与するすべてのオブジェクトを計測対象として指定しなければならないという面倒がある。第2の実施形態では、ユーザはオブジェクトを1つ指定することによってそのオブジェクトが行う処理から後の一連の処理について処理フローを得ることができる。この機能を実現するためにコレクタ131,132がリクエストフローテーブルを作成する。すなわちオブジェクト間を移動するメッセージにリクエストフローテーブルを付加し、各オブジェクトで処理が行われるごとにリクエストフローテーブルに採取データリストを追加する。以下に図1で示される分散オブジェクト環境について第2の実施形態の構成及び動作を説明する。
(2) Second Embodiment In the first embodiment, when a user wants to acquire a processing flow, there is a hassle that the user must designate all objects involved in the processing flow as measurement targets. In the second embodiment, the user can obtain a processing flow for a series of processing after the processing performed by the object by designating one object. In order to realize this function, the
図9は、第2の実施形態のシステム全体の処理の概略手順を示すフロー図である。この処理手順はマネージャ130の担当部分であるブロック901とコレクタ131,132の担当部分であるブロック902の2つのブロックから成る。
FIG. 9 is a flowchart illustrating a schematic procedure of processing of the entire system according to the second embodiment. This processing procedure consists of two blocks: a
まずマネージャ130が実行するブロック901について説明する。マネージャ130は最初にステップ910において処理フローの最初に処理を行うオブジェクトの選択入力を受け付ける。この入力方法は第1の実施形態で説明した方法と同じである。ただし指定するオブジェクトの数は1つに限定される。次にステップ920において、ステップ910で入力された性能データを採取するオブジェクトのオブジェクトIDを全てのコレクタ131,132にブロードキャストによつて通知する。マネージャ130はステップ930において、コレクタ131,132から転送されてくるデータの到着を待つ。性能データを受信すると、ステップ950で処理フローの表示を行う。表示後、ステップ955において終了条件の判定を行う。本実施形態では任意の動作時間をあらかじめ設定しておき、ステップ955では設定された時間を超えていないかをチェックする。超えていれば処理を終了するが、超えていなければステップ930に戻る。このようにステップ930および950の処理は、マネージャ130が最初にコレクタ131,132より性能データを受け取ってからあらかじめ設定された一定時間、繰り返し行われる。
First, the
続いてコレクタ131,132が実行するブロック902について説明する。コレクタ131,132はステップ970において、マネージャ130によってブロードキャストされたオブジェクトIDを受信する。コレクタ131,132は、そのコレクタが実行されている計算機101,102内で実行されているオブジェクトの監視を開始する。コレクタ131,132はステップ980でオブジェクトに処理が発生すると、処理開始時刻又はメッセージ受信時刻、メッセージ送信時刻又は処理終了時刻を必要に応じて採取し、採取したデータによって処理フローデータを作成する。次にステップ990で作成した処理フローデータをマネージャに送信する。性能データ送信後、ステップ995において終了条件の判定を行う。本実施形態ではステップ995の動作時間と同じ動作時間をあらかじめ設定しておき、ステップ995で設定された時間を超えていないかをチェックする。超えていれば処理を終了するが、超えていなければステップ980に戻る。このようにステップ980および990の処理は、コレクタ131,132がマネージャ130からオブジェクトIDのデータを受け取ってからあらかじめ設定された一定時間、繰り返し行われる。
Next, the block 902 executed by the
図10は、第2の実施形態で用いる採取データリスト1101のデータ構成を示す図である。採取データリスト1101はオブジェクトID1110、受信時刻1120及び送信時刻1130の各フィールドから構成される。オブジェクトID1110はユーザによって指定されたオブジェクト又は処理フローを構成するいずれかのオブジェクトのIDである。受信時刻1120はそのオブジェクトについて処理開始時刻又はメッセージ受信時刻である。送信時刻1130はそのオブジェクトについてメッセージ送信時刻又は処理終了時刻である。
FIG. 10 is a diagram illustrating a data configuration of the collection data list 1101 used in the second embodiment. The collection data list 1101 includes fields of an
図11は、第2の実施形態で用いるリクエストフローテーブル1201のデータ構成を示す図である。リクエストフローテーブル1201は採取データリスト1101を処理が行われた順に従って時系列に配列したテーブルである。リクエストフローテーブル1201は各処理フローについて1つ作成される。 FIG. 11 is a diagram illustrating a data configuration of the request flow table 1201 used in the second embodiment. The request flow table 1201 is a table in which the collection data list 1101 is arranged in time series according to the order in which processing is performed. One request flow table 1201 is created for each processing flow.
各オブジェクトは、データ入力等のイベントが発生し、処理開始する時点でその計算機に設けられるコレクタへそのオブジェクトのID及び処理開始時刻を通知する。また各オブジェクトは、他のオブジェクトにメッセージ送信する時点でそのコレクタへそのオブジェクトのID及びメッセージ送信の発生した時刻を通知する。コレクタからリクエストフローテーブル1201を受け取り、他のオブジェクトへのメッセージに受け取ったリクエストフローテーブル1201を付加して送信する。また他のオブジェクトからメッセージ又はメッセージとリクエストフローテーブル1201を受信した時点でそのコレクタへそのオブジェクトのID、リクエストフローテーブル1201を受けていればリクエストフローテーブル1201、メッセージ受信時刻、および引き続きメッセージ送信が発生するか否かを示すフラグを通知する。また一連の処理を終了する時点でそのオブジェクトのID及び処理終了時刻をコレクタに通知する。 Each object notifies the ID of the object and the process start time to the collector provided in the computer when an event such as data input occurs and the process starts. Each object notifies the collector of the ID of the object and the time when the message transmission occurred at the time of message transmission to the other object. The request flow table 1201 is received from the collector, and the received request flow table 1201 is added to a message to another object and transmitted. When a message or message and request flow table 1201 are received from another object, the collector receives the ID of the object, the request flow table 1201 if the request flow table 1201 has been received, and message transmission continues. A flag indicating whether or not to perform is notified. In addition, when the series of processing ends, the collector notifies the collector of the object ID and processing end time.
コレクタ131,132は、ステップ910の処理、すなわちユーザからオブジェクト選択の入力を受け付ける処理では、第1の実施形態と同様に計測対象オブジェクト選択画面301を表示し、オブジェクトIDの入力を受ける。ただし第2の実施形態では、オブジェクト一覧ウィンドウ302に表示されるオブジェクトIDのうちの1つのみが選択可能である。オブジェクトIDが選択された後、計測開始ボタン303が押下されると、マネージャ130は各コレクタ131,132に対して選択されたオブジェクトIDのブロードキャストを行う。
In the process of
図12は、性能データを採取し、リクエストフローテーブル1201を作成するコレクタ131,132の処理の流れを示すフローチャートである。まずコレクタ131,132はあらかじめ設定された時間を超えていないかをチェックする(ステップ1005)。超えていればコレクタ131,132の処理を終了する。超えていなければ、その計算機で実行されているすべてのオブジェクトについて通信の発生を待つ(ステップ1010)。
FIG. 12 is a flowchart showing the processing flow of the
いずれかのオブジェクトからメッセージ送信通知又は処理開始通知とメッセージ送信通知を受けたときには(ステップ1020YES)、送信を行うオブジェクトが選択された(指定された)オブジェクトか否かチェックする(ステップ1030)。指定されたオブジェクトでなければ(ステップ1030NO)、性能データを採取する必要がないため、ステップ1005に戻る。指定されたオブジェクトであれば、メモリ上にリクエストフローテーブル1201用の領域を確保する(ステップ1032)。次にメモリ上に採取データリスト1101の領域を確保し(ステップ1034)、このリストにオブジェクトID1110、受信時刻1120及び送信時刻1130を格納する(ステップ1036)。オブジェクトID1110には当該オブジェクトのオブジェクトID、受信時刻1120には処理開始時刻、送信時刻1130には送信の発生した時刻を格納する。次に作成した採取データリスト1101をリクエストフローテーブル1201の最後端に追加し、当該オブジェクトへ送信する(ステップ1040)。
When a message transmission notification or a process start notification and a message transmission notification are received from any object (
一方オブジェクトからメッセージ受信通知を受けたときには(ステップ1020NO)、その通知にリクエストフローテーブル1201が付加されているか否かをチェックする(ステップ1050)。リクエストフローテーブル1201が付加されていなければ(ステップ1050NO)、そのオブジェクトが指定されたオブジェクトか否かをチェックする(ステップ1060)。指定されたオブジェクトでなければ(ステップ1060NO)、性能データを採取する必要がないため、ステップ1005に戻る。指定されたオブジェクトであれば、メモリ上にリクエストフローテーブル1201用の領域を確保し(ステップ1062)、ステップ1070へ行く。
On the other hand, when a message reception notification is received from the object (NO in step 1020), it is checked whether the request flow table 1201 is added to the notification (step 1050). If the request flow table 1201 is not added (
メッセージ受信通知にリクエストフローテーブル1201が付加されていたとき(ステップ1050YES)、メモリ上に採取データリスト1101の領域を確保し(ステップ1070)、このリストにオブジェクトID1110及び受信時刻1120を格納する(ステップ1072)。オブジェクトID1110には当該オブジェクトのオブジェクトID、受信時刻1120にはメッセージ受信時刻を格納する。
When the request flow table 1201 is added to the message reception notification (YES in step 1050), an area of the collection data list 1101 is secured on the memory (step 1070), and the
次に当該オブジェクトから受け取ったフラグによって引き続き送信が発生するか否か判定する(ステップ1080)。引き続き送信が発生する場合には(ステップ1080YES)、同一オブジェクトからのメッセージ送信通知を待ち、メッセージ送信通知を受けたとき作成中の採取データリスト1101の送信時刻1130に送信の発生した時刻を格納する(ステップ1082)。次に作成した採
取データリスト1101をすでに当該オブジェクトから受け取っているか又は新規に生成したリクエストフローテーブル1201の最後端に追加し、当該オブジェクトへ送信する(ステップ1084)。
Next, it is determined whether or not the transmission continues with the flag received from the object (step 1080). If transmission continues (YES in step 1080), the message transmission notification from the same object is waited, and when the message transmission notification is received, the transmission time is stored in the
引き続き送信が発生しない場合には(ステップ1080NO)、同一オブジェクトからの処理終了通知を待ち、処理終了通知を受けたとき作成中の採取データリスト1101の送信時刻1130に処理終了時刻を格納する(ステップ1085)。次に作成した採取データリスト1101をすでに当該オブジェクトから受け取っているか又は新規に生成したリクエストフローテーブル1201の最後端に追加し(ステップ1086)、完成したリクエストフローテーブル1201をマネージャ130に送信し(ステップ1088)、ステップ1005に戻る。
If the transmission does not continue (NO in step 1080), the processing end notification from the same object is awaited, and when the processing end notification is received, the processing end time is stored in the
次にステップ950が行う処理フローの表示について説明する。ここでは第1の実施形態と同様に処理フロー820を計測結果表示画面810に表示する。オブジェクトID801はリクエストフローテーブル1201の各行を構成する採取データリスト1101のオブジェクトID1110そのものであり、オブジェクト実行の処理時間802はリクエストフローテーブル1201の各行を構成する採取データリスト1101の受信時刻1120と送信時刻1130の差を取ることによって求め、通信時間803はリクエストフローテーブル1201を構成する2つの連続した採取データリスト1101の送信時刻と受信時刻の差を取ることによって求める。
Next, processing flow display performed in
以上説明した第2の実施形態によれば、ユーザはオブジェクトを1つ指定することによって、そのオブジェクトの処理から後の処理フローを得ることが可能となる。これにより例えばあるクライアントオブジェクトがどのサーバオブジェクトにアクセスするかわからなくても、そのクライアントオブジェクトを指定するだけでそのクライアントからの要求によって始まる一連の処理の処理フローを得ることが可能となる。また第1の実施形態のように特定のオブジェクトによって処理された処理フローを抽出することも可能である。 According to the second embodiment described above, the user can obtain a subsequent processing flow from the processing of the object by designating one object. Thus, for example, even if it is not known which server object a certain client object accesses, it is possible to obtain a processing flow of a series of processes starting from a request from the client only by specifying the client object. It is also possible to extract a processing flow processed by a specific object as in the first embodiment.
(3)第3の実施形態
第1および第2の実施形態では、計測対象オブジェクト又は処理フローの先頭の処理を行うオブジェクトの入力を受け付け、指定されたオブジェクトに係わる処理フロー又は指定されたオブジェクトを処理の先頭とする処理フローを取得した。第3の実施形態では対象計算機の入力を受け付け、対象計算機が入力されると指定された計算機内で実行される全オブジェクトのポイントデータの取得を可能とする。また第2の実施形態の性能データの収集処理とポイントデータの収集処理を状況に応じて自動的に切り替える機能を提供する。
(3) Third Embodiment In the first and second embodiments, an input of an object to be measured or an object to be processed at the head of the processing flow is received, and a processing flow or a specified object related to the specified object is received. Acquired the processing flow at the beginning of the process. In the third embodiment, the input of the target computer is accepted, and when the target computer is input, the point data of all objects executed in the designated computer can be acquired. In addition, a function of automatically switching between the performance data collection process and the point data collection process of the second embodiment according to the situation is provided.
図13は、計算機103の表示装置上に表示されるデータ収集対象の選択画面1410の例を示す図である。選択画面1410はフローデータ選択ボタン1420及びポイントデータ選択ボタン1430を表示する。フローデータ選択ボタン1420は、収集対象としてフローデータを選択するとき押下されるボタンである。フローデータとは、第1の実施形態で説明したように、一連の処理が複数のオブジェクトに亘って行われるときに処理の流れを構成する各オブジェクトの処理の時間及びオブジェクト間の通信の時間を集めたものである。ポイントデータ選択ボタン1430は、収集対象としてポイントデータを選択するとき押下されるボタンである。ポイントデータとは、ある計算機に着目し、その計算機で実行されるすべてのオブジェクトの処理の時間を集めたものである。
FIG. 13 is a diagram showing an example of a data collection
図14は、計算機103の表示装置上に表示される計測対象計算機選択画面1510の例を示す図である。計測対象計算機選択画面1510は、計算機一覧ウィンドウ1520および計測開始ボタン1530を表示する。計算機一覧ウィンドウ1520は、LAN140上に接続されているすべての計算機の一覧を表示する。計測開始ボタン1530は、計算機が指定された後、計測の開始を指示するためのボタンである。
FIG. 14 is a diagram illustrating an example of a measurement target computer selection screen 1510 displayed on the display device of the
図15は、計算機103のメモリ上に設定される閾値テーブル1610のデータ構成を示す図である。「オブジェクトID」は各オブジェクトのID、「処理時間」はそのオブジェクト内の処理に要する時間の上限である。「処理時間」はその処理を実行する計算機で発生する待ち時間も含む処理経過時間である。「待ち時間」はそのオブジェクトが他の計算機のオブジェクトに処理を依頼してから結果を受け取るまでの待ち時間である。
FIG. 15 is a diagram showing a data structure of the threshold table 1610 set on the memory of the
図16は、計算機103の表示装置上に表示されるポイントデータの収集結果表示画面の例を示す図である。画面上には指定された計測対象計算機の識別子と、その計算機で実行されたオブジェクトのID及び処理時間を表示する。アイドルはすぐ上のオブジェクトが他の計算機のオブジェクトに処理を依頼したために生じた待ち時間である。
FIG. 16 is a diagram showing an example of a point data collection result display screen displayed on the display device of the
図17は、第3の実施形態に関するマネージャ130の処理の流れを示すフローチャートである。フローチャートは大きく3つのブロック、すなわちデータの収集・表示対象の初期設定を行うブロック1301、フローデータの収集・表示を行うブロック1302、およびポイントデータの収集・表示を行うブロック1303から構成される。
FIG. 17 is a flowchart illustrating a processing flow of the
マネージャ130はまず選択画面1410を表示し、入力情報からデータ収集の対象がフローデータかポイントデータかを判定する(ステップ1305)。フローデータが選択された場合には、計測対象オブジェクト選択画面301を表示し、処理フローの最初に位置する対象オブジェクトの指定を受け付ける(ステップ1307)。そして計測開始ボタン303が押下されると、ステップ1310へ進む。一方ポイントデータが選択された場合には、計測対象計算機選択画面1510を表示し、計測対象計算機の指定を受け付ける(ステップ1309)。そして計算機が指定され、計測開始ボタン1530が押下されると、ステップ1360へ進む。
The
フローデータの収集・表示の場合、まず各コレクタに対して指定されたオブジェクトのIDを通知してデータの計測を指示する(ステップ1310)。次に各コレクタからリクエストフローテーブル1201を受け取り(ステップ1320)、収集したデータを編集して処理フローを表示する(ステップ1330)。以上のステップ1310〜1330の処理は、第2の実施形態のマネージャ130及びコレクタ131,132の処理と同じである。
In the case of flow data collection / display, first, the ID of the designated object is notified to each collector to instruct data measurement (step 1310). Next, the request flow table 1201 is received from each collector (step 1320), and the collected data is edited to display the processing flow (step 1330). The processes in
さらにメモリ上の閾値テーブル1610を参照して計測対象を切り替える必要があるか否かを判定する(ステップ1340)。マネージャ130は、処理フロ
ーを構成する各オブジェクトについて計測された計算機内処理の待ち時間を含む処理時間と閾値テーブル1610上の対応するオブジェクトの処理時間とを比較する。そして処理時間の閾値を上回る計測時間をもつオブジェクトがなければ(ステップ1340NO)、切り替え不要と判断し、ステップ1310へ戻り、同一処理フローを構成するオブジェクトについてフローデータの収集・表示処理を継続する。一方、閾値を上回る計測時間をもつオブジェクトが存在する場合には(ステップ1340YES)、切り替えが必要と判断して該当するオブジェクトを1つ選択し、そのオブジェクトが実行された計算機を計測対象として設定する(ステップ1350)。マネージャ130は、そのオブジェクトのIDを指定して各コレクタ131,132に問い合わせ、そのオブジェクトを監視するコレクタが実行された計算機の識別子の回答を得る。そしてステップ1360へ進み、ポイントデータの収集・表示処理に切り替える。
Further, it is determined whether or not it is necessary to switch the measurement target with reference to the threshold table 1610 on the memory (step 1340). The
ポイントデータの収集・表示の場合、まずマネージャ130は指定された計算機に対応するコレクタに対して当該計算機で実行されるすべてのオブジェクトの処理についてデータの計測を指示する(ステップ1360)。指示を受けたコレクタは、計測対象とするオブジェクトから処理開始時刻、メッセージ受信時刻、メッセージ送信時刻および処理終了時刻の通知を受け取る。そして対象オブジェクトについて、採取データリスト501を作成し、各処理フローごとに時系列に採取データリスト501を配列してリクエストフローテーブルを作成する。次にこのリクエストフローテーブルから各対象オブジェクトの処理時間及び待ち時間を算出する。処理時間は処理開始時刻とメッセージ送信時刻との差、メッセージ受信時刻とメッセージ送信時刻との差、またはメッセージ受信時刻と処理終了時刻との差である。待ち時間は他の計算機のオブジェクトへのメッセージの送信時刻と他の計算機の同一オブジェクトからのメッセージの受信時刻との差である。次にコレクタは各対象オブジェクトの処理時間及び待ち時間をマネージャ130に送信する。なおコレクタは、データ計測の指示を受けてからあらかじめ決められた時間が経過するまでの間のデータを計測し、これらのデータをまとめてマネージャ130に送信する。マネージャ130はコレクタから計測データを受け取り(ステップ1370)、収集したポイントデータを表示する(ステップ1380)。
In the case of collecting / displaying point data, the
次にメモリ上の閾値テーブル1610を参照して計測対象を切り替える必要があるか否かを判定する(ステップ1390)。マネージャ130は、計測対象オブジェクトの各々について計測された待ち時間と閾値テーブル1610上の対応するオブジェクトの待ち時間とを比較する。待ち時間の閾値を上回る待ち時間をもつオブジェクトがなければ(ステップ1390NO)、切り替え不要と判断し
、ステップ1360へ戻り指定された計測対象計算機についてポイントデータの収集・表示処理を継続する。一方、閾値を上回る待ち時間をもつオブジェクトが存在する場合には(ステップ1390YES)、該当するオブジェクトを1つ選択し、そのオブジェクトを計測対象としてステップ1310へ進み、フローデータの収集・表示処理に切り替える。
Next, it is determined whether it is necessary to switch the measurement target with reference to the threshold value table 1610 on the memory (step 1390). The
第3の実施形態によれば、フローデータの収集中に処理時間の上限設定値を越える処理時間を計測したオブジェクトを検出したとき、そのオブジェクトが実行される計算機で実行される他のオブジェクトの処理時間を収集することによって過大な処理時間の原因を追及できる。またポイントデータの収集中に待ち時間の上限設定値を越える待ち時間を計測したオブジェクトを検出したとき、そのオブジェクトの処理を先頭とする処理フローについてフローデータを収集することによって過大な待ち時間の原因を追及できる。このようにフローデータ収集からポイントデータ収集、ポイントデータ収集からフローデータ収集に切り替えながら性能データを収集することによって、性能のボトルネックがどの処理フローのどのオブジェクトに存在するか、あるいはどの計算機で実行されるどのオブジェクトに存在するかを検出することが可能になる。この際のフローデータ収集とポイントデータ収集との間の切り替えを自動的に行うことができる。 According to the third embodiment, when an object whose processing time exceeds a processing time upper limit set value is detected during flow data collection, the processing of another object executed on the computer on which the object is executed The cause of excessive processing time can be pursued by collecting time. In addition, when an object that has measured a waiting time exceeding the upper limit setting value of the waiting time is detected while collecting point data, the cause of excessive waiting time is collected by collecting flow data for the processing flow that starts with the processing of that object. Can be pursued. In this way, by collecting performance data while switching from flow data collection to point data collection and point data collection to flow data collection, the performance bottleneck exists in which object in which processing flow, or on which computer It is possible to detect which objects are present. Switching between flow data collection and point data collection at this time can be automatically performed.
(4)第4の実施形態
複数の計算機上で多数のオブジェクトが動作する場合に、どのオブジェクトがどのオブジェクトと関連をもって動作するかとか、どの処理フローにトランザクションが集中するかなどを把握することが困難なことがある。第4の実施形態は、オブジェクト間の呼び出しの関係及び呼び出し回数を取得することによってこのような問題を解決し、もって性能モニタリングを支援するものである。
(4) Fourth Embodiment When a large number of objects operate on a plurality of computers, it is possible to grasp which object is related to which object and which processing flow is concentrated in which processing flow. It can be difficult. The fourth embodiment solves such a problem by obtaining the relationship of calls between objects and the number of calls, thereby supporting performance monitoring.
以下に図1に示される分散オブジェクト環境において図2の概略処理手順を用いて第4の実施形態の特徴を説明する。マネージャ130は最初にステップ210においてオブジェクトの一覧を表示し、オブジェクト相関データを採取するオブジェクトの選択入力を受け付ける。オブジェクト一覧上のすべてのオブジェクトを選択することも可能である。次にステップ220において入力されたオブジェクト相関データを採取するオブジェクトのオブジェクトIDをすべてのコレクタ131,132にブロードキャストによって通知する。マネージャ130はステップ230においてコレクタ131,132から転送されてくる採取データリスト501の到着を待つ。採取データリスト501を受信すると、ステップ240で採取データリスト501から後述する呼び出しテーブル2001を作成し、ステップ250でこの呼び出しテーブル2001から後述するオブジェクト相関図1802を作成して表示する。表示後、ステップ255において指定時間が経過したか否かの終了条件の判定を行い、指定時間が経過していなければステップ230に戻って上記処理を繰り返す。
The features of the fourth embodiment will be described below using the schematic processing procedure of FIG. 2 in the distributed object environment shown in FIG. The
一方コレクタ131,132が実行するブロック202の処理は第1の実施形態で説明したものと全く同じである。
On the other hand, the processing of the
図18は、呼び出しテーブル2001のデータ構成を示す図である。呼び出し元2010はリクエストを発行したオブジェクトのID、呼び出し先2020はそのリクエストを受け取ったオブジェクトのID、呼び出し回数2030はリクエストを発行した回数、すなわち呼び出し先2020のオブジェクトを呼び出した回数である。
FIG. 18 is a diagram showing the data structure of the call table 2001. As shown in FIG. The
図19は、オブジェクト相関図表示画面1801の例を示す図である。オブジェクト相関図表示画面1801は、オブジェクト相関図1802をに表示する。1810はオブジェクトID表示部であり、1820は関連のあるオブジェクトを結合する線分、1830は線分1820の右側に位置するオブジェクトを呼び出した回数である。図19のオブジェクト相関図1802は、図18に例示する呼び出しテーブル2001を図式化したものである。
FIG. 19 is a diagram illustrating an example of an object correlation
図20は、上記ステップ240及びステップ250の処理の流れを示すフローチャートである。コレクタから採取データリスト501が到着すると、まず呼び出しテーブル2001の中に呼び出し元2010が受け取った採取データリスト501の受信側オブジェクトID503と一致しており、かつ呼び出し先2020がその採取データリスト501のオブジェクトID502と一致している行があるかどうかをチェックする(ステップ1910)。この場合にはオブジェクト
ID502で示されるオブジェクトが計測対象として指定されたオブジェクトである。一致するものがあれば(ステップ1910YES)、一致した呼び出しテーブルの行の呼び出し回数2030に1を加える(ステップ1920)。一致するものがなければ(ステップ1910NO)、呼び出しテーブル2001に呼び出し元2010をその採取データリスト501の受信側オブジェクトID503、呼び出し先2020を採取データリストのオブジェクトID502、呼び出し回数2030を1とする行を加える(ステップ1925)。
FIG. 20 is a flowchart showing the flow of processing in
上記ステップ1920、もしくは1925の処理によって、呼び出しテーブル2001が更新された後、最新の呼び出しテーブル2001に基づいてオブジェクト関連図表示画面1801上のオブジェクト相関図1802の表示の更新を行う(ステップ1930)。
After the call table 2001 is updated by the processing of
なお呼び出し元2010をその採取データリスト501のオブジェクトID502、呼び出し先2020を採取データリスト501の送信側オブジェクトID506と一致するものとみなしてもよい。この場合にもオブジェクトID502で示されるオブジェクトが計測対象として指定されたオブジェクトである。
Note that the
以上説明した第4の実施形態によれば、指定されたオブジェクトについて採取データリスト501を採取し、オブジェクトから別のオブジェクトに亘って一連の処理が行われる場合、それらオブジェクト間の呼び出し元/呼び出し先の関連を明示するとともに、オブジェクト間のリクエストの発生回数を示すオブジェクト関連図1802を表示することが可能である。
According to the fourth embodiment described above, when the collection data list 501 is collected for a specified object and a series of processing is performed from the object to another object, the caller / callee between these objects The object relation diagram 1802 showing the number of requests between objects can be displayed.
101〜103…計算機、121〜126…オブジェクト、131〜132…コレクタ、130…マネージャ、140…LAN、501…採取データリスト、701…リクエストフローテーブル
101-103: Computer, 121-126 ... Object, 131-132 ... Collector, 130 ... Manager, 140 ... LAN, 501 ... Collection data list, 701 ... Request flow table
Claims (2)
を有するシステムであって、
前記第一の計算機は、一以上のプログラムを実行する実行手段と、前記プログラム間の呼出が発生する場合、前記呼出元のプログラムを特定する呼出元プログラム識別子と呼出先のプログラムを特定する呼出先プログラム識別子と呼出メッセージを特定する呼出メッセージ識別子と他のプログラムから呼び出された時刻と他のプログラムを呼び出した時刻とを含む性能データを第二の計算機に送信する送信手段とを有し、
前記第二の計算機は、前記性能データを受信する受信手段と、前記呼出元プログラム識別子と前記呼出先プログラム識別子と前記呼出メッセージ識別子とに基づいて一連の処理を構成する複数のプログラムの性能データを関連付ける関連付け手段と、前記関連付けた性能データを一連の処理ごとに前記メモリに格納する格納手段と、前記一の性能データに含まれる前記他のプログラムから呼び出された時刻と他のプログラムを呼び出した時刻とに基づいて前記プログラムの処理時間を算出し、前記関連付けた性能データに含まれる複数の前記呼出時刻に基づいて呼出関係にあるプログラム間の通信時間を算出する算出手段と、前記性能データの関連付けに基づいて一連の処理ごとに前記算出された通信時間と処理時間とを出力する出力手段とを有することを、特徴とするシステム。 A plurality of first computers for executing a program capable of realizing predetermined processing; a plurality of a series of processes composed of the plurality of programs; a second computer having a memory;
A system comprising:
The first computer includes an execution unit that executes one or more programs, and a call source program identifier that specifies the call source program and a call destination that specifies a call destination program when a call between the programs occurs. have a transmitting means for transmitting the performance data including the time of calling call message identifier and time called from another program and other programs that identifies the program identifier and paging message to the second computer,
The second computer is configured to receive performance data of a plurality of programs constituting a series of processes based on receiving means for receiving the performance data, the call source program identifier, the call destination program identifier, and the call message identifier. Association means for associating, storage means for storing the associated performance data in the memory for each series of processing, time called from the other program included in the one performance data, and time called another program Calculation means for calculating the processing time of the program on the basis of a plurality of call times based on the plurality of call times included in the associated performance data, and association of the performance data and output means for outputting said calculated communication time and processing time for each series of processes based on System that is characterized by having.
前記一連の処理を実行することにより前記第一の計算機で実行されるプログラム間の呼出が発生する場合、呼出元プログラムを特定する呼出元プログラム識別子と呼び出し先のプログラムを特定する呼出先プログラム識別子と前記他のプログラムから呼び出された時刻と他のプログラムを呼び出した時刻と呼出メッセージを特定する呼出メッセージ識別子とを含む性能データを、一以上の第一の計算機から、受信する手段と、
前記呼出元プログラム識別子と前記呼出先プログラム識別子と前記呼出メッセージ識別子とに基づいて一連の処理を構成する複数のプログラムの性能データを関連付ける手段と、
前記関連付けた性能データを一連の処理ごとに前記メモリに格納する手段と、
前記一の性能データに含まれる前記他のプログラムから呼び出された時刻と他のプログラムを呼び出した時刻とに基づいて前記プログラムの処理時間を算出し、前記関連付けた性能データに含まれる複数の前記呼出時刻に基づいて呼出関係にあるプログラム間の通信時間を算出する手段と、
前記性能データの関連付けに基づいて一連の処理ごとに前記算出された通信時間と処理時間とを出力する手段と、を有することを特徴とする第二の計算機。 A second computer having a memory and connected to a system capable of executing a plurality of series of processes by a plurality of first computers capable of executing a program for realizing a predetermined process;
When a call between programs executed by the first computer occurs by executing the series of processing, a call source program identifier for specifying a call source program and a call destination program identifier for specifying a call destination program; Means for receiving, from one or more first computers, performance data including a time when the other program is called, a time when the other program is called, and a call message identifier that identifies a call message;
Means to associate the performance data of a plurality of programs constituting the series of processing based on said caller program identifier and said call destination program identifier and the call message identifier,
Means for storing the associated performance data in the memory for each series of processing;
The processing time of the program is calculated based on the time when the other program included in the one performance data is called and the time when the other program is called, and the plurality of calls included in the associated performance data Means for calculating a communication time between programs having a calling relationship based on time;
And a means for outputting the calculated communication time and processing time for each series of processes based on the association of the performance data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005171794A JP3945521B2 (en) | 2005-06-13 | 2005-06-13 | Distributed processing system and performance monitoring method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005171794A JP3945521B2 (en) | 2005-06-13 | 2005-06-13 | Distributed processing system and performance monitoring method thereof |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11125401A Division JP2000315198A (en) | 1999-05-06 | 1999-05-06 | Distributed processing system and its performance monitoring method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005302057A JP2005302057A (en) | 2005-10-27 |
JP3945521B2 true JP3945521B2 (en) | 2007-07-18 |
Family
ID=35333399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005171794A Expired - Fee Related JP3945521B2 (en) | 2005-06-13 | 2005-06-13 | Distributed processing system and performance monitoring method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3945521B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI380168B (en) | 2005-12-26 | 2012-12-21 | Ibm | System, method, program, and system implementation method for transaction process logging |
CN101753971B (en) * | 2008-12-22 | 2012-05-16 | 中兴通讯股份有限公司 | Journal system and journal recording method in content management system in uniform video management platform |
US8893156B2 (en) * | 2009-03-24 | 2014-11-18 | Microsoft Corporation | Monitoring of distributed applications |
US20130268663A1 (en) * | 2010-12-28 | 2013-10-10 | Mitsubishi Electric Corporation | Communication network system |
US8516301B2 (en) * | 2011-04-08 | 2013-08-20 | Ca, Inc. | Visualizing transaction traces as flows through a map of logical subsystems |
US8688729B2 (en) * | 2011-08-16 | 2014-04-01 | Ca, Inc. | Efficiently collecting transaction-separated metrics in a distributed enviroment |
JP6481259B2 (en) * | 2014-04-02 | 2019-03-13 | 富士電機株式会社 | Information processing device |
CN112559271B (en) * | 2020-12-24 | 2023-10-20 | 北京百度网讯科技有限公司 | Interface performance monitoring method, device and equipment for distributed application and storage medium |
-
2005
- 2005-06-13 JP JP2005171794A patent/JP3945521B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005302057A (en) | 2005-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3945521B2 (en) | Distributed processing system and performance monitoring method thereof | |
JP2000315198A (en) | Distributed processing system and its performance monitoring method | |
US10348809B2 (en) | Naming of distributed business transactions | |
JP4466615B2 (en) | Operation management system, monitoring device, monitored device, operation management method and program | |
US8671159B2 (en) | Technique for previously providing estimate of time required for processing | |
JP3927539B2 (en) | System and method for monitoring software queuing applications | |
JP2005326911A (en) | San management method | |
JP3554134B2 (en) | Network connection path search method, computer, network system, and storage medium. | |
JP2006011902A (en) | Operation management support system and performance information display method | |
JP2008217721A (en) | Program profiling system, program profiling method, and program | |
JPH09330302A (en) | Method and system for monitoring performance of computer system | |
JP6308042B2 (en) | Information processing system | |
JP5049856B2 (en) | Information processing apparatus and information processing method | |
US20080228731A1 (en) | Debugging system and debugging method | |
JP2009020736A (en) | Server application monitoring system and monitoring method | |
JPH05204783A (en) | Operation monitoring system | |
JPH11149383A (en) | Inter-process communication controller | |
JPH11259421A (en) | Message monitoring device and medium recording message monitoring program | |
CN114020566A (en) | Job monitoring method, device, medium and electronic equipment of job scheduling system | |
JPH07182261A (en) | Information processor | |
JPH03109645A (en) | Communication request processing method | |
JP4983636B2 (en) | Transaction apparatus, delay fault analysis apparatus, delay fault analysis method and program | |
CN117785396A (en) | Bidirectional interface calling system and method based on templatization | |
JP2009075724A (en) | Management apparatus, management system, management program, and management method | |
JPH05189395A (en) | Method and device for evaluating performance of parallel computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060421 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070223 |
|
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: 20070320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070402 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120420 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120420 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130420 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140420 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |