Hello all: we are rolling out a new system and are testing the SSL performance with some strange results. This is all being performed on a cloud hypervisor instance with the following:
HA-Proxy version 1.5.11 2015/01/31 8GM RAM / 8 CPUs when we run 'ab' with nbproc set to '1' we see the following: ab -n 40000 -c 2000 https://localhost/status This is ApacheBench, Version 2.3 <$Revision: 1528965 $> 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 4000 requests Completed 8000 requests Completed 12000 requests Completed 16000 requests Completed 20000 requests Completed 24000 requests Completed 28000 requests Completed 32000 requests Completed 36000 requests Completed 40000 requests Finished 40000 requests Server Software: nginx Server Hostname: localhost Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256 Document Path: /status Document Length: 16 bytes Concurrency Level: 2000 Time taken for tests: 101.824 seconds Complete requests: 40000 Failed requests: 0 Total transferred: 17400000 bytes HTML transferred: 640000 bytes Requests per second: 392.83 [#/sec] (mean) Time per request: 5091.206 [ms] (mean) Time per request: 2.546 [ms] (mean, across all concurrent requests) Transfer rate: 166.88 [Kbytes/sec] received Now the documentation does say the one should not need to raise nbproc as it can make debugging difficult, but to see what would happen we gave it a try: ab -n 40000 -c 2000 https://localhost/ This is ApacheBench, Version 2.3 <$Revision: 1528965 $> 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 4000 requests Completed 8000 requests Completed 12000 requests Completed 16000 requests Completed 20000 requests Completed 24000 requests Completed 28000 requests Completed 32000 requests Completed 36000 requests Completed 40000 requests Finished 40000 requests Server Software: nginx Server Hostname: localhost Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256 Document Path: / Document Length: 0 bytes Concurrency Level: 2000 Time taken for tests: 45.011 seconds Complete requests: 40000 Failed requests: 0 Total transferred: 8880000 bytes HTML transferred: 0 bytes Requests per second: 888.67 [#/sec] (mean) Time per request: 2250.558 [ms] (mean) Time per request: 1.125 [ms] (mean, across all concurrent requests) Transfer rate: 192.66 [Kbytes/sec] received so that is certainly better, but now look what happens if we use purely HTTP: ab -n 40000 -c 2000 http://localhost/status This is ApacheBench, Version 2.3 <$Revision: 1528965 $> 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 4000 requests Completed 8000 requests Completed 12000 requests Completed 16000 requests Completed 20000 requests Completed 24000 requests Completed 28000 requests Completed 32000 requests Completed 36000 requests Completed 40000 requests Finished 40000 requests Server Software: nginx Server Hostname: localhost Server Port: 80 Document Path: /status Document Length: 16 bytes Concurrency Level: 2000 Time taken for tests: 7.152 seconds Complete requests: 40000 Failed requests: 0 Total transferred: 17400000 bytes HTML transferred: 640000 bytes Requests per second: 5592.99 [#/sec] (mean) Time per request: 357.591 [ms] (mean) Time per request: 0.179 [ms] (mean, across all concurrent requests) Transfer rate: 2375.93 [Kbytes/sec] received Have tried adding the option prefer-last-server but that did not make a great deal of difference. Any thoughts please as to what could be wrong ? Thanks, Phil (null)