我对haproxy很陌生,并将其用于将rsyslog日志用于ArcSight连接器的TCP负载平衡。在我的生活中,我无法让流量在池中的所有节点之间均匀平衡(这是所需的行为)。我试过很多次权数排列和最大重量排列都没有用。
这似乎是一个简单的问题,但每个池节点的行为非常混乱。而且,由于大多数人使用what来实现http负载平衡,所以我发现很少有关于我想要做的事情的最佳方式的文档。
有人有任何洞察力、被证实的信任或故障排除步骤可推荐吗?
谢谢!
下面是我们当前的配置:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 256000
user haproxy
group haproxy
spread-checks 5
daemon
quiet
defaults
log global
option dontlognull
option redispatch
option allbackups
maxconn 256000
timeout connect 5000
listen stats :1936
mode http
stats enable
stats realm Haproxy\ Statistics
stats uri /
stats auth admin:savetheday
frontend rsyslog_netscreen
bind 127.0.0.1:8514
mode tcp
option tcplog
option contstats
option tcpka
default_backend rsyslog_netscreen_backend
backend rsyslog_netscreen_backend
balance roundrobin
mode tcp
option tcpka
option srvtcpka
server netscreen1 localhost:9515 weight 1 maxconn 1024 check
server netscreen2 localhost:9516 weight 1 maxconn 1024 check
server netscreen3 localhost:9517 weight 1 maxconn 1024 check
server netscreen4 localhost:9518 weight 1 maxconn 1024 check
server netscreen5 localhost:9519 weight 1 maxconn 1024 check
server netscreen6 localhost:9520 weight 1 maxconn 1024 check发布于 2014-04-15 13:11:19
请注意,roundrobin不是实现均匀加载的好策略。它将确保每个后端随着时间的推移接收相同数量的连接,但不关心每个连接持续多长时间。
在您的stats视图中,很明显,每个后端服务器的会话总数几乎相等(如果它们的正常运行时间相等)。但是,当前会话的数量可能会有很大的差异。
我们已经发现,使用leastconn而不是roundrobin会产生更均匀的负载。这是有道理的,因为服务器碰巧被许多长期存在的客户端困住了,而这些客户端保持着它们的连接,而不必背负新的传入连接的负担。
发布于 2016-08-18 17:58:12
使用roundrobin进行短期连接,对较长时间的连接使用最少的。
https://serverfault.com/questions/580142
复制相似问题