Hi,

Similar to what Christian asked about a few days ago I would like help
to summarize the recommendations for running a haproxy as a SSL LB on
a multi cpu, multi core machine.

I have a machine with two sockets equipped with Intel Xeon E5-2680 v4.
56 cores in total with HT enabled, 28 with HT disabled.

Summary(correct me where I'm wrong):
Hyperthreading - should be disabled
As for network IRQ pinning, should I not pin the NIC to core 0 of each
CPU? Should I split it up between the cores when doing SSL termination
on most cores?

global
    nbproc 28 # equal to the number of none HT cores (28 in my case)
    # cpu-map's equal to the number of non HT cores.
    # (didn't see any cpu-map in Christians configuration, is it not
needed anymore?)
    cpu-map 1 0
    cpu-map 2 1
    ...
    cpu-map 28 27

frontend https
    bind :443 ssl crt /etc/ssl/xx.pem process 1
    ....
    bind :443 ssl crt /etc/ssl/xx.pem process 28
    # should I omitt process 1/2 and 15/16 here?

# Should I use core 0 on each CPU for backends (proc 1+15) or should I
use core 1(proc 2+16)?
backend x
    bind-process 1 15
backend y
    bind-process 2 16
backend z
    # or should i use a bind-process like the frontend's bind?
    bind-process 2
    bind-process 16


I just read the release notes for haproxy 1.7. There was mention of
mixing different certificate types under "support of multi-certs".

Previously I would have a tcp-ssl that would send traffic to a ecc
backend and a rsa backend depending on req.ssl_ec_ext, which in turn
would send traffic to a frontend with two sockets, one for each
certificate type.
To something like this (hope my ascii doesn't get messed up).


                    +-->backend01
                                +--->backend-ecc+                             |
frontend-tcp-ssl:443 |
+--->frontend-https+-->backend02
                                +--->backend-rsa +                             |

                    +-->backend03

Does this mean I can now mix RSA and ECC certificates on the same
frontend and skip the entire frontend-backend-frontend trick?

                              +-->backend01
                              |
frontend-https:443+-->backend02
                              |
                              +-->backend03

Thanks,
Elias

Reply via email to