第4章 Systemwalker for Oracleの監視デーモン/サービス
C.1 性能の監視
メモリやI/O、競合などデータベースの性能に関係する情報を監視する項目です。
性能の監視を行う項目には、以下があります。
監視項目
しきい値 mount状
態での 監視(*)
単位 設定可能範囲
■データベース バッファキャッシュ ヒット率
全体
データベースバッファキャッシュヒット率(%) 0 ~ 100 × DEFAULT
KEEP RECYCLE DEFAULT(2K) DEFAULT(4K) DEFAULT(8K) DEFAULT(16K) DEFAULT(32K)
■データディクショナリキャッシュミス率 データディクショナリキャッシュミス率(%) 0 ~ 100 ×
■ライブラリキャッシュミス率 ライブラリキャッシュミス率(%) 0 ~ 100 ○
■SGA内のメモリ空き状況 未使用メモリの割合(%) 0 ~ 100
× 未使用メモリ(byte) 0 ~ 2147483647
■COMMIT数 COMMIT数(回) 0 ~ 2147483647 ○
■SQL実行数 SQL実行数(回) 0 ~ 2147483647 ○
■ディスクREAD数 ディスクREAD数(回) 0 ~ 2147483647 ○
■ディスクWRITE数 ディスクWRITE数(回) 0 ~ 2147483647 ○
■ラッチ獲得ミス率 ラッチ獲得ミス率(%) 0 ~ 100 ○
■ロールバックセグメント獲得率 ロールバックセグメント獲得率(%) 0 ~ 100 ×
■REDO ログ・バッファの領域割り当て競合 監視
領域割り当て待機回数の割合(%) 0 ~ 100
○ 領域割り当て待機回数 0 ~ 2147483647
■書き込み可能なREDO ログ・グループの監
視 REDO ログ・グループ数 0 ~ 2147483647 ○
■UNDO セグメントの読み取り一貫性の監視 最大問い合わせ時間(sec:秒) 0 ~ 2147483647 ○
■1カーソル実行あたりの取得バッファ数 取得バッファ数 0 ~ 2147483647 ○
■要求キュー平均待機時間 要求キュー平均待機時間(msec:ミリ秒) 0 ~ 2147483647 ×
■共有サーバプロセスの使用率 共有サーバプロセスの使用率(%) 0 ~ 100 ○
■応答キュー平均待機時間 応答キュー平均待機時間(msec:ミリ秒) 0 ~ 2147483647 ×
■ディスパッチャプロセスの使用率 ディスパッチャプロセスの使用率(%) 0 ~ 100 ○ (*) ○:監視可能、×:監視不可
■データベースバッファキャッシュヒット率
ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
注意
「データベースバッファキャッシュヒット率」を監視する際の注意事項
・ 差分監視を行っているため、1回目の監視ではメッセージは通知されません。2回目の監視からメッセージが通知されます。
・ Oracleの仕様として、以下の処理を行うとヒット率が低下する場合があります。
- 表/索引の FULL SCAN
- analyze .. compute/estimate/validate
- dbms_stats
- update や delete(索引を使用しない場合)
上記の処理(特にanalyzeやdbms_stats)が集中する場合は、その処理の前後で状態監視機能を一時停止/再開することを推奨します
(ただし、この場合全ての状態監視機能が一時停止されます)。
・ バッファ・プールごとおよびマルチブロックサイズごとの監視では、Oracleのデータ・ディクショナリビュー(v$buffer_pool_statistics ビュー)を使用しています。このディクショナリ・ビューはOracle9.2.0.2以前のバージョンでは正確な値を取得できないことがあります ので、ヒット率の目安としてお考えください。
[監視方法]
データベースバッファキャッシュヒット率(全体)の監視は以下の方法で行います。
■Oracle8iの場合
(1)以下の3つの値をOracleから取得します。
db block gets (CURRENTブロック要求回数)・・・[a]
consistent gets (ブロックに対する読み取り一貫性要求回数)・・・[b]
physical reads - physical reads direct - physical reads direct(lob) (ディスクから読込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(少数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷([a]の差分+[b]の差分)))×100
■Oracle9iの場合
(1)以下の2つの値をOracleから取得します。
session logical reads(ブロックにアクセスする要求の総数)・・・[a]
physical reads-physical reads direct-physical reads direct(lob)(ディスクから読込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(少数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷[a]の差分))×100
■Oracle10g以降の場合
(1)以下の3つの値をOracleから取得します。
db block gets from cache (CURRENTブロック要求回数)・・・[a]
consistent gets from cache (ブロックに対する読み取り一貫性要求回数)・・・[b]
physical reads cache (ディスクから読込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(少数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷([a]の差分+[b]の差分)))×100
データベースバッファキャッシュヒット率(バッファ・プールごとおよびマルチブロックサイズごと)の監視は以下の方法で行いま す。
(1)以下の3つの値をOracleから取得します。
db block gets(CURRENTブロック要求回数)・・・[a]
consistent gets(ブロックに対する読み取り一貫性要求回数)・・・[b]
physical reads(ディスクから読込まれたブロック数)・・・[c]
(2)差分値を求めます。
各値の前回監視時からの増分値(前回と今回の差分値)をそれぞれ求めます。
(3)(2)で求めた結果を以下の計算式に当てはめて、バッファキャッシュヒット率を求めます(少数点以下切り上げ)。
バッファキャッシュヒット率(%) = (1-([c]の差分÷([a]の差分+[b]の差分)))×100
■データベースバッファキャッシュヒット率
(全体
)インスタンス全体で、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
[アクセスするディクショナリ・ビュー]
v$sysstat
[しきい値単位]
データベースバッファキャッシュヒット率(%)
[しきい値条件]
0 ~ 100 (%)
[しきい値設定]
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
[Oracle推奨しきい値]
一般的にはヒット率が90 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~89 %です。
[Systemwalker for Oracleデフォルトしきい値]
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 重要度
0 ~89 (%) 警告
[メッセージ]
FOR-01000 データベースバッファキャッシュヒット率(全体)がx%になりました。
[一般的な対処方法]
一般的に、バッファキャッシュヒット率が低く、全表スキャンを実行しないようにアプリケーションがチューニングされている場合は、
キャッシュのサイズを増やすことを検討してください。
■データベースバッファキャッシュヒット率(DEFAULT)
BUFFER_POOL句が明示的に指定されていないオブジェクトはDEFAULTバッファ・プールを使用します。このDEFAULTバッファ・
プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
[アクセスするディクショナリ・ビュー]
v$buffer_pool_statistics
[しきい値単位]
データベースバッファキャッシュヒット率(%)
[しきい値条件]
0 ~ 100 (%)
[しきい値設定]
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
[Oracle推奨しきい値]
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。この場合の推奨しきい値は 0 ~ 59 (%)です。
[Systemwalker for Oracleデフォルトしきい値]
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 重要度
0 ~ 59 (%) 警告
[メッセージ]
FOR-01018 データベースバッファキャッシュヒット率(DEFAULT)がx%になりました。
■データベースバッファキャッシュヒット率(KEEP)
KEEPバッファ・プールは、オブジェクトをメモリ上に維持することができ、物理I/Oをできるだけ抑止することができます。頻繁に使うオブ ジェクトがメモリ上に存在しているため、他のバッファ・プールより高いヒット率となることが予測されます。
このKEEPバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率 を監視します。
[アクセスするディクショナリ・ビュー]
v$buffer_pool_statistics
[しきい値単位]
データベースバッファキャッシュヒット率(%)
[しきい値条件]
0 ~100 (%)
[しきい値設定]
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
[Oracle推奨しきい値]
KEEP バッファ・プールのヒット率は、必ずしも100 %である必要はありませんが、一般的には99 %以上が目標とされています。
この場合の推奨しきい値は0 ~ 98 (%)です。
[Systemwalker for Oracleデフォルトしきい値]
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 重要度
0 ~ 98 (%) 警告
[メッセージ]
FOR-01019 データベースバッファキャッシュヒット率(KEEP)がx%になりました。
■データベースバッファキャッシュヒット率
(RECYCLE)RECYCLEバッファ・プールは、不要となったブロックを速やかにメモリ上から除外させることができます。このRECYCLEバッファ・プー
ルにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つかったデータブロック数の比率を監視します。
[アクセスするディクショナリ・ビュー]
v$buffer_pool_statistics
[しきい値単位]
データベースバッファキャッシュヒット率(%)
[しきい値条件]
0 ~ 100 (%)
[しきい値設定]
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
[Oracle推奨しきい値]
RECYCLE バッファ・プールは、メモリ上に維持する必要のないオブジェクトに対して使用するため、ヒット率は低くてもかまわないと されています。つまりヒット率が0 でもかまいません。
このため、推奨しきい値はありません。各環境において監視したい値の範囲をしきい値に設定してください。
[Systemwalker for Oracleデフォルトしきい値]
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 重要度
0 ~ 30 (%) 警告
[メッセージ]
FOR-01020 データベースバッファキャッシュヒット率(RECYCLE)がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(2K))
ブロックサイズが2Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つ かったデータブロック数の比率を監視します。
[アクセスするディクショナリ・ビュー]
v$buffer_pool_statistics
[しきい値単位]
データベースバッファキャッシュヒット率(%)
[しきい値条件]
0 ~ 100 (%)
[しきい値設定]
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
[Oracle推奨しきい値]
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59 (%)です。
[Systemwalker for Oracleデフォルトしきい値]
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 重要度
0 ~ 59 (%) 警告
[メッセージ]
FOR-01021 データベースバッファキャッシュヒット率(DEFAULT(2K))がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(4K))
ブロックサイズが4Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つ かったデータブロック数の比率を監視します。
[アクセスするディクショナリ・ビュー]
v$buffer_pool_statistics
[しきい値単位]
データベースバッファキャッシュヒット率(%)
[しきい値条件]
0 ~ 100 (%)
[しきい値設定]
各環境で監視したい値のヒット率の範囲(0 ~ n)をしきい値に設定してください。
[Oracle推奨しきい値]
一般的にはDEFAULTバッファ・プールのヒット率は60 ~ 70 %以上であれば問題ないとされています。
この場合の推奨しきい値は0 ~59 (%)です。
[Systemwalker for Oracleデフォルトしきい値]
Systemwalker for Oracleがデフォルト値とするしきい値は以下のとおりです。
しきい値条件 重要度
0 ~ 59 (%) 警告
[メッセージ]
FOR-01022 データベースバッファキャッシュヒット率(DEFAULT(4K))がx%になりました。
■データベースバッファキャッシュヒット率(DEFAULT(8K))
ブロックサイズが8Kの場合のDEFAULTバッファ・プールにおいて、ディスクから読み込んだデータブロック数に対するメモリ内で見つ かったデータブロック数の比率を監視します。
[アクセスするディクショナリ・ビュー]
v$buffer_pool_statistics