のほほんと、catalystでさくさくっとアプリ作りましょうかねぇ、とESX上にubuntu入れてapacheとか入れて、cpan installをぼーーーーーーーっと眺めて、ちらっとコード書いて、さあ動かしてみましょうってしたら、アプリは上手く動くんだが、にゃんだかやけに遅い。
で、top見てみたら、メモリが全然足りん。うわー、見積が甘かったですにゃー、と1.5gほど割り当てて再挑戦・・・しても途中でスワップする。にゃ、にゃんて恐ろしい子・・・
と言うわけでこれは同時接続数とか制限しにゃいとダメですねと、apache.confのmpm_worker_moduleあたりで60スレ2子でmax120くらいまで制限してみた。
で、これでめでたしめでたしのつもりだったのだが、ここからが問題で。
使ってるとだんだん遅くにゃっていく。/server-statusにWが大量に居残る。とnetstatにTIME_WAITがものすごい数居る。30秒どころか30分経っても消えにゃい。
apache.confでtimeoutを減らしてみたけど全然変化無い。これはつまりmod_perlにゃのか、と、alrtでdieしてみるとか、負荷の大小とか、キャッシュのwrite時に競合が、とかあちこち調整しまくった結果、全然関係にゃいことが判明。
まるっきりお手上げににゃったのでしばし放置して考察。うう〜〜〜ん・・・
これはつまりあれか、もしかしてmpm_workerのスレッドとマルチCPUの相性みたいにゃ部分か、と想像でvmのCPUを1に減らしたらさっくり治った。がっかり。
でも1CPUだと心許にゃい気味にゃので、mpm_preforkにして4CPU運用に。あぁにゃんという無為にゃ時間・・・