Dieser Beitrag beschreibt, wie ein Linux-Systemadministrator die zulässige Anzahl von Prozessen für jeden Benutzer des Betriebssystems begrenzen kann. Es gibt zwei Orte, an denen die maximal zulässige Anzahl von Prozessen (nproc ) konfiguriert werden.
- /etc/security/limits.conf
- /etc/security/limits.d/90-nproc.conf ( CentOS/RHEL 5,6 ) und /etc/security/limits.d/20-nproc.conf ( CentOS/RHEL 7 )
von der Manpage von pam_limits
Standardmäßig werden Limits aus der /etc/security/limits.conf übernommen Konfigurationsdatei. Dann einzelne *.conf-Dateien aus der /etc/security/limits.d/ Verzeichnis gelesen werden. Die Dateien werden nacheinander in der Reihenfolge des Gebietsschemas „C“ analysiert. Die Wirkung der einzelnen Dateien ist die gleiche, als ob alle Dateien in der Reihenfolge des Parsings miteinander verkettet würden. Wenn eine Konfigurationsdatei explizit mit einer Moduloption angegeben wird, werden die Dateien im obigen Verzeichnis nicht geparst.Anzeigen der aktuellen weichen/harten nproc-Limits
Das Red Hat Enterprise Linux-System verwendet zwei Arten von Werten, um die Grenzen zu definieren:soft und hart . Der Unterschied besteht darin, dass das „weiche“ Limit bis zum „harten“ Limit angepasst werden kann, während das „harte“ Limit nur verringert werden kann und es das maximale Ressourcenlimit ist, das ein Benutzer haben kann.
Immer wenn ein Benutzer einen „ulimit -n“-Befehl ausführt, wird ihm das „weiche“ Limit angezeigt. Wenn also in der Datei „/etc/security/limits.conf“ ein fester Wert festgelegt ist, wird dieser standardmäßig nicht angezeigt.
– Um Soft Limits anzuzeigen, verwenden Sie den folgenden Befehl:
# ulimit -u -S
– Um Hard Limits anzuzeigen, verwenden Sie auf ähnliche Weise den folgenden Befehl:
# ulimit -u -H
Wie man nproc (harte und weiche) Limits einstellt
1. Vorübergehendes Setzen von weichen nproc-Limits
Das „weiche“ Limit kann an das „harte“ Limit angepasst werden, wobei N kleiner oder gleich dem „harten“ Limit ist.
# ulimit -n N
Zum Beispiel:
# ulimit -n 1024
Der obige Wert ist nicht dauerhaft und bleibt bei erneuten Anmeldungen nicht bestehen. Sie können den obigen Befehl im Bash-Profil des Benutzers eingeben, sodass das Limit bei jeder Benutzeranmeldung gesetzt wird.
# vim ~/.bash_profile ulimit -n 1024
2. nproc harte/weiche Limits dauerhaft setzen
– Um das nproc-Limit systemweit auf unbegrenzt zu setzen, die Datei /etc/security/limits.d/90-nproc.conf (RHEL5, RHEL6), /etc/security/limits.d/20-nproc. conf (RHEL7) sollte lauten. Standardmäßig werden die Regeln aus der Datei /etc/security/limits.conf gelesen.
– Darüber hinaus können Sie im Verzeichnis /etc/security/limits.d individuelle Konfigurationsdateien speziell für bestimmte Anwendungen oder Dienste erstellen.
– Ein Standardlimit für Benutzerprozesse ist in der Datei /etc/security/limits.d/90-nproc.conf (RHEL5, RHEL6), /etc/security/limits.d/20-nproc.conf definiert (RHEL7), um böswillige Denial-of-Service-Angriffe wie Fork Bombs zu verhindern.
Verwenden Sie die folgende Syntax, um ein hartes/weiches Limit für nproc festzulegen.
# vi /etc/security/limits.conf [domain] [type] [item] [value]
Hier
[domain] kann ein Benutzername, ein Gruppenname oder ein Platzhaltereintrag sein.
[type] gibt die Art des Limits an und kann folgende Werte annehmen:
- weich :Dies ist eine weiche Grenze, die vom Benutzer geändert werden kann
- schwer :Dies ist eine Obergrenze für Softlimits, die vom Superuser festgelegt und vom Kernel erzwungen wird
[Element] ist die Ressource, für die das Limit festgelegt werden soll.
Beispiele für das Setzen von nproc-Limits
Nachfolgend finden Sie einige Beispiele für das Festlegen von nproc-Werten mithilfe der Dateien /etc/security/limits.conf und /etc/security/limits.d/90-nproc.conf (RHEL5, RHEL6), /etc/security/limits. d/20-nproc.conf (RHEL7):
1. Im Beispiel unten ist nproc limit auf 2047 gesetzt, da es in der limits.conf eine feste Grenze von 2047 gibt.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 2047 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 root soft nproc unlimited test soft nproc 10023
# ulimit -u 2047
2. Hier wird 1022 verwendet, weil der letzte Eintrag „test soft nproc 1022“ ist, die maximale harte Grenze wäre „1025“.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 2048 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1025 test soft nproc 1022
# ulimit -u 1022
3. Hier wird 1025 verwendet, weil „test hard nproc 1025“ gesetzt ist, „test soft nproc 1066“ wird verwendet, weil das Soft-Limit das Hard-Limit überschreitet.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 1001 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1025 test soft nproc 1066
# ulimit -u 1025
4. Hier wird 1066 verwendet, weil der letzte Eintrag „test soft nproc 1066“ ist und 1066 das harte Limit nicht überschreitet.
# cat /etc/security/limits.conf | grep nproc | grep -v ^# test hard nproc 1001 test soft nproc 16384
# cat /etc/security/limits.d/90-nproc.conf | grep nproc | grep -v ^# * soft nproc 1024 * hard nproc 1025 root soft nproc unlimited test hard nproc 1100 test soft nproc 1066
# ulimit -u 1066Die Datei /etc/security/limits.conf verstehen