さて、ここしばらく悩んでいたapacheのメモリ圧迫問題。
とりあえず解決の方向へ進んでいるので、ここに備忘録も兼ねて。
まず、apacheを最新にアップしてみた。現在の最新は2.2.3。
そして、–with-mpm=workerオプションを付けてconfigure –> make –> make install。
この時に注意した方がいいのは、いろんなオプション機能はなるべく so モジュールで組み込むこと。
また、不要な機能はなるべく組み込まないこと。
その後、phpを再make。この時に間違えるのが、make –> make install のみで済ませようとしてはダメ。
必ず ./configure から行うこと。
そして、httpd.conf の設定。今回は下記設定にて動作。
ServerLimit 3
StartServers 2
MaxClients 45
MinSpareThreads 15
MaxSpareThread 30
ThreadsPerChild 15
MaxRequestsPerChild 3000
これでapache起動してみましょう。
上がってくるプロセスの数がかなり少ないと思います。
私のサーバはこれで消費メモリが大幅に減りました。
設定前: 実メモリ・・ほぼずっと500MB前後 スワップメモリ・・だいたい300~400MB、ひどいと800MB
設定後: 実メモリ・・300~500MBの範囲をウロウロ スワップメモリ・・140MB前後
結構改善されたのではないでしょうか。
まあまだ様子見ですので、これで数ヶ月運用してみないと何ともですが。