ServersMan@VPS:Apacheパフォーマンスチューニング【効果大】

ServersMan@VPS のApacheパフォーマンスチューニングを実施しました。Apacheに限った話ではないでしょうが、チューニングは、適切に行うことで性能が大きく改善されることがあります。Apacheが遅くて弱っている方!是非ご一読いただければと思います。(2014/04/10作成)

パフォーマンス Unsplash / Pixabay

0.バージョン情報

$ /usr/sbin/httpd -v
Server version: Apache/2.2.3
Server built:   Apr  3 2014 19:55:54

1.不要コンフィグの排除

$ pwd
/etc/httpd/conf.d
$ sudo mv swtune.conf swtune.conf.20140410 ←※コレ
$ sudo mv proxy_ajp.conf proxy_ajp.conf.20140410
$ sudo mv welcome.conf welcome.conf.20140410

【解説】
Apache本体「httpd.conf」で「MPM」を設定変更しても「※swtune.conf」が有効である限り設定が一向に反映されません。トラブルのもとなので読み込まないようにします。

2.prefork MPMの見直し

0)prefork MPM デフォルト設定

StartServers          8
MinSpareServers       5
MaxSpareServers      20
ServerLimit         256
MaxClients          256
MaxRequestsPerChild 4000

1)prefork MPM チューニング(1回目)

StartServers         5
MinSpareServers      3
MaxSpareServers      5
ServerLimit         80
MaxClients          80
MaxRequestsPerChild 4000

2)prefork MPM チューニング(2回目)

StartServers         8
MinSpareServers      5
MaxSpareServers     20
ServerLimit        256
MaxClients         256
MaxRequestsPerChild 50

3)prefork MPM チューニング(3回目)

StartServers           8
MinSpareServers        5
MaxSpareServers       20
ServerLimit          256
MaxClients           256
MaxRequestsPerChild 1000

【解説】
MPM (Multi Processing Module) を解説している色々なサイトを参考にさせていただきましたが、ズバリこれでという「黄金比」ようなものはないようです。私はなんとなく好きな数字が並んでいる上記にしました。

3.KeepAliveの見直し

MaxKeepAliveRequests 100
↓
MaxKeepAliveRequests 1000

KeepAliveTimeout 5
↓
KeepAliveTimeout 15 

【解説】
もともと KeepAliveは「On」でしたが、MaxKeepAliveRequests と KeepAliveTimeout を多く・長くすることで、Apacheが生まれ変わりました。事実、KeepAliveのチューニングが一番効果ありました。

4.設定反映

$ sudo /etc/init.d/httpd configtest
Syntax OK
$ sudo /etc/init.d/httpd graceful

以上

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。