@pixik

Как ограничить потребление памяти в Oracle db 11g EE?

Доброго времени!
На тестовом сервере (linux) почти 4 гига RAM, при запуске базы (Oracle Database 11g Enterprise Edition Release 11.2.0.4.0) занимается 1.2G. После очереди запросов (10-20к) остается около 40 мб свободной оперативы и сервер перестает отвечать. Подскажите куда копать, какие логи посмотреть, что подкрутить?
Можно как нибудь сделать так, чтобы лучше база отвечала медленнее, но не съедала всю возможную память на сервере?
  • Вопрос задан
  • 1325 просмотров
Пригласить эксперта
Ответы на вопрос 3
Lorien_Elf
@Lorien_Elf
Keep calm and drop database
При старте в алерт логе база пишет параметры не по умолчанию. Выложите их сюда. В первую очередь интересуют значения sga_target, pga_aggregate_target, memory_target, sga_max_size, memory_max_size.

Алер лог лежит где-то в /u01/app/oracle/diag/rdbms/db_name/db_name/trace/alrert_db-name.log
Ответ написан
Это для Oracle 9, но думаю разница не большая
RAM=4G: (если на сервере запущен один экземпляр)
SHARED_POOL_SIZE=512M
DB_CACHE_SIZE=2G
LARGE_POOL_SIZE=16M
PGA_AGGREGATE_TARGET=128M

Посмотреть значения параметров можно так:
select name, value/1024/1024||' Mb' from v$parameter where name in ('shared_pool_size', 'db_cache_size', 'large_pool_size', 'pga_aggregate_target');
Ответ написан
Комментировать
@andreev_aa
Если после запуска БД память остается, а исчезает после начала работы, значит ее съедают либо пользовательские сессии, тогда нужно смотреть в сторону уменьшения параметра pga_aggregate_target. Также при таком небольшом объеме памяти, сервер можно начать активно использовать swap раздел. В любом случае для анализа нужен алерт лог БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы