ulimit
是一个用于控制 shell 进程资源限制的命令行工具。通过 ulimit
,你可以调整诸如文件描述符数量、进程数等系统资源限制。要调整 TCP 连接数,你需要关注两个方面的限制:文件描述符限制和系统范围内的 TCP 连接数限制。
每个 TCP 连接都需要一个文件描述符。因此,首先需要确保文件描述符的限制足够高。你可以通过以下命令查看当前的文件描述符限制:
ulimit -n
要临时增加文件描述符限制,可以使用以下命令:
ulimit -n <新的限制值>
例如,将文件描述符限制设置为 65535:
ulimit -n 65535
要永久更改文件描述符限制,请编辑 /etc/security/limits.conf
文件,添加以下行:
* soft nofile <新的限制值>
* hard nofile <新的限制值>
例如:
* soft nofile 65535
* hard nofile 65535
除了文件描述符限制外,还需要考虑系统范围内的 TCP 连接数限制。这可以通过调整内核参数来实现。
编辑 /etc/sysctl.conf
文件,添加或修改以下行:
net.core.somaxconn = <新的限制值>
net.ipv4.tcp_max_syn_backlog = <新的限制值>
net.ipv4.ip_local_port_range = <本地端口范围>
例如:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn
:监听队列的最大长度,即等待接受连接的最大连接数。net.ipv4.tcp_max_syn_backlog
:SYN 队列的最大长度,即已收到 SYN 请求但尚未完成三次握手的连接数。net.ipv4.ip_local_port_range
:本地端口范围,即应用程序可以使用的端口范围。保存文件后,运行以下命令使更改生效:
sysctl -p
通过调整文件描述符限制和系统范围内的 TCP 连接数限制,你可以有效地增加 TCP 连接数。请注意,这些更改可能需要 root 权限。在进行更改之前,请确保了解这些设置的影响,并根据实际需求进行调整。