先日のyum updateで無効になったhttpdもメモリキャッシュを再び有効にしました。その際どれくらいの効果があるのだろう、と気になったのでベンチマーク方法を探してみると、今のApacheには最初からツールが付いてくるそうではありませんか。
という訳でmod_mem_cacheのOFF/ONでどれくらい効果が出るのか測定してみることに。Server version: Apache/2.2.15 (Unix)です。
コマンド
/usr/bin/ab -n 100 -c 10 http://dolls.tokyo/
使い方はITmedia 「httpのパフォーマンスをチェックしたい~ApacheBench編~」を参考にしました。上記のパラメータでは100回のリクエストを10個同時にこなす(=10回行われる)事になります。
before
Server Software: Apache
Server Hostname: dolls.tokyo
Server Port: 80
Document Path: /
Document Length: 76965 bytes
Concurrency Level: 10
Time taken for tests: 92.168 seconds
Complete requests: 100
Failed requests: 26
(Connect: 0, Receive: 0, Length: 26, Exceptions: 0)
Write errors: 0
Total transferred: 7716648 bytes
HTML transferred: 7696348 bytes
Requests per second: 1.08 [#/sec] (mean)
Time per request: 9216.780 [ms] (mean)
Time per request: 921.678 [ms] (mean, across all concurrent requests)
Transfer rate: 81.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 3.5 0 15
Processing: 5080 9062 1014.4 9077 11657
Waiting: 3958 5336 620.7 5336 7841
Total: 5080 9064 1015.1 9077 11672
Percentage of the requests served within a certain time (ms)
50% 9077
66% 9445
75% 9609
80% 9721
90% 10230
95% 10796
98% 11446
99% 11672
100% 11672 (longest request)
after
Server Software: Apache
Server Hostname: dolls.tokyo
Server Port: 80
Document Path: /
Document Length: 76967 bytes
Concurrency Level: 10
Time taken for tests: 89.383 seconds
Complete requests: 100
Failed requests: 32
(Connect: 0, Receive: 0, Length: 32, Exceptions: 0)
Write errors: 0
Total transferred: 7716828 bytes
HTML transferred: 7696528 bytes
Requests per second: 1.12 [#/sec] (mean)
Time per request: 8938.315 [ms] (mean)
Time per request: 893.831 [ms] (mean, across all concurrent requests)
Transfer rate: 84.31 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 6.6 0 31
Processing: 5885 8821 796.2 8671 10670
Waiting: 4347 5160 493.9 5116 7187
Total: 5885 8823 796.4 8671 10702
Percentage of the requests served within a certain time (ms)
50% 8671
66% 8988
75% 9155
80% 9502
90% 10113
95% 10372
98% 10655
99% 10702
100% 10702 (longest request)
両方ともhttpdをリスタートした直後に行いました。
こう見るとあまり大した差にはなっていませんが、少なくともメモリキャッシュを有効にした方が速くはなっています。またキャッシュが効きだすのか、起動してしばらくたったhttpdてテストをするとさらに若干の向上がみられます。Failed requestsが増えるのも気にはなるのですが。
とりあえず自分の場合は速度というよりディスクになっているUSBメモリの延命が目的。
ついでにLogの書き出しを行ってくれる様、1行httpd.confに追加しました
BufferedLogs on
これも上記と同様の狙いです。