Hello,

I’ve been testing haproxy’s SSL termination, to figure out its limit on our 
hardware:
Intel(R) Xeon(R) CPU           X5675  @ 3.07GHz (12 cores, 24 with HT)
24Gb RAM
2Gbit NIC

Full configuration is in attachment. Briefly, we have 1 haproxy, and 2 backend 
(nginx), tests were running against static file (1kb, and 5kb). Haproxy listen 
on 443 in tcp mode (“listen tcp mode”), then listen figure out what frontend to 
use (“use-server <frontend> if <condition>), and send data with 
“send-proxy/accept-proxy” to frontend, which in turn sends it to backend. 
Haproxy is running in multiple process mode (nbproc 14, 1-10 - for SSL 
termination (listen), 11-14 - for HTTP (front ends + backend). I’ve tried to 
simplify configuration via using “use_backend” in “listen” section, but didn’t 
notice any difference.

The problem I see that total number of connections (stot metric) stops at 200k 
with HTTPS, but goes over 400k-500k with plain HTTP. Each haproxy process stops 
at 20k (we’re running 10 processes). Graph attached. I ran few different tests 
and every time 200k seems to be the limit.

It’s really bothering me, since I can’t find any explanation why would it stop 
on 20k per process, and it doesn’t seem like haproxy hitting any limit - logs 
looks okay, no errors like “out of memory, or no free ports, etc”. And it 
doesn’t look like it moves, more like hitting some configuration limit, which I 
couldn’t figure out. 

Is anyone using haproxy for SSL terminations, what’s your stot? 
Is there any possible openssl configuration/compilation options which might 
cause such behavior?


PS: please include me in Cc, I’m not subscribed to list.


 

Attachment: haproxy.cfg
Description: Binary data


Reply via email to