apacheのセッション設定をいじりました

自宅サーバーがよく落ちるのとパフォーマンスが悪い問題で、時々気になって調べていたんですが、止まった時にコンソール見たらSwap食いつぶしてエラーになってたので、どこかでメモリを際限なく使ってしまっているんだろう、というところまではあたりがつきました。

topコマンドでメモリ順に並べてみると

PID VIRT COMMAND
2026 141000 mysqld
2220 84492 mono

ここまではまぁ予想の範疇というか、もっとSQLが食ってると思ってたんですが、その後で

40776 httpd

これがまぁ延々と。topコマンドで拾えた限りでも40以上あります。40MBx40=1600MB…。これじゃメモリがいくつあっても足りません。

@IT:httpd.confによるWebサーバの最適化(2/3)
http://www.atmarkit.co.jp/flinux/rensai/apache2_03/apache03b.html

MaxClients=使用可能なメモリ量/Apacheの1プロセスが使用するメモリ量

・総メモリが768MB(swap含まず)
・MySQLが150MBくらい
・Dekiwikiが100MBくらい
・その他で300MBくらい

よって、httpdで使用可能なメモリは200MBくらい。
httpd一つが使ってるメモリは40MBくらいなので、

MaxClients=200/40=5

…ちょっと少なすぎる気もしますが。

最悪swap使ってくれーと思って、

ServerLimit=20

にしてみましたが、これはあまり意味が無いかも…

これで劇的にレスポンスが変わったとは思えないのですが、とりあえずフリーズは防げるんじゃないかと思います。とりあえず様子見で。

コメントする