おらくるのいる生活

OracleのDBAとしての、障害対応やらパフォーマンス・チューニングやらの日々を綴っています

12.2で「Acknowledge Over PGA Limit」 待機イベントが発生する

依頼を受けてとあるシステムのパフォーマンス・チューニング中なのですが、statspackレポートのtop 5イベントの中に、ちょっと見慣れない待機イベントがありました。

環境は以下の通りです。

Oracle Database 12.2 Standard Edition
RHEL 7.6

名前からしPGAの制限に近くなると発生する待機だとわかりますが、このDBのpga_aggregate_targetには3000Mが設定されており、pga_aggregate_limitは自動導出で6000Mになっています。

一方、実際に使用されているPGAは多くとも1GB程度なので、PGAの制限には程遠い数字です。

 

MOS(My Oracle Support)で調べたところ、以下の不具合を見つけました。

PGA_AGGREGATE_LIMIT に達していないにも関わらず「Acknowledge Over PGA Limit」 待機イベントが多発する (ドキュメントID 2698033.1)

 

「Acknowledge Over PGA Limit」は 12.1 の PGA_AGGREGATE_LIMIT で導入された新しい待機イベントで、インスタンスがこの制限に近づいている場合に、プロセスの PGA 取得が待機します。
割り当てられた PGAPGA_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 を設定する事にしました。