|
|
システム・トラフィックの測定
一定の交通量がある道路では渋滞が起こるように、システムでも同様にボトルネックが発生します。実際の高速道路を走る車両数は、道路に渡されたケーブルによってカウントされます。つまり、このケーブルの上を車両が通過するたびに、カウンタの値が増加します。
これと同様に、サービスのトラフィックを測定することができます。たとえば、サーバの起動時 ( tpsvrinit() の呼び出し時) に、グローバル・カウンタを初期化して開始時間を記録することができます。以降、特定のサービスが呼び出されるたびにカウンタ値は増加します。tpsvrdone() 関数を呼び出してサーバをシャットダウンすると、最終カウンタ値と終了時間が記録されます。このメカニズムにより、一定期間に特定サービスのビジー状態がどの程度であるかを判断できます。
BEA Tuxedo システムでは、問題のあるデータ・フローのパターンが原因でボトルネックが生じます。ボトルネックを検出する最も早い方法は、関連するサービスに要する時間をクライアント側から測定することです。
システム・ボトルネックの検出方法
たとえば、クライアント 1 が結果を出力すると 4 秒かかるとします。time() を呼び出すと、サービス A に対する tpcall が動作を 3.7 秒遅らせていることがわかり、さらにサービス A を開始点と終了点で監視すると、その動作に 0.5 秒かかっています。tmadmin の pq コマンドを使用すると、キューがいっぱいであることがわかります。
一方、サービス A の実行に 3.2 秒かかるとします。サービス A の個々の部分はまとめて測定できます。サービス A がサービス B に対して tpcall を発行し、この動作に 2.8 秒かかっていることも考えられます。この場合、キュー時間またはメッセージ送信ブロッキング時間を分離できます。適切な時間を識別すると、アプリケーションはトラフィックの処理に戻されます。
time() を使用すると、次の項目の所要時間を測定できます。
UNIX プラットフォームにおけるボトルネックの検出
UNIX システムの sar(1) コマンドを使用すると、システムのボトルネックの検出に役立つ性能に関する情報が表示されます。sar(1) は、次の目的に使用できます。
次の表は、sar(1) コマンドのオプションの説明です。
注記 UNIX システムの中には、sar(1) コマンドの代わりに別のコマンドが用意されているものもあります。たとえば、BSD には iostat(1) コマンド、Sun には perfmeter(1) が用意されています。 Windows 2000 プラットフォームにおけるボトルネックの検出 Windows 2000 プラットフォームでは、パフォーマンス・モニタを使用して、システム情報を収集しボトルネックを検出します。パフォーマンス・モニタを開くには、[スタート] メニューから次の項目を選択します。 関連項目[スタート] -> [プログラム] -> [管理ツール] -> [パフォーマンス モニタ]
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|