前回はmod_pagespeedの導入効果をGoogle Analysticsで評価してみました。
今回は他の方ので効果を測定してみます。
abコマンド
WebサーバのApacheにはパフォーマンス測定用に「ab」というコマンドがついてきます。Debianの場合はapache2-utilsに含まれます。apache2-utilsは次のコマンドでインストールすることができます
sudo apt-get install apache2-utils
abコマンドにはいくつかオプションがありますが、今回は次の設定でパフォーマンスを測定してみることにしました。
sudo ab –n 100 –c 10 https://scratchpad.jp/
-nで測定を行う総リクエスト数、-cで同時に発行できるリクエスト数を指定します。この設定では同時の10個のクライアントから接続された状態を生み出します。
今回は自宅のLinuxでabコマンドを実行しました。
mod_pagespeed導入前
それでは、mod_pagespeed導入前の結果を見てみましょう。何度か実行したのですが似たような傾向があったので、代表的な結果を示します。
sudo ab -n 100 -c 10 https://scratchpad.jp/
This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking scratchpad.jp (be patient).....done Server Software: Apache/2.2.16 Server Hostname: scratchpad.jp Server Port: 80 Document Path: / Document Length: 77439 bytes Concurrency Level: 10 Time taken for tests: 100.035 seconds Complete requests: 100 Failed requests: 10 (Connect: 0, Receive: 0, Length: 10, Exceptions: 0) Write errors: 0 Total transferred: 7772220 bytes HTML transferred: 7743920 bytes Requests per second: 1.00 [#/sec] (mean) Time per request: 10003.497 [ms] (mean) Time per request: 1000.350 [ms] (mean, across all concurrent requests) Transfer rate: 75.87 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 8 10 2.4 9 19 Processing: 5754 9837 1640.2 9520 17935 Waiting: 5590 9391 1605.9 9083 17450 Total: 5763 9848 1641.1 9530 17950 Percentage of the requests served within a certain time (ms) 50% 9530 66% 9822 75% 10378 80% 10651 90% 11337 95% 12721 98% 17753 99% 17950 100% 17950 (longest request)
覚えておきたい数値としては、
- 「Failed requests」が「10」・・・小さいほど良い
- 「Request per second」が「1.00」・・・大きいほど良い
- 「Time per request」が「10003.497」・・・小さいほど良い
というあたりです。
mod_pagespeed導入後
一方で、mod_pagespeedを導入した後に同じコマンドを実行すると次のようになりました。
ab -n 100 -c 10 https://scratchpad.jp/
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 scratchpad.jp (be patient).....done Server Software: Apache/2.2.16 Server Hostname: scratchpad.jp Server Port: 80 Document Path: / Document Length: 76601 bytes Concurrency Level: 10 Time taken for tests: 100.674 seconds Complete requests: 100 Failed requests: 98 (Connect: 0, Receive: 0, Length: 98, Exceptions: 0) Write errors: 0 Total transferred: 7698448 bytes HTML transferred: 7663648 bytes Requests per second: 0.99 [#/sec] (mean) Time per request: 10067.382 [ms] (mean) Time per request: 1006.738 [ms] (mean, across all concurrent requests) Transfer rate: 74.68 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 8 11 3.9 10 32 Processing: 6831 9958 2050.4 9524 15913 Waiting: 6720 9779 2059.0 9350 15757 Total: 6843 9969 2049.4 9532 15922 Percentage of the requests served within a certain time (ms) 50% 9532 66% 9929 75% 10173 80% 10296 90% 14919 95% 15440 98% 15788 99% 15922 100% 15922 (longest request)
導入前の数値と比べると
- 「Failed requests」が「98」・・・導入前は「10」
- 「Request per second」が「0.99」・・・導入前は「1.00」
- 「Time per request」が「10067.382」・・・導入前は「10003.497」
となっています。
「Failed requests」が激増しているのが気になります。mod_pagespeed導入後では同時に複数のリクエスト発生する、一部のリクエストを受け付けられない状態になるようです。
Time per request等がほとんど変わっていないので、リクエストが受け付けられれば処理時間はほとんど変わらない(若干遅くなっている)ようですが、リクエストが受け付けられなくなるのはいただけないです。
まとめ
今回の測定結果からmod_pagespeedを導入するとリクエストあたりの処理負荷が大きくなり同時に処理できるリクエスト数が大幅に低下してしまうことがわかりました。
それほど大量のアクセスがあるサイトではありませんが、さすがにここまで「Failed requests」の数に差があると木になるので、mod_pagespeedの導入は中止することとしました。
次回はWebサーバをnginxに変更してWordPressの高速化を狙ってみます。
コメント