Apache HTTP Server: MPMパラメータ チートシート - インフラエンジニアway - Powered by HEARTBEATS 2015
MPM worker PHP
ソースインストール
apache configure で --with-mpm=worker
php configure で --with-tsrm-pthreads
worker で再コンパイルした apache インストール後に php 再コンパイル
はてなブログ
http://blog.goo.ne.jp/nagare_mm/e/79e8491247ebc794eed04899226e43c4
--enable-maintainer-zts オプションは、サーバー側がマルチスレッド動作かどうか関係なく強制的に Zend Thread Safety (ZTS) を有効にするオプションである。
これが必要な場面と言うのは、PHP本体の開発者やPHPのモジュールの開発者がZTS有効での動作確認や、サーバー側がマルチスレッド動作なのに何らかの理由でそれを検出せずZTSが有効にならないときに使うものである。
たまに「worker MPM の場合は--enable-maintainer-ztsが必要」って書いてあるものがWebで見つかるが、これは(昔は知らないが現在では)間違いなので、気をつけよう。
worker 設定
デフォルト
StartServers 3 MaxClients 400 MinSpareThreads 75 MaxSpareThreads 250 ThreadsPerChild 25 MaxRequestsPerChild 10000 mpm_common - Apache HTTP Server Version 2.2
MaxClientsが400、プロセスあたりのスレッド数(ThreadsPerChild)が25なので16プロセス
httpd-mpm.conf を設定した場合
StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0
MaxClientsが150、プロセスあたりのスレッド数(ThreadsPerChild)が25なので6プロセス
今こそ見直すApacheの設定 - blog.nomadscafe.jp