在 Ubuntu(以及一般 Linux)里,ulimit 能改到多大,不是由一个固定值决定的,而是由以下几层限制共同决定的:
ulimit -a
ulimit -Hn # 硬限制
ulimit -Sn # 软限制
即使 root 也不能无限改,受内核参数限制。
ulimit -n
~1024 × 1024fs.file-max 限制查看系统总上限:
cat /proc/sys/fs/file-max
示例(64 位服务器常见):
fs.file-max = 9223372036854775807(理论)
实际常用:几百万
✅ 实际建议上限:
100万 以内通常没问题fs.file-max 决定ulimit -u
/etc/security/limits.conf 控制cat /proc/sys/kernel/pid_max
常见:
ulimit -sulimit -v/etc/security/limits.conf* soft nofile 65535
* hard nofile 65535
/etc/sysctl.conf
fs.file-max = 1000000
sysctl -p
还要改:
[Service]
LimitNOFILE=65535
ulimit 能改多大 = 当前硬限制 ≤ 系统内核参数 ≤ 物理资源
如果你是问某个具体场景(比如:
可以告诉我,我直接给你可落地的数值和配置。