欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > ChatGpt >内容正文

ChatGpt

解决webserver tcp连接大量CLOSE_WAIT 问题

发布时间:2024/4/13 ChatGpt 63 豆豆
生活随笔 收集整理的这篇文章主要介绍了 解决webserver tcp连接大量CLOSE_WAIT 问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

  netstat -n | awk '/^tcp/ {++S[$NF]} END{for(a in S) print a, S[a]}'
  
  LAST_ACK 1
  SYN_RECV 15
  CLOSE_WAIT7729 
  ESTABLISHED 471
  FIN_WAIT1 3
  FIN_WAIT2 52
  SYN_SENT 1
  TIME_WAIT 725

  从结果可以看到有大量的连接处于CLOSE_WAIT状态。

要解决这个问题的可以修改系统的参数,系统默认超时时间的是7200秒,也就是2小时。

默认如下:

tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds

意思是如果某个TCP连接在idle 2个小时后,内核才发起probe.如果probe9次(每次75秒)不成功,内核才彻底放弃,认为该连接已失效

修改后

sysctl -w net.ipv4.tcp_keepalive_time=30
sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.tcp_keepalive_intvl=2

经过这个修改后,服务器会在短时间里回收没有关闭的tcp连接。

总结

以上是生活随笔为你收集整理的解决webserver tcp连接大量CLOSE_WAIT 问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。