Apache/PHPのメモリ上限を設定する
PHPのメモリ使用量の上限は、php.iniに書かれていますが、これphpの1プロセスに割り当てられるメモリ量になります。/etc/php.ini
memory_limit = 128M
で、Apacheのhttpd.confのMaxClientsにプロセスの上限を設定しているので、
/etc/httpd/conf/httpd.conf
MaxClients 128
これらの値を掛け合わせたものがPHPが使用できるメモリの総量ということになります。
memory_limitの値 x httpd.confのMaxClientsの値 = メモリ最大使用量
CentOS6.5では128×128ということなので結構な量を喰うことになっています。ここらを現状に合わせて調節します。
プレフォークを調整してみる
最近のCentOSではデフォルトで4000になっていました。プレフォークの使い回しが4000回ということなので、これを1000ぐらいにしてみます。だれでだいぶ負荷がおさまる場合もあります。/etc/httpd/conf/httpd.conf
MaxRequestsPerChild 4000
↓
MaxRequestsPerChild 1000
KeepAliveをonにする
いつからデフォルトがoffになってんだろ。あれ?昔からここoffでしたっけ?/etc/httpd/conf/httpd.conf
KeepAlive Off
↓
KeepAlive On
Apacheを再起動して様子を見る。