当前位置:首页 > 尘凡 > 正文内容

负载ipvsadm短连接出现大量FIN_WAIT问题排查和解决

满纸空言2年前 (2022-12-27)尘凡22812

lvs+keepalived短连接负载出现大量FIN_WAIT

内核高于4.1的Linux系统(kylinV10和OpenEuler22.03),通过修改系统配置均不生效,比如下列操作,均未生效,最终通过修改代码so_linger来解决(客户端)

FIN_WAIT打满后,性能逐渐降低

关注这里的最后一句:Linux上的TIME_WAIT和tcp_fin_timeout - -见 - 博客园 (cnblogs.com)

修改方法参考:从一次经历谈 TIME_WAIT 的那些事 | 酷 壳 - CoolShell 

修改方法:

结果很理想:

备注:

修改timeout可临时解决

 ipvsadm --set tcp tcpfin udp 

 ipvsadm --set 900 3 3

FIN_WAIT仍然存在,但压测未报大量错误,备机启动后,可恢复流量

注意:tcpfin调为2时,压测报timeout

补充C代码:

参考:https://blog.csdn.net/u012635648/article/details/80279338

扫描二维码推送至手机访问。

版权声明:本文由满纸空言发布,如需转载请注明出处。

本文链接:http://mzky.cc/post/112.html

标签: keepalived+lvs

“负载ipvsadm短连接出现大量FIN_WAIT问题排查和解决” 的相关文章

setfacl命令4年前 (2021-04-21)
btrfs格式数据提取4年前 (2021-04-21)
CSRF漏洞修复4年前 (2021-06-10)
keepalived+lvs配置4年前 (2021-08-09)

评论列表

Jennie
Jennie
4天前

遇到了一样的现象,博主可以解释下为何将fin_wait超时改小可以解决吗?tcp_fin_wait一直都是3s,只是修改了ipvsadm --set 900 3 3就可以生效。
另外,在3.x内核不存在该问题,5.x内核存在该问题,是何原因呢

池边树下 回复:
centos的3.x内核也会有同样的问题,openEuler去掉了tw_recycle参数反而会更严重一些,默认FIN_WAIT状态的超时时间是60秒‌,大并发的时候就会累积大量的FIN_WAIT,ipvsadm --set 900 3 3是修改的lvs,对应的可能是
net.ipv4.tcp_keepalive_time=60
net.ipv4.tcp_keepalive_intvl=15
net.ipv4.tcp_keepalive_probes=3
与tcp_fin_wait不同
2天前

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。