kernel TCP time wait bucket table overflow
# 故障描述 有一个需求是实时分析API接口访问日志,提取token去数据库查询对应的uid,然后收集一些指标存入到hbase中。 当程序执行一会后会被系统杀死 Killed ! # 故障排查 1、CPU平均负载0.06、内存空闲29G 2、查看系统日志 /var/log/messages 提示:kernel: TCP: time wait bucket table overflow 3、查找资料发现是因为 socket TIME_WAIT 超出了内核设定的上限值 # 解决方法 shell > vim /etc/sysctl.conf net.ipv4.tcp_fin_timeout = 60 # 如果套接字由本端要求关闭,这个参数决定了它保持在 FIN-WAIT-2 状态的时间,缩短可以减少 TIME_WAIT 状态数量 net.ipv4.tcp_max_tw_buckets = 5000 # TIME_WAIT 数量,超出的部分会被系统删除 net.ipv4.tcp_timestamps = 1 # 该参数与快速回收同时开启且网络环境属于NAT(SLB、LVS)这种情况下会出现问题,切记 net.ipv4.tcp_tw_reuse = 0 # 连接重用,降低 TIME_WAIT 状态数量 net.ipv4.tcp_tw_recycle = 0 # 快速回收 不建议开启,有可能导致无法建立 TCP 连接 net.ipv4.ip_local_port_range = 32768 60999 # 本地可用端口范围,增加会使服务器可以建立更多的连接,增加吞吐量 # 所以优化的结果如下: net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_tw_buckets = 32768 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 10240 60999
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用