Apacheでmod_sslを試してみる

VirtualBoxにCentOSをとりあえずインストール
の続き

Apacheでmod_sslを試してみる。

Apacheとmod_sslのインストール

Apacheとmod_sslをインストールして起動する。

$ sudo yum -y install httpd mod_ssl
$ sudo service httpd start

httpsにアクセス

httpsのページにアクセスすると、

https://サーバーのアドレス/

証明書が信頼できない、と表示されて

このまま続行を押すと、httpsでページが表示される。


httpの場合

mac$ ab -c 100 -n 10000 http://192.168.56.101/
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 192.168.56.101 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.2.15
Server Hostname:        192.168.56.101
Server Port:            80

Document Path:          /
Document Length:        5039 bytes

Concurrency Level:      100
Time taken for tests:   13.423 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Non-2xx responses:      10000
Total transferred:      52370000 bytes
HTML transferred:       50390000 bytes
Requests per second:    744.97 [#/sec] (mean)
Time per request:       134.234 [ms] (mean)
Time per request:       1.342 [ms] (mean, across all concurrent requests)
Transfer rate:          3809.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.8      0      13
Processing:     8  133  45.0    128    2747
Waiting:        7  121  24.1    126     545
Total:          8  134  45.0    128    2752

Percentage of the requests served within a certain time (ms)
  50%    128
  66%    130
  75%    132
  80%    134
  90%    169
  95%    206
  98%    246
  99%    270
 100%   2752 (longest request)

約13秒ほどかかる。

httpsの場合

$ ab -c 100 -n 10000 https://192.168.56.101/
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 192.168.56.101 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.2.15
Server Hostname:        192.168.56.101
Server Port:            443
SSL/TLS Protocol:       TLSv1,DHE-RSA-AES256-SHA,1024,256

Document Path:          /
Document Length:        5039 bytes

Concurrency Level:      100
Time taken for tests:   76.488 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Non-2xx responses:      10002
Total transferred:      52380474 bytes
HTML transferred:       50400078 bytes
Requests per second:    130.74 [#/sec] (mean)
Time per request:       764.877 [ms] (mean)
Time per request:       7.649 [ms] (mean, across all concurrent requests)
Transfer rate:          668.77 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       70  442 138.3    413    1493
Processing:     1  322 110.4    333     747
Waiting:        1  130  66.5    112     617
Total:        118  764 113.3    746    1801

Percentage of the requests served within a certain time (ms)
  50%    746
  66%    756
  75%    767
  80%    784
  90%    870
  95%    964
  98%   1117
  99%   1218
 100%   1801 (longest request)

約76秒ほどかかる。

100KBのHTMLの場合

100KBのHTMLだとどうなるか試してみる。

まず、100KBのHTMLを生成する。

$ sudo yum -y install php
$ sudo chown ユーザー名:ユーザー名 /var/www/html
$ cd /var/www/html
$ php -r '$s=range("a","z"); for($i=0;$i<102400;$i++) echo $s[array_rand($s)];' > 100kb.html
httpの場合
$ ab -c 100 -n 10000 http://192.168.56.101/100kb.html
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 192.168.56.101 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.2.15
Server Hostname:        192.168.56.101
Server Port:            80

Document Path:          /100kb.html
Document Length:        102400 bytes

Concurrency Level:      100
Time taken for tests:   71.511 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      1026750000 bytes
HTML transferred:       1024000000 bytes
Requests per second:    139.84 [#/sec] (mean)
Time per request:       715.111 [ms] (mean)
Time per request:       7.151 [ms] (mean, across all concurrent requests)
Transfer rate:          14021.39 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   5.0      0     201
Processing:    13  713 186.6    716    3083
Waiting:        0  191 148.2    162    2490
Total:         13  714 186.5    716    3084

Percentage of the requests served within a certain time (ms)
  50%    716
  66%    775
  75%    817
  80%    843
  90%    925
  95%   1005
  98%   1105
  99%   1191
 100%   3084 (longest request)

約71秒かかった。

httpsの場合
$ ab -c 100 -n 10000 https://192.168.56.101/100kb.html
$ ab -c 100 -n 10000 https://192.168.56.101/100kb.html
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 192.168.56.101 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.2.15
Server Hostname:        192.168.56.101
Server Port:            443
SSL/TLS Protocol:       TLSv1,DHE-RSA-AES256-SHA,1024,256

Document Path:          /100kb.html
Document Length:        102400 bytes

Concurrency Level:      100
Time taken for tests:   125.218 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      1026750000 bytes
HTML transferred:       1024000000 bytes
Requests per second:    79.86 [#/sec] (mean)
Time per request:       1252.183 [ms] (mean)
Time per request:       12.522 [ms] (mean, across all concurrent requests)
Transfer rate:          8007.50 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       12  344 654.8    261   29723
Processing:    80  896 852.1    842   12290
Waiting:        1  185 411.1    156   10503
Total:        324 1240 1055.0   1121   30575

Percentage of the requests served within a certain time (ms)
  50%   1121
  66%   1203
  75%   1261
  80%   1304
  90%   1422
  95%   1566
  98%   1822
  99%   3709
 100%  30575 (longest request)

約125秒かかった。