SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.01.2009 14:10:58

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

MySQL съедает всю память

Помогите, пожалуйста, разобраться с такой проблемой.
Есть сервер под FreeBSD, на нем запущена MySQL 5. На другом компьютере есть сайт, который работает с MySQL. И еще пару программ, которые тоже обращаются к MySQL. Проблема состоит в том, что за сутки работы сервера, MySQL забирает под себя всю оперативную память и начинает использовать swap. Команда top выдает такие данные на MySQL:
size: 695M
res: 231M
command: mysqld

ps -al такие
vsz: 674884
rss: 236668

Объясните, пожалуйста, почему так получается, и с какой стороны подойти к решению этой проблемы?
Заранее спасибо

Неактивен

 

#2 29.01.2009 19:07:40

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: MySQL съедает всю память

Попробуйте подкрутить значения key_buffer_size / innodb_buffer_pool (если InnoDB) в сторону уменьшения.

Неактивен

 

#3 30.01.2009 12:38:10

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Re: MySQL съедает всю память

Спасибо.
Уменьшил innodb_buffer_pool с 500М до 100М и MySQL держится в пределах памяти. Пока что...

Неактивен

 

#4 31.01.2009 13:01:49

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Re: MySQL съедает всю память

Но теперь, что-то другое забирает всю память. Команда top дает такие результаты:
Active: 178M
Inact: 489M
Wired: 164M
Chache: 42M
Buf: 108M
Free: 88M
При этом Free неуклонно падает (после перезагрузки было 230), а Inact постоянно растет.
Насколько я понял Inact - это объем кэшированных данных, к которым давно не обращались. Так значит, уменьшив его, можно освободить память. Правильно ли я понимаю? Если да - то как его уменьшать?

Неактивен

 

#5 31.01.2009 16:06:34

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: MySQL съедает всю память

А какие процессы потребляют память теперь? Buf и Cache это по сути еще 150 мегабайт свободной памяти, так как при необходимости они будут освобождены.

Неактивен

 

#6 31.01.2009 19:18:26

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Re: MySQL съедает всю память

Так вот никакие процессы память не потребляют. Точнее потребляют - но по чуть-чуть. В сумме они не превышают потребление памяти MySQL`ем. А он использует RES:155,  SIZE:221

Неактивен

 

#7 02.02.2009 20:42:02

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: MySQL съедает всю память

Подозреваю, что память перекочевывает в файловый кэш. Это правильно и хорошо. Переживать
по этому поводу не стоит smile Вот, например, у меня на локальной машинке

aquatica:~$ free
             total       used       free     shared    buffers     cached
Mem:       3080256    2936084     144172          0     138656    1654932
-/+ buffers/cache:    1142496    1937760
Swap:      2923820       4588    2919232



Кажется, что заняты все 3 гигабайта, но на самом деле 1.8 из них свободны - 140 мегабайт
не заняты и 1.6 гигабайта в файловом кэше.

Неактивен

 

#8 11.02.2009 15:15:20

DrewBlin
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Re: MySQL съедает всю память

Всем большое спасибо за объяснения.

Разобрался. Все работает

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson