DB CACHE ADVICE

目次

概要

 

oracle9iからはSGA領域のサイズをオンライン状態に変えることができます。これDynamic SGA機能といいます。 このように変えることができるメモリ領域はShared Pool、Buffer Cache、Large Poolの三つです。 このうちBuffer Cacheサイズを調整したときの性能を予測するAdvisory機能をDB_CACHE_ADVICEパラメータを介して提供します。 DB_CACHE_ADVICE = ONの場合Buffer Cache Advisory機能がenableされ、V$DB_Cache_Adviceビューを介して内容を確認することができます。

詳細

 

パラメータ情報

 

Syntax   : DB_CACHE_ADVICE = {ON | READY | OFF}
Default  : OFF
設定方法  : ・Parameter File
      ・ALTER SYSTEM SET DB_CACHE_ADVICE= ON

説明

 

V $ DB_Cache_Advice Viewには、buffer cache別現在のサイズの10%から200%までの20個のサイズのsimulation情報を記録します。各サイズごとに既存のblock参照情報を利用して、予想される物理的な読み取り数を提供します。

 

Buffer Cache Advisory機能の使用は、次の2つのオーバーヘッドを起こします。

-Advisory機能はbuffer cache別bookkeepingのための非常にわずかなCPUオーバーヘッドが必要です。

-MEMORY:Advisory機能は、buffer blockあたりshared poolから約700 byte程度のメモリを割り当てます。

 

parameterはON、OFF、READY三つの値を持つことができますが、それぞれの状態の意味は次のとおりです。

-OFF:Advisory機能がdisableされ、CPUやMEMORYオーバーヘッドがない

-ON:Advisory機能がenableされ、CPUやMEMORYオーバーヘッドが発生

-READY:Advisory機能は、disableされるが、shared poolのメモリは割り当て

 

READYやON時はshared poolのContentionが発生するので、十分な空き容量を確認した後の作業を行います。 もちろんOverheadが発生することに注意しなければなりません。

Analysis Case

 

DB_CACHE_ADVICEパラメータ設定によるLatch待機現象

 

マックスゲージを介して問題が発生したインスタンスのCPU使用率を確認した結果、CPU使用率が24時間高く維持されており、特にUser CPUの使用率が高くなっています。

DB CACHE ADVICE-1

 

日中最も多く発生した待機イベントは、latch freeイベントです。(Idleイベントは除く) latch freeイベントはlatchを獲得していなかった場合、CPUを占有した状態で引き続きSpinでlatch獲得を試みて済み、CPU使用率の増加と関係があります。

DB CACHE ADVICE-2

 

session list機能を利用して、latch free待機イベントを検索した結果、simulator lru latchを待機するセッションが確認されます。

DB CACHE ADVICE-3

結論

 

V$ DB_CACHE_ADVICEビューには、バッファ・キャッシュ領域ごとに10%〜200%までの合計20個のサイズのSimulation情報を記録するために、情報を記録するためにsimulator lru latchを必要とします。

多数のセッションが接続して、I/O操作を実行するときに、バッファ・キャッシュのシミュレーション情報が変更されることがあり、このときに接続しているセッションは、simulator lru latchを待機することができます。latchは特性上、獲得するまで継続して、CPUを占有しながらスピンして獲得しようとするので、多数のセッションがlatch待機時のCPU使用率が増加します。

この機能を無効にするとsimulator latchの大気現象は解消され、CPU使用率も確保されるので、DB_CACHE_ADVICE= OFFを推奨します。

外部参照のメタリンクドキュメントを参照してください。

外部参照

 

1.DB_CACHE_ADVICE_Bug5918642
  

 
 
性能調査が加速する日本エクセムのMaxGauge