Назад | Перейти на главную страницу

TPS балансировки нагрузки Haproxy ниже, чем у одного узла

У меня есть 2 сервера apache2, запущенных в задней части, и между ними и клиентами есть haproxy. Если я тестирую любой из этих серверов apache2 с ab, я получаю к северу от 1500TPS, однако, когда я тестирую HAproxy, я получаю меньше этого значения. Что не имеет смысла.

Я использую простой алгоритм циклического перебора для балансировки, и мой maxconn установлен на 8000 для хорошей меры.

Я ожидал, что число транзакций в секунду приближается к совокупным транзакциям в секунду каждого узла apache2 (2800 транзакций в секунду). Вместо этого я получил значение меньше любого из двух узлов apache2. Что может быть причиной?

Стендовый тест, который я сделал

ab -t 60 -c 400 haproxyIP:1234

HEre - очень стандартная конфигурация HAproxy, но она должна выполнять то, что мне нужно.

 global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    maxconn 8000
    user haproxy
    group haproxy
    daemon

 defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    retries 3
    maxconn 8000
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

listen public :1234
   stats enable
   stats auth username:userpassword
   balance leastconn
   server web-1 127.0.0.1:xxxx check
   server web-2 xx.xx.xx.xx:xxxx check