PHPでSessionの生成が遅い場合の注意点

webサーバのパフォーマンスについて、PHPでセッション生成が遅い場合、
php.iniの設定を確認してみてください。

session.entropy_file = /dev/random
となっている場合、この/dev/randomからの読み取りの遅延が原因で動作が遅くなっている可能性が高いです。
⇒使うのであれば /dev/urandom を使いましょう。

/dev/randomからの読み込みが遅くなる原因は、
  • /dev/randomは、十分なエントロピーが得られない場合には応答をwaitすること
  • エントロピーの素として「人間の利用するキーボードなどの入力デバイスのタイミングの「ぶれ」などを活用」していること
    ⇒iDC設置のサーバ機器だとエントロピーがたまらない!
だそうです。
from: Linusのクリスマスプレゼントが引き起こした問題 - @IT

この場合、サーバの負荷は高くないものの応答が遅い状態になります。
みなさまご注意ください。

[Read More]

PHPをAPCで高速化

OpenXで広告配信システムを構築したとき、APCの導入で負荷が1/100くらいに下がったのでメモ。
LoadAverage60→0.6になりました。
導入は簡単です。

# pecl install APC
でokです。
php.iniに設定を追加して完了。
[apc]
extension=apc.so
apc.enabled=1
apc.optimization=1
apc.ttl=10
apc.gc_ttl=10
apc.shm_size=96
ポイントは、apc.shm_sizeを大きめにとらないとgcが正常に動作しないようです。
apc.shm_sizeが足りないと、apacheのエラーログに
[Mon Oct 10 08:15:45 2008] [apc-warning] GC cache entry '/var/www/openx/var/cache/deliverycache_1184f8a13xxx4b67eb68c969e9e5740.php' (dev=64769 ino=0) was on gc-list for 2852984 seconds
なんてのが出続けます。。。

[Read More]