« | »

2013.10.17

Apacheのチューニング(2)

前回、webサーバー Apacheのパフォーマンス測定をApache標準のABコマンドを使用して実施したことを記載してから結構日がたってしまいました。

今日はそのつづきです。

Apacheのパフォーマンスを測定する場合、固定htmlで構成される静的ページと、WordPressのようなスクリプトでhtmlを出力する動的ページの双方からチェックをするのが好ましいとされています。

動的ページはphpなどのインタラプタが重いことはわかっているので、まずはもっとも負荷が軽い静的ページからApacheのパフォーマンスを測定します。

 

静的WEBページのパフォーマンスチェック

 

測定に使用したのがサイト工事中案内用のhtml

工事中ページ

htmlとしては非常に単純なもので、Apacheもほとんど負荷にならないものかと思います。
この状態で、abコマンドを使用し、同時接続100 / リトライ1000回を実行するため下記コマンドを入力します。

  $ ab -c 100 -n 1000 http://www.wendy-net.jp/under_c/

なお、ここで注意すべき点があり、URLを指定する場合、”/”で閉じたディレクトリ指定でコマンド発行が必要です。

“/”で閉じないディレクトリ名でURL指定しコマンド実行すると、Apacheからはリダイレクト処理ためのリターンコード301がベンチマーク対象になってしまい、あっという間に処理が完了してしまいます。

ベンチマーク実施前のシステムリソース状態はFig-1の通り

20131016AFig-1:ベンチマーク前システムリソース

待機状態にしてはメモリ消費が結構多い状態。

後述しますが、Apacheより起動されたプロセスがそのままゾンビプロセスとなって残っているのが原因かと思います。

これらゾンビプロセスについては、Apacheの設定ファイル httpd.conf を正しく設定することによりかなり解消します。

httpd.confを調整するにはまずこのシステムがどの程度チューニングするかを見極める必要があります。

まずは、suコマンドでrootに入り、/etc/init.d/httpd restart としてApache関連ソフトを一斉リスタートします。 これにより余分なApache関連のゾンビプロセスが削除されて、メモリ占有率は初期状態になります。

 

[root@webserver home_dir]# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
[root@webserver home_dir]# exit
exit

 

20131016BFig-2:httpdをリスタート

 

この状態で、Apache標準のベンチマークソフトABを使用してパフォーマンスチェックします。

 

[sysuser@webserver ~]$ ab -c 10 -n 1000 www.wendy-net.jp/under_c/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.wendy-net.jp (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        Apache/2.2.15
Server Hostname:        www.wendy-net.jp
Server Port:            80

Document Path:          /under_c/
Document Length:        23341 bytes

Concurrency Level:      10
Time taken for tests:   272.397 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      23567000 bytes
HTML transferred:       23341000 bytes
Requests per second:    3.67 [#/sec] (mean)
Time per request:       2723.970 [ms] (mean)
Time per request:       272.397 [ms] (mean, across all concurrent requests)
Transfer rate:          84.49 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    4  34.2      1    1000
Processing:  2108 2719 122.9   2704    3511
Waiting:     2091 2513 117.3   2497    3309
Total:       2110 2722 127.7   2706    3803

Percentage of the requests served within a certain time (ms)
  50%   2706
  66%   2739
  75%   2758
  80%   2773
  90%   2818
  95%   2897
  98%   3104
  99%   3439
 100%   3803 (longest request)
[sysuser@webserver ~]$

 

20131016CFig-3:ab -c 10 -n 1000 www.wendy-net.jp/under_c/ 実行後

 

数秒以内で終わるで、メモリリソースメーターにはほとんど痕跡が残っていないです。

CPUリソースメーターでは・・・すこし動いたか、という程度。

静的ページのベンチマークテストでは、同時接続が(-c オプション)100から500になっても、応答速度は多少影響を受けるものの、CPUリソースが数%、メモリリソースで20MB程度が変動するくらいです。

 

静的ページでのベンチマークはApacheの処理性能がそのまま反映されますので、この結果からはApacheというサーバー自体は非常に処理能力が高いことがわかります。

 

(つづく)

 

 

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">