Так что мой 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"на регулярной основе - отсюда и график стиля" сердцебиение "выше. Работа над ним продолжается, и я вношу дальнейшие изменения.