LoginSignup
12
13

More than 5 years have passed since last update.

ApacheでKeepAliveをオンにすると劇的に効果があった事例

Last updated at Posted at 2013-02-22

背景

  • サーバー(EC2)上にApcheとTomcat立てていて、以下のようにフォワードプロキシからアクセスされていた
[ユーザ] => [フォワードプロキシ] => [Apache(リバースプロキシ)] => [Tomcat]

現象

  • サーバーにアクセスすると体感的に遅い
  • Chrome(25.0.1364.99)のデベロッパツールのNetworkで調べるとTimelineでConnectingが3sとかかかってたりする

対応

 $ sudo vi /etc/sysconfig/httpd
# => 以下のコメントアウトを外す
HTTPD=/usr/sbin/httpd.worker
 $ sudo /etc/init.d/httpd restart

効果

  • サーバーにアクセスすると体感的に早くなった
  • ChromeのデベロッパツールのNetworkでConnectingが0のリクエストがほとんどになった

考察

  • クライアントが限られていて一度のアクセスで複数リクエストが発生するためKeepAliveをオンにすると効果が大きい
    • サーバーではフォワードプロキシからのアクセスに限定されていてコネクションを確立すると切らなくて良くなった。
    • サーバーにアクセスすると画像やらCSSやら取ってくるためにコネクション確立の時間が馬鹿にならなかった

感想

  • KeepAliveの効果は知ってましたがここまで劇的に効果があるとは思いませんでした
  • 今までアクセスの多いサーバーを管理したことがなく初Apacheチューニング

はまった

  • workerに切り替えた際にgracefulリスタートして切り替わっていなかった
$ sudo /etc/init.d/httpd graceful
$ ps aux | grep httpd
root      1628  0.0  0.1 199736  6772 ?        Ss   Feb14   0:29 /usr/sbin/httpd
apache   20482  0.0  0.1 200012  5192 ?        S    16:08   0:00 /usr/sbin/httpd
$ sudo /etc/init.d/httpd restart
$ ps aux | grep httpd
root      6621  0.1  0.1 199312  5952 ?        Ss   16:29   0:00 /usr/sbin/httpd.worker
apache    6759  0.0  0.1 947024  4768 ?        Sl   16:30   0:00 /usr/sbin/httpd.worker
12
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13