могли бы воспользоваться вашей помощью в понимании этого. Я использую экземпляр MySQL RDS (db.m3.large на SSD) с объемом памяти 100 ГБ.
Меня немного пугает то, что у меня там 50% памяти:
диаграмма http://f.cl.ly/items/2130242A0K040E392h0L/10.png
Я, должно быть, делаю что-то не так, потому что на данный момент сервер совсем не используется. Вот график за последние 2 недели:
График использования за 2 недели http://f.cl.ly/items/2y411W0z0I1V1T0T3O3T/11.png
Как видите, загрузка ЦП в основном составляет 0%, количество подключений к БД низкое, операций записи / чтения тоже мало.
Я запускаю все таблицы InnoDB. Единственное, что приходит в голову (это могло бы так увеличить объем памяти), это моя функция аналитики. У меня есть одна таблица (сегментированная), в которой хранится ежедневная сводка аналитических вычислений. В этой таблице 4 mediumtext
полей, поэтому я изменил InnoDB, чтобы использовать формат файла Barracuda для этой таблицы (таким образом я могу row_format=compressed
). Это единственный параметр БД, который не используется по умолчанию для этого экземпляра (все остальное - из коробки).
У меня даже не так много строк в этой таблице, а самая большая строка на данный момент имеет максимальный размер 35 КБ. Для самого большого клиента 56 строк (клиентов у меня тоже немного). Поэтому для меня удивительно, что это может быть причиной этого ...
Не могли бы вы дать мне какое-нибудь представление о том, почему моя память может быть такой высокой (то есть, что я напортачил)? Это потому, что MySQL кэширует мои аналитические запросы / результаты? Или что-то еще?
Ваш намек на то, что происходит, находится в таблице «Свободная память». Если бы ваша база данных содержала много табличных и индексных данных в памяти процесса, это число было бы намного меньше, чем оно есть. В нынешнем виде Freeable почти такой же большой, как Total.
Работает так, как задумано, здесь не на что смотреть. Установите PANIC = FALSE.