JP4347082B2 - イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム - Google Patents

イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム Download PDF

Info

Publication number
JP4347082B2
JP4347082B2 JP2004045966A JP2004045966A JP4347082B2 JP 4347082 B2 JP4347082 B2 JP 4347082B2 JP 2004045966 A JP2004045966 A JP 2004045966A JP 2004045966 A JP2004045966 A JP 2004045966A JP 4347082 B2 JP4347082 B2 JP 4347082B2
Authority
JP
Japan
Prior art keywords
time
event
computer
transmission
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
Application number
JP2004045966A
Other languages
English (en)
Other versions
JP2005235054A (ja
Inventor
隆 堀川
敏明 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
NEC Informatec Systems Ltd
Original Assignee
NEC Corp
NEC Informatec Systems 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 NEC Corp, NEC Informatec Systems Ltd filed Critical NEC Corp
Priority to JP2004045966A priority Critical patent/JP4347082B2/ja
Priority to US11/062,930 priority patent/US7594146B2/en
Publication of JP2005235054A publication Critical patent/JP2005235054A/ja
Application granted granted Critical
Publication of JP4347082B2 publication Critical patent/JP4347082B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、複数の計算機から収集した発生時刻付きイベントトレースデータの時刻ずれを補正する時刻補正装置に関し、特に、複数の計算機間で送受信される通信に関するイベントデータに基づき、各計算機の内部時計の差を時刻オフセットとして算出し、収集したイベントトレースデータにそのオフセット値を加算することにより、複数の計算機間で生じるイベントトレースデータの相対的な時刻ずれを補正することができるイベントトレースデータの時刻補正装置に関する。
一般に、コンピュータ等の計算機の動作測定,トランザクション・プロファイルの生成等を行う場合、イベントトレースデータの収集,分析が行われる。
具体的には、計算機上で各種のイベント(例えば、プログラムの開始や割り込みの発生等)が処理,実行される毎に、そのイベントの種類や計算機内部の状態,イベントの発生時刻等を示すイベントトレースデータを生成し、そのイベントトレースデータを収集,分析することにより、計算機の動作測定やトランザクション・プロファイルの生成,プログラムのデバッグ等が行われている(例えば、特許文献1−3参照。)。
ところで、計算機システムにおいては、ひとつの処理(トランザクション)が、複数の計算機上の処理プログラムを連続して処理,実行することで実現される場合がある。例えば、n−ティア・システムにおいては、ウェブ・サーバとアプリケーション・サーバ,データベース・サーバの3種類のサーバ(計算機)が連携して、ユーザから要求のあったトランザクションを処理,実行する。
このようにひとつの処理(トランザクション)が複数の計算機上で処理,実行される場合に、そのトランザクションの性能を分析するためには、各計算機上でのプログラムの実行状況を示す多数のイベントトレースデータを、ひとつのトランザクションを構成するように関連付けする必要がある。
例えば、イベントトレースデータに基づくトランザクション・プロファイルの生成等において、独立して動作する複数の計算機上で実行されるひとつのトランザクションを正確に再構成するためには、各イベントの発生時刻順にトレースデータを関連付けする必要がある。
このようなイベントトレースデータの時間的な関連付けは、各イベントデータに含まれるイベントの発生時刻データに基づいて行うことができるが、正確な関連づけを行うためには、各計算機の絶対時刻を完全に一致させる必要がある。
しかし、現実のシステムにおいては、各計算機の内部時計に相対的な時刻差が存在するため、正確な関連付けが行えないという問題が発生する。
ここで、独立して存在する複数の計算機の内部時計の相対的時間差を合わせる手段としては、NTP(Network Time Protocol)と呼ばれるプロトコルに基づく方法が知られている。NTPでは、基準となる時計を定め、各計算機がネットワークを介してその基準となる時計に接続して各計算機の内部時計の時刻を合わせる方法が採られている。
しかし、このNTP方式を用いても、ある程度までの時刻合わせが限界で、例えば10ms程度の時刻合わせは困難であり、また、余りに大きな時刻ずれがある場合にも、そのずれを補正することはできなかった。
近年の計算機システムにおいては、計算機の処理性能から、10ms程度の時間内に容易に複数のイベントが発生可能である。
このような計算機では、10ms程度の時間の中に複数のプログラムが実行される可能性が高く、10ms以上の範囲で誤差が生じるNTP又はそれに準ずるような時刻合わせ方式で対応するのは困難であった。
また、現実問題として、性能測定や分析のために、運用中のサーバ等に対して計算機内の時計を修正するということは、通常、保守等の観点から難しく、実用的ではなかった。
そこで、これまで、複数の計算機で生成されるイベントトレースデータについて、一定の精度で自動的に時刻合わせを行えるようにした提案がなされている。
例えば、特許文献4には、ホスト・コンピュータでトレース開始時における時刻を初期時刻情報として記憶するともに、各端末機ではイベント発生と同時にタイマによるカウントを行い、端末側のカウント値をホスト・コンピュータの初期時刻情報に加算することにより時刻情報を同期化するイベントトレースデータの作成方法が提案されている。
また、特許文献5には、複数の計算機(プロセッサ)で生成される各トレース情報について使用される単一の時刻情報としてマイクロセカンドのオーダーで時刻を計時するカウンタ・レジスタを備えることで、トレース時刻情報を共通化する方法が提案されている。
特開2000−010815号公報 特開2003−157185号公報 特開2004−005198号公報 特開昭62−232055号公報 特開2000−348007号公報
しかしながら、特許文献4に開示された方法では、各端末からホスト・コンピュータに対してタイマで計測されたカウント値を送信する必要があり、しかも、ホスト側では、そのようにして送信された各端末のカウント値を時刻情報に変換処理する機能を備える必要があった。
同様に、特許文献5に開示された方法では、共通の時刻情報をマイクロセカンドのオーダーで計時する計時手段を別途備える必要があった。
このように、従来の技術では、時刻情報の同期を取るための時刻情報の送信機能や交換機能を実現するための手段が別途必要となり、既存の計算機システムに直ちに適用することは不可能で、また、計算機の構成が複雑化するおそれがあり、実際には実現は困難であった。
このため、特殊な装置構成等を別途必要とすることなく、簡易かつ正確に複数の計算機間における時刻情報の同期を取ることができる技術が望まれるようになったが、現在までのところ有効な提案はなされていない。
本発明は、以上のような従来の技術が有する問題を解決するために提案されたものであり、複数の計算機間で送受信される通信に関するイベントデータに基づいて、各計算機の内部時計の差を時刻オフセットとして算出し、収集したイベントトレースデータにそのオフセット値を加算することにより、複数の計算機間で生じるイベントトレースデータの相対的な時刻ずれを補正することができるイベントトレースデータの時刻補正装置と時刻補正方法の提供を目的とする。
上記目的を達成するため、本発明のイベントトレースデータの時刻補正装置は、複数の計算機で実行されるイベント毎に生成されるイベントトレースデータに含まれるイベントの発生時刻を補正するイベントトレースデータの時刻補正装置であって、各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力するデータ入力手段と、データ入力手段から出力される全イベントトレースデータ中から、各計算機間で送受信される通信に関するイベントデータである送信イベントと受信イベントを抽出し、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成するマシン間通信時間生成手段と、生成された通信時間に基づいて、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する時刻オフセット導出手段と、生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正する時刻補正手段と、発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力するデータ統合手段と、を備えた構成としてある。
より具体的には、本発明のイベントトレースデータの時刻補正装置はマシン間通信時間生成手段が、データ入力手段から出力される全イベントトレースデータ中から、各計算機間で送受信される送信イベントと受信イベントを抽出して各イベントデータが示す発生時刻とともに登録し、抽出された送信イベントについて対応する受信イベントが既に登録されている場合には、既登録の受信イベントの登録時刻から送信イベントのイベントデータが示す発生時刻を減算した値をその送受信イベントに係る計算機間の通信時間として算出し、抽出された受信イベントについて対応する送信イベントが既に登録されている場合には、受信イベントのイベントデータが示す発生時刻から既登録の送信イベントの登録時刻を減算した値をその送受信イベントに係る計算機間の通信時間として算出し、送受信イベントに係る各計算機間の通信時間を示す通信時間表を作成する構成としてある。
さらに本発明のイベントトレースデータの時刻補正装置は、時刻オフセット導出手段が、マシン間通信時間生成手段で生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新オフセット導出処理を行い、全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成する構成としてある。
このような構成からなる本発明のイベントトレースデータの時刻補正装置によれば、複数の計算機で発生する各イベントの順序性に着目し、送受信イベントの発生時刻の差分に基づいて、時刻補正のオフセット値を算出し、これによって、各イベントデータの時刻ずれを相対的に補正することができる。
複数のプログラム間の通信では、送信イベントは常に対応する受信イベントの前に発生することになる。例えば、プログラムAとプログラムBが通信を介して二つの計算機間で処理を行うような場合に、プログラムA、プログラムBの順序で処理が実行される場合、プログラムAからプログラムBへの送信イベントは、必ずプログラムBでの受信イベントより先に発生する。すなわち、送信イベントは必ず受信イベントの前に発生するものであり、この順序は普遍なものとなる。
本発明では、このイベントの順序性に基づき、各計算機で採取されたイベントを、事前に規定されるプログラムの実行順序に並べることで、送信イベントと受信イベントの発生時刻の差分を算出し、各イベント間で生ずる発生時刻の相対的な時刻差を時刻オフセットとして算出する。
そして、イベントトレースデータの分析時に、算出されたオフセット値を各イベントデータの発生時刻に加算することで、複数の計算機の内部時計の相対的時刻差による影響を排除することができる。
このようにして、イベントトレースデータに含まれる発生時刻を送受信イベントの順序性に基づいて相対的に補正することができ、時刻情報の同期を取るための特殊な装置や複雑な構成等を必要とすることなく、簡易かつ正確にイベントトレースデータの時刻補正を実現することができる。
そして、本発明のイベントトレースデータの時刻補正装置は複数の計算機が、n−ティア・システムを構成する複数のコンピュータからなる構成とすることができる。
このように、本発明は、n−ティア・システムを構成する複数のコンピュータにおけるイベントトレースデータの時刻補正装置として実現することができる。
これにより、例えば、独立して稼動する複数のサーバによって実行されるひとつのトランザクションについて、サーバ間の時刻ずれを正確に補正して効率の良い計測を行うことができ、一回の計測で性能ボトルネックとなる部分を検出するといった用途に適用することができる。
また、本発明は、複数の計算機で実行されるイベント毎に生成されるイベントトレースデータに含まれるイベントの発生時刻を補正するイベントトレースデータの時刻補正方法であって、各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力するステップと、イベントデータが示す発生時刻順に出力される全イベントトレースデータ中から、各計算機間で送受信される通信に関するイベントデータである送信イベントと受信イベントを抽出し、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を、各計算機毎に生成するステップと、生成された通信時間に基づいて、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を生成するステップと、生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正するステップと、発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力するステップと、を有するイベントトレースデータの時刻補正方法として実現することができる。
さらに、本発明は、コンピュータを、複数の計算機で実行されるイベント毎に生成されるイベントトレースデータに含まれるイベントの発生時刻を補正するイベントトレースデータの時刻手段として機能させるためのプログラムであって、各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力するデータ入力手段、データ入力手段から出力される全イベントトレースデータ中から、各計算機間で送受信される通信に関するイベントデータである送信イベントと受信イベントを抽出し、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成するマシン間通信時間生成手段、生成された通信時間に基づいて、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する時刻オフセット導出手段、生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正する時刻補正手段、発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力するデータ統合手段、としてコンピュータを機能させるためのイベントトレースデータの時刻補正プログラムとして構成することができる。
このように本発明は、イベントトレースデータの時刻補正方法として実現することができ、また、本発明に係る時刻補正機能をコンピュータに実現させるためのプログラムとしても提供することができる。
これにより、本発明は、物理的な装置構成のみならず、コンピュータ装置等を使用して実施する方法又はプログラムの形式でも実現が可能であり、あらゆる計算機等に適用可能な、汎用性,拡張性に優れた時刻補正手段を提供することができる。
以上のような本発明のイベントトレースデータの時刻補正装置と時刻補正方法によれば、二つのプログラム間の通信において送信イベントは必ず受信イベントに先行して発生するという性質を利用し、それぞれの計算機で採取されたイベントトレースデータ間の相対的時刻差を時刻オフセットとして算出し、その時刻オフセットに基づきイベントトレースデータに記録されているイベント発生時刻を補正することができる。
本発明では、測定時に各コンピュータは各々のタイマ情報等を交換,参照する必要はなく、従って、測定時にタイマの同期を取るための機能等は一切不要であり、トレースデータ収集後の解析操作により所定のオフセット値を求めるだけで、高精度な時刻補正を簡易かつ確実に実施することができる。
すなわち、本発明においては、測定対象となる計算機(通常、高価なサーバ等)に時刻同期を目的とした機能や構成を設ける必要はなく、データ解析を行なう計算機(例えば、PC)上の解析ソフトウェアにより本発明に係るアルゴリズムを実行するだけで実現が可能である。
これにより、本発明によれば、特別な装置や複雑な構成等を一切必要とすることなく、簡易かつ正確なイベントトレースデータ間の時刻補正が可能となり、例えば、独立して動作する複数の計算機によって処理されるひとつのトランザクションを、それぞれの計算機上で独立して採取したイベントトレースから計算機間の絶対時間の差異による影響を排除して再構成することができる。
以下、本発明に係るイベントトレースデータの時刻補正装置と時刻補正方法の好ましい実施形態について、図面を参照しつつ説明する。
まず、図1〜図6を参照して、本発明に係るイベントトレースデータの時刻補正装置の構成について説明する。
図1は、本発明の一実施形態に係るイベントトレースデータの時刻補正装置の概略構成を示すブロック図である。
図1に示すように、本発明の一実施形態は、時刻補正装置100と、複数台の計測対象1〜nである計算機110〜113を備えている。
計算機110〜113としては、例えば、n−ティア・システムを構成する複数のサーバからなる計算機システムがある。n−ティアの計算機システムにおいては、例えば、ウェブ・サーバとアプリケーション・サーバ,データベース・サーバの3種類のサーバ(計算機)が連携して、ユーザから要求のあったトランザクションの処理,実行が行われる。このため、各サーバの内部時計の時刻差に起因したイベントトレースデータ間の時刻ずれを補正する必要が生じる。
そこで、このような計算機システムが、本実施形態に係る時刻補正装置100の計測対象(適用対象)として好適なものとなる。
計測対象となる各計算機110(113)は、図1に示すように、計測用プローブ112(115)と、計測結果として計測用プローブ112(115)から出力されるイベントトレースデータ111(114)を備えている。
計測用プローブ112(115)は、OS(オペレーティング・システム)内に埋め込まれる測定用の命令列(ソフトウェア)であり、各計算機110(113)で発生するイベントを収集し、イベントトレースデータ111(114)を生成する。
イベントトレースデータ111(114)は、各計算機で発生する各イベント毎に生成される所定の情報を示すデータである。このイベントトレースデータ111(114)は、例えば、図2に示すように、各イベント毎に生成されるデータで、送受信イベントの一方の計算機となる自マシン番号201,イベント発生の時刻202,イベントの種類203及び付加情報204等から構成される。付加情報204としては、当該計算機の自IPアドレス2041,自ポート番号2402,送受信の相手側となる計算機の相手IPアドレス2043と相手ポート番号2044等から構成されるデータである。
このようなイベントトレースデータが、各計算機で発生するイベント毎に複数生成され、収集,分析されることになる。
なお、相手側計算機のマシン番号については、通常、イベントトレースデータには含まれないので、図3に示すように、対応するマシン番号とIPアドレスを示すマシンIPアドレス表が別途参照される。
このIPアドレス表は、手作業で、あるいは計測対象マシンでコマンドを実行させた出力結果を解析用マシンに送信することにより、予め生成することができる。
時刻補正装置100は、例えば、計測対象となる計算機111(113)以外のPC(パーソナルコンピュータ)等の解析用マシン上に備えられる手段であり、図1に示すように、時刻オフセット算出部101と、時刻補正処理部102,時刻オフセット表106,解析用データ109から構成される。
ここで、この時刻補正装置100を構成する各要素は、プログラム(ソフトウェア)の命令によりコンピュータで実行される処理,手段,機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような所定の処理や機能、具体的には、データ入力処理,マシン間通信時間表作成処理,時刻オフセット導出処理,時刻補正処理,データ統合処理等を行わせる。
このように、本実施形態に係る時刻補正装置100の各処理・手段は、プログラムとコンピュータとが協働した具体的手段によって実現されるものである。
なお、プログラムの全部又は一部は、例えば、磁気ディスク,光ディスク,半導体メモリ,その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。
また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
具体的には、時刻オフセット算出部101は、データ入力部103と、マシン間通信時間表作成部104と、時刻オフセット導出部105から構成される。
データ入力部103は、各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力する手段であり、本発明のデータ入力手段を構成する。
マシン間通信時間表作成部104は、データ入力部103から出力される全イベントトレースデータ中から、各計算機間で送受信される送信イベントと受信イベントを抽出し、対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成し、通信時間表を作成する手段であり、本発明のマシン間通信時間生成手段を構成する。
マシン間通信時間表作成部104は、データ入力部103から入力される全イベントトレースデータ中から送受信イベントを抽出し、図4に示すような通信イベントを示す通信状態表(エントリ)を登録,生成しつつ、図5に示すような所定の通信時間表を作成する。
このマシン間通信時間表作成部104で作成される通信時間表は、図5に示すように、各計算機が送信側となる場合、受信側となる場合に、各計算機間で送受信されるイベントの発生時刻の差分が通信時間として登録されるようになっている。
時刻オフセット導出部105は、マシン間通信時間表作成部104で生成された通信時間に基づいて、各計算機に対する所定の時刻オフセット値を生成し、時刻オフセット表106を作成する手段であり、本発明の時刻オフセット導出手段を構成する。
この時刻オフセット導出部105で作成される時刻オフセット表106は、例えば図6に示すような表からなり、各計算機毎に導出されたオフセット値が各計算機を特定するマシン番号とともに示されるようになっている。
時刻補正処理部102は、時刻補正部107と、データ統合部108から構成される。
時刻補正部107は、時刻オフセット導出部105で生成された時刻オフセット表の各オフセット値に基づき、各計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正する手段であり、本発明の時刻補正手段を構成する。
データ統合部108は、時刻補正部107において発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力する手段であり、本発明のデータ統合手段を構成する。このデータ統合部108から出力されるデータが、時刻補正がなされた解析用データ109となる。
解析用データ109は、図2に示すイベントトレースデータの時刻202に、時刻オフセット表106で示された時刻オフセット602について補正を行ったデータであり、それ以外は図2に示したイベントトレースデータと全く同様の情報からなるデータで構成される。
そして、この解析用データ109が、所定の解析プログラム116によって解析され、例えば、イベントトレースデータに基づく計算機の動作測定や、トランザクション・プロファイルの生成,プログラムのデバッグ等が行われることになる。
次に、以上のような構成からなる本実施形態のイベントトレースデータの時刻補正装置の動作(時刻補正方法)について、図7〜図17を参照しつつ説明する。
図7に示すように、図1に示した時刻補正装置100では、まず、ステップ701において、時刻オフセット算出部101のデータ入力部103により、イベントトレースデータ1〜nの全てのイベントトレースデータが入力され、後述する図8に示すアルゴリズムに従い、一イベントずつ選択され各イベントデータが示す発生時刻順に出力される所定のデータ入力処理が行われる(ステップ701)。
次に、発生時刻順に出力されるイベントトレースデータは、ステップ702において、一イベントずつマシン間通信時間表作成部104に入力され、後述する図9〜図11に示すアルゴリズムに従い、所定のマシン間通信時間表作成処理が行われる(ステップ702)。
このデータ入力処理及びマシン間通信時間表作成処理(ステップ701,702)は、全トレースデータが読み込まれるまで、すなわち、データ入力部103が計測対象となる全トレースデータの入力処理の終了を確認するまで繰り返される(ステップ703)。
全トレースデータの入力が終了すると、ステップ704において、時刻オフセット導出部105において、マシン間通信時間表に基づいて、後述する図12に示すアルゴリズムに従い、所定のオフセット導出処理が行われ(ステップ704)、その結果が時刻オフセット表106として出力される。
図8を参照して、データ入力処理(図7のステップ701)の詳細について説明する。
データ入力処理では、各計算機で実行されるイベント毎に生成される全イベントトレースデータの中から、イベントデータに含まれる発生時刻データの値が最も小さい計算機のマシン番号を選択する処理が行われる。
まず、ステップ801において、変数として、マシン番号を表すi(初期値は1)と、それまで処理したイベントデータの中で時刻が最も小さい値であったマシン番号を示す変数m(初期値は不定)及びその時刻値であるtm(初期値は変数の取り得る最大値、ここでは∞と表記)を用意する。
次に、ステップ802に示すループにおいてマシン番号iを1〜nまで変化させて、マシン番号iのトレースデータで示されるイベント発生時刻(現イベントレコードの時刻:tiと表記)を(ステップ803)、最小の時刻値tmと比較する(ステップ804)。
時刻tiが時刻tmよりも小さいか又は等しい場合には、tmにtiを、またmにiを代入し(ステップ805)、ステップ806へ進む。時刻tiが時刻tmよりも大きい場合には、そのままステップ806へ進む。
以上の処理により、mには、全イベントトレースデータ中、最も小さい時刻値を持つトレースデータの番号が格納されることになるので、ループ(ステップ802)の終了後、トレースデータmに示された現イベントレコードをデータ入力処理の結果として出力し(ステップ807)、次のイベントレコードを読み込み(ステップ808)、ステップ801〜807の処理を繰り返す。
これにより、データ入力部103に入力された全イベントトレースデータは、各イベントデータが示す発生時刻順に出力されることになる。
次に、図9〜図11を参照してマシン間通信時間表作成処理(図7のステップ702)の詳細について説明する。
まず、図9を参照して、マシン間通信時間表作成処理における送信イベントと受信イベントの抽出処理の詳細を示す。
図9のステップ901において、読み込まれた処理対象イベントが送信イベントか否かが判別され、送信イベント処理であればステップ902へ進み、送信イベント処理が行われる(後述する図10参照)。
読み込まれたイベントが送信イベント処理でなければ、ステップ903へ進み、その処理対象イベントが受信イベントか否かが判別され、受信イベントであればステップ904へ進んで受信イベント処理が行われる(後述する図11参照)。
読み込まれたイベントが受信イベントでもなければ、時刻補正装置100における対象外のイベントであり、本処理は終了する(ステップ902)。
以上の処理が繰り返されることにより、データ入力部103から出力された全イベントトレースデータ中から、各計算機間で送受信される送信イベントと受信イベントが抽出されることになる。
次に、図10を参照して、マシン間通信時間表作成処理における送信イベント処理(図9のステップ902)の詳細について説明する。
まず、ステップ1001において、図4に示した通信状態表(エントリ)を参照しつつ、イベントレコードの自IPアドレス,自ポート番号,相手IPアドレス,相手ポート番号に一致するエントリ、すなわち、対応する既登録の受信イベントをサーチする(ステップ1001)。
サーチの結果、対応するエントリ(既登録の受信イベント)が存在しない場合には(ステップ1002のNO)、当該送信イベントについてのエントリを作成して(ステップ1003)、ステップ1004に進む。
サーチの結果、エントリ(対応する受信イベント)が存在する場合には(ステップ1002のYES)、そのままステップ1004へ進む。
ステップ1004では、マシンIPアドレス表(図3)を参照して、イベントの受信側となる相手IPアドレスより相手マシン番号を求める。
次いで、通信状態表(図4)を参照して、対応するエントリのデータサイズ(図4の406)が0(ゼロ)か否かを判別し、データサイズが0でなければステップ1006へ進み、データサイズが0であればステップ1009へ進む(ステップ1005)。
対応するエントリのデータサイズが0でない場合には、対応する受信イベントについてのエントリが存在することになるので、ステップ1006において、通信時間として、エントリが示す時刻(受信時刻)から送信イベントのイベントレコードが示す時刻(送信時刻)を減算した値を代入するとともに、エントリのデータサイズ(受信データサイズ)にイベントレコードのデータサイズ(送信データサイズ)を加算した値を代入する(ステップ1006)。
このように送信イベントのデータサイズをエントリに加算するとともに、後述する受信イベントのデータサイズをエントリから減算する(図11参照)ことにより、送信イベントで送信されたデータが全て受信イベントで受信されたか否かのメンテナンスをすることができ、データサイズを考慮して送受信イベントの対応関係を正確に解析することができるようになる。
次に、ステップ1006で求められた通信時間と、通信時間表(図5)に登録されている対応するマシン間の通信時間(トレースデータに含まれる自マシン番号とステップ1004で求めた相手マシン番号で示される通信時間表に登録された通信時間:通信時間表[自マシン番号][相手マシン番号]と表記)の値を比較する(ステップ1007)。比較の結果、ステップ1006で求められた通信時間の方が小さい場合にはステップ1008へ進み、算出された通信時間の方が大きいか等しい場合には本処理は終了となる(ステップ1007)。
ステップ1008では、対応する通信時間表(通信時間表[自マシン番号][相手マシン番号])に、ステップ1006で求められた通信時間の値を代入し、本処理は終了となる(ステップ1008)。
また、ステップ1005において、データサイズが0の場合には、対応する受信イベントのエントリが登録されていない場合であり、エントリのデータサイズ(図4の406)にイベントレコードのデータサイズを登録し、また、エントリの時刻(図4の407)にイベントレコードの時刻を代入し、本処理は終了となる(ステップ1009)。
以上の処理が繰り返されることにより、抽出された全送信イベントについてのエントリ(通信状態表)への登録と、対応する受信イベントとのイベント発生時刻の差分に基づく通信時間表の作成が行われることになる。
次に、図11を参照して、マシン間通信時間表作成処理における受信イベント処理(図9のステップ904)の詳細について説明する。
まず、ステップ1101において、図4に示した通信状態表(エントリ)を参照しつつ、イベントレコードの自IPアドレス,自ポート番号,相手IPアドレス,相手ポート番号に一致するエントリ、すなわち、対応する既登録の送信イベントをサーチする(ステップ1101)。
サーチの結果、対応するエントリ(既登録の送信イベント)が存在しない場合には(ステップ1102のNO)、当該受信イベントについてのエントリを作成して(ステップ1103)、ステップ1104に進む。
サーチの結果、エントリ(対応する送信イベント)が存在する場合には(ステップ1102のYES)、そのままステップ1104へ進む。
ステップ1104では、マシンIPアドレス表(図3)を参照して、イベントの送信側となる相手IPアドレスより相手マシン番号を求める。
次いで、通信状態表(図4)を参照して、対応するエントリのデータサイズ(図4の406)が0(ゼロ)か否かを判別し、データサイズが0でなければステップ1106へ進み、データサイズが0であればステップ1109へ進む(ステップ1105)。
対応するエントリのデータサイズが0でない場合には、対応する送信イベントについてのエントリが存在することになるので、ステップ1106において、通信時間として、受信イベントのイベントレコードが示す時刻(受信時刻)からエントリが示す時刻(送信時刻)を減算した値を代入するとともに、エントリのデータサイズ(送信データサイズ)からイベントレコードのデータサイズ(受信データサイズ)を減算した値を代入する(ステップ1106)。
次に、ステップ1106で求められた通信時間と、通信時間表(図5)に登録されている対応するマシン間の通信時間(通信時間:通信時間表[相手マシン番号][自マシン番号]と表記)の値を比較する(ステップ1107)。比較の結果、ステップ1106で求められた通信時間の方が小さい場合にはステップ1108へ進み、算出された通信時間の方が大きいか等しい場合には本処理は終了となる(ステップ1107)。
ステップ1108では、対応する通信時間表(通信時間表[相手マシン番号][自マシン番号])に、ステップ1106で求められた通信時間の値を代入し、本処理は終了となる(ステップ1108)。
また、ステップ1105において、データサイズが0の場合には、対応する送信イベントのエントリが登録されていない場合であり、エントリのデータサイズ(図4の406)にイベントレコードのデータサイズを登録し、また、エントリの時刻(図4の407)にイベントレコードの時刻を代入し、本処理は終了となる(ステップ1109)。
以上の処理が繰り返されることにより、抽出された全受信イベントについてのエントリ(通信状態表)への登録と、対応する送信イベントとのイベント発生時刻の差分に基づく通信時間表の作成が行われることになる。
次に、図12を参照して、時刻オフセット導出処理(図7のステップ704)の詳細について説明する。
まず、ステップ1201において、時刻オフセット表(図6)の全要素を0とし、ステップ1202に進む。
次に、上述したマシン間通信時間表作成処理において作成された通信時間表(図5)の全通信時間中から、通信時間の値が最小(絶対値で最大)のマイナス値の要素を抽出し、その最小マイナス値に係る送受信イベントを特定する送信マシン番号(図5の501)をs、受信マシン番号(図5の502)をrとし、ステップ1203へ進む(ステップ1202)。
ステップ1202において、s,rで示される通信時間(通信時間表[s][r])の値が0より小さい場合は、ステップ1204へ進み、通信時間表[s][r]の値が0か又は0より大きい場合には、本処理を終了する(ステップ1203)。
ステップ1204では、時刻オフセット表[s]に通信時間表[s][r]の値(最小マイナス値)を代入し、ステップ1205へ進む。
ステップ1205では、通信時間表[s][*](*は1〜n)の値に時刻オフセット表[s]の値を減算した値を代入し、ステップ1206へ進む。
ステップ1206では、通信時間表[*][s](*は1〜n)の値に通信オフセット表[s]の値を加算した値を代入し、ステップ1202へ戻る。
以上のオフセット導出処理(ステップ1202〜1206)を繰り返し、通信時間表の全通信時間中にマイナス値がなくなるまで処理を繰り返すことにより、全ての計算機についての時刻オフセット値が導出され、時刻オフセット表106が完成し(図6参照)、出力されることになる。
図13〜図15の通信時間表の一例を参照しつつ、以上の時刻オフセット導出処理の具体的な内容を説明する。
まず、マシン間通信時間表作成処理により図13に示すような通信時間表が作成された場合に、通信時間中から最小マイナス値が抽出される。この場合は、図14に示すように、最小マイナス値は−0.20であり、その最小マイナス値の送信側計算機はマシン番号2となる(図14の1401)。従って、時刻オフセット表には、マシン番号2のオフセット値として−0.20が登録される。
次に、このオフセット値に基づいて、通信時間表中のマシン番号2の計算機が送信側となる全ての通信時間に対して、オフセット値−0.20を減算するとともに、当該計算機が受信側となる全ての通信時間に対して、オフセット値−0.20を加算する。
このようにすると、図15に示すように、マシン番号2の計算機が送信側となる通信時間は、[−0.10,−0.20]が[0.10,0.00]にオフセット処理され(図15の1501)、マシン番号2の計算機が受信側となる通信時間は、[0.15,0.30]が[−0.15,0.10]にオフセット処理される(図15の1502)。
これで最小マイナス値−0.20のオフセット処理が終了し、通信時間表は図15に示す内容に更新されるので、次の最小マイナス値−0.05(マシン番号1の計算機が送信側)が抽出され、同様のオフセット処理が繰り返され、通信時間表の全通信時間中にマイナス値がなくなるまで処理が繰り返し行われる。
以上のようにしてオフセット処理される通信時間とオフセット値の関係を概念的に示すと図16のようになる。
同図において、破線の矢印はマシン2が送信側となるイベント、実線の矢印はマシン2が受信側となるイベントを示している。
まず、マシン2が送信側となるイベントの場合、図16(a)に示すオフセット処理前の状態では、マシン1に対しては−0.10、マシンiに対しては−0.20の通信時間となっている(図13参照)。同様に、マシン2が受信側となるイベントの場合、図16(a)に示すオフセット処理前の状態では、マシン1に対しては0.15、マシンiに対しては0.30の通信時間となっている(図13参照)。
このような通信時間に対して、最小マイナス値であるマシン2の−0.20のオフセット値に基づいてオフセット処理を行うと、図16(b)に示すように、マシン2が送信側となるイベントについては、マシン1に対しては0.10、マシンiに対しては0.00になり、マシン2が受信側となるイベントについては、マシン1に対しては−0.05、マシンiに対しては0.10に補正される(図15参照)。
これで最小マイナス値−0.20のオフセット処理が終了し、続いて最小マイナス値であるマシン1の−0.05のオフセット値に基づくオフセット処理が行われる。この場合には、図16(c)に示すように、マシン2が送信側となるイベントについては、マシン1に対しては0.05、マシンiに対しては0.00になり、マシン2が受信側となるイベントについては、マシン1に対しては0.00、マシンiに対しては0.10に補正される。このようにして、オフセット処理を繰り返すことにより、全マシン間の時刻補正処理がなされる。
次に、図17を参照して、時刻補正されたイベントトレースデータのデータ統合処理の詳細について説明する。
データ統合処理では、時刻オフセット処理を経て時刻補正がなされた全イベントトレースデータの中から、補正された発生時刻データの値が最も小さい計算機のマシン番号を選択する処理が行われる。
まず、ステップ1701において、変数として、マシン番号を表すi(初期値は1)と、それまで処理したイベントデータの中で補正後の時刻が最も小さい値であったマシン番号を示す変数m(初期値は不定)及びその時刻値であるtm(初期値は変数の取り得る最大値、ここでは∞と表記)を用意する。
次に、ステップ1702に示すループにおいてマシン番号iを1〜nまで変化させて、マシン番号iのトレースデータで示される現イベントレコードの時刻に時刻オフセット表[i](図6)の値を加算したイベント発生時刻(tiと表記)を(ステップ1703)、最小の時刻値tmと比較する(ステップ1704)。
時刻tiが時刻tmよりも小さいか又は等しい場合には、tmにtiを、またmにiを代入し(ステップ1705)、ステップ1706へ進む。時刻tiが時刻tmよりも大きい場合には、そのままステップ1706へ進む。
以上の処理により、mには、全イベントトレースデータ中、オフセット値が加算された補正後の最も小さい時刻値を持つトレースデータの番号が格納されることになるので、ループ(ステップ1702)の終了後、トレースデータmに示された現イベントレコードをデータ入力処理の結果として出力し(ステップ1707)、次のイベントレコードを読み込み(ステップ1708)、ステップ1701〜1707の処理を繰り返す。
これにより、時刻オフセット処理がなされた全イベントトレースデータは、各イベントデータが示す補正後の時刻順に統合され、解析用データ109として出力されることになる。
そして、この解析用データ109は、解析プログラム116に入力され、所定の解析処理、例えば、イベントトレースデータに基づく計算機の動作測定や、トランザクション・プロファイルの生成,プログラムのデバッグ等が行われることになる。
以上説明したように、本実施形態に係るイベントトレースデータの時刻補正装置と時刻補正方法によれば、複数の計算機で発生する各イベントの順序性に着目し、送受信イベントの発生時刻の差分に基づいて、時刻補正のオフセット値を算出し、これによって、各イベントデータの時刻ずれを相対的に補正することができる。複数のプログラム間の通信では、送信イベントは常に対応する受信イベントの前に発生することになり、この順序は、プログラムの内容に拘わらず普遍なものとなる。
本実施形態では、このイベントの順序性に基づき、各計算機で採取されたイベントを、事前に規定されるプログラムの実行順序に並べることで、送信イベントと受信イベントの発生時刻の差分を算出し、各イベント間で生ずる発生時刻の相対的な時刻差を時刻オフセットとして算出する。
そして、イベントトレースデータの分析時に、算出されたオフセット値を各イベントデータの発生時刻に加算することで、複数の計算機の内部時計の相対的時刻差による影響を排除することができる。
このようにして、イベントトレースデータに含まれる発生時刻を送受信イベントの順序性に基づいて相対的に補正することができ、時刻情報の同期を取るための特殊な装置や複雑な構成等を必要とすることなく、簡易かつ正確にイベントトレースデータの時刻補正を実現することができる。
以上、本発明のイベントトレースデータの時刻補正装置と時刻補正方法について、好ましい実施形態を示して説明したが、本発明は、上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、本発明が適用される複数の計算機として、ネットワークを介して接続される複数のコンピュータ・システムの場合を示したが、これに限られるものではない。例えば、単一のコンピュータ装置に複数のプロセッサが備えられるマルチ・プロセッサ・システムについて、本発明を適用することも可能である。本発明の適用対象となる複数の計算機は、順序性のあるイベントを出力する計算機である限り、複数のコンピュータ装置だけでなく、複数のプロセッサであっても良い。
本発明は、複数の計算機から収集した発生時刻付きイベントトレースデータの時刻ずれを補正する時刻補正装置として、クライアント・サーバ・システムやマルチ・プロセッサ・システム等のコンピュータ・システムの分野において利用することができる。
本発明の一実施形態に係るイベントトレースデータの時刻補正装置の概略構成を示すブロック図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正装置で使用されるイベントトレースデータの一例を示す図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正装置で使用されるマシンIPアドレス表を示す図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正装置で使用される通信状態表を示す図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正装置で生成されるマシン間通信時間表の一例を示す図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正装置で生成される時刻オフセット表の一例を示す図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正装置で実行される時刻補正方法の全体を示すフローチャートである。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法におけるデータ入力処理の詳細を示すフローチャートである。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法のマシン間通信時間表作成処理における送信イベントと受信イベントの抽出処理を示すフローチャートである。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法のマシン間通信時間表作成処理における送信イベント処理の詳細を示すフローチャートである。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法のマシン間通信時間表作成処理における受信イベント処理の詳細を示すフローチャートである。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法における時刻オフセット導出処理の詳細を示すフローチャートである。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法により作成されるマシン間通信時間表の一例を示す図であり、時刻オフセット処理前の状態を示している。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法により作成されるマシン間通信時間表の一例を示す図であり、オフセット値を抽出した状態を示している。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法により作成されるマシン間通信時間表の一例を示す図であり、時刻オフセット処理後の状態を示している。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法によるオフセット処理される通信時間とオフセット値の関係を概念的に示す説明図である。 本発明の一実施形態に係るイベントトレースデータの時刻補正方法における時刻補正処理及びデータ統合処理の詳細を示すフローチャートである。
符号の説明
100 時刻補正装置
101 時刻オフセット算出部
102 時刻補正部
103 データ入力部
104 マシン間通信時間生成部
105 時刻オフセット導出部
106 時刻オフセット表
107 時刻補正部
108 データ統合部
109 解析用データ
110 計測対象1(計算機)
111 イベントトレースデータ
112 計測用プローブ
113 計測対象n(計算機)
114 イベントトレースデータ
115 計測用プローブ
116 解析プログラム

Claims (8)

  1. 複数の計算機で実行されるイベント毎に生成されるイベントトレースデータに含まれるイベントの発生時刻を補正するイベントトレースデータの時刻補正装置であって、
    各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力するデータ入力手段と、
    データ入力手段から出力される全イベントトレースデータ中から、各計算機間で送受信される通信に関するイベントデータである送信イベントと受信イベントを抽出し、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成するマシン間通信時間生成手段と、
    生成された通信時間に基づいて、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する時刻オフセット導出手段と、
    生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正する時刻補正手段と、
    発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力するデータ統合手段と、
    を備え、
    時刻オフセット導出手段が、
    マシン間通信時間生成手段で生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、
    当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新するオフセット導出処理を行い、
    全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成することを特徴とするイベントトレースデータの時刻補正装置。
  2. マシン間通信時間生成手段が、
    データ入力手段から出力される全イベントトレースデータ中から、各計算機間で送受信される送信イベントと受信イベントを抽出して各イベントデータが示す発生時刻とともに登録し、
    抽出された送信イベントについて対応する受信イベントが既に登録されている場合には、既登録の受信イベントの登録時刻から送信イベントのイベントデータが示す発生時刻を減算した値をその送受信イベントに係る計算機間の通信時間として算出し、
    抽出された受信イベントについて対応する送信イベントが既に登録されている場合には、受信イベントのイベントデータが示す発生時刻から既登録の送信イベントの登録時刻を減算した値をその送受信イベントに係る計算機間の通信時間として算出し、
    送受信イベントに係る各計算機間の通信時間を示す通信時間表を作成する請求項1記載のイベントトレースデータの時刻補正装置。
  3. 複数の計算機が、n−ティア・システムを構成する複数のコンピュータからなる請求項1又は2記載のイベントトレースデータの時刻補正装置。
  4. 複数の計算機で実行されるイベント毎に生成されるイベントトレースデータに含まれるイベントの発生時刻を補正するイベントトレースデータの時刻補正方法であって、
    各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力するステップと、
    イベントデータが示す発生時刻順に出力される全イベントトレースデータ中から、各計算機間で送受信される通信に関するイベントデータである送信イベントと受信イベントを抽出し、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成するマシン間通信時間生成ステップと、
    生成された通信時間に基づいて、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する時刻オフセット導出ステップと、
    生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正するステップと、
    発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力するステップと、
    を有し、
    時刻オフセット導出ステップが、
    マシン間通信時間生成ステップで生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、
    当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新するオフセット導出処理を行い、
    全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成することを特徴とするイベントトレースデータの時刻補正方法。
  5. コンピュータを、複数の計算機で実行されるイベント毎に生成されるイベントトレースデータに含まれるイベントの発生時刻を補正するイベントトレースデータの時刻補正手段として機能させるためのプログラムであって、
    各計算機で実行されるイベント毎に生成される全イベントトレースデータを入力し、各イベントデータが示す発生時刻順に出力するデータ入力手段、
    データ入力手段から出力される全イベントトレースデータ中から、各計算機間で送受信される通信に関するイベントデータである送信イベントと受信イベントを抽出し、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成するマシン間通信時間生成手段、
    マシン間通信時間生成手段で生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新するオフセット導出処理を行い、全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成して、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する時刻オフセット導出手段、
    生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正する時刻補正手段、
    発生時刻が補正された全イベントトレースデータを入力し、補正された発生時刻順に出力するデータ統合手段、として
    コンピュータを機能させるためのイベントトレースデータの時刻補正プログラム。
  6. 各計算機の内部時計に時刻差が存在する複数の計算機における時刻補正方法であって、
    各計算機間で送受信される通信に関するイベントデータである送受信イベントにおいて、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻を比較し、
    送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成し、
    生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新するオフセット導出処理を行い、全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成して、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成し、
    生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正することを特徴とする時刻補正方法。
  7. 各計算機の内部時計に時刻差が存在する複数の計算機における時刻補正装置であって、
    各計算機間で送受信される通信に関するイベントデータである送受信イベントにおいて、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻を比較する手段と、
    送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成する手段と、
    生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新するオフセット導出処理を行い、全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成して、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する手段と、
    生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正す手段と、
    を備えることを特徴とする時刻補正装置。
  8. コンピュータを、各計算機の内部時計に時刻差が存在する複数の計算機における時刻補正手段として機能させるためのプログラムであって、
    各計算機間で送受信される通信に関するイベントデータである送受信イベントにおいて、送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻を比較する手段、
    送信側の計算機と受信側の計算機で対応する送信イベントと受信イベントの発生時刻の差分に基づき、送受信イベントに係る各計算機間の通信時間を生成する手段、
    生成された通信時間中から最小マイナス値の通信時間を抽出してオフセット値として登録し、当該最小マイナス値に係る送受信イベントの送信側計算機の全通信時間に対して、当該計算機が送信側となる通信時間からオフセット値を減算するとともに、当該計算機が受信側となる通信時間にオフセット値を加算して、通信時間を更新するオフセット導出処理を行い、全通信時間中にマイナス値がなくなるまでオフセット導出処理を繰り返して、各計算機に対する時刻オフセット値を示す時刻オフセット表を作成して、各計算機のイベントデータに含まれる時刻データの時刻ずれを補正するための時刻オフセット値を、各計算機毎に生成する手段、
    生成された各計算機毎のオフセット値に基づき、当該オフセット値に対応する計算機に係る全イベントトレースデータに含まれるイベントの発生時刻を補正する手段、として
    コンピュータを機能させるための時刻補正プログラム。
JP2004045966A 2004-02-23 2004-02-23 イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム Expired - Fee Related JP4347082B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004045966A JP4347082B2 (ja) 2004-02-23 2004-02-23 イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
US11/062,930 US7594146B2 (en) 2004-02-23 2005-02-23 Apparatus, method, and program for correcting time of event trace data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004045966A JP4347082B2 (ja) 2004-02-23 2004-02-23 イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム

Publications (2)

Publication Number Publication Date
JP2005235054A JP2005235054A (ja) 2005-09-02
JP4347082B2 true JP4347082B2 (ja) 2009-10-21

Family

ID=34879423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004045966A Expired - Fee Related JP4347082B2 (ja) 2004-02-23 2004-02-23 イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム

Country Status (2)

Country Link
US (1) US7594146B2 (ja)
JP (1) JP4347082B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11296927B2 (en) 2020-03-19 2022-04-05 Hitachi, Ltd. Apparatus for integrating log, system for integrating log, and method for integrating log

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4479660B2 (ja) 2006-01-11 2010-06-09 日本電気株式会社 クロック・スキュー補正システム、クロック・スキュー補正方法およびクロック・スキュー補正用プログラム
US8307120B2 (en) 2006-03-07 2012-11-06 Nec Corporation Resource information managing device, system, method, and program
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8341604B2 (en) 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8370806B2 (en) * 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
JP4804408B2 (ja) * 2007-04-17 2011-11-02 株式会社日立製作所 ログ解析方法及び装置
JP5440935B2 (ja) * 2008-02-22 2014-03-12 日本電気株式会社 Itシステムの挙動測定・解析システム、およびその方法
WO2010038459A1 (ja) * 2008-10-03 2010-04-08 日本電気株式会社 マルチプロセッサのカウント値補正装置及びこれを備えるマルチプロセッサ
JP5751336B2 (ja) * 2011-10-18 2015-07-22 富士通株式会社 情報処理装置、時刻補正値決定方法、およびプログラム
WO2013094032A1 (ja) * 2011-12-21 2013-06-27 富士通株式会社 情報処理装置、情報処理方法、およびプログラム
US9430501B1 (en) * 2012-12-31 2016-08-30 Emc Corporation Time sanitization of network logs from a geographically distributed computer system
US9645870B2 (en) * 2013-06-27 2017-05-09 Atmel Corporation System for debugging DMA system data transfer
US9256399B2 (en) 2013-06-27 2016-02-09 Atmel Corporation Breaking program execution on events
US9830245B2 (en) 2013-06-27 2017-11-28 Atmel Corporation Tracing events in an autonomous event system
JP2015035158A (ja) * 2013-08-09 2015-02-19 ルネサスエレクトロニクス株式会社 データ処理システム
CN105683923A (zh) * 2013-08-29 2016-06-15 莫达测有限公司 检测***
US10171635B2 (en) 2013-12-04 2019-01-01 Cloudera, Inc. Ensuring properly ordered events in a distributed computing environment
WO2016137481A1 (en) * 2015-02-27 2016-09-01 Hewlett Packard Enterprise Development Lp Application event tracing
US10216612B1 (en) * 2016-07-01 2019-02-26 Fundi Software Pty Ltd System and method for accessing server information
JP2018138898A (ja) * 2017-02-24 2018-09-06 富士通株式会社 情報管理システム、時刻情報補正方法及び時刻情報補正プログラム
JP6951172B2 (ja) * 2017-09-20 2021-10-20 株式会社東芝 無線通信システム、通信装置及びデータ統合方法
FR3071688B1 (fr) * 2017-09-22 2019-09-27 Thales Procede de syncronisation d'un ensemble de dispositifs, programme d'ordinateur et systeme de syncronisation associes
CN110908864B (zh) * 2019-11-11 2024-05-10 腾讯科技(深圳)有限公司 一种设备卡顿的处理方法、装置、设备和介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62232055A (ja) 1986-04-02 1987-10-12 Hitachi Ltd イベントトレ−スデ−タ作成方法
GB2271251B (en) * 1992-10-01 1996-08-14 Digital Equipment Int Timer synchronisation system
US5471631A (en) * 1992-10-19 1995-11-28 International Business Machines Corporation Using time stamps to correlate data processing event times in connected data processing units
US5729742A (en) * 1995-02-27 1998-03-17 International Business Machines Corporation System and method for enabling multiple computer systems to share a single sequential log
US5896524A (en) * 1997-02-06 1999-04-20 Digital Equipment Corporation Off-line clock synchronization for multiprocessor event traces
US6125368A (en) * 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
JP3778652B2 (ja) * 1997-04-18 2006-05-24 株式会社日立製作所 ログデータ収集管理方法及びその装置
US5964846A (en) * 1997-07-07 1999-10-12 International Business Machines Corporation System and method for mapping processor clock values in a multiprocessor system
US6199169B1 (en) * 1998-03-31 2001-03-06 Compaq Computer Corporation System and method for synchronizing time across a computer cluster
JP3139459B2 (ja) 1998-06-22 2001-02-26 日本電気株式会社 並列分散システムのデバッグ装置及びデバッグ方法
JP2000348007A (ja) 1999-06-03 2000-12-15 Nec Corp マルチプロセッサシステムのための動作トレース時刻同期方式およびその方法
US7035246B2 (en) * 2001-03-13 2006-04-25 Pulse-Link, Inc. Maintaining a global time reference among a group of networked devices
US20020174109A1 (en) * 2001-05-16 2002-11-21 Chandy Kanianthra Mani Event detection with concurrent data updates
US6993695B2 (en) * 2001-06-06 2006-01-31 Agilent Technologies, Inc. Method and apparatus for testing digital devices using transition timestamps
JP2003157185A (ja) 2001-11-19 2003-05-30 Nec Corp 計算機の動作の解析・表示装置とその解析・表示方法及びコンピュータプログラム
US7114091B2 (en) * 2002-03-18 2006-09-26 National Instruments Corporation Synchronization of distributed systems
JP2004005198A (ja) 2002-05-31 2004-01-08 Nec Corp 計算機動作の分析表示方法および測定分析表示装置
GB2392588A (en) * 2002-08-24 2004-03-03 Zarlink Semiconductor Ltd Adaptive TDM clock recovery using timestamps
US7072912B1 (en) * 2002-11-12 2006-07-04 Microsoft Corporation Identifying a common point in time across multiple logs
JP4172032B2 (ja) * 2002-12-13 2008-10-29 リサーチ イン モーション リミテッド モバイル通信装置にsmsメッセージタイムスタンプフォーマッティングにおける一貫性を提供する方法および装置
US7058837B2 (en) * 2003-05-12 2006-06-06 International Business Machines Corporation Method and system for providing a message-time-ordering facility
US7069176B2 (en) * 2003-08-07 2006-06-27 Arm Limited Trace source correlation in a data processing apparatus
US7340630B2 (en) * 2003-08-08 2008-03-04 Hewlett-Packard Development Company, L.P. Multiprocessor system with interactive synchronization of local clocks
US7251748B2 (en) * 2003-09-12 2007-07-31 Sun Microsystems, Inc. System and method for determining a global ordering of events using timestamps
US20050132246A1 (en) * 2003-12-01 2005-06-16 Halliburton Energy Services, Inc. Method and system for adjusting time settings
US7500152B2 (en) * 2003-12-05 2009-03-03 Freescale Semiconductor, Inc. Apparatus and method for time ordering events in a system having multiple time domains
US7702909B2 (en) * 2003-12-22 2010-04-20 Klimenty Vainstein Method and system for validating timestamps
US7154862B2 (en) * 2003-12-31 2006-12-26 Openpeak Inc. Device control system, method, and apparatus for server-based or peer-to-peer network environments

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11296927B2 (en) 2020-03-19 2022-04-05 Hitachi, Ltd. Apparatus for integrating log, system for integrating log, and method for integrating log

Also Published As

Publication number Publication date
JP2005235054A (ja) 2005-09-02
US7594146B2 (en) 2009-09-22
US20050193277A1 (en) 2005-09-01

Similar Documents

Publication Publication Date Title
JP4347082B2 (ja) イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム
US9419804B2 (en) Data authenticity assurance method, management computer, and storage medium
US7688865B2 (en) Method and system for clock skew and offset estimation
US7865760B2 (en) Use of T4 timestamps to calculate clock offset and skew
US7822072B2 (en) Clock filter dispersion
JP7098007B2 (ja) データベースのための遠隔データ同期方法及び装置
KR20150096312A (ko) 클라우드 동기화 시스템용 텔레메트리 시스템
CN110347746A (zh) 一种异构数据库同步数据一致性校验方法及装置
CN111596721B (zh) 一种数据时间标签的同步方法及设备
CN104238819A (zh) 移动终端中显示屏状态的检测方法及***
CN114491656A (zh) 区块链网络中的方法和设备
CN111555860A (zh) 一种区块链节点共识方法、装置、电子设备及存储介质
JP3791921B2 (ja) ネットワーク・トレースを解析する方法、ネットワーク・トレースを解析するための処理装置、および該処理装置としてコンピュータを制御させるためのコンピュータ実行可能なプログラム、並びにネットワークにおけるノード間の時間差補正方法
JP5093099B2 (ja) 資源情報管理装置、システム、方法、及びプログラム
KR102648498B1 (ko) 블록체인 기반 센서 데이터 제공 장치 및 방법
CN111464254A (zh) 一种时钟同步方法、装置及电子设备
CN113055113A (zh) 时钟时间同步方法、装置、设备和存储介质
JP2007072585A (ja) 情報処理装置、時刻情報処理装置、情報処理方法、及び時刻情報処理方法
US7546384B1 (en) Maintaining relative time stamps when transferring files across network
WO2021166528A1 (ja) 不正検証装置、および、不正検知システム
CN109286461B (zh) 用于匹配在检测传感器数据时的时间戳的方法
CN109981521B (zh) 报文关联方法、报文关联装置及报文关联***
JP6572136B2 (ja) 通信システム、通信装置、第二装置、通信方法及びコンピュータプログラム
CN117319517B (zh) 一种基于多协议的供水设备数据整合和转发方法
JP7393047B2 (ja) 不正検証装置、および、不正検知システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090522

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Ref document number: 4347082

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees