使用 HAProxy 对某些 Web 服务器进行负载平衡时,我遇到了一个奇怪的问题。负载平衡的响应有时会变得非常慢...
我的脚本:
global
daemon
quiet
maxconn 4096
nbproc 2
listen XMLRPC 0.0.0.0:8888
mode http
balance roundrobin
option httpclose
option forwardfor
server Srv1(10.199.100.111:8082) 10.199.100.111:8082 check inter 10
server Srv2(10.199.100.112:8084) 10.199.100.112:8084 check inter 10
listen Custom1 0.0.0.0:60080
mode http
balance roundrobin
option httpclose
option forwardfor
server Srv1(10.199.100.111:60081) 10.199.100.111:60081 check inter 10
server Srv2(10.199.100.112:60083) 10.199.100.112:60083 check inter 10
listen Statistics 0.0.0.0:7000
balance
timeout connect 60000
timeout client 60000
timeout server 60000
option httpclose
mode http
stats enable
stats uri /
stats hide-version
stats auth admin:admin
当我取出负载平衡器并直接连接到 Web 服务器时,此问题不会发生,但是我没有负载平衡/故障转移,所以这不是我想要的。
有人知道这里出了什么问题吗?为什么有些请求速度很快,而其他请求却很慢(10-15秒)?
提前致谢!
答案1
我觉得没什么明显错误。您没有超时,这很糟糕,但这无关紧要。您应该启用日志记录,它会告诉您请求在哪里花费了时间。为此,请使用“option httplog”和“log 127.0.0.1 local0”,然后设置您的 syslogd 以在 UDP 套接字上接收日志(例如:syslogd -r)。
嗯,是的,您的配置有问题。您每秒检查服务器 100 次,这对它们来说可能太多了。将“inter 10”替换为“inter 10s”。
威利