在 CentOS(以及一般的 Linux 系统)中,可以通过多种方式查看 ulimit 限制。下面按常见场景说明:
ulimit -a
示例输出:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
ulimit -n # 打开文件数
ulimit -u # 最大用户进程数
ulimit -s # 栈大小
/proccat /proc/<PID>/limits
例如:
cat /proc/1234/limits
可以看到:
prlimitprlimit --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 管理的服务,limits.conf 可能不生效。
systemctl show <service> | grep Limit
例如:
systemctl show nginx | grep Limit
[Service]
LimitNOFILE=65535
LimitNPROC=65535
ulimit 只影响 当前 shell 及其子进程limits.conf 后需 重新登录limits.conf 控制如果你是想排查某个具体问题(比如 Too many open files、fork 失败),可以告诉我具体报错,我可以帮你定位该看哪一项。