Apacheのevent MPMのチューニング
投稿日:
preforkからeventに乗り換えるとチューニングの考え方が少し変わるので簡単にメモ。
event MPMではまずApacheの子プロセス(以下プロセス)が複数生成され、
さらに各プロセスの中にWorker Thread(以下スレッド)が複数生成されるイメージ。
設定値の意味は以下のようになる
<IfModule mpm_event_module>
ServerLimit 8 #プロセス数の最大値
StartServers 3 #プロセス数の初期値
MinSpareThreads 192 #空きスレッド数の最小値(下回ったら増やす)
MaxSpareThreads 384 #空きスレッド数の最大値(上回ったら減らす)
ThreadsPerChild 64 #プロセスあたりのスレッド数
MaxRequestWorkers 512 #同時に処理できる最大数
MaxConnectionsPerChild 5000 #プロセスが再起動までに処理するリクエスト数
</IfModule>
MaxRequestWorkers
は最大スレッド数(ServerLimit×ThreadsPerChild)以下にしておくこと。
スレッド数以上のリクエストが来ると困る。MinSpareThreads
は初期スレッド数(StartServers×ThreadsPerChild)以下にしておくこと。
初期スレッド数以上の空きスレッドが必要だと、起動直後にスレッド追加しなければならなくて無駄。MinSpareThreads
とMaxSpareThreads
はThreadsPerChild
の倍数になっていた方が良さそう。