Задавайте вопросы, мы ответим
Вы не зашли.
Помогите, пожалуйста, разобраться с такой проблемой.
Есть сервер под FreeBSD, на нем запущена MySQL 5. На другом компьютере есть сайт, который работает с MySQL. И еще пару программ, которые тоже обращаются к MySQL. Проблема состоит в том, что за сутки работы сервера, MySQL забирает под себя всю оперативную память и начинает использовать swap. Команда top выдает такие данные на MySQL:
size: 695M
res: 231M
command: mysqld
ps -al такие
vsz: 674884
rss: 236668
Объясните, пожалуйста, почему так получается, и с какой стороны подойти к решению этой проблемы?
Заранее спасибо
Неактивен
Попробуйте подкрутить значения key_buffer_size / innodb_buffer_pool (если InnoDB) в сторону уменьшения.
Неактивен
Спасибо.
Уменьшил innodb_buffer_pool с 500М до 100М и MySQL держится в пределах памяти. Пока что...
Неактивен
Но теперь, что-то другое забирает всю память. Команда top дает такие результаты:
Active: 178M
Inact: 489M
Wired: 164M
Chache: 42M
Buf: 108M
Free: 88M
При этом Free неуклонно падает (после перезагрузки было 230), а Inact постоянно растет.
Насколько я понял Inact - это объем кэшированных данных, к которым давно не обращались. Так значит, уменьшив его, можно освободить память. Правильно ли я понимаю? Если да - то как его уменьшать?
Неактивен
А какие процессы потребляют память теперь? Buf и Cache это по сути еще 150 мегабайт свободной памяти, так как при необходимости они будут освобождены.
Неактивен
Так вот никакие процессы память не потребляют. Точнее потребляют - но по чуть-чуть. В сумме они не превышают потребление памяти MySQL`ем. А он использует RES:155, SIZE:221
Неактивен
Подозреваю, что память перекочевывает в файловый кэш. Это правильно и хорошо. Переживать
по этому поводу не стоит Вот, например, у меня на локальной машинке
Неактивен
Всем большое спасибо за объяснения.
Разобрался. Все работает
Неактивен