0%

设置最大 TCP 连接数

当我们的程序大量创建 tcp 连接时可以 会遇到 Too many open files 错误 一般在我们的程序创建 1k 左右的连接时会出现这个错误。
不应当。一个 ip 拥有 65525 个端口,理论上不应该创建 1k 就不足了。

我们可是使用 netstat -nat | grep -i "80" | wc -l 查看指定端口的连接数这里的 80 请换成你自己需要查询的端口。

使用 ulimit -Sn 查看软件限制,这时终端 会输出一般会 1024 。

ulimit -Hn 查看硬件限制,这个我们不用管,如果你使用的新内核输出的值时会大于 65535 的。

因为这个限制的存在我们在 linux 下一个用户最多可以打开 1024 个文件。没错 在 linux 下创建 TCP 连接就是打开文件。

那么我我们可以 把它扩大一点吗?
当然是可以的新建 /etc/security/limits.d/custom.conf 并写入以下内容后重启,修改结果不要大于 65536.

* soft nofile 32768

然后我们再次使用 ulimit -Sn 时输出的就是 32768 了 这样的话单用户最大创建 tcp 连接就改成了 32768 了。