Apacheのprefork設定とKeepAlive設定でサーバダウンを防ぐ方法
2024/02/22
WordPressを設置しているサーバーが、ここのところ連日でピークタイム時にダウンしていた。ちょっと前からPVが大幅に増えていたのでその影響だと考えられ、apacheの設定で対応できるんじゃないかと思った。以下に対応内容と調べたことのメモ。
httpd.confの書き換え
httpd.confのpreforkとKeepAlive設定を以下の通り変更することで改善された。
#preforkの値を以下に変更 <IfModule prefork.c> StartServers 50 MinSpareServers 50 MaxSpareServers 50 ServerLimit 50 MaxClients 50 MaxRequestsPerChild 50 </IfModule> #OnからOffに変更 KeepAlive Off
prefork設定
preforkの値はMaxRequestsPerChild以外、同じにするのが良いらしい。同じ値するとして、その値を求めるには「サーバーのメモリ量 > httpd1つあたりの値 * MaxClientsの値 + 他プロセスの値」にするとのこと。
http1つあたりが大体20~30MBぐらいなので、最初は余裕を見て30MBとする。他プロセスについてはわからないけど、とりあえずは4分の1にあたる500MB残すとなるとMaxClientsは50程度になるかと。
この設定だけで様子を見たところ、Googleアナリティクスにあるリアルタイムのアクティブユーザー数で200人ほどまでは、ロードアベレージが2前後で耐えられていた。ただ、200人を少し超えたところでロードアベレージが4ほどまで上がってきた。
KeepAlive設定
ピークタイム以外でKeepAliveをOffにしてみたところ、体感だけどページの表示速度が遅くなったように感じられた。なので、KeepAliveはOnのままKeepAliveTimeoutを8から2に減らし、prefork設定をした上で様子を見たけど上記の通りロードアベレージが4まで上がった。
数分待ってみたがロードアベレージが下がらなかったので、KeepAliveをOffにしたところ1~2あたりまで下がった。
参考
http://blog.nomadscafe.jp/2010/09/apachestartservers-minmaxspareservers-maxclients.html
関連記事
-
-
OpenLiteSpeedにてhtaccessファイルでリライト、リダイレクトする方法
OpenLiteSpeedでリライト、リダイレクト設定を行いたい。調べたところ管 ...
-
-
SSHのセキュリティ設定(暗号方式関連)について
SSHのセキュリティ設定をする事があった。設定内容は指示を貰えたので作業自体は問 ...
-
-
サーバーリソース監視にsar(sysstat)が便利だった
過去にサーバーリソース監視のmuninとかcactiを何度か入れようとして挫折し ...
-
-
久しぶりにVPS(CentOS6系)でサーバー構築して詰まった点のメモ
DTIのVPSで久しぶりに初期化→再構築する機会があった。その際に詰まった部分の ...
-
-
LAMP環境及びFTPサーバの各種設定ファイルのディレクトリまとめ
サーバ内の各種設定ファイルを編集する際にいつもfindコマンドで検索したり、ググ ...