CPUの各種使用率およびスワップの状態を確認するためのコマンド(sar -P ALL 1 1000、sar -S 1 1000)を裏で実行しつつ、abコマンドを実行してみる。まずは同時接続数30、リクエスト数200とする。
# ab -c 30 -n 200 http://www.k4750.net/
...
Concurrency Level: 30
Time taken for tests: 51.828 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 6494600 bytes
HTML transferred: 6444200 bytes
Requests per second: 3.86 [#/sec] (mean)
Time per request: 7774.199 [ms] (mean)
Time per request: 259.140 [ms] (mean, across all concurrent requests)
Transfer rate: 122.37 [Kbytes/sec] received
...
# ab -c 20 -n 200 http://www.k4750.net/
...
Concurrency Level: 20
Time taken for tests: 26.496 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 6494600 bytes
HTML transferred: 6444200 bytes
Requests per second: 7.55 [#/sec] (mean)
Time per request: 2649.577 [ms] (mean)
Time per request: 132.479 [ms] (mean, across all concurrent requests)
Transfer rate: 239.37 [Kbytes/sec] received
...
4.Apacheの設定値
Apacheの設定値等を確認してみると、
# apache2 -V
Server version: Apache/2.2.22 (Ubuntu)
...
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
...
# cat /etc/apache2/apache2.conf
...
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
...
abコマンドの同時接続数を30~100と変化させてみたが、秒間リクエスト数(スループット)に極端な低下はみられない。また、%iowaitや%swpusedの値からも、メモリスワップが発生していないことが分かる。ただし、リクエスト時間(abのTime per requestの値)は徐々に長くなる。これは、サーバ側の調子は良いが、クライアント側は長く待たされる状況ということだ。