MAX -Thread -Zählung unter Linux erhalten und festlegen

MAX -Thread -Zählung unter Linux erhalten und festlegen
"Der Begriff" Prozess "bezieht sich auf ein aktuelles Programm, während sich„ Thread “auf einen leichten Prozess bezieht. Wenn mehrere Threads innerhalb eines Programms durch teilen, indem Sie denselben Speicher teilen, wird es Multithreading bezeichnet. In einem Multithread -Prozess können Sie mehrere Threads gleichzeitig ausführen, da der Zweck darin besteht, die Leistung zu steigern.

Die Anzahl der Threads in Linux ist eine Grenze für eine effektive Leistung. Durch das Einstellen des Threads-MAX-Kernel-Parameters stellt die Anzahl der Threads pro Prozess an diesem Grenze oder darunter weiter. Wenn Sie auch wissen möchten, wie Sie die MAX -Threadzahl festlegen, lesen Sie bitte unseren Leitfaden. In diesem Handbuch erklären wir, wie Sie die MAX -Thread -Anzahl unter Linux erhalten und festlegen können.”

MAX -Thread -Zählung unter Linux erhalten und festlegen

Lassen Sie uns diesen Abschnitt in zwei Teile teilen. Die erste besteht.

Machen Sie maximale Threads zählen

Sie können die maximale Anzahl von Threads mit dem steuern Thread-Max-Kernelparameter. "Datei/proc/sys/kernel/thread-max" definiert diesen Parameter.

Mit dem Befehl "cat" können Sie diese Datei anzeigen.

Katze/Proc/Sys/Kernel/Threads-Max

Hier zeigt der Ausgang 45444 die maximalen 45444 -Threads, die der Kernel ausführen kann.

Mit dem Befehl „sysctl“ können Sie auch den Wert von Threads-Max-Wert nachschlagen.

sudo sysctl -a | Grep-Fäden-Max

Zusätzlich, „VM.MAX_MAP_COUNT ” Und „Kernel.PID_MAX”Geben Sie zwei zusätzliche Grenzen an. Diese Grenzen verhindern auch die Erstellung neuer Fäden während der hohen Belastung.

Es gibt die maximale Anzahl an, bei der sich PIDs umwickeln.

Katze/Proc/sys/kernel/pid_max

Hier ist der Höchstwert des Kernels.PID_MAX -Wert ist 4194304. Dies bedeutet, dass der Kernel gleichzeitig maximal 4194304 Prozesse ausführen kann.

Ein Prozess kann nur eine bestimmte Anzahl virtueller Speicherbereiche (VMAs) unter dem haben "MAX_MAP_COUNT" Parameter.

kat/proc/sys/vm/max_map_count

Die Speicherregionen eines Prozesses werden in der obigen Ausgabe ausgedrückt.

Ein Thread und ein Prozess funktionieren ähnlich im Linux -Kernel. Daher begrenzt der Wert, der die Anzahl der Prozesse begrenzt, auch indirekt die Anzahl der Threads. Aus diesem Grund Kernel.PID_MAX muss größer sein als die Gesamtzahl der Prozesse und Fäden zusammen.

Viele Threads verbrauchen mehr Speicher für die Arbeit auf dem Server. „VM.MAX_MAP_COUNT ” Begrenzt die Anzahl der Threads und den virtuellen Speicher für diejenigen, die diesen Speicher benötigen, um ihren privaten Stapel festzulegen.

Eine weitere Grenze für Systemd -Systeme ist die „CGGROUP PIDS.max ” Parameter, der auf 12.288 standardmäßig ausfällt. Manchmal kann diese Standardressourcengrenze zu restriktiv oder nicht genug sein.

Alternativ kann es nützlich sein, spezifische Anpassungen an einigen Aufgaben von Systemds TasksMax -Einstellungen vorzunehmen. Der "UserTasKsMax" Der Parameter überschreibt die Standardgrenze im Abschnitt [Anmeldung] von/etc/systemd/logind.Conf.

grep -i "^UsertasSmax"/etc/systemd/logind.Conf

So wie Systemd Thread -Grenzen für Programme aus der Anmeldeschale erzwingt, tut dies dasselbe.

Stellen Sie die maximale Threadzahl ein

Bisher haben wir uns die maximale Fadenzahl verschiedener Parameter angesehen und werden nun sehen, wie diese maximalen Threads festgelegt werden können. Für die Festlegung der maximalen Anzahl von Threads pro Prozess stehen verschiedene Optionen zur Verfügung. Die Threadnummer wird hier für einen bestimmten Prozess festgelegt.

Mit dem folgenden Befehl können Sie den Parameter Thread-MAX-Kernel vorübergehend zur Laufzeit festlegen.

sudo/bin/su -c "echo 150000>/proc/sys/kernel/threads -max"

Außerdem können Sie den Thread-Max-Kernelparameter dauerhaft einstellen, indem Sie Kernel hinzufügen.Threads-max = zum /etc /sysctl.Conf -Datei.

sudo /bin /su -c "sysctl -W -Kernel.Threads-max = 170000 >> /etc /sysctl.Conf "

Jetzt setzen wir den PID_MAX -Parameter auf 200000. Dies bedeutet, dass der Kernel bis zu 200.000 Prozesse gleichzeitig ausführen kann.

sudo/bin/su -c "echo 200000>/proc/sys/kernel/pid_max"

Sie geben auch die maximale Anzahl von VMAs oder virtuellen Speicherbereichen an, die ein Prozess mit dem Parameter „max_map_count“ besitzt.

sudo/bin/su -c "echo 600000>/proc/sys/vm/max_map_count"

Für alle Benutzer legt „UserTasksMax“ das Thread -Limit fest und gibt die Einstellung für die Aufgabenmessung auf den Systemd -Systemen an.

SED -i "S/^UsertasSMAX/#UserStasksMax/"/etc/systemd/System.Conf
Echo "UserTasKsMax = 60000" >>/etc/systemd/System.Conf
Grep -i "UserTasSMAX"/etc/systemd/logind.Conf

Die Systemparameter begrenzen auch die Anzahl der Threads pro Prozess, möglicherweise vor dem Speicher und das Betriebssystem zu begrenzenden Faktoren. Das Erhöhen der Anzahl der Fäden ist auch möglich, indem die Stapelgröße pro Faden reduziert wird.

Einpacken

In diesem Leitfaden haben wir einen Multithreading- oder Multi-Thread-Prozess erläutert. Als Nächst. Nachdem wir all diese Informationen genommen haben, können wir den Maximalwert von Threads festlegen.

Sie können den Maximalwert von Threads auf verschiedene Weise festlegen, die wir in diesem Leitfaden erklärt haben. Wenn Sie dies sehen und verstehen, können Sie auch die maximalen Werte Ihrer Threads in Linux festlegen.