HAProxy 随机导致挂起请求

HAProxy 随机导致挂起请求

我有 1 个域和 3 个 IP 地址。每个地址(1 个服务器)都安装了一个 HAProxy 服务器。除了 HAProxy 之外,每个服务器还运行了 10 个 nodejs 进程。

问题是大约有 40% 的请求处于待处理状态。有时请求处理得非常快(大约 160 毫秒),有时需要大约 5 秒甚至超时。服务器负载相当低(所有 8 个核心运行约 30%),平均负载为 2

我进行了一些谷歌搜索,发现我可能已经用完了 HAProxy 接受连接的端口(我对此不太确定)

我运行ss -s,输出是

Total: 69452 (kernel 69571)
TCP:   106031 (estab 67813, closed 36404, orphaned 570, synrecv 0, timewait 36264/0), ports 0

 Transport Total     IP        IPv6
 *    69571     -         -        
 RAW      0         0         0        
 UDP      15        9         6        
 TCP      69627     69620     7         
 INET     69642     69629     13       
 FRAG     0         0         0 

和我的sysctl.conf

vm.overcommit_memory = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
kernel.shmmax = 17179869184
kernel.shmall = 4194304
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 3240000
net.core.somaxconn = 3240000
net.ipv4.tcp_max_tw_buckets = 1440000
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15

我还尝试直接连接到每个应用服务器,看看是否是该应用导致了待处理的请求。但这不是应用服务器的问题,当我直接连接到应用服务器时,它仍然响应得非常快

我已经启用日志,我会尽快更新 haproxy 外观

更新:我收集了一些有关缓慢请求的信息http://pastebin.com/wvApfi6E

答案1

好吧,原来我已经达到网络接口的速度限制了。升级后,一切恢复正常

相关内容