Назад | Перейти на главную страницу

Как я могу определить, сколько памяти требуется моему серверу MySQL?

У меня есть виртуальный сервер только для MySQL для нескольких приложений. Это сервер на 256 МБ. В настоящее время там почти нет данных, но free -m показывает полное использование памяти:

             total       used       free     shared    buffers     cached
Mem:           245        197         47          0         23        120
-/+ buffers/cache:         53        192
Swap:          511          2        509

Это на Ubuntu 10.04. Все настройки конфигурации по умолчанию IIRC - буфер ключей - 16, кеш запросов - 16. (мне может не хватать некоторых

Итак, мне кажется, что почти без данных и без специальных настроек для буферов я должен использовать значительно меньше 256. Является ли 256 нижней таблицей для того, что сегодня нужно ОС + MySQL?

Как сказал Джефф, цифры использования в Linux могут сбивать с толку. Linux автоматически сохранит копии файлов, к которым вы обращаетесь, в оперативной памяти. Если они вам снова понадобятся, получить к ним доступ будет быстрее, чем вернуться на диск. Если для запуска программ требуется больше ОЗУ, эти кэшированные элементы можно полностью выбросить. Это имеет смысл. К сожалению, free Команда показывает вам числа таким образом, что включает эти кешированные файлы и создает впечатление, что у вас почти закончилась оперативная память.

Вы действительно хотите больше смотреть на вторую строку, чем на первую. Это использование памяти без включенных данных буферов / кеша. В вашем случае это показывает, что вы используете 53 МБ, а свободно 192 МБ.


- Кристофер Карел

ОЗУ используется для хранения часто используемых битов в более быстром хранилище, чем на жестком диске. Крайний правый столбец в свободном состоянии сообщает вам, что половина вашей оперативной памяти используется для кеширования с жесткого диска.

Если вы не используете всю свою оперативную память, вы тратите ресурсы. Удаление кеша в ситуации нехватки памяти практически бесплатно, тогда как чтение с диска, если что-то не кэшировано, происходит на порядки медленнее.