在 Debian(以及一般 Linux) 里,ulimit 本身不直接限制“线程数”,但会通过相关资源间接影响线程数量。
下面分点说明:
ulimit 能限制什么(和线程相关的)ulimit 主要限制的是 进程级资源,常见和线程相关的有:
-u(max user processes)ulimit -u
-s(stack size,线程栈大小)
ulimit -s
-v(virtual memory)
ulimit 不能直接限制的东西❌ 没有“max threads per process”这种 ulimit 项
❌ ulimit 不能单独限制:
-u 近似)除了 ulimit,线程数还受以下限制:
cat /proc/sys/kernel/threads-max
sysctl kernel.threads-max
systemctl show <service> | grep TasksMax
TasksMax 会限制线程数| 现象 | 原因 |
|---|---|
fork: resource temporarily unavailable |
命中 ulimit -u |
Cannot create thread |
线程数过多 / 内存不足 |
Java Unable to create native thread |
ulimit -u 或内存 |
Debian 的
ulimit不直接限制线程数,但通过-u(进程/线程总数)和内存相关限制间接控制线程数量。
如果你愿意,我可以: