keepalived做了很多TCP DUP ACK和TCP重传

我试图复制我们的托pipe服务提供商为我们的负载均衡器(使用keepalived)所做的设置。 所以我有一个“负载平衡器”,运行CentOS 6和keepalived 1.2.7,两台运行Ubuntu 12.04 LTS和Apache 2.2的Web服务器。

如果我直接查询两个Web服务器之一,它工作正常,我得到的响应在几个毫秒。 但是,如果我尝试通过负载均衡器查询网站,则需要一分钟时间才能获得响应。

我启动了负载均衡器上的wireshark,并且从双方(我的Mac和负载均衡器)中看到很多TCP DUP ACK和TCP Retransmission。

任何人有同样的问题?

组态:

vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight 5 } vrrp_script chk_http { script "killall -0 apache2" interval 2 weight 5 } vrrp_instance VI_LOCAL { interface eth1 state MASTER virtual_router_id 51 priority 101 virtual_ipaddress { 10.6.79.1 } track_script { chk_haproxy } track_interface { eth0 eth1 } } vrrp_instance VI_PUB { interface eth0 state MASTER virtual_router_id 52 priority 101 virtual_ipaddress { 192.168.1.129 192.168.1.127 192.168.1.128 } track_script { chk_haproxy #chk_http } track_interface { eth0 eth1 } } virtual_server 192.168.1.129 80 { delay_loop 6 lb_algo rr lb_kind NAT protocol TCP real_server 10.6.79.10 80 { weight 1 TCP_CHECK { connect_timeout 180 } } real_server 10.6.79.11 80 { weight 1 TCP_CHECK { connect_timeout 180 } } } virtual_server 192.168.1.129 443 { delay_loop 6 lb_algo rr lb_kind NAT protocol TCP real_server 10.6.79.10 443 { weight 1 TCP_CHECK { connect_timeout 180 } } real_server 10.6.79.11 443 { weight 1 TCP_CHECK { connect_timeout 180 } } } 

可能是你的堆栈有更多的错误导致了tcp重传。 这可能像一个坏的以太网电缆和/或networking一样简单。 运行“ifconfig”并查找错误…也查看消息。

如果您排除L1硬件的原因,请检查L2问题,如交换机上的速度/双工不匹配等。