负载平衡定期挂起(但后端运行良好)如期进行

负载平衡定期挂起(但后端运行良好)如期进行

有 Debian Squeeze 服务器:

1)负载均衡器 - Haproxy 1.4.18,16 个 CPU 核心,5-10 GB RAM(云服务)

2)4 个 Apache 后端(10 GB RAM、16 个 CPU 核心)

当我们启动 haproxy 时,站点运行良好,大约 2 分钟,然后大约 30 秒后挂起。(此时直接访问后端运行良好,没有缓慢的数据库查询或任何后端问题)之后这种情况重复出现。有趣的观察:我们尝试使用 nginx 作为平衡器,我们得到了相同的行为。

当 haproxy(nginx)挂起时,没有任何 cpu 或 ram 高负载。

这种行为的原因是什么?

谢谢!

答案1

我出现了类似的症状,结果发现我达到了连接限制(大约 2000 个连接,这个数字足够被大约 300 个同时浏览网站的用户使用,不知道为什么限制这么小)。我发现 /etc/haproxy/haproxy.cfg 中的以下内容使我的网站更加流畅:

global
    maxconn 8192

defaults
    [...]
    option  httpclose
    maxconn 8192

答案2

问题已解决。出现此问题是因为 syslog 中有以下 haproxy 字符串:

paroxy: nf_conntrack: table full, dropping packet
paroxy: nf_conntrack: table full, dropping packet
paroxy: nf_conntrack: table full, dropping packet
paroxy: nf_conntrack: table full, dropping packet

我们将 sysctl 设置从

sysctl -a | grep conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 65536
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536

为较大的值。

答案3

nginx 和 Apache 服务器之间有多少个请求?没有等待的连接吗?

当我在它们之间有很多请求时,我遇到了一些问题。如果可以,请尝试禁用 Apache 和 nginx 上的保持连接。

答案4

您的 haproxy.cfg 是什么样的?有防火墙吗/有速率限制吗?

haproxy 如何安装?配置选项?

尝试使用 1.5 dev7 haproxy 版本使 TARGET=linux26,我的网站上似乎没有任何问题 - 基准测试于http://centminmod.com/siegebenchmark_nginx_test3.html

相关内容