在 CentOS 系统中,ulimit
命令用于设置或查看用户进程的资源限制。为了适应高并发场景,您可能需要增加文件描述符、进程数等资源的限制。以下是如何调整 ulimit
的步骤:
临时调整:
您可以通过 ulimit
命令临时调整资源限制。例如,要增加单个用户的最大文件描述符数,可以使用以下命令:
ulimit -n 65535
这个命令会将当前 shell 会话的最大文件描述符数设置为 65535。请注意,这种调整只在当前 shell 会话有效,关闭 shell 后设置会失效。
永久调整:
要永久调整 ulimit
设置,您需要编辑 /etc/security/limits.conf
文件。使用文本编辑器打开该文件:
sudo vi /etc/security/limits.conf
在文件末尾添加以下行(根据需要调整用户名和限制值):
username soft nofile 65535
username hard nofile 65535
将 username
替换为您要调整的用户名称。soft
表示软限制,用户可以在不重启系统的情况下更改此限制;hard
表示硬限制,是系统允许的最大值。
调整系统级限制:
您还可以通过编辑 /etc/sysctl.conf
文件来调整系统级的网络参数,例如最大文件描述符数:
sudo vi /etc/sysctl.conf
在文件末尾添加以下行:
fs.file-max = 2097152
这个命令会将系统的最大文件描述符数设置为 2097152。您可以根据需要调整这个值。保存并关闭文件后,运行以下命令使设置生效:
sudo sysctl -p
调整内核参数: 对于某些高并发场景,您可能还需要调整内核参数。例如,您可以增加 TCP 连接的最大数量:
sudo vi /etc/sysctl.conf
在文件末尾添加以下行:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
这些设置分别调整了服务器套接字的最大连接数、SYN 队列长度以及本地端口范围。保存并关闭文件后,运行 sudo sysctl -p
使设置生效。
请注意,在调整这些设置之前,请确保您了解每个参数的含义以及它们对系统性能的影响。不恰当的调整可能会导致系统不稳定或性能下降。在生产环境中进行调整之前,建议在测试环境中进行充分的测试。