2016年6月12日日曜日

Enterprise Managerでいろいろな期間のCPUグラフを表示させる方法

原文:Displaying CPU Graphs For Different Time Ranges in Enterprise Manager

このご質問は、ツイッター上で @matvarsh30 さんから寄せられたものです。いわく、「いろいろな期間のCPU使用状況をEnterprise Managerで表示させたいのですが、どうすればできますか?」
皆さん、トップアクティビティの画面はお気に入りですよね。でもこの機能は、ビューのカスタマイズ性ということになると限られていて、このユーザーもそこで行き詰まっていました。このデータを表示する方法はいくつもありますが、ここでは私のお気に入りの一つである機能、トップアクティビティ画面の代替として作られたASH分析に焦点を当てたいと思います。

ASH分析用にAWRデータを保持する


注:この手順によるCPUグラフの表示は、EM12cとEM13cで使用できます。ターゲットメニューの位置が違うこと以外は大きく変わっていません
(ASH分析の)デフォルトの表示期間は1時間です。ASH分析はAWRデータに依存していますから、過去8日間分の詳細な情報を得るのは難しくありませんが、管理対象データベース側の保存期間期間を適切に変更し、8日間ぶん以上のAWRを見たり分析したりできるようにしておくことは大切です。私の信条としては、もしDiagnostics PackとTuning Packを持っているのであれば、その価値を最大限引き出せるように保存期間をデフォルト値から伸ばすために次のコマンドをSQL*Plusから実行します(適切な権限を持ったユーザーで):
BEGIN
  DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
    retention => 86400,        -- 単位は分, 86400は60日
    interval  => 30);          -- 単位は分, 負荷テストなどをするときなどにデフォルト値60から変更します。(通常は)60分間隔で問題ありません
END;
/
これで、EMメトリックデータ(ロールアップあり)だけでなく、ASH分析に必要なAWRでもディープな分析やレポーティングができるようになります。
これを前提として、この質問にこたえるグラフを作ってみましょう。「データベースのCPU使用を1週間以上とか、10日、30日、60日といった形で表示するには?」

パワーユーザー向けのビューに切り替える

いずれかのデータベースに(EMから)ログインすると、「パフォーマンス」ドロップダウンメニューからASH分析にアクセスすることができます。11gかそれ以下のデータベースの場合、パッケージをインストールしてEMCC用のビューを作らないといけないかもしれません。でもこれはEnterprise Managerのパワフルな機能を活用するために必要なことです。ASH分析はデータベースのバージョンが10.2.0.4以上の場合に動作します。

ASH分析のページにはいると、1時間分のインスタンスのデータが表示されますが、これを1週間のビューに変えるには、「Week(週)」をクリックしてからビューを動かし、画面下部のグラフに1週間分のデータが表示されるようにするだけです:
ashan1

この例では「トップアクティビティ」と同じようなグラフを出していますが、一週間全体の表示をしているのと、「トップアクティビティ」でたまに困る情報のサマライズがされていないことがわかります。
ashan2
でもこのビューで終わりではありません。「アクティビティ」を選択した状態で、「Wait Class(待機クラス)」をクリックし、「Resource Consumption(リソース使用量)」、「Wait Event(待機イベント)」の順にクリックします (デフォルトは待機クラスです)
画面の右側を見るとわかるように凡例の表示がかぶってしまっており、これは修正される必要があります(ええ、ERを登録しておきますよ!)。でも幸運にも今回はCPUにフォーカスしており、CPUはEMでは緑で表示されていることはご存知ですよね!
ashan4
(訳注:その後、この凡例の問題は解決されているようです)
緑の部分をハイライトすると明るい黄色に変わります。この部分をマウスオーバーして、(ダブル)クリックして選択します。グラフが更新され、CPUが表示されるようになります:
ashan5
これで過去1週間にわたって、全体の待機クラスと比較したCPU使用量を表示することができました。左側の表にはこのアクティビティのパーセンテージ(訳注:実際には平均アクティブセッション数)が表示され、右下には上位ユーザーセッションも表示されています。またこのマシンの総コア数もわかり、CPUリソースがどれくらい使われているかがクリアにわかります
このデータを「ホワイトノイズ」無しでみたいと思う方もいるかもしれません。「Total Activity」のチェックボックスを外すとこの情報は消され、CPUのみが表示されます:
ashan6
CPUコアの表示も消すことができ、そうすると現在の使用状況に関する情報だけが表示されます
ashan7
コア情報まで消すと、CPUの使用パターンをクリアに見ることができますね。もう一度全ての待機クラスを表示させることもでき、その際CPUコアやトータルアクティビティの線は引き続き消えたままです。この凡例が重なってしまうのだけが玉に瑕です(このブラウザ表示上の不具合、困ったものです・・)ashan8
さて、質問にあったように、これをどうやって10日、30日、60日にするでしょうか?上の方の画面で気づいたと思いますが、この画面には時間、日、週、月、カスタムといったビューがあります。多くの月には31日ありますので、上記の3つ全てのリクエストに対してカスタムを選択するかもしれません。カスタムでの表示操作はとてもシンプルです:
ashan9
そう、表示させたい日時を入力してOKをクリックするだけ。下のビューですでに表示期間を最初から最後までに伸ばしている場合、本当にそのビューが保持されて全てのデータが表示されてるのか、なんて思わないでくださいね。ええ、全てのデータが表示されます。そしてそれはその期間中データベースがアクティブだったということです。🙂 私の選んだデータベースの場合、Oracleのテスト環境で、クリスマスから一月にかけてほとんどアクティビティがなかったんですね
ashan10
これが、Enterprise ManagerのASH分析でカスタムCPUアクティビティレポートを作る方法でした!

0 件のコメント:

コメントを投稿