GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Steuern Sie die Systemressourcennutzung mit dem Ulimit-Befehl

In diesem Anfänger-Tutorial lernen Sie den ulimit-Befehl in Linux kennen. Sie erfahren, wie Sie damit die Zuweisung von Systemressourcen steuern.

Was ist ulimit unter Linux?

Ulimit ist ein eingebauter Shell-Befehl zum Anzeigen, Zuweisen und Begrenzen von Ressourcen. Es ist für jedes System unerlässlich, diese Arten von Kontrollen zu regulieren.

Diese Art der Steuerung kann auf globaler, Gruppen- und Benutzerebene erzwungen werden. Es gewährleistet nicht nur eine reibungslose Verarbeitung von Aufgaben, sondern verhindert auch, dass unerwünschte Prozesse Systemressourcen wie RAM und CPU-Leistung verschlingen.

Ulimit ist mit einer Sicherheitskonfigurationsdatei verknüpft. Ihr genauer Standort kann variieren, ist aber normalerweise so etwas wie /etc/security/limits.conf . Mit Ulimit können wir diese Konfiguration schnell bearbeiten.

Weiche vs. harte Limits

Als Benutzer können Sie Ihre ulimit-Einstellungen tatsächlich anpassen.

Sie fragen sich vielleicht, warum Sie überhaupt ein Limit festlegen sollten, wenn ein Benutzer es anpassen kann. Hier kommen weiche und harte Grenzen ins Spiel.

Aus Admin-Perspektive ziehen Sie es also vielleicht vor, dass Ihr Benutzer um einen bestimmten Wert schwebt. Dies wäre Ihre weiche Grenze (sagen wir 25).

Dann könnten Sie eine feste Grenze festlegen, die von diesem Benutzer nicht überschritten werden darf (50). Der Benutzer wäre berechtigt, sein Limit von 25 auf 50 zu erhöhen.

Ulimit unter Linux verwenden

Hier ist die Syntax für den Befehl ulimit:

ulimit <options>

Alle Limits für jeden Benutzer anzeigen

Sie können auf diese Weise alle Arten von Limits für einen bestimmten Benutzer anzeigen:

ulimit -a user_name

Das -a Flag zeigt alle Optionen und deren Konfiguration für Ihren spezifischen Benutzernamen an.

Wenn Sie den Benutzernamen weglassen, werden Ihnen Limits angezeigt. Lassen Sie mich Ihnen die standardmäßig für mich eingerichteten Limits zeigen:

[email protected]:~$ 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) 31503
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31503
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Ihre Standardwerte können natürlich von meinen abweichen. Diese Ansicht zeigt eine Beschreibung, das zugewiesene Flag (das zum Ändern der Limits verwendet werden kann) und die Konfiguration.

Hard- und Softlimits anzeigen

Es ist auch möglich, eines dieser jeweiligen Limits mit einem Flag zu sehen.

Um Softlimits anzuzeigen, verwenden Sie die Option -S:

ulimit -S

Um harte Limits anzuzeigen, verwenden Sie die Option -H:

ulimit -H

Es ist sinnvoller, diese mit bestimmten Flags von oben zu kombinieren. Wenn Sie also das harte Limit für die maximale Anzahl von Benutzerprozessen überprüfen möchten, würden Sie Folgendes eingeben:

[email protected]:~$ ulimit -Hu
31503

Limits (vorübergehend) ändern

Jetzt ändern wir diesen Wert zu Demonstrationszwecken auf 31500 und überprüfen das harte Limit erneut.

[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500

Es ist erwähnenswert, dass alle Änderungen, die Ihnen Ihre Berechtigung zulässt, nur vorübergehend geschrieben werden und Ihre aktuelle Shell betreffen.

Um dies zu bestätigen, habe ich meine Shell verlassen und ein neues Terminal erstellt und den ursprünglichen Standardwert erhalten.

[email protected]:~$ ulimit -Hu
31503

Der nächste Abschnitt zeigt, wie Sie die Änderungen dauerhaft machen.

Dauerhafte Änderungen an ulimit vornehmen

Wie ich am Anfang des Artikels erwähnt habe, wird ulimit von /etc/security/limits.conf geregelt. Wenn Sie dauerhafte Änderungen an den ulimits eines beliebigen Benutzers vornehmen möchten, müssen Sie als root Änderungen an der Sicherheitsdatei vornehmen.

Beim Bearbeiten müssen Sie diese vier Elemente einbeziehen:

<domain> <type> <item> <value>

Hier ist der Text, den ich an die Datei angehängt habe, um die harte Grenze für die Anzahl der Prozesse für den Benutzer christoper (d. h. mein eigenes Konto) festzulegen:

christopher    hard    nproc   2000

Denken Sie daran, dass es eine bewährte Methode ist, das Root-Konto nicht zu aktivieren, es sei denn, Sie sind sich der möglichen Folgen voll bewusst. Ich habe das auf einer virtuellen Maschine gemacht, damit Sie es nicht selbst machen müssen.

[email protected]:~$ su
Password: 
[email protected]:/home/christopher# nano /etc/security/limits.conf 
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000

Wie Sie sehen können, wurde das Limit für „Christopher“ auf 20000 geändert.

Woher wissen Sie, welches Schlüsselwort Sie zum Bearbeiten der Datei /etc/security/limits.conf verwenden müssen? Nun, hier ist eine Tabelle, die mögliche Artikelschlüsselwörter und ihre Beschreibungen enthält:

Elementschlüsselwort Beschreibung
Kern begrenzt die Kerndateigröße (KB)
Daten maximale Datengröße (KB)
fsize maximale Dateigröße (KB)
memlock maximal gesperrter Adressraum (KB)
nofile maximale Anzahl offener Dateideskriptoren
rss maximale residente Satzgröße (KB)
stapeln maximale Stapelgröße (KB)
Prozessor maximale CPU-Zeit (MIN)
nproc maximale Anzahl von Prozessen
als Adressraumlimit (KB)
maxlogins maximale Anzahl von Anmeldungen für diesen Benutzer
maxsyslogins maximale Anzahl von Anmeldungen auf dem System
Priorität die Priorität, mit der Benutzerprozesse ausgeführt werden
Sperren maximale Anzahl von Dateisperren, die der Benutzer halten kann
Signierung ausstehend maximale Anzahl ausstehender Signale
Nachrichtenwarteschlange – Maximaler Speicher, der von POSIX-Nachrichtenwarteschlangen verwendet wird (Bytes)
schön maximale nette Priorität, die auf Werte erhöht werden darf:[-20, 19]
rtprio maximale Echtzeitpriorität
chroot Wurzelverzeichnis in Verzeichnis ändern (Debian-spezifisch)
Grenztyp Beschreibung
hart harte Grenze
weich Soft-Limit
sowohl hartes als auch weiches Limit

Ulimit für Gruppen ändern

Das Ändern einer Gruppenrichtlinie ist dem, was Sie im vorherigen Abschnitt gesehen haben, sehr ähnlich, aber Sie werden ein @ einfügen Symbol vor dem Namen der Gruppe.

Hier ist ein Beispiel, in dem ich die maximale Anzahl der Anmeldungen für die Gruppe Student auf 4 festlege, indem ich die Datei /etc/security/limits.conf bearbeite:

@student    -   maxlogins   4

Fazit

Ich hoffe, Ihnen hat diese kurze Einführung zum Linux-Befehl ulimit gefallen.

Wenn Sie Kommentare oder Fragen haben, hinterlassen Sie diese unten. Wenn Sie Vorschläge für Themen haben, die behandelt werden sollen, können Sie diese auch gerne hinterlassen.


Linux
  1. Gekoppelte Befehle mit Steueroperatoren in Bash

  2. So überwachen Sie ein Linux-System mit dem Glances-Befehl

  3. Befehl zum Herunterfahren von Linux (mit Beispielen)

  4. Absoluten Symlink in relativen Symlink mit einfachem Linux-Befehl konvertieren?

  5. So steuern Sie die Systemressourcennutzung mit ulimit in Linux

Usermod-Befehl mit Beispielen

So visualisieren Sie die Speicherplatznutzung mit Vizex

Ändern Sie Benutzerkonten mit dem Usermod-Befehl

Löschen Sie Benutzer in Linux mit dem Userdel-Befehl

Verwendung des Linux-mv-Befehls mit Beispielen

Verwendung des Linux-Befehls sed mit Beispielen