由于某些原因,ipvsadm在使用wlc或lc调度程序时,似乎没有平衡我的真正服务器之间的连接。一台真正的服务器会受到请求的绝对冲击,而其他服务器则收到相对较少的连接。
我的ldirectord.cf文件如下所示:
quiescent = yes
autoreload = yes
checktimeout = 10
checkinterval = 10
# *.example.com http
virtual = 192.0.2.111:http
real = 10.10.10.1:http ipip 10
real = 10.10.10.2:http ipip 10
real = 10.10.10.3:http ipip 10
real = 10.10.10.4:http ipip 10
real = 10.10.10.5:http ipip 10
scheduler = lc
protocol = tcp
service = http
checktype = negotiate
request = "/lb"
receive = "Up and running"
virtualhost = "site.com"
fallback = 127.0.0.1:http我认为可能导致问题的奇怪之处(但我真的不确定)是ipvsadm似乎没有正确地跟踪活动连接,它们都显示为非活动连接。
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.0.2.111:http lc
-> 10.10.10.1:http Tunnel 10 0 10
-> 10.10.10.2:http Tunnel 10 0 18
-> 10.10.10.3:http Tunnel 10 0 3
-> 10.10.10.4:http Tunnel 10 0 10
-> 10.10.10.5:http Tunnel 10 0 5如果我做了ipvsadm -Lnc,那么我会看到很多连接,但只有在已建立的& FIN_WAIT状态下才能看到。
我以前在基于Gentoo的负载均衡器上使用ldirectord,而且activeconn以前是精确的,因为迁移到Ubuntu10.4LTS似乎有些不同。
# ipvsadm -v
ipvsadm v1.25 2008/5/15 (compiled with popt and IPVS v1.2.1)那么,ipvsadm是否没有正确地跟踪活动连接,从而使负载平衡工作不正确,如果是,如何使它再次正常工作?
编辑:更奇怪的是,如果我cat /proc/net/ip_vs,那么看起来正确的激活是存在的:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP C000026F:0050 rr
-> 0AB42453:0050 Tunnel 10 1 24
-> 0AB4321D:0050 Tunnel 10 0 23
-> 0AB426B2:0050 Tunnel 10 2 25
-> 0AB4244C:0050 Tunnel 10 2 22
-> 0AB42024:0050 Tunnel 10 2 23发布于 2011-02-04 03:50:44
对于lc (最小连接),如果所有服务器都有相同数量的连接,那么它总是会给列表中的第一个服务器提供一个新的连接。这可能意味着,如果您的利用率很低,并且偶尔只有一个连接,则该连接将始终转到列表中的第一个主机。
发布于 2011-04-05 20:32:29
我最喜欢的是斗牛。我是否正确地假设你使用的是DR方法(直接路由)?
在这种情况下,ipvsadm看不到连接本身,因为来自RS (真正的服务器)的答案将直接传递给客户机,而不是通过LB返回。
发布于 2011-04-08 23:41:21
从连接的数量来判断,这对您来说可能不是问题,但是如果一个真正的服务器响应速度比其他服务器慢,那么当它更快地堆积在连接上时,它将比其他服务器得到更少的新连接,那么您可能会得到分布不均的连接。
https://serverfault.com/questions/214894
复制相似问题