Hi Mike, I do not have examples.
The guidelines for 8 cpu (considering that your server is dedicated to haproxy). 7 cpu dedicated to the SSL and 1 cpu for the HTTP. Create 1 section “listen” binded on 7 CPU. Theses sections are only TCP (doesn’t process HTTP) and decrypt the SSL traffic. These sections forward the decrypted trafic to a local proxy which process http. I hope this quick explanation will help you. Another way for gaining CPU is asking about the right usage of 4096 bit keys. There are very useful ? 2048 bit keys are not sufficient ? Thierry > On 19 Dec 2017, at 16:14, [email protected] wrote: > > Hi, Thierry. > > Thanks again. > > One more question about you talking about, can i just think like this way: > assume we got a 8core cpu, we use 7 of them for ssl termination and one is > for http forward? If it is, is there any document for this soulution? > > Thanks a lot > > Mike > > > > -------- 原始邮件 -------- > 主题:Re: Haproxy SSl Termination performance issue > 发件人:Thierry Fournier > 收件人:Mike G > 抄送:Haproxy > > > Ok, you’re using HAProxy as SSL offloading. HAProxy is one of the > right solutions for doing this. You’re performance problem is not > due to HAProxy, each component using OpenSSL will reach the same > limits. > > Classic setup is to configure many process for the SSL offloading > (proxy in TCP mode), and only one for the HTTP. This setup works > fine because it allow many CPU for the SSL which require computing, > and the HTTP processing is done by only one process which can > perform accounting and apply limits (rate limit, connexion limit, > ...). > > Thierry > > > > On 19 Dec 2017, at 12:44, Mike G wrote: > > > > > > > > Hi, Thierry. > > > > our case is like this: we put a haproxy as ssl termination. and haproxy got > > the https requirement. and then go throught SSL ternimation. and then > > forward > > the request to web (by HTTP), also, get the Http request and encrypt it, > > and return HTTPS to client. > > > > > > thanks > > > > Mike > > > > > > > > > > > > At 2017-12-19 19:25:09, "Thierry Fournier" wrote: > > >Hi, > > > > > >What kind of job ? > > > > > >Thierry > > > > > >> On 19 Dec 2017, at 12:17, [email protected] wrote: > > >> > > >> Hi,Thierry > > >> > > >> got it. Thanks! > > >> > > >> By the way, may I ask the ssl termination is best solution for this kind > > >> of job? > > >> > > >> > > >> Many thanks > > >> > > >> Mike > > >> > > >> > > >> > > >> -------- 原始邮件 -------- > > >> 主题:Re: Haproxy SSl Termination performance issue > > >> 发件人:Thierry Fournier > > >> 收件人:Mike G > > >> 抄送:Haproxy > > >> > > >> > > >> Hi, > > >> > > >> I gues that 130 is 130 SSL requests per seconds ? > > >> > > >> SSL is a very heavy processing. The 4096 bits certificates consume more > > >> CPU that 2048 (thanks captain obvious). Your capacity processing is > > >> capped by your CPU. You must check the CPU of your server during your > > >> test. If the CPU consummation is 100%, you reach the limit of your > > >> server. > > >> > > >> If you reach the limit of one CPU (nbproc), you can use more CPU and/or > > >> more > > >> servers. > > >> > > >> Thierry > > >> > > >> > > >> > On 19 Dec 2017, at 08:36, Mike G wrote: > > >> > > > >> > Hi, everyone. > > >> > > > >> > I just got a problem about the haproxy ssl termination performance > > >> > issues. > > >> > we have a case which want to use SSL Termination. so, we did some > > >> > testing before online, I know the virtual machine will not good > > >> > choice, but it make feel so supriose the cur link can be more than 130 > > >> > when I use 4096 key. > > >> > here's my configuration about the haproxy: > > >> > > > >> > haproxy as SSL termination layer before web server. > > >> > the haproxy version is 1.8.1 > > >> > I compile it by myself: > > >> > use the parameter: > > >> > make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 > > >> > > > >> > also, I use download openssl 1.0.2n from openssl.org, and compile by > > >> > those parameters: > > >> > ./config -d zlib > > >> > > > >> > after install openssl and haproxy. > > >> > here's my configuration about the haproxy: > > >> > global > > >> > log 127.0.0.1 local0 > > >> > > > >> > chroot /var/lib/haproxy > > >> > pidfile /var/run/haproxy.pid > > >> > maxconn 65535 > > >> > group haproxy > > >> > user haproxy > > >> > daemon > > >> > nbproc 1 > > >> > > > >> > stats socket /var/lib/haproxy/stats > > >> > tune.ssl.default-dh-param 2048 > > >> > > > >> > defaults > > >> > mode http > > >> > log global > > >> > option redispatch > > >> > option abortonclose > > >> > log 127.0.0.1 local0 > > >> > retries 3 > > >> > maxconn 65535 > > >> > timeout connect 10s > > >> > timeout client 1m > > >> > timeout queue 1m > > >> > timeout http-request 30s > > >> > timeout server 1m > > >> > timeout check 5s > > >> > > > >> > listen admin_stats > > >> > bind 0.0.0.0:20123 > > >> > maxconn 10 > > >> > stats refresh 10s > > >> > stats uri /web/status > > >> > stats auth admin:1 > > >> > stats hide-version > > >> > > > >> > > > >> > frontend localhost > > >> > bind *:80 > > >> > bind *:443 ssl crt /etc/ssl/web-zhengshu.pem > > >> > option httpclose > > >> > mode http > > >> > default_backend nodes > > >> > > > >> > backend nodes > > >> > mode http > > >> > balance roundrobin > > >> > option forwardfor > > >> > option httpchk GET /check.html > > >> > server web01 127.0.0.1:8080 check > > >> > http-request set-header X-Forwarded-Port %[dst_port] > > >> > http-request add-header X-Forwarded-Proto https if { ssl_fc } > > >> > > > >> > > > >> > note: about the option httpclose, I make it for purpose. > > >> > > > >> > also, I use vegeta for test. > > >> > here's the testing command line: > > >> > echo "GET https://10.77.77.215/check.html" | ./vegeta.vegeta -cpus=8 > > >> > attack -duration=90s -rate=800 -insecure | tee reports.bin | > > >> > ./vegeta.vegeta report > > >> > > > >> > I found the cpu is get more than 90% usage very soon. but the haproxy > > >> > status picture like in attachment. > > >> > > > >> > the max links is less than 130 around. > > >> > > > >> > but when I changed the ssl certication file back to 2048, it will be > > >> > increase to around 800. > > >> > > > >> > is there anyone can help me about how to improve the haproxy ssl > > >> > termination performance? > > >> > > > >> > > > >> > Many thanks > > >> > > > >> > > > >> > Mike > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > >> > > > > > > > > >

