On Mon, Mar 30, 2015 at 10:11 PM, Pavlos Parissis <pavlos.paris...@gmail.com> wrote: > Hi all, > > During a stress test I discovered a drop of 5% performance at rate of > 380K req/s when the following 3 statements were added in a frontend > where HTTPS is not used > > http-request add-header X-Cipher-Name %sslc > http-request add-header X-Cipher-Version %sslv > http-request add-header X-Cipher-Bits %[ssl_fc_use_keysize] > > Here is the stress result > # wrk --timeout 3s --latency -c 1000 -d 5m -t 24 > http://10.190.3.1/ > Running 5m test @ http://10.190.3.1/ > 24 threads and 1000 connections > Thread Stats Avg Stdev Max ± Stdev > Latency 2.31ms 815.14us 27.06ms 74.32% > Req/Sec 16.98k 2.25k 32.00k 85.12% > Latency Distribution > 50% 2.43ms > 75% 2.71ms > 90% 3.15ms > 99% 3.88ms > 115019521 requests in 5.00m, 16.50GB read > Socket errors: connect 0, read 0, write 0, timeout 13264 > Requests/sec: 383420.54 > Transfer/sec: 56.31MB > > After I removed only the ssl_fc_use_keysize fetcher > http-request add-header X-Cipher-Bits %[ssl_fc_use_keysize] > > performance was improved by 5%, see below > # wrk --timeout 3s --latency -c 1000 -d 5m -t 24 > http://10.190.3.1/ > Running 5m test @ http://10.190.3.1/ > 24 threads and 1000 connections > Thread Stats Avg Stdev Max ± Stdev > Latency 2.12ms 831.01us 206.61ms 74.86% > Req/Sec 17.88k 2.22k 31.56k 80.62% > Latency Distribution > 50% 2.30ms > 75% 2.62ms > 90% 2.88ms > 99% 3.72ms > 120947683 requests in 5.00m, 17.35GB read > Socket errors: connect 0, read 0, write 0, timeout 17255 > Requests/sec: 403180.76 > Transfer/sec: 59.21MB > > When I added it back but with a condition if traffic is HTTPS > performance at that high rate of request was increased > http-request add-header X-Cipher-Bits %[ssl_fc_use_keysize] if > https_traffic > > stress results: > # wrk --timeout 3s --latency -c 1000 -d 5m -t 24 > http://10.190.3.1/ > Running 5m test @ http://10.190.3.1/ > 24 threads and 1000 connections > Thread Stats Avg Stdev Max ± Stdev > Latency 2.07ms 823.41us 32.08ms 75.64% > Req/Sec 17.86k 2.27k 29.56k 81.81% > Latency Distribution > 50% 2.27ms > 75% 2.54ms > 90% 2.76ms > 99% 3.80ms > 120945989 requests in 5.00m, 17.35GB read > Socket errors: connect 0, read 0, write 0, timeout 19828 > Requests/sec: 403177.77 > Transfer/sec: 59.21MB > > > I also added the same condition for other 2 variables accessed as log > formatters and the performance was improved even more > > stress results with > http-request add-header X-Cipher-Name %sslc if https_traffic > http-request add-header X-Cipher-Version %sslv if https_traffic > http-request add-header X-Cipher-Bits %[ssl_fc_use_keysize] if > https_traffic > > # wrk --timeout 3s --latency -c 1000 -d 5m -t 24 > http://10.190.3.1/ > Running 5m test @ http://10.190.3.1/ > 24 threads and 1000 connections > Thread Stats Avg Stdev Max ± Stdev > Latency 2.12ms 9.64ms 607.23ms 99.79% > Req/Sec 19.43k 3.28k 33.56k 82.82% > Latency Distribution > 50% 1.95ms > 75% 2.20ms > 90% 2.41ms > 99% 3.36ms > 131646991 requests in 5.00m, 18.88GB read > Socket errors: connect 0, read 0, write 0, timeout 30179 > Requests/sec: 438828.20 > Transfer/sec: 64.45MB > > Lesson learned here is to either condition all your statements or pay > attention at the context you apply a logic. > > > Cheers, > Pavlos >
Hey!!!! Just to highlight the most important point, from my point of view: "Requests/sec: 438828.20" nice job man! Baptiste