Home

技術系のメモと日々の雑感

Apache の MaxClients と KeepAliveTimeout の関係

昨日、Apache の設定を見直していた。
とあるサーバで負荷が上がって、その原因が Apache にあるのはすぐに分かった。
不思議だったのは、一昨日 MaxClients をデフォルトの 150 から 30 に減らしたのに、状況がさらに悪化したこと。
負荷上昇の原因は空きメモリ不足だと思ったのだが、違ったらしい。
その後、設定を眺めていると、KeepAliveTimeout を 30 にしていたことに気がついた。
ずっと前に、ロクに考えずに決めた値が残っていたのだ。
悪い予感がしたので Web で情報を漁ってみると、やはりこの 30 という値は問題外だった。
色々議論があるようだが、思い切って 1 に設定。
普通の(?)Web サーバならもう少し大きな値の方がいいかもしれない。
このサーバはちょっと特殊で、メモリの量が限られているのと、アクセスしてくるクライアントが KeepAlive を使ってない可能性が高かったからだ。
効果はバッチリで、スムーズにリクエストをさばけるようになった。
これでやっと安心して眠れる・・・。

WordPress 3.0 で imagecreatefromstring の Warning

CentOS 5.4 が載ってるマシンに WordPress 3.0 を入れて、JPEG ファイルをアップロードしようとしたら、サムネイル表示のところで

Warning: imagecreatefromstring() [function.imagecreatefromstring]: No JPEG support in this PHP build in /usr/local/apache/htdocs/hoge/wp-includes/media.php on line 253

というワーニングが出てうまくいかなかった。
調べたところ、PHP で GD の JEPG サポートが有効になってないのが原因だった。
そういえば、このマシンでは PHP をソースから入れてたんだったな。
やったことを書いておくと

yum install gd-devel

してから、configure で

--with-gd --with-jpeg-dir=/usr/include

を付けてコンパイルしなおしただけ。
phpinfo() で gd のところの JPG Support が enabled になっていたらオッケーだ。
さて、WordPress 3.0 をいじり倒すとするか!