pga_aggregate_target mistery

Начиная с версии 9i свято верил, что pga_aggregate_target был сделан для того,
чтобы не уводить систему в swap, когда выставили слишком большое число sort_area_size.
Вроде бы Oracle не должен захватывать памяти, больше чем pga_aggregate_target.
И действительно, в 9i такого не встречалось.

Однако в 10.1 при выставленных 6 Gb памяти, Oracle спокойно отъедает 12gb !!!
Читаем документацию
"
total PGA allocated: This gives the current amount of PGA memory allocated by the instance. Oracle tries to keep this number less than the value of PGA_AGGREGATE_TARGET. However, it is possible for the PGA allocated to exceed that value by a small percentage and for a short period of time, when the work area workload is increasing very rapidly or when the initialization parameter PGA_AGGREGATE_TARGET is set to a too small value.
"
Ни фига себе "small percentage", в 2 раза !

В statspack видим

"warning: pga_aggregate_target was set too low for current workload, as this value was exceeded during this interval"

Оказывается, это сообщение появляется если за наблюдаемый период over allocation count из v$pgastat был > 0.

Ну а раз так, отхватим еще памяти.

Правда если посмотреть в PGA Memory Advisory, то 99.99% проходов уложились в Optimal Executions.
Типа со стороны Oracle все нормально, а то что это в swap'е это никого не волнует.

Выводы:
1. Oracle молодец, быстро успевает захватывать доп. память.
2. Бороться с этим эффектом похоже бесполезно, документация советует
"
If over-allocation occurs, you should increase the value of PGA_AGGREGATE_TARGET using the information provided by the advice view V$PGA_TARGET_ADVICE
"

Возможно (это догадка), что дело опять в параметрах _smm_max_size (_pga_max_size)
Don Burleson, ссылаясь на чужую статью
http://www.dba-oracle.com/oracle_news/2005_12_19_10g_release_changes.htm

Рассказывает что в 10gR2 поменяли внутренние лимиты на _smm_max_size.
Возможно эта работа началась еще в 10gR1.

И значит, если нет доп. памяти, увидев, что PGA растет такими темпами, есть активность swap,
надо зажимать _smm_max_size.

Комментариев нет:

Отправить комментарий