依頼を受けてとあるシステムのパフォーマンス・チューニング中なのですが、statspackレポートのtop 5イベントの中に、ちょっと見慣れない待機イベントがありました。
環境は以下の通りです。
名前からしてPGAの制限に近くなると発生する待機だとわかりますが、このDBのpga_aggregate_targetには3000Mが設定されており、pga_aggregate_limitは自動導出で6000Mになっています。
一方、実際に使用されているPGAは多くとも1GB程度なので、PGAの制限には程遠い数字です。
MOS(My Oracle Support)で調べたところ、以下の不具合を見つけました。
「Acknowledge Over PGA Limit」は 12.1 の PGA_AGGREGATE_LIMIT で導入された新しい待機イベントで、インスタンスがこの制限に近づいている場合に、プロセスの PGA 取得が待機します。
割り当てられた PGA が PGA_AGGREGATE_LIMIT に近い場合、これは想定された動作ですが、 PGA の割当てが PGA_AGGREGATE_LIMIT に満たない場合にも、この待機イベントが発生する可能性があります。
このシステムの場合、DB時間の1.3%から12.4%を占めており、1時間ごとに取得したstatspackレポート約460のうち、100のレポートでtop 5 入りしています。
ですので多発という程ではありませんが、無視するにはやや多いという感じです。
回避策は以下の通りです。
1. PGA_AGGREGATE_LIMIT=0 を設定する
または
2. Patch:24416451 を適用
PGA_AGGREGATE_LIMIT=0(無制限) を設定するだけで済むならパッチを適用するまでもないので、PGA_AGGREGATE_LIMIT=0 を設定する事にしました。