haproxy SSL termination... Awesome!!!!!!

I have been in the process of replacing our hardware appliances with a software 
based solution running in a virtualized environment. 

We currently have a project running in semi-beta mode to a closed set of users. 
Our current load is around 2500 new ssl TPS at 2048 bit ssl certs. We currently 
have a ssl cache of around 1,000,000. I am not sure how many ssl session reuses 
a second because our appliances do not capture that info ( I am guessing around 
4000 because of data in other logs files ). When we open up our project to the 
public we expect much more traffic.

Our software solution is using stunnel + haproxy (with accept-proxy) running on 
10 Virtual machines per host, with 10 CPU's per virtual machine. We actually 
get 
better throughput using the VM's rather than the physical server due to 
software 
interrupts etc. I have been able to benchmark this solution using full TCP and 
HTTP requests at 9,500 new ssl TPS at 2048 bit certs with around 70,000 ssl 
reuses per second. We also get over 6Gbps of throughput. (we will have at least 
two physical servers for redundancy etc so double the numbers above). 

Our software solution still has a pair L4 load balancers in front of the ssl 
terminators for redundancy, and we are using stunnel's shared ssl session cache 
so that we can avoid sticky TCP sessions from the L4 load balancer. 

I tested the new haproxy SSL implementation I was able to hit closer to 12,000 
new TPS (MUCH better performance) but it does not appear that haproxy currently 
shares the session cache across servers. I do know that it shares it across 
multi-process on the same box. Is this something that you are planning on 
implementing? Or is there some other way that I can achieve this? 

Thanks for your awesome work!
David T.



Reply via email to