PG WORKS

PHPやLinuxサーバなどのノウハウや、便利なツールを紹介していきます。

【CentOS7】Apache2.4のconfファイルの設定について

f:id:zen6a:20161127224322p:plain
Apache2.4からはデフォルトでEvent MPMになってるのに気付かなかった話 | ブログ :: Web notes.log

ソースコンパイルからインストールだと、eventになるってことなのかな??

CentOS7でyumでインストールしたものは、preforkだったんだけど。。。

インストールするOSによって設定が違うのかも。。。

Apache2.4からhttpd.confにpreforkの記述がないのと、CentOS7でのyumインストールでは、preforkの設定ファイルがありません。

なので、

「/etc/httpd/conf.d/」の中に「mpm.conf」っていうファイルを新規作成して設定しました。
※ファイル名は「.conf」がついていればなんでもいいと思います。

<IfModule mpm_prefork_module>
  StartServers               5
  MinSpareServers            5
  MaxSpareServers           50
  ServerLimit              256
  MaxRequestWorkers        256
  MaxConnectionsPerChild   1000
</IfModule>

設定が反映されているかどうかは、プロセスの起動数を見て確認しました。
下記のサイト様に記載されているコマンドでapache(httpd)のプロセスの数がわかります。

現在のプロセス数を調べる | katz+

ps aux | grep httpd | grep -v "\(root\|grep\)" | wc -l

apacheの設定ファイルを編集した後、反映させるには「reload」ではダメだったので、

service httpd stop

service httpd start

にて設定が反映されていることを確認できました。

下記のサイト様の「ServerLimit」の備考で気付きました。(汗

heartbeats.jp

「reload」で「ServerLimit」を256以上にしても、反映されなかったので、助かりました。

ServerLimit 256の限界

Apacheのプロセス数が256以上溜まっている状態が続くと、サイト閲覧するタイミングによっては、画面が真っ白まま何も表示されなくなるので、メモリに余裕があればServerLimitを増やすか、ロードバランサーを使い、サーバを分散したほうがいいと思います。

※サーバのスペックによりますが、メモリが少ないサーバは、WEBとDBを切り分けたほうが良さそうです。もちろん、サーバ内に入っているサイトやシステムによります。サーバの増設の前にプログラムで解決できないか増設前にチェックしましょう~。