lighttpd吃所有的内存和CPU

所以我的lighttpd运行一年多了。 前两天我决定安装Wordpress 3.0.1(PHP已被其他工具使用)。

因此,经过几个小时的点击(我可能每天最多可以获得10个独立访问者),系统几乎挂起,负载为25-35,lighttpd吃掉所有的CPU和RAM(见post末尾的top )。

我读到类似的问题,但似乎没有发生在这里。 networking上的“解决scheme”就像安装一个Wordpresscaching插件,我做了(W3总caching)。 由于问题没有发生在夜间,我认为这是问题。 但是现在这台机器已经完全超载了,就连OOM杀手也在踢。

lighttpd重新启动有帮助,但这不是一个真正的解决scheme。

系统规格:

  • Intel Celeron2Duo 2.2GHz
  • 4GB内存
  • Debian Lenny 5.0.6
  • 内核:2.6.26-2-amd64
  • lighttpd 1.4.19
  • MySQL 5.0.51a
  • PHP 5.2.6-1 + lenny

改变硬件是不行的,因为它是一个低功耗的家庭服务器。 想法? 提前致谢。

 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的build议安装了一个临时重启脚本。 所以可能明天我可以告诉有关这个问题的时间间隔的细节。

你能更新到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,可能是你的问题。

我在TonidoPlug上运行lighttpd,所以对于我来说,观看内存消耗是非常重要的。 为此,我c写了以下脚本,每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”,输出logging如下所示:20110613 1002,184716,329092,30548,129496

然后,您可以定期将文件导入到Excel / OpenOffice中以生成graphics。

在我的情况下,我经常运行“ sync && echo 3> / proc / sys / vm / drop_caches ” – 因此上面的“心跳”风格图。 这是一个正在进行的工作,我正在做进一步的调整。