ヒットマップトランザクションの検索
この文書では、WhaTapモニタリングサービスの、ヒットマップトランザクションメニューを使用してウェブアプリケーションサーバ(Web Application Server)の問題を特定し、トラブルに対応する方法を紹介します。
アプリケーションモニタリングマネージャーは、業務内容に応じて、さまざまな要因をモニタリングしたいと考えています。サーバー担当者はCPU、メモリ、ディスク、ネットワークなどのリソースをモニタリングし、リソースをどの程度使用しているかを確認する必要があります。DB担当者は、DBクエリのパフォーマンスを向上させるための指標を表示する必要があります。
一方、従来のモニタリング方法では、サービス(AP) 担当者は通常、(Heap)ヒープ使用量とCPU使用率を確認するだけです。しかし、この方法では、サービス(AP)の問題を特定することができません。サービス(AP)で最も重要なことは、ユーザーのリクエストに適切に応答するかどうか、どれだけ迅速に、エラーなく応答するかです。これらを把握するためには、ユーザーのリクエストが正しく満たされていることを確認するプロセスが必要です。ユーザーのリクエストの1つ1つをリクエストと呼び、このリクエストをサーバーで処理と応答するプロセスをトランザクション(Transaction)として定義されます。
WhaTapモニタリングサービスでは、トランザクションを「進行中のトランザクション」と「終了したトランザクション」に区分し、サービス(AP)のトラブル状況を把握することができます。アプリケーションダッシュボードメニューのヒットマップウィジェットでは、「終了した個々のトランザクション」を分布図形式のチャートで確認することができます。ヒットマップチャートは、5秒単位で終了したトランザクション情報を収集し、ポイント単位で表現するウィジェットです。このチャートから想定通りに1秒かかるトランザクションが想定とは異なり、2秒ほどかかる場合、つまり応答時間が2倍以上かかるトランザクションを見つけることで、トラブルの原因を分析できます。
パターン分析
分布図チャートの形状によってどのようなトラブルが発生したのかを確認する方 法について説明します。
ヒットマップトランザクションは、時間の経過とともにユーザーのリクエストに対応する応答時間を分布図の形式で表現するチャートです。アプリケーションダッシュボードでヒットマップウィジェットの右上のを選択すると、分析 > ヒットマップメニューで確認することができます。
横軸はトランザクションの終了時間、縦軸は応答時間です。トランザクションを終了した時間ごとにユーザのリクエスト(Request)に対する応答(Response) 時間をチャート上に四角形で表現します。これにより、ユーザーのリクエストに正常に応答したかどうかを把握できます。ヒットマップトランザクションチャートの四角いボックスの色は、次のような意味を持っています。
- 青色: 正常トランザクション
- オレンジ、赤色:エラーが発生したのか、応答リクエストが拒否されたのか、エラー頻度に応じて赤に近い色で表現されます。
このチャートで最も重要な点は、トランザクションボックスが縦または横に並んでいる状況です。次のヒットマップパターンを参照してください。
縦線が一時的に現れるパターンです。縦線が発生する場合は、トランザクションの応答時間は異なりますが、終了時間は同じであることを意味します。トランザクション処理中に一時的にロック(Lock)が発生すると、トランザクションの処理を待機します。(Lock)ロックが解除されると待機中のトランザクションは同じ時間に終了します。これにより、縦線が 作成されます。
横線が現れるパターンです。10秒のタイムアウト条件でそのリソースが不足すると、多くのトランザクションは10秒待機後にタイムアウトエラーが発生します。この時、ヒットマップの10秒後に横線が発生します。タイムアウト後に再試行するロジックがある場合は、上図のように横線が10秒単位で繰り返します。
波のように見えるフライングパターンは、特定のリソースやログなどの共通リソースが不足しているために間隔を置いて表示されるパターンです。
過負荷パターンは、全体または一部の応答に一時的に問題を引き落とすトランザクションが一度に密集するときに発生するパターンです。
暴走パターンは、大量のトランザクションのリクエストや負荷が発生した場合、応答時間が全体的に増加するパターンです。
パターンが発生した場合に、パターン の原因となっている要因がサーバーの内部にあるか外部あるかを特定することが重要です。次の図のような構造でシステムを設計したと仮定します。
チャート下の領域は、ほとんど応答時間が速いトランザクションであるため、パターンを探すことはそれほど意味がありません。上の領域の遅い区間で作成されたパターンの共通点を探すことが必要です。縦線パターンが発生した時、サービス(AP)でロック(Lock)が発生した場合、1つのウェブアプリケーションのみパターンが発生します。逆に、外部に接続されたDatabaseで(Lock)ロックが発生すると、すべてのウェブアプリケーションでパターンが発生します。
チャート領域をドラッグすると、ドラッグした領域のトランザクション情報を画面下のTXトレース一覧に読み込むことができます。右側のアプリケーションウィジェットは、エージェントをグループ化して一覧として表示します。
トラブルの原因に関する共通点を見つけることが目的です。まず、同じアプリケーションで問題が発生したかどうかを確認してください。次に、同じURLで問題が発生したかどうかを確認してください。また、クライアントIPが同じかどうかを確認することもできます。