Postgresql Aurora DB freeable_memory - PullRequest
       76

Postgresql Aurora DB freeable_memory

0 голосов
/ 24 января 2020

У меня вопрос по поводу свободной памяти для AWS Аврора Postgres.

Недавно мы хотели создать индекс для одной из наших баз данных, и база данных умерла и переключилась на подчиненную, что все работало нормально. Похоже, что свободная память была отброшена сконфигурированными 500 МБ файла maintenance_work_mem и, таким образом, ушла примерно на 800 МБ памяти - сразу после этого экземпляр 32 ГБ умер.

1) Мне интересно, является ли свободная память общая системная память, и если здесь недостаточно памяти, может вызвать системный убийца на экземпляре AWS Aurora? Таким образом, мы можем захотеть запланировать в более свободном пространстве оперативные задачи и выполнение заданий автоочистки, чтобы больше не сталкиваться с этой проблемой?

2) Фактическая работа по созданию индекса должна была бы использовать свободное локальное хранилище как Насколько я понял, размер индекса не должен был иметь значения, верно?

Заранее спасибо, Крис

1 Ответ

0 голосов
/ 05 февраля 2020

Относительно 1)

Свободная память из (https://forums.aws.amazon.com/thread.jspa?threadID=209720)

Свободная память включает в себя объем физической памяти, оставшийся неиспользованным системой, плюс общий объем буфера или кеш-памяти страниц, которые являются свободными и доступными.

Таким образом, это свободная память во всей системе. В то время как MySQL является основным потребителем памяти на хосте, у нас есть внутренние процессы в дополнение к ОС, которые используют небольшой объем дополнительной памяти.

Если вы видите свободную память около 0 или также запускаете видя использование свопинга, вам может потребоваться увеличить класс экземпляра или настроить параметры памяти MySQL. Например, уменьшение innodb_buffer_pool_size (по умолчанию установлено на 75% физической памяти) является одним из способов корректировки MySQL настроек памяти.

Это также означает, что если объем памяти становится низким, это может повлиять процесс в той или иной форме. В этой теме (https://forums.aws.amazon.com/thread.jspa?messageID=881320&#881320), например, было упомянуто, что это привело к перезапуску сервера mysql.

Относительно 2)

Это как описано в документации (https://aws.amazon.com/premiumsupport/knowledge-center/postgresql-aurora-storage-issue/), поэтому я думаю, что это правильно и размер не должен иметь значения.

Хранилище, используемое для временных данных и журналов (локальное хранилище). Все временные файлы БД (например, журналы и временные таблицы) хранятся в локальном хранилище экземпляра. Это включает в себя операции сортировки, хеш-таблицы и операции группировки, которые требуются запросами.

Каждый экземпляр Aurora содержит ограниченный объем локального хранилища, которое определяется классом экземпляра. Как правило, объем локального хранилища в два раза превышает объем памяти в экземпляре. Если вы выполняете операцию сортировки или создания индекса, которая требует больше памяти, чем доступно в вашем экземпляре, Aurora использует локальное хранилище для выполнения операции.

...