2015年9月13日日曜日

PHPでApacheを使う時のパラメータチューニングとメモ

ApacheのMPMは、どちらを選択するべきか?
  • mod_phpは非スレッドセーフ
  • prefork MPM
    リクエストごとにプロセスを生成し、処理が終わればそのプロセスが死ぬ。
  • worker MPM
    リクエストごとにスレッドを生成する。
    スレッドセーフでないApacheモジュールがあるとバグる
phpを使う時はperforkを使う必要がある。
Apache2.4からはdefaultのmpmがeventのため、コンパイル時には気をつける必要がある。
./configure \
--prefix=/usr/local/apache2.4.12 \
--enable-so \
--enable-ssl \
--enable-mods-shared=all \
--with-expat=builtin \
--with-included-apr \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-ajp \
--with-mpm=prefork \
--enable-rewrite

httpd.confの中身

    StartServers             5
    MinSpareServers         10
    MaxSpareServers         30
    MaxRequestWorkers       1000
    ServerLimit             1000
    MaxConnectionsPerChild  30000

StartServers:最初に起動する子プロセスの数
MinSpareServers: 待機する子プロセスの最小数
MaxSpareServers: 待機する子プロセスの最大数
MaxRequestWorkers: スタート時に許される子プロセスの最大数
ServerLimit: MaxRequestWorkersに上限値をつける
MaxRequestsPerChild: それぞれの子プロセスが扱うリクエスト数の制限数

Apache2.4からMaxClientsという名前がMaxRequestWorkersに変更になりました。
httpdのMPMを確認
httpd -V

0 件のコメント: