@gregorypetrov

Каждый день падает apache2 и mysql (под Debian) из-за Out of memory, куда копать?

Несколько сайтов работает на веб-сервере с Debian 7 Wheezy + LAMP.
В течение этой недели, каждый день наблюдаю такую картину - в произвольное время (иногда днем, иногда ночью) пропадает соединение сайтов с БД, в результате чего они становятся неработоспособными.

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

Поставил logswatch, в отчетах увидел, что "убиваются" процессы apache2 и mysql из-за нехватки памяти.

1 Time(s): Out of memory: Kill process 20879 (apache2) score 39 or sacrifice child
1 Time(s): Out of memory: Kill process 20882 (apache2) score 35 or sacrifice child
1 Time(s): Out of memory: Kill process 20897 (apache2) score 35 or sacrifice child
1 Time(s): Out of memory: Kill process 20898 (apache2) score 36 or sacrifice child
1 Time(s): Out of memory: Kill process 20899 (apache2) score 36 or sacrifice child
1 Time(s): Out of memory: Kill process 20901 (apache2) score 35 or sacrifice child
1 Time(s): Out of memory: Kill process 2605 (mysqld) score 36 or sacrifice child 


1 Time(s): Killed process 20879 (apache2) total-vm:125048kB, anon-rss:81644kB, file-rss:0kB
1 Time(s): Killed process 20882 (apache2) total-vm:118400kB, anon-rss:72496kB, file-rss:56kB
1 Time(s): Killed process 20897 (apache2) total-vm:118256kB, anon-rss:73512kB, file-rss:276kB
1 Time(s): Killed process 20898 (apache2) total-vm:120304kB, anon-rss:74688kB, file-rss:20kB
1 Time(s): Killed process 20899 (apache2) total-vm:121328kB, anon-rss:75776kB, file-rss:4kB
1 Time(s): Killed process 20901 (apache2) total-vm:119536kB, anon-rss:73292kB, file-rss:0kB
1 Time(s): Killed process 2605 (mysqld) total-vm:348892kB, anon-rss:76160kB, file-rss:0kB


Логи mysql почему-то пустые.

В каком конкретно направлении копать, чтобы выяснить, что именно так забивает память, что вышибает веб-сервер и СУБД? Есть какие-нибудь инструменты, чтобы отследить источник такой нагрузки "задним числом"?
  • Вопрос задан
  • 1900 просмотров
Пригласить эксперта
Ответы на вопрос 4
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Ваши процессы прибивает OOM Killer - в связи с не хваткой ресурсов ОЗУ и SWAP.
Необходимо произвести настройку MySQL в соответствии с имеющимися ресурсами а также Apache посадить на диету. В принципе подумать об избавления от апача вовсе и заменить на Nginx.

Есть какие-нибудь инструменты, чтобы отследить источник такой нагрузки "задним числом"?

Любой мониторинг - Zabbix, Nagios и т.д.
Вроде, из утилит, atop умеет вести стату за период, но не помню умет ли в лог писать.

P.S. Можно попросить OOM не трогать ваши процессы но тогда заместь out of memmory вы можете отхватить kernel panic :)
Ответ написан
Во-первых, логи Apache должны показать какая активность была в прошлом. Оттуда можно извлечь статистику запросов (кол-во) и по сайтам в отдельности и в совокупности. Типичной причиной внезапной нагрузки могут быть поисковые боты, а также сканеры уязвимостей.
Во-вторых, стоит установить на сервер агент munin-node и вести мониторинг с другого сервера.
В-третьих, возможно, настала пора отделить MySQL в отдельный сервер.
Ответ написан
shambler81
@shambler81 Куратор тега Linux
вводные данные где, где системные ресурсы.
Где логи
Где конфиги?
тут знаете ли не телепаты живут
Ответ написан
Комментировать
@Semal
Apache и забирает всю память, смотреть в сторону memcache, неплохо помогает, прикрутить nginx как прокси или вообще перейти полностью на него, ну и вынести mysql отдельно не помешает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы