web-dev-qa-db-ja.com

lighttpdがすべてのメモリとCPUを消費する

そのため、私のlighttpdは1年以上正常に動作していました。 2日前にWordpress 3.0.1(PHPはすでに他のツールで使用されていました)をインストールすることにしました。

したがって、ヒット数が非常に少ない数時間後(最大で1日あたり10人のユニークビジターが発生する可能性があります)、システムは25〜35の負荷でほぼハングし、lighttpdはすべてのCPUを消費し、RAM(参照)投稿の最後にあるtop)。

私は同様の問題を読みましたが、ここで起こっていることとまったく同じではないようです。ウェブ上の「解決策」は、Wordpressキャッシングプラグインをインストールするようなものでした。これは(W3 Total Cache)でした。夜間は問題が発生しなかったので、それが問題だと思いました。 。しかし、現在、マシンは完全に過負荷になっており、OOMKillerでさえも起動しています。

Lighttpdの再起動は役に立ちますが、それは実際の解決策ではありません。

システム仕様:

  • Intel Celeron2Duo 2.2GHz
  • 4GB RAM
  • 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の提案に従って一時的な再起動スクリプトをインストールしました。ですから、おそらく明日、その問題の間隔について詳しく知ることができます。

2
weeheavy

新しいバージョンの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はそれらを検出しますが、 Bug 1775 は1.4.20で修正されており、問題である可能性があります。

1
Paul McMillan

TonidoPlugでlighttpdを実行しているので、メモリ消費を監視することが重要です。そのために、次のスクリプトをcronして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にインポートして、グラフを作成できます。

私の場合、「sync && echo 3>/proc/sys/vm/drop_caches」を定期的に実行します。したがって、上記の「ハートビート」スタイルのグラフです。これは進行中の作業であり、さらに微調整を行っています。

0
peterg22