在Linux中的最大进程数
在linux系统中可能的进程数量的最大限制是多less? 我们怎么find它?
您的内核应该在procfs
导出这些信息:
cat /proc/sys/kernel/pid_max
这是您的系统可以支持的唯一进程标识符的最大数量。
由于它是一个文件, /proc/sys/kernel/pid_max
可以从任何有能力的编程语言进行检查。
sysctl kernel.pid_max
要么
cat / proc / sys / kernel / pid_max
正如Ninefingers所build议的那样。
为了完整起见,您可以通过写入/ proc / syskernel / pid_max或永久添加以下内容来暂时更改它:
kernel.pid_max = 4194303
到/etc/sysctl.conf。 4194303是x86的x86_64和32767的最大限制。
简短的回答你的问题:在linux系统中可能的进程数量是UNLIMITED 。
但是每个用户的进程数量是有限制的(除了没有限制的root用户)。
您可以使用下面的命令(适用于“最大用户进程”)检查您的用户限制。
$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 256447 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 128000 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 500000 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
如果你想增加一个特定用户的进程数限制(例如:hadoop),你需要在/etc/security/limits.conf中input以下内容
hadoop - nproc 500000
kernel.pid_max是一个限制因素,但至less同样重要的是kernel.threads-max。 值得注意的是,每个用户的默认nproc ulimit是kernel.threads-max除以2,并且每个线程都计入用户的nproc限制。 因此,“ps -u $ USER”可能表明用户没有用尽nproc限制,但“ps -L -u $ USER”可能会告诉一个非常不同的故事。