Haproxy 1.9 with nbthread > 1 and SO_REUSEPORT

Hey Lukas and haproxy experts,

We’ve been using haproxy 1.8 successfully using:

nbproc 6
.
.
.
listen ssl-offload
   mode tcp
    bind 192.168.5.1:443 ssl crt ... alpn http/1.1,http/1.0 process 1
    bind 192.168.5.1:443 ssl crt ... alpn http/1.1,http/1.0 process 2
    bind 192.168.5.1:443 ssl crt ... alpn http/1.1,http/1.0 process 3
    bind 192.168.5.1:443 ssl crt ... alpn http/1.1,http/1.0 process 4
    bind 192.168.5.1:443 ssl crt ... alpn http/1.1,http/1.0 process 5
    bind 192.168.5.1:443 ssl crt ... alpn http/1.1,http/1.0 process 6

    server clear1 abns@clear1 send-proxy-v2-ssl-cn

This is to follow the advice of best practices to let haproxy use SO_REUSEPORT and distribute the load evenly between all processes.

Now when switching to 1.9 and setting nbproc = 1 and nbthread = 6, the question is: Is the best practice to set a single bind line and will haproxy correctly distribute the load between the threads instead?

Not sure, that’s why I’m asking :slight_smile:

Or is the purpose of a dumb offloader a job for nbproc > 0 and forget about the threads?

Our conf is quite more complex, and the idea of using threads is mainly to have the best accuracy for stick-tables and our shaping logic, but if the best practice is to stick with nbproc > 0 for the offloader, we could use 2 different confs, though that’d a little ugly a little more annoying to manage.

Thanks,

Cris

Hey,

Just read this thread:

https://www.mail-archive.com/haproxy@formilux.org/msg31434.html

It contains all the info I need :slight_smile:

Sorry for the noise

1 Like