在 Debian 系统中,可以通过多种方式来查看和检查 ulimit(资源限制)。下面按常见使用场景说明。
ulimit -a
示例输出:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 1024
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
ulimit -n # 打开文件数
ulimit -u # 最大用户进程数
ulimit -s # 栈大小
注意:
ulimit默认显示的是当前 shell 进程的限制。
/proccat /proc/<PID>/limits
例如:
cat /proc/1234/limits
可以看到该进程生效的:
prlimitprlimit --pid <PID>
或查看某一项:
prlimit --nofile --pid <PID>
cat /proc/sys/fs/file-max
cat /proc/sys/fs/file-nr
/etc/security/limits.confcat /etc/security/limits.conf
示例:
* soft nofile 65535
* hard nofile 65535
/etc/security/limits.d/ls /etc/security/limits.d/
cat /etc/security/limits.d/*.conf
如果是 systemd 管理的服务:
systemctl show <service> | grep Limit
例如:
systemctl show nginx | grep LimitNOFILE
或修改:
[Service]
LimitNOFILE=65535
ulimit -n 65535
重启或新 shell 后失效。
ulimit -a 当前 shell/proc/<PID>/limits 实际进程/etc/security/limits.confpam_limits.sogrep pam_limits /etc/pam.d/common-session
如果你愿意,可以告诉我:
我可以给你更精确的命令。