2016-01-06 2 views
4

В Amazon RDS (версия PostrgreSQL) я не совсем понимаю. Некоторые запросы требуют много времени, чтобы показать свои результаты. Я установил все соответствующие индексы (как показано с помощью EXPLAIN). Поэтому я думаю, что это не из-за моего дизайна схемы.Amazon RDS (PostgreSQL): Оптимизация использования памяти

Я не использую большую машину (m3.xlarge), поскольку более крупные из них слишком дороги. Размер моей базы данных составляет около 300 ГБ.

Кажется, что Postgres не использует всю доступную память (только ~ 5 ГБ, отчет «Свободная память» консоли показывает, что всегда есть ~ 10 ГБ бесплатно ...). Я пытаюсь настроить мою «группу параметров», как было предложено tune-your-postgres-rds-instance, особенно для EFFECTIVE_CACHE_SIZE, до 70%. Но это ничего не меняет.

Возможно, я где-то ошибаюсь ... Любая идея?

ответ

6

Чтобы сделать больше памяти доступной к вашим запросам, вы настроите свой work_mem. Есть последствия для этого, так как это память на бэкэнд.

Эффективный_cache_size фактически не имеет дело с памятью вообще. Это параметр оптимизатора.

«Свободная память» - это хорошо - это означает, что память используется в настоящее время (скорее всего) постгерами в кеше операционной системы.

Вы можете увеличить свой shared_buffers, чтобы позволить postgres использовать больше собственной памяти для кеширования, но есть пределы его эффективности, которые означают, что вы обычно не хотите использовать более 25% доступной памяти для этого.

+0

ОК, спасибо, я постараюсь сыграть с этими параметрами. – Adagyo

+0

Есть ли аналогичный ответ для сервера MS SQL? Я хочу оптимизировать использование памяти. В настоящее время использование памяти слишком велико. –