楼主用的是 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
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 的内核参数,来及时将该状态的端口清理掉。
出现“TIME_WAIT”意味着你的程序时常有主动关闭连接的行为,属于正常行为,可以设置地址可重用。
如果系统存在大量“TIME_WAIT”状态的连接,可以通过调整内核参数解决。
求不吝赐教