Hi, Thierry.
thanks a lot. yep. we changed the key from 4096 to 2048 right now Mike At 2017-12-22 19:57:56, "Thierry Fournier" <[email protected]> wrote: >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 >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> >

