会社で使用している専用サーバなのだが、
ヤフトピなどでアタックをされると、フリーズしてしまい、かなりのPVを取りこぼしている・・・。
以前はサーバを監視している余裕も無かったが、
ここ最近は余裕も出てきたので、apacheの設定でも詰めてみることにした。
ハッキリ言うと、設定の具合が良く分からなくて
サーバが落ちたらアレなんで落ちないように値を随分下げて設定していた。
設定するには、
/usr/sbin/httpd -l
で修正する部分が分かる。
下記の場合、prefork.cの部分イジればパフォーマンスが良いか悪い方向に動く。
Compiled in modules: core.c prefork.c http_core.c mod_so.c
vi /etc/httpd/conf/httpd.conf
等で
<IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 200 MaxClients 200 MaxRequestsPerChild 400 </IfModule>
の部分を
<IfModule prefork.c> StartServers 10 MinSpareServers 5 MaxSpareServers 20 ServerLimit 500 MaxClients 500 MaxRequestsPerChild 10000 </IfModule>
のように設定を修正して様子見。
他にphp,iniのmemory_limitを756Mから1024Mに変更。
後はAPCの設定等も
/etc/php.d/apc.iniで
apc.shm_sizeを128Mから256Mに変更。
MaxSpareServersはこれ以上上げると、
load averageが常時2以上に上がる。
ServerLimit とMaxClientsは後50~100くらいは上げられるかもしれない。