Webサーバ構築_02

web

今回はApache2.4.6のチューニングについて記載したいと思います。

前提条件としてApacheを構築し、vimをある程度使えることを想定しています。

MPMについて


Apacheには、 MPM(Multi Processing Module)  といわれるWebブラウザのレクエストに対し並列処理を行うmoduleがあり、その方式(prefork,worker,event)と設定によってはwebサーバのメモリーの空き容量や処理速度を調整することができます。

・Apache 2.4.6(prefork MPM)
 ⇒ マルチプロセス型

・Apache 2.4.6 (worker MPM)
 ⇒ マルチプロセスとマルチスレッドのハイブリッド型

・Apache 2.4.6 (event MPM)
 ⇒ イベント駆動型(Apache2.4 から導入)NginXがこの方式です。

MPMのチューニング


CPU メモリーの状況の確認

vmstat
free -h

実行中のapacheのプロセスの確認とMPMを確認します。

ps -aux |grep apache
apachectl -V |grep MPM

私の環境では MPMがpreforkだったので、eventに変更します。

とりあえず、設定をいじる前にコピーを取ります。

cd /etc/httpd/conf.modules.d
cp 00-mpm.conf 00-mpm.conf_old

vimで設定を変更します。

vim 0-mpm.conf

preforkの記載がある行の先頭に「#」を記入し、eventの記述がある行の先頭の「#」を外します。

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

LoadModule mpm_event_module modules/mod_mpm_event.so

mpn_eventの設定値をいじりたい人は、下記の設定を一番下に追記するといいと思います。

下記の設定はデフォルト値の為、環境に合わせて変更します。

<IfModule mpm_event_module>

 StartServers             2
 MinSpareThreads          25
 MaxSpareThreads          75
 ThreadLimit              64
 ThreadsPerChild          25
 MaxRequestWorkers        150
 MaxConnectionsPerChild   0

</IfModule>

ファイルを比較し、変更が正しくできているか確認します。

diff 00-mpm.conf 00-mpm.conf_old

apacheを再起動

systemctl restart httpd

MPMがeventに変わっているか確認します。

apachectl -V |grep MPM

WEBサーバの負荷テストをしながらmpm_eventの設定値を適切な値に変更していきます。

ab -c 10 -n 10 http://hoge.example.com/

-n 数値 リクエストの総数を数値で指定
-c 数値 同時に発行するリクエストの数を数値で指定

私の環境では、eventに切り替えることによってメモリーの使用率が下がりました。

以上でApacheチューニングは終了です。次回はSSHのポート変更について

コメント

タイトルとURLをコピーしました