本帖最后由 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”状态的连接,可以通过调整内核参数解决。
求不吝赐教
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|