コラム
2021/07/27

ApacheとnginxとLiteSpeedで性能測定してみた!②

  • 開発

はじめに

ApacheとnginxとLiteSpeedで性能測定してみた!前回は8Kの画像ファイルに同時接続100人で10000リクエストを処理し、各種Webサーバソフトウェアの性能を測定しました。
今回は負荷条件を変更し、測定してみます。
どのような変化が起こったかご確認ください!

5倍の負荷(同時接続500人で50000リクエスト)をかけてみます。
まずはApacheです。

※ Apacheはデフォルトの設定では同時リクエストは256しか処理できないため、設定値 ServerLimit と MaxClient を1000に設定して実施しています。

[root@ip-XXX-XXX-XXX-XXX html]# ab -n 50000 -c 500 http://localhost:8080/test.png
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests


Server Software:        Apache/2.4.41
Server Hostname:        localhost
Server Port:            8080

Document Path:          /test.png
Document Length:        8106 bytes

Concurrency Level:      500
Time taken for tests:   6.892 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      418800000 bytes
HTML transferred:       405300000 bytes
Requests per second:    7254.33 [#/sec] (mean)
Time per request:       68.924 [ms] (mean)
Time per request:       0.138 [ms] (mean, across all concurrent requests)
Transfer rate:          59338.14 [Kbytes/sec] received

Connection Times (ms)
            min  mean[+/-sd] median   max
Connect:        0   25 130.9      8    1049
Processing:     1   35  55.8     27    1343
Waiting:        0   28  55.6     18    1343
Total:          1   60 146.2     35    1517

Percentage of the requests served within a certain time (ms)
      50%     35
      66%     40
      75%     43
      80%     45
      90%     51
      95%     73
      98%    461
      99%   1052
      100%   1517 (longest request)
[root@ip-XXX-XXX-XXX-XXX html]# 

次にnginxです。

[root@ip-XXX-XXX-XXX-XXX html]# ab -n 50000 -c 500 http://localhost:80/test.png
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests


Server Software:        nginx/1.18.0
Server Hostname:        localhost
Server Port:            80

Document Path:          /test.png
Document Length:        8106 bytes

Concurrency Level:      500
Time taken for tests:   2.666 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      417050000 bytes
HTML transferred:       405300000 bytes
Requests per second:    18755.86 [#/sec] (mean)
Time per request:       26.658 [ms] (mean)
Time per request:       0.053 [ms] (mean, across all concurrent requests)
Transfer rate:          152776.03 [Kbytes/sec] received

Connection Times (ms)
            min  mean[+/-sd] median   max
Connect:        0   13  79.2      6    1035
Processing:     4   13   4.0     12      40
Waiting:        0    7   2.8      7      28
Total:          9   26  79.3     19    1047

Percentage of the requests served within a certain time (ms)
      50%     19
      66%     20
      75%     21
      80%     21
      90%     28
      95%     31
      98%     39
      99%     45
      100%   1047 (longest request)
[root@ip-XXX-XXX-XXX-XXX html]# 

最後にLiteSpeedです。

[root@ip-XXX-XXX-XXX-XXX html]# ab -n 50000 -c 500 http://localhost:8088/test.png
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests


Server Software:        LiteSpeed
Server Hostname:        localhost
Server Port:            8088

Document Path:          /test.png
Document Length:        8106 bytes

Concurrency Level:      500
Time taken for tests:   2.861 seconds
Complete requests:      50000
Failed requests:        0
Total transferred:      421350000 bytes
HTML transferred:       405300000 bytes
Requests per second:    17477.17 [#/sec] (mean)
Time per request:       28.609 [ms] (mean)
Time per request:       0.057 [ms] (mean, across all concurrent requests)
Transfer rate:          143828.24 [Kbytes/sec] received

Connection Times (ms)
            min  mean[+/-sd] median   max
Connect:        0   10  48.1      8    1029
Processing:     6   19  14.5     17     423
Waiting:        0   11  14.6     10     418
Total:         12   28  50.3     25    1052

Percentage of the requests served within a certain time (ms)
      50%     25
      66%     27
      75%     28
      80%     29
      90%     30
      95%     31
      98%     36
      99%     73
      100%   1052 (longest request)
[root@ip-XXX-XXX-XXX-XXX html]# 

今回はパーセンタイルに注目してみます。

パーセンタイル

Apache nginx LiteSpeed
50%     35 50%     19 50%     25
66%     40 66%     20 66%     27
75%     43 75%     21 75%     28
80%     45 80%     21 80%     29
90%     51 90%     28 90%     30
95%     73 95%     31 95%     31
98%    461 98%     39 98%     36
99%   1052 99%     45 99%     73
100%   1517 100%   1047 100%   1052

Apacheは95%くらいまでは比較的よい性能にみえていますが、98%以上で性能の劣化がみられてきています。 一方、nginx・LiteSpeedは安定した処理性能を発揮しているようにみえます。nginxとLiteSpeedではあまり差異はみられません。

次回は測定対象のファイルを「小さいサイズの画像(約8K)」から「一般的なWEBコンテンツサイズのHTML(約60K)」に変更してみます。
興味深い結果については次のコラムでご報告します!

WEBSASくん
  1. <<
  2.   
  3. 1
  4.    
  5. 2
  6.    
  7. 3
  8.  
  9. >>