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

lighttpd съедает всю память и процессор

Так что мой lighttpd работал нормально больше года. Два дня назад я решил установить Wordpress 3.0.1 (PHP уже использовался другими инструментами).

Таким образом, после нескольких часов очень небольшого количества обращений (максимум 10 уникальных посетителей в день) система почти зависает с нагрузкой 25-35, lighttpd съедает весь процессор и оперативную память (см. top в конце поста).

Я читал о подобных проблемах, но, похоже, ни одна из них не была именно такой, как здесь. «Решения» в Интернете были похожи на установку плагина кэширования Wordpress, что я и сделал (W3 Total Cache). Поскольку проблема возникла не ночью, я подумал, что проблема именно в этом. Но прямо сейчас машина полностью перегружена, даже OOM Killer вмешивается.

Перезапуск lighttpd помогает, но это не настоящее решение.

Системные характеристики:

Замена оборудования невозможна, поскольку это домашний сервер с низким энергопотреблением. Идеи? Заранее спасибо.

top - 10:34:04 up 19:03,  1 user,  load average: 25.98, 22.97, 12.51
Tasks: 155 total,  15 running, 140 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us, 95.6%sy,  0.0%ni,  0.0%id,  3.6%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   4062488k total,  4039436k used,    23052k free,      264k buffers
Swap:   979956k total,   979956k used,        0k free,     3012k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                     
 3648 debian-t  20   0  136m 6972  116 R    7  0.2  30:48.27 transmission-da                              
 2569 root      20   0  196m  900  108 S    5  0.0   4:51.94 rsyslogd                                     
  316 munin     20   0 30592  548  136 D    4  0.0   0:04.68 sendmail                                     
 3377 root      20   0 66292 6864  208 D    4  0.2   2:01.44 python                                       
 3188 www-data  20   0 4074m 3.1g  124 R    4 81.2  12:20.23 lighttpd

редактировать: Я установил сценарий временного перезапуска, как было предложено LatinSuD. Так что, наверное, завтра я смогу подробно рассказать об интервале этого выпуска.

Можете ли вы обновить lighttpd до более новой версии? 1.4.19 очень старая (самая новая ветка 1.4 - 1.4.28). Я знаю, что за этот период было исправлено несколько утечек памяти.

http://redmine.lighttpd.net/projects/lighttpd/repository/entry/branches/lighttpd-1.4.x/NEWS

Как у вас установлен php? Если вы используете fastcgi, у вас запускается слишком много рабочих процессов? Убедитесь, что вы не сделали что-то проблемное с mod_rewrite, вызывающее бесконечный цикл. Обычно lighttpd их обнаруживает, но Ошибка 1775 был исправлен в версии 1.4.20 и может быть вашей проблемой.

Я запускаю lighttpd на TonidoPlug, поэтому мне очень важно следить за потреблением памяти. Для этого я настроил следующий скрипт, который запускается каждые 30 минут. Возможно, есть лучший способ сделать это, но он работает для меня :-)

echo `date +'%Y%m%d %H%M'`,`free | grep "Mem" | sed -e 's/ \{1,\}/,/g' | sed -e 's/^Mem:.//g'` | cut -d',' -f1,3,4,6,7 >> memorywatch.dat

Заголовки столбцов: «datetime, used, free, buffers, cached», а выходные записи выглядят следующим образом: 20110613 1002,184716,329092,30548,129496

Затем вы можете регулярно импортировать файл в Excel / OpenOffice для создания графиков.

В моем случае я использую "синхронизация && эхо 3> / proc / sys / vm / drop_caches"на регулярной основе - отсюда и график стиля" сердцебиение "выше. Работа над ним продолжается, и я вношу дальнейшие изменения.