apache mpm preforkをworkerに変更する

現在のMPMを確認

# apachectl -V | grep 'Server MPM'
Server MPM:     Prefork

現在はpreforkを使用しています。

MPM切り替え

# vi /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker   ←コメントアウトを外す

# /etc/init.d/httpd restart

WorkerになったらOK。
# apachectl -V | grep 'Server MPM'
Server MPM:     Worker

あとはapache設定を変更する
# vi /etc/httpd/conf/httpd.conf
<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

phpを使う場合

PHPは5.5くらいからスレッドが使えるようになるため、オプションをつけて再コンパイルを行う。

# make distclean
# ./configure  --with-tsrm-pthreads --enable-maintainer-zts ・・・
# make && make install

しかし、動作が不安定になってしまったので、preforkに戻した。
wordpressだとだめなのかな。
要調査

参考

http://blog.flatlabs.net/20110222_232623/

おすすめの記事