Hi Cyril,

On Sat, Jan 23, 2016 at 11:55:27PM +0100, Cyril Bonté wrote:
> From my first tests, I can see a performance drop  between commit 
> 5506e3f8 and e583ea58 (before 1.6-dev1).
> 
> Here is the sample configuration I use :
> global
>   tune.ssl.default-dh-param 2048
> 
> listen test
>   mode http
>   bind :9443 ssl crt localhost.pem
>   server s localhost:80
> 
> 
> At commit 5506e3f8 (BUG/MINOR: stats: correctly set the request/response 
> analysers)
> 
> $ ab -n1000 -c1 -k https://127.0.0.1:9443/1mb
> Time taken for tests: 2.403 seconds
> Requests per second:    416.08 [#/sec] (mean)
> 
> The next commit (5be2f352 MAJOR: polling: centralize calls to I/O 
> callbacks) seems to break keep-alive, I can't test any commit until 
> e583ea58 where I have this result (still true with current 1.7 head) :
> 
> $ ab -n1000 -c1 -k https://127.0.0.1:9443/1mb
> Time taken for tests:   2.933 second
> Requests per second:    340.97 [#/sec] (mean)

Interesting, approximately the same drop as observed by Gary.
Given that we're dealing with large blocks and that the drop
is not observed on smaller objects nor in clear, I suspect
we're calling the SSL stack too many times (eg: polling may
not be properly disabled when a buffer is full or something
like this).

I'll profile the calls to try to understand what may be
happening. Interestingly, the 40 Gbps test I mentionned was
run just before these changes.

Kudos for having bisected it around that area! I guess we should
be able to reproduce the issue with 1 GB transfers so that we
don't care about keep-alive.

Cheers,
Willy


Reply via email to