Недавно я заметил, что объем свободной памяти в моем Amazon RDS (экземпляр db.m4.large) быстро уменьшается. За последние несколько недель он быстро снизился с почти 3700 МБ до 1000 МБ. Впрочем, с приложениями проблем не было. Загрузка моего процессора также стабильно низкая - где-то около 7% все время.
Что я могу сделать, чтобы очистить память? Обеспокоен, если он пойдет с такой скоростью, в ближайшие дни у него может закончиться память.
Тенденция к снижению минимума FreeabkeMemory не настораживает. Это означает, что процесс базы данных запрашивает память у ОС. Что касается того, почему база данных использует это, вам необходимо обратиться к документации поставщика вашего движка для измерения структур внутренней памяти и соотнести их с вашей рабочей нагрузкой. Очереди JOIN и ORDER BY всегда являются частыми потребителями памяти, поскольку им необходимо выделить буферы для рабочих таблиц. В зависимости от вашего движка или схемы, это также может привести к временному или долгосрочному использованию диска, о чем свидетельствуют минимальные потери FreeStorageSpace и скачки максимального количества операций ввода-вывода в операциях WriteIOP. Или даже внезапное изменение SwapUsage.
Если вы перезапустите экземпляр, вы увидите, что вся память, выделенная для процесса базы данных, освобождена, и минимальный размер FreeableMemory резко возрастет. Затем, опять же, показатель будет медленно снижаться.
В конечном итоге вы хотите, чтобы база данных выделяла память из ОС. Стоит исследовать внезапные изменения тенденций и уровня приложения (базы данных).
А если вам нужны дополнительные показатели ОС, вы всегда можете включить расширенный мониторинг: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html