linux中的最大进程数

linux中的最大进程数,linux,process,operating-system,Linux,Process,Operating System,linux系统中可能的最大进程数限制是多少?如何找到它?您的内核应该在procfs中导出此信息: cat /proc/sys/kernel/pid_max 这是系统可以支持的唯一进程标识符的最大数目 由于它是一个文件,/proc/sys/kernel/pid_max可以从任何有能力的编程语言进行检查 sysctl kernel.pid_max 或 cat/proc/sys/kernel/pid_max 正如九怪所建议的那样 为完整起见,您可以通过写入/proc/syskernel/pid_ma

linux系统中可能的最大进程数限制是多少?如何找到它?

您的内核应该在
procfs
中导出此信息:

cat /proc/sys/kernel/pid_max
这是系统可以支持的唯一进程标识符的最大数目

由于它是一个文件,
/proc/sys/kernel/pid_max
可以从任何有能力的编程语言进行检查

sysctl kernel.pid_max

cat/proc/sys/kernel/pid_max

正如九怪所建议的那样

为完整起见,您可以通过写入/proc/syskernel/pid_max临时更改它,或通过添加以下内容永久更改它:

kernel.pid_max=4194303


发送到/etc/sysctl.conf。4194303是x86_64的最大限制,32767是x86的最大限制。

对您的问题的简短回答:linux系统中可能的进程数是无限的

但是每个用户的进程数是有限制的(除了没有限制的root用户)

您可以使用以下命令检查您的用户限制(适用于“最大用户进程”)

如果要增加特定用户(例如:hadoop)的进程数限制,需要在/etc/security/limits.conf

hadoop - nproc 500000

kernel.pid_max
是一个限制因素,但至少同样重要的是
kernel.threads max
。值得注意的是,每个用户的默认nproc ulimit是
kernel.threads max
除以2,并且每个线程都计入用户的nproc限制。因此,
ps-u$USER
可能会让用户看起来没有用尽他们的nproc限制,但是
ps-L-u$USER
可能会讲述一个非常不同的故事。

你是说mongodb进程只能使用
max nproc=threads max/2
创建吗

因为我想把nproc提高到无限

我试图对
/etc/security/limits.conf设置如下限制:

mongodb soft nproc无限
mongodb硬盘nproc无限
mongodb软件文件50000
mongodb硬文件50000
mongodb软SIG无限
mongodb硬SIG无限
然而,即使在完全重新启动之后,它也没有反映mongodb进程

然后我尝试将
ulimit-u unlimited
命令放到
/etc/init.d/mongodb
中,但在尝试开始使用此文件之后,我得到了

/etc/init.d/mongodb:67:ulimit:非法选项-u


错误。这是
内核。threads max
限制了mongodb的最大进程数吗?

这可能是真的,但在大多数好的发行版中,这受到/etc/security/limits.conf的限制,它可以根据用户/组/域过滤最大进程数。
ulimit
可能会将每个用户的最大进程数限制在最大pid以下,通过谷歌搜索,还有其他一些限制(但我找不到任何确定的来源来确认,比如LKML或一个著名的开发人员发布了它)无效,对任何其他文件也无效。@immibis I编辑掉了伪C;希望我的编辑很快会被批准。只需尝试一下sysctl kernel.pid_max=4194304
,就成功了(Linux 3.10.25)@zed_0xff,只要您知道更改不是持久的,一切都好
printf“%x\n”4194303
给出了
3fffff
32位内核的实际最大值为32768,64位内核的实际最大值为4194304。但是,您将看到的最大PID值小于1。请参阅:有时上述更改需要重新启动才能使更改生效。这要求引用“无限制”的数字,因为ulimit意味着它没有设置限制(无限制),但调度程序允许的进程数不是无限制的。。。就像在无限中一样。ulimit不是问题所在。内核有一个4mln的硬限制,我认为它不可能是无限的,因为上一次,但并非最不重要的是硬件施加了限制。堆栈溢出是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。
hadoop - nproc 500000