mod_dbd の設定について
mod_dbd についてちょっとハマったこと。KeepやMax,Minといった設定は「プロセス毎」のものであるということ。
/usr/local/apache2/conf/httpd.conf に以下のように設定した場合、
LoadModule dbd_test_module /usr/lib/apache2/modules/mod_dbd_test.so <location /dbd_test> SetHandler dbd_test </Location> DBDriver mysql DBDParams host=localhost,user=root,pass=mysql,dbname=test,sock=/tmp/mysql.sock DBDPersist ON DBDKeep 100 DBDMax 200 DBDMin 10 DBDExptime 600
KeepやMax,Minは「プロセス毎」に保持する数となる。(まあドキュメントにも書いてあるんだけど・・・)
apache の設定で、初期プロセス数2、最大プロセス数10としていた場合、上記の設定だと初期で20コネクションプールが保持され、最大で2000コネクションプールが保持される、ということになる。
2000とかなってくると limit の設定してあげないとファイルディスクリプタが足りないと大抵の環境では言われると思うので、注意が必要だ。