geek.conf.2

あるエンジニアの備忘録

Apache2 MPMの種類を学ぼう。

Apache2のMPMとはMulti Processing Module)の略でプロセスやスレッドのリクエスト処理
実行機能です。

Apache1.3以前では複数のプロセスを最初に起動してリクエストを受ければプロセスがその処理を
実行するという仕組みでしたが、Apache2からはこのMPMが実装されました。

○prefork
アクセス数=プロセス数として処理し、Linuxのパッケージでインストールした場合、MPM
としてデフォルトで採用されます。
プロセスごとにメモリを食っていくためサーバ稼動効率を落とす可能性があります。

○worker
preforkはプロセス単位で処理するのに対してworkerはスレッド単位で処理します。
スレッドは各プロセスのアドレス空間を共有するのでそれだけサーバリソース消費も
抑えられます。
ただApacheのモジュールがworker未対応の場合がありますので注意が必要です。

○perchild
workerと同様にリクエストをスレッドで処理しますが、バーチャルホスト用で設計された
MPMです。

○winnt MPM
スレッド単位で処理をします。名前の通りWindows NT用のMPMであり、Windowsでの
デフォルトMPMとなります。

以上です。