Oracle® Enterprise Manager Cloud Control Oracle Fusion Middlewareマネージメント・ガイド リリース12.1.0.8 B66835-11 |
|
前 |
次 |
この章では、前の各章で説明されたアプリケーション監視コンポーネントを使用して、ユーザー操作性低下の根本原因を特定する方法を実際に行っていきます。その後、エンドツーエンド監視に対する理解度をテストする一連の質問を行います。
この章の内容は次のとおりです。
この事例では、スタンドアロン・バージョンのRUEIおよびBTMを使用します。
次のサイトで、この章で説明される事例のライブ・デモンストレーションを見ることができます。
http://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:5781,1#prettyPhoto/0/
このデモンストレーションは、分散アプリケーションのすべての機能層を対象としています。画面は部分的にのみ表示されます。
ユーザー操作性の調査
調査は、全体的なユーザー操作性を確認するための最初の場所であるRUEIダッシュボードから開始します。
「ユーザーID別上位使用量」パネルを見ると、ユーザーのHaroldとEdwardで、エラー・ページ表示の割合が非常に高いことがわかります。
この状況をさらに詳細に把握するために、右上隅にあるキューブ型のアイコンをクリックして、ブラウザ・データを表示することにします。
ブラウザ・データ表示からユーザーとユーザー診断を選択し、そのユーザーのセッション診断を取得します。ユーザー診断の指定時には、特定のアプリケーション(例ではToycoアプリケーション)でフィルタリングします。
次に、指定した期間についてユーザーのセッション情報を検索します。結果は「セッション診断」ペインに表示されます。
グリッド・ビューにリストされたセッションの1つを選択し、セッションの詳細を調べます。情報は「セッション・アクティビティ」ペインに表示されます。
ロード時間の1つが突出しており、エラーも出ていることがわかります。
ユーザーがそうしたように、「情報」列のページ・アイコンをクリックして、ページを表示します。次のように表示されます。実際に、ページの下部に「Purchase failed」というエラー・メッセージが表示されています。
ユーザー・ビューのこのエラー・メッセージは、これが機能エラーであることを示唆しています。
ビジネス・トランザクションの調査
「セッション診断」に戻ると、ビジネス・トランザクション管理へドリルダウンして、この受注を完了できなかったバックエンドの操作のフローを表示できます。
問題のありそうなアプリケーションを選択し、コンテキスト・メニューから「トランザクションの診断」を選択すると、BTMのインスタンス・インスペクタ・ビューが表示されます。
赤の稲妻アイコンは、失敗しているサービスを示しています。
データベースへの呼出しが要因であると疑われるため、メッセージの内容を調べると、問題がメッセージ・レスポンスの中にあることが示唆されています。
XML表示を選択すると、Javaスタックのトレースの中から次のフォルト文字列が見つかります。
「Java仮想マシン診断」ページまでドリル・ダウンする必要があります。
トランザクション・グラフに戻り、問題のある操作を右クリックしてJVMDビューを表示します。
マシン・レベル情報の調査
「JVMD」ビューの「状態別のアクティブ・スレッド」グラフを確認すると、データベースに問題があるようです。
同じページにある「スレッドの状態遷移」表示を見ると、たくさんのスレッドがスタック状態になっていることがわかります。
これは進行中の問題であることがわかったため、「ライブ・スレッド分析」ボタンを選択して詳細情報を取得することにします。
「ライブ・スレッド分析」表示を見ると、10のスレッドがデータベース待機中で、そのうち3つがロックされています。
「状態」(「DB待機」)リンクを選択すると、データベースまでドリル・ダウンできます。これにより、SQL詳細が表示されます。
この表示は、問題がデータベース・アクセスにあるという疑念を裏付けています。
これで、トラブルシューティングのセッションは終了です。ここでは、ユーザー層からバックエンドのサポート・サービス、そして基盤となるインフラストラクチャまで、分散アプリケーション・パフォーマンスのあらゆる層にわたって取り上げてきました。
エンドツーエンド監視に対する理解度をテストする、次の質問に答えてみましょう。
問題がアプリケーションにある場合
次の障害はユーザー操作性か、バックエンド・サービスのいずれかに関連しています。
特に遅いサービスがないか。
BTMの「分析」タブを調べます。個々のリンクの平均レスポンス時間が高い値になっているものを調べます。
ユーザーがタスクを完了できているか。
RUEIでユーザー・フローの統計を調べます。
サービスに障害が発生していないか。
BTMで「ダッシュボード」ビューの「操作状態サマリー」を調べます。
メモリー・リークがないか。
一定時間についてのJVMDのヒープ分析情報を調べます。
範囲外の値を受け取っていないか。
RUEIおよびBTMに対して定義したSLAベースのアラートをチェックします。
サービスの通信に障害が発生していないか。(メッセージの消失)
BTMで、消失したメッセージの条件に関連したアラートをチェックします。
問題がデプロイメント・アーキテクチャにある場合
サービスの複製とロードバランシングは必要か。
トランザクション・リンクのスループット値が高いかどうか、チェックします。高い値はボトルネックを示す場合があります。
フェイルオーバー・スキームは必要か。
Enterprise Managerの「ビジネス・アプリケーション」ページまたはビジネス・アプリケーションのホーム・ページを使用して、頻繁に利用できなくなるサーバーがあるかどうか調べます。
問題がサポート・インフラストラクチャにある場合
サーバーがダウンしたり、速度が低下していないか。
Enterprise Managerの「ビジネス・アプリケーション」ページまたはビジネス・アプリケーションのホーム・ページを使用して、頻繁に利用できなくなるサーバーがあるかどうか調べます。
BTMで、「上位10件のサービス」ダッシュボードの「稼働中の問題」表をチェックします。次に「サービスからエンドポイントへ」ビューを調べて、サービスと関連付けられたサーバーのアドレスを見つけます。
スレッドのロックにより、サービスが失敗していないか。
Enterprise Managerの「JVM診断」ページを使用して、実行中のスレッドに関する情報を取得します。
ネットワークが遅くなっていないか。
Enterprise Managerの「JVM診断」ページでNetworkWait情報を調べます。
ルーターのいずれかがダウンしていないか。
Enterprise Managerのシステムの定義にルーターを含めてある場合は、ルーターに関する情報をEnterprise Managerで取得できます。