そんな爆発的な数のアクセスを裁くわけでもなしー、と、さくらのVPSを使ってデフォルト適当に動かしていたところ、一部WordpressサイトでAPCのメモリ不足だとエラーが出まくる。
「Unable To Allocate Memory For Pool」
こりゃ調整しないといけない。
apc.phpを眺めつつ、たぶんプラグイン入れまくりで何かあるよなーと思うもWPはWPで対処するとして別件に。
サーバー設定としては単純にAPCのメモリ割当量を増やせば解決!というわけにもいかないので、そもそものメモリ割当量が多すぎなんじゃないのかということで調整。
CentOS6、メインメモリ2GB。
/etc/php.d/apc.ini
apc.shm_size = 128M
apc.mmap_file_mask=/dev/zero
■php および APC の設定を行う | レンタルサーバー・自宅サーバー設定・構築のヒント
メモリ2GBなので128MBに。1GBで64M、512MBで32Mが適量のよう。
それでもまだエラー出る。しかしこれ以上は増やせない!
ということで1プロセスあたりのメモリを減らすためにapacheのモジュールを外す。
■ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編) – さくらインターネット創業日記
参考になります。
とりあえずまだPreforkで動かしているので
/etc/httpd/conf/httpd.conf
<IfModule prefork.c>
StartServers 10
MinSpareServers 5
MaxSpareServers 15
ServerLimit 256
MaxClients 128
MaxRequestsPerChild 2000
</IfModule>
と設定して様子見。
KeepAliveはOff。
今のところ穏やか。