找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1044|回复: 2

Linux(openwrt) 出现太多 TIME_WAIT 状态的连接导致程序无法访问,怎么解决?

[复制链接]
本帖最后由 AllenHua 于 2021-3-6 14:03 编辑

网上能搜索到很多文章,比如下面这两篇

- "内核参数调优 - 作业部落 Cmd Markdown 编辑阅读器" https://www.zybuluo.com/cdmonkey/note/76889
- "性能案例-Linux下解决time_wait连接过多(Linux内核优化) - 知乎" https://zhuanlan.zhihu.com/p/29334504

楼主用的是 lean 的 openwrt 设备,cpu 是 n3150,之前发现机器中的 `qbittorrent-nox` 程序运行了一段时间之后 web 页面就无法访问了,使用 `netstat` 查看发现有很多的 `TIME_WAIT` 状态的连接。我试图按照一些教程中的建议做了修改,但是没有起作用。挂了将近 700 个种子,检查 cpu 和内存占用发现 cpu 和内存应该不是问题所在(没有性能瓶颈)。特来求助


> ⬆️️ TIME_WAIT 状态的连接数会逐渐增多

(
> ⬆️️ TIME_WAIT 连接数量已经从 51 增长到了 294

尝试添加以下参数


> ⬆️️ 但是提示 `net.ipv4.tcp_tw_recycle` is an unknown key 后面发现是目前正在使用的 Linux 内核版本超过了 4.12

```shell
root@softRouter:~# uname -a
Linux softRouter 4.19.108 #0 SMP Tue Mar 31 15:14:35 2020 x86_64 GNU/Linux
```

可以看出 Linux 内核版本 4.19.108 官方已经移除了 net.ipv4.tcp_tw_recycle ,可参考下面这篇文章

> "被抛弃的tcp_recycle" https://juejin.cn/post/6844903730874171405

网上搜到的大多都是调整那几个参数,贴一段解释:

> 正常情况下,TCP连接断开后,会以“TIME_WAIT”状态保留一定的时间,然后才会释放端口。当并发请求过多的时候,就会产生大量的这样的等待状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源。这个时候我们可以优化TCP的内核参数,来及时将该状态的端口清理掉。<br/>
> 出现“TIME_WAIT”意味着你的程序时常有主动关闭连接的行为,属于正常行为,可以设置地址可重用。<br/>
> 如果系统存在大量“TIME_WAIT”状态的连接,可以通过调整内核参数解决。

求不吝赐教


我的恩山、我的无线 The best wifi forum is right here.
减小tcp timeout时间

点评

你好 是这个 key 吗 net.ipv4.tcp_fin_timeout = 30 现在已经设置成了 30 了  详情 回复 发表于 2021-3-6 14:24
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
paldier 发表于 2021-3-6 14:07
减小tcp timeout时间

你好

是这个 key 吗


net.ipv4.tcp_fin_timeout = 30

现在已经设置成了 30 了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-2 13:08

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表