勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

apacheのprefork設定とKeepAlive設定

   

WordPressを設置しているサーバーが、ここのところ連日でピークタイム時にダウンしていた。ちょっと前からPVが大幅に増えていたのでその影響だと考えられ、apacheの設定で対応できるんじゃないかと思った。以下に対応内容と調べたことのメモ。

 

サーバースペック

サーバーのスペックとApacheのバージョンは以下の通り。

 

httpd.confの書き換え

httpd.confのpreforkとKeepAlive設定を以下の通り変更することで改善された。

 

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

http://blog.nikuniku.me/entry/%3Fp%3D679_1

https://qiita.com/kou/items/acb3dcf1dcb428d7a3ec

 - サーバー

  関連記事

images
中国のIPアドレスをiptablesで拒否、遮断する

レンタルしているVPSの一つが最近よく落ちる。原因はどうも海外、特に中国から不正 ...

images
apacheで特定期間(日時)のログを抽出する

apacheのaccess_logとerror_logで特定日時内のログのみを確 ...

images
WordPressのWP-Mail-SMTPプラグインが動かない

PHPのバージョンを下げてからWordPressで外部メールサーバが使えるWP- ...

images
suとsu -の違い

スーパーユーザーになる際にsuだけ打っていたけど su -の方がいろいろ出来るか ...

images
VPSで決めた時間に自動でreboot(再起動)させる方法

VPSを常時起動させてると、どうもapache(httpd)がメモリを離してくれ ...

images
PHP5.4系でAPCが上手く動かなかったので5.5にアップデート&Zend OPcache導入

PHP5.3系から5.4系にアップデートしてから、WordPressがちょっと重 ...

images
FTP接続する際のユーザーとグループ設定

共用のレンタルサーバーを使用する時には気にならないが、VPSや専用サーバーを使う ...

images
APCの導入。pecl install apcで入らなかったのでyumで導入。

APC入れたらPHPのメモリ消費を抑えられるというのを見たので導入。 調べながら ...

images
サーバーで不要なサービスを停止する

サーバーの基本的な設定で不要なサービスは停止する というのがあったので実際に試し ...

images
iptablesを更新するとFTP接続ができなくなる

iptablesでIP制限を追加し、iptablesを再起動するとそのサーバーに ...