在 CentOS 系统中,可以通过以下步骤提高 ulimit 打开的文件数上限:
查看当前限制:
ulimit -n
临时提高限制:
ulimit -n 65536 # 将数字替换为你希望设置的值
这个命令只会影响当前 shell 会话。
/etc/security/limits.conf编辑文件:
sudo vi /etc/security/limits.conf
添加以下行:
* soft nofile 65536
* hard nofile 65536
这里的 * 表示所有用户,你可以根据需要替换为特定用户名。
保存并退出。
/etc/sysctl.conf编辑文件:
sudo vi /etc/sysctl.conf
添加以下行:
fs.file-max = 2097152 # 设置系统级文件描述符的最大数量
这个值应该大于或等于你希望每个用户打开的文件数上限。
应用更改:
sudo sysctl -p
如果你使用的是 systemd 管理的服务,可以在服务单元文件中设置 ulimit。
编辑服务单元文件(例如 /etc/systemd/system/my_service.service):
sudo vi /etc/systemd/system/my_service.service
在 [Service] 部分添加以下行:
LimitNOFILE=65536
重新加载 systemd 配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart my_service
无论哪种方法,都可以通过以下命令验证更改是否生效:
ulimit -n
或者查看系统级的文件描述符限制:
cat /proc/sys/fs/file-max
通过这些步骤,你应该能够成功提高 CentOS 系统中 ulimit 打开的文件数上限。