我在后端运行了 2 个 apache2 服务器,并在它们和客户端之间有一个 haproxy。如果我使用 ab 对这些 apache2 服务器中的任何一个进行基准测试,我得到的结果是 1500TPS 以上,但是当我对 HAproxy 进行基准测试时,我得到的结果是低于这个值。这没有意义。
我正在使用简单的循环算法进行平衡,并且将 maxconn 设置为 8000 以获得良好的效果。
我预期的 tps 接近每个 apache2 节点的总 tps(2800TPS)。但我得到的值却小于两个 apache2 节点中的任何一个。可能是什么原因造成的?
我做的台架测试
ab -t 60 -c 400 haproxyIP:1234
这里的 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