14 エンドツーエンド・パフォーマンスのモニタリング
この章の内容は次のとおりです。
このデモではスタンドアロン版のRUEIを使用します。
トラブルシューティング: 事例
このデモンストレーションは、分散アプリケーションのすべての機能層を対象としています。画面は部分的にのみ表示されます。
ユーザー操作性の調査
調査は、全体的なユーザー操作性を確認するための最初の場所であるRUEIダッシュボードから開始します。
「ユーザーID別上位使用量」パネルを見ると、ユーザーのHaroldとEdwardで、エラー・ページ表示の割合が非常に高いことがわかります。

この状況をさらに詳細に把握するために、右上隅にあるキューブ型のアイコンをクリックして、ブラウザ・データを表示することにします。
ブラウザ・データ表示からユーザーとユーザー診断を選択し、そのユーザーのセッション診断を取得します。ユーザー診断の指定時には、特定のアプリケーション(例ではToycoアプリケーション)でフィルタリングします。

次に、指定した期間についてユーザーのセッション情報を検索します。結果は「セッション診断」ペインに表示されます。

グリッド・ビューにリストされたセッションの1つを選択し、セッションの詳細を調べます。情報は「セッション・アクティビティ」ペインに表示されます。

ロード時間の1つが突出しており、エラーも出ていることがわかります。
ユーザーがそうしたように、「情報」列のページ・アイコンをクリックして、ページを表示します。次のように表示されます。実際に、ページの下部に「Purchase failed」というエラー・メッセージが表示されています。

ユーザー・ビューのこのエラー・メッセージは、これが機能エラーであることを示唆しています。
診断トランザクションの調査
問題のありそうなアプリケーションを選択し、コンテキスト・メニューから「トランザクションの診断」を選択すると、インスタンス・インスペクタ・ビューが表示されます。

赤の稲妻アイコンは、失敗しているサービスを示しています。
データベースへの呼出しが要因であると疑われるため、メッセージの内容を調べると、問題がメッセージ・レスポンスの中にあることが示唆されています。

XML表示を選択すると、Javaスタックのトレースの中から次のフォルト文字列が見つかります。

「Java仮想マシン診断」ページまでドリル・ダウンする必要があります。
トランザクション・グラフに戻り、問題のある操作を右クリックしてJVMDビューを表示します。
マシン・レベル情報の調査
「JVMD」ビューの「状態別のアクティブ・スレッド」グラフを確認すると、データベースに問題があるようです。

同じページにある「スレッドの状態遷移」表示を見ると、たくさんのスレッドがスタック状態になっていることがわかります。

これは進行中の問題であることがわかったため、「ライブ・スレッド分析」ボタンを選択して詳細情報を取得することにします。
「ライブ・スレッド分析」表示を見ると、10のスレッドがデータベース待機中で、そのうち3つがロックされています。

「状態」(「DB待機」)リンクを選択すると、データベースまでドリル・ダウンできます。このページにはSQLの詳細が表示されます。

この表示は、問題がデータベース・アクセスにあるという疑念を裏付けています。
これで、トラブルシューティングのセッションは終了です。ここでは、ユーザー層からバックエンドのサポート・サービス、そして基盤となるインフラストラクチャまで、分散アプリケーション・パフォーマンスのあらゆる層にわたって取り上げてきました。
質問と解答
エンドツーエンド・モニタリングに対する理解度をテストする、次の質問に答えてみましょう。
問題がアプリケーションにある場合
次の障害はユーザー操作性か、バックエンド・サービスのいずれかに関連しています。
-
ユーザーがタスクを完了できているか。
RUEIでユーザー・フローの統計を調べます。
-
メモリー・リークがないか。
一定時間についてのJVMDのヒープ分析情報を調べます。
-
範囲外の値を受け取っていないか。
RUEIに対して定義されたSLAベースのアラートを確認してください。
問題がデプロイメント・アーキテクチャにある場合
-
サービスの複製とロードバランシングは必要か。
トランザクション・リンクのスループット値が高いかどうか、チェックします。高い値はボトルネックを示す場合があります。
-
フェイルオーバー・スキームは必要か。
Enterprise Managerの「ビジネス・アプリケーション」ページまたはビジネス・アプリケーションのホーム・ページを使用して、頻繁に利用できなくなるサーバーがあるかどうか調べます。
問題がサポート・インフラストラクチャにある場合
-
サーバーがダウンしたり、速度が低下していないか。
Enterprise Managerの「ビジネス・アプリケーション」ページまたはビジネス・アプリケーションのホーム・ページを使用して、頻繁に利用できなくなるサーバーがあるかどうか調べます。
-
スレッドのロックにより、サービスが失敗していないか。
Enterprise Managerの「JVM診断」ページを使用して、実行中のスレッドに関する情報を取得します。
-
ネットワークが遅くなっていないか。
Enterprise Managerの「JVM診断」ページでNetworkWait情報を調べます。
-
ルーターのいずれかがダウンしていないか。
Enterprise Managerのシステムの定義にルーターを含めてある場合は、ルーターに関する情報をEnterprise Managerで取得できます。