it-swarm.com.de

Maximale Anzahl von Prozessen in Linux

Was ist die maximale Anzahl von Prozessen, die in einem Linux-System möglich sind? Wie können wir es finden?

56
kdexter

Ihr Kernel sollte diese Informationen in procfs exportieren:

cat /proc/sys/kernel/pid_max

Dies ist die maximale Anzahl eindeutiger Prozesskennungen, die Ihr System unterstützen kann.

Da es sich um eine Datei handelt, kann /proc/sys/kernel/pid_max von jeder beliebigen Programmiersprache aus geprüft werden.

47
user257111

sysctl kernel.pid_max 

oder

cat/proc/sys/kernel/pid_max

Wie von Neunfingern vorgeschlagen.

Der Vollständigkeit halber können Sie es vorübergehend ändern, indem Sie in/proc/syskernel/pid_max schreiben, oder indem Sie Folgendes hinzufügen:

kernel.pid_max = 4194303

zu /etc/sysctl.conf. 4194303 ist die Höchstgrenze für x86_64 und 32767 für x86.

20
Lester Cheung

Kurze Antwort auf Ihre Frage: Die Anzahl der möglichen Prozesse im Linux-System istUNLIMITED.

Es gibt jedoch eine Begrenzung für die Anzahl der Prozesse pro Benutzer (außer root, der keine Begrenzung hat).

Und Sie können Ihre Benutzergrenzen mit dem folgenden Befehl überprüfen (neben "max. Benutzerprozesse").

$ 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

Wenn Sie die Begrenzung der Prozessanzahl für einen bestimmten Benutzer erhöhen möchten (z. B. hadoop), müssen Sie einen Eintrag in /etc/security/limits.conf machen. 

hadoop - nproc 500000
16
Ankit Singhal

kernel.pid_max ist ein limitierender Faktor, mindestens ebenso wichtig ist kernel.threads-max. Es ist erwähnenswert, dass der Standardwert für nproc ulimit für jeden Benutzer kernel.threads-max durch zwei geteilt ist und dass jeder Thread zum nproc-Grenzwert eines Benutzers zählt. Daher kann ps -u $USER den Anschein erwecken, dass ein Benutzer seine nproc-Grenze nicht erschöpft hat, ps -L -u $USER könnte jedoch eine ganz andere Geschichte erzählen.

5
Andy Grimm

Meinten Sie, dass ein Mongodb-Prozess nur mit max nproc = threads-max / 2 erstellt werden kann?

Weil ich versuche, nproc als unbegrenzt zu erhöhen.

Ich habe versucht, /etc/security/limits.conf wie folgt zu begrenzen: mongodb soft nproc unlimited mongodb hard nproc unlimited mongodb soft nofile 50000 mongodb hard nofile 50000 mongodb soft sigpending unlimited mongodb hard sigpending unlimited Allerdings wurde der mongodb-Prozess auch nach einem Neustart nicht berücksichtigt.

Dann habe ich versucht, ulimit -u unlimited Befehl auf /etc/init.d/mongodb zu setzen, aber nachdem ich versucht hatte, mit dieser Datei zu beginnen, bekam ich 

/etc/init.d/mongodb: 67: ulimit: Illegal option -u

error. Ist dieser kernel.threads-max die maximale Anzahl an Prozessen für mongodb?

0
hardc0der