自宅サーバーがよく落ちるのとパフォーマンスが悪い問題で、時々気になって調べていたんですが、止まった時にコンソール見たら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
にしてみましたが、これはあまり意味が無いかも…
これで劇的にレスポンスが変わったとは思えないのですが、とりあえずフリーズは防げるんじゃないかと思います。とりあえず様子見で。