Hi,

I've prepared a simple testcase:

haproxy-moreperformant.cfg:
global
        nbproc 40
        user haproxy
        group haproxy
        maxconn 175000

defaults
        timeout client 300s
        timeout server 300s
        timeout queue 60s
        timeout connect 7s
        timeout http-request 10s
        maxconn 175000

        bind-process 1

frontend haproxy_test
        #bind-process 1-40
        bind :12345 process 1

        mode http

        default_backend backend_test

backend backend_test
        mode http

        errorfile 503 /etc/haproxy/test.error

# vim: set syntax=haproxy:


haproxy-lessperformant.cfg:
global
        nbproc 40
        user haproxy
        group haproxy
        maxconn 175000

defaults
        timeout client 300s
        timeout server 300s
        timeout queue 60s
        timeout connect 7s
        timeout http-request 10s
        maxconn 175000

        bind-process 1

frontend haproxy_test
        bind-process 1-40
        bind :12345 process 1

        mode http

        default_backend backend_test

backend backend_test
        mode http

        errorfile 503 /etc/haproxy/test.error

# vim: set syntax=haproxy:

/etc/haproxy/test.error:
HTTP/1.0 200
Cache-Control: no-cache
Content-Type: text/plain

Test123456


The test:
ab -n 5000 -c 250 http://xx.xx.xx.xx:12345

With the first config I get around ~30-33k requests/s on my test system, with the second conf (only the bind-process in the frontend section has been changed!) I just get around 26-28k requests per second.

I could get similar differences when playing with nbproc 1 and >1 as well as the default "bind-process" and/or the "process 1" on the actual bind. Is it really just the multi process overhead causing the performance drop here, even tough the bind uses the first / only one process anyway?

--
Regards,
Christian Ruppert

Reply via email to