1. 查看当前限制
ulimit -n
2. 临时调整(仅对当前会话有效)
ulimit -n 65535
3. 永久调整
(a) 修改 /etc/security/limits.conf
sudo nano /etc/security/limits.conf
root soft nofile 65535 root hard nofile 65535
注意
1)我尝试了 * soft nofile 65535,本来想设置所有用户,但没有成功。
2)如果是nginx,则需要添加(nginx是以nginx启动的)
nginx soft nofile 65535
nginx hard nofile 65535
(b) 修改 /etc/pam.d/common-session
和 /etc/pam.d/common-session-noninteractive
sudo nano /etc/pam.d/common-session
session required pam_limits.so
© 修改 /etc/sysctl.conf
(可选)
sudo nano /etc/sysctl.conf
fs.file-max = 1000000
sudo sysctl -p
4. 重启系统
5. 验证
ulimit -n
cat /proc/sys/fs/file-max
6. 对于 systemd
启动的服务
要为
systemd
管理的服务设置文件描述符限制,你需要编辑相应服务的配置文件(如/etc/systemd/system/your-service.service
),并在[Service]
部分中设置LimitNOFILE
:
[Service] LimitNOFILE=65535
sudo systemctl daemon-reload sudo systemctl restart your-service
如何判定某个进程的文件数打开限制:
cat /proc/$(pgrep nginx | head -n 1)/limits | grep ‘Max open files’
本文链接:https://blog.runxinyun.com/post/311.html 转载需授权!
留言0