前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCP: time wait bucket table overflow的解决方法「建议收藏」

TCP: time wait bucket table overflow的解决方法「建议收藏」

作者头像
全栈程序员站长
发布2022-09-01 10:11:25
8680
发布2022-09-01 10:11:25
举报

大家好,又见面了,我是你们的朋友全栈君。

1、问题描述:今天发现服务器日志中/var/log/message中有很多下面的这样的日志,并且es的进程占用cpu资源很高。
TCP: time wait bucket table overflow的解决方法「建议收藏」
TCP: time wait bucket table overflow的解决方法「建议收藏」

然后百度查看了一下TIME_WAIT的值,

代码语言:javascript
复制
 [root@hadoop13 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END { 
   for(a in S) print a, S[a]}'
TCP: time wait bucket table overflow的解决方法「建议收藏」
TCP: time wait bucket table overflow的解决方法「建议收藏」

发现等待数达到了10000多了。

其实也可以用下面查看相关信息,这里已经是修改后的值了所以看到timewait值下降了。

代码语言:javascript
复制
 [root@hadoop13 ~]# ss -s
TCP: time wait bucket table overflow的解决方法「建议收藏」
TCP: time wait bucket table overflow的解决方法「建议收藏」

TCP: time wait bucket table overflow产生原因及影响: 原因是超过了linux系统tw数量的阀值。危害是超过阀值后﹐系统会把多余的time-wait socket 删除掉,并且显示警告信息,如果是NAT网络环境又存在大量访问,会产生各种连接不稳定断开的情况。

2、解决方案:

编辑文件,加入以下内容:

代码语言:javascript
复制
[root@hadoop13 ~]# vim /etc/sysctl.conf
tcp_max_tw_buckets =200000   #改值的默认值是18w
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
# 让参数生效
[root@hadoop13 ~]# sysctl -p

具体每个参数的含义:

代码语言:javascript
复制
net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout = 10s
修改系統默认的TIMEOUT时间,默认是60s.

更多关于该参数的博客详解: https://www.2cto.com/net/201503/381132.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140565.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、问题描述:今天发现服务器日志中/var/log/message中有很多下面的这样的日志,并且es的进程占用cpu资源很高。
  • 2、解决方案:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档