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

Сервер Ubuntu 14.04 - Недостаточно памяти (убийца OOM) - что вызывает проблему / утечку памяти?

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

Использование памяти перед походом:

Wed Jun  3 08:50:01 EDT 2015                                                                                                                   
COMMAND         %MEM                                                                                                                           
tor             14.7
mysqld          11.8                                                                                                                           
spamd child      5.5                                                                                                                           
apache2          4.6                                                                                                                           
spamd child      4.5                                                                                                                           
apache2          4.4                                                                                                                           
apache2          4.4                                                                                                                           
apache2          4.2                                                                                                                           
apache2          4.2                                                                                                                           
apache2          3.3                                                                                                                           
Memory Space Details                                                                                                                           
Total Memory space : 1250 MB                                                                                                                   
Used Memory Space : 964 MB                                                                                                                     
Free Memory : 285 MB                                                                                                                           
Swap memory Details                                                                                                                            
Total Swap space : 255 MB                                                                                                                      
Used Swap Space : 81 MB                                                                                                                        
Free Swap : 174 MB 

Вот использование памяти перед вызовом OOM.

Wed Jun  3 09:10:02 EDT 2015                                                                                                                   
COMMAND         %MEM                                                                                                                           
tor             13.4
mysqld          11.2                                                                                                                           
spamd child      5.2                                                                                                                           
apache2          3.8                                                                                                                           
apache2          3.6                                                                                                                           
apache2          3.3                                                                                                                           
apache2          2.6                                                                                                                           
apache2          2.5                                                                                                                           
apache2          2.5                                                                                                                           
spamd child      2.4                                                                                                                           
Memory Space Details                                                                                                                           
Total Memory space : 1250 MB                                                                                                                   
Used Memory Space : 873 MB                                                                                                                     
Free Memory : 376 MB                                                                                                                           
Swap memory Details                                                                                                                            
Total Swap space : 255 MB                                                                                                                      
Used Swap Space : 178 MB                                                                                                                       
Free Swap : 77 MB  

Системный вызов OOM:

1 Time(s): /usr/sbin/spamd invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0

Процесс TOR убит.

После перезагрузки использование памяти падает, и система работает нормально в течение нескольких недель.

OMMAND         %MEM                                                                                                                           
tor             12.0                                                                                                                           
mysqld           7.8                                                                                                                           
/usr/sbin/spamd  6.2                                                                                                                           
spamd child      6.1                                                                                                                           
spamd child      6.1                                                                                                                           
apache2          4.4                                                                                                                           
apache2          2.9                                                                                                                           
apache2          2.9                                                                                                                           
apache2          2.5                                                                                                                           
apache2          2.0                                                                                                                           
Memory Space Details                                                                                                                           
Total Memory space : 1250 MB                                                                                                                   
Used Memory Space : 659 MB                                                                                                                     
Free Memory : 590 MB                                                                                                                           
Swap memory Details                                                                                                                            
Total Swap space : 255 MB                                                                                                                      
Used Swap Space : 0 MB                                                                                                                         
Free Swap : 255 MB 

Выход ядра: http://pastebin.com/rBvbFcyt

Откуда скачок памяти? Почему использование памяти постепенно увеличивается в течение 2 недель? Утечка памяти?

Из предоставленной информации трудно сказать, что вызывает скачок или постепенное увеличение.

Приведенные снимки показывают, что пользователи верхней памяти на самом деле ведут себя вполне нормально - их объем памяти составляет ниже во время кризиса памяти, прямо перед ударом OOM-убийцы. Это говорит о том, что некоторые ДРУГИЕ процессы на самом деле способствуют кризису (может быть, связаны с какой-то деятельностью пользователя, может быть, с некоторыми вещами cron, может быть, какое-то временное состояние внезапно длится намного дольше, чем обычно?).

К сожалению, убийца OOM недостаточно умен и слепо убивает пользовательский процесс верхней памяти - ИМХО довольно скучное решение для серверов с выделенными функциями.

Чтобы выявить процессы, вызывающие нехватку памяти, потребуется более подробный мониторинг. Я бы начал с периодических верхняя казни сбрасывают информацию о все процессы в файл, который можно будет изучить позже. Почему все процессы? Потому что внезапный всплеск или постепенное увеличение количества процессов (даже с небольшим объемом памяти каждый) также может потенциально объяснить изменения использования памяти, подобные тем, о которых вы сообщили.