这些“默认”限制适用于:
> Linux内核在启动时(到init进程),
>继承,来自父进程的限制(在fork(2)时间),
> PAM用户会话打开时(可以替换内核/继承值),
>进程本身(可以替换PAM和内核/继承值,请参阅setrlimit(2)).
普通用户的流程不能超越硬限制.
Linux内核
在引导时,Linux为init进程设置默认限制,然后由所有其他(子进程)进程继承.要查看这些限制:cat / proc / 1 / limits.
例如,最大文件描述符数(ulimit -n)的内核默认值为1024/1024(软,硬),Linux 2.6.39中为has been raised到1024/4096.
您正在谈论的默认最大进程数量约为is limited to:
Total RAM in kB / 128
对于x86架构(至少),但是发行版有时会更改默认内核值,因此请检查内核源代码中的kernel / fork.c,fork_init(). “进程数”限制在那里称为RLIMIT_NPROC.
PAM
通常,为了确保登录时的用户身份验证,PAM与一些模块一起使用(请参阅/etc/pam.d/login).
在Debian上,负责设置限制的PAM模块位于:/lib/security/pam_limits.so.
该库将从/etc/security/limits.conf和/etc/security/limits.d/*.conf中读取其配置,但即使这些文件为空,pam_limits.so也可能使用硬编码的值,您可以在源代码.
例如,在Debian上,库has been patched默认情况下,最大进程数(nproc)是无限制的,最大文件数(nofile)是1024/1024:
06001
因此,请检查您的CentOS’PAM模块源代码(查找RLIMIT_NPROC).
但请注意,许多进程不会通过PAM(通常,如果它们不是由登录用户启动的,例如守护进程和cron作业).