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

So verwenden Sie den ulimit-Linux-Befehl

Einführung

ulimit ist ein integrierter Linux-Shell-Befehl, der es ermöglicht, Systemressourcenmengen anzuzeigen oder zu begrenzen die einzelne Benutzer konsumieren. Die Begrenzung der Ressourcennutzung ist in Umgebungen mit mehreren Benutzern und Systemleistungsproblemen wertvoll.

In diesem Tutorial lernen Sie die Verwendung von ulimit Befehl unter Linux mit Beispielen.

Voraussetzungen

  • Ein System, auf dem Linux ausgeführt wird
  • Zugriff auf ein Terminal
  • Sudo-Berechtigungen

Was ist limits.conf?

Die limits.conf file ist eine Konfigurationsdatei, die die Systemressourcenzuweisungseinstellungen ulimit definiert Verwendet. Der vollständige Pfad zur Konfigurationsdatei lautet /etc/security/limits.conf .

Das Ändern der Werte in der Datei bleibt nach dem Systemneustart bestehen. Zum Bearbeiten der limits.conf sind Superuser-Berechtigungen erforderlich Datei.

Der erste Abschnitt der limits.conf Datei sieht so aus:

ulimit, Soft Limit und Hard Limit in Linux erklärt

In den folgenden Abschnitten wird ulimit erläutert Syntax und den Unterschied zwischen zwei Arten von Ressourcenbeschränkungen - eine weiche Grenze und hartes Limit .

ulimit-Syntax

Das ulimit Befehl hat die folgende allgemeine Syntax:

ulimit [flags][limit]

Um beispielsweise die physische Speichergröße in Kilobyte festzulegen, geben Sie Folgendes ein:

ulimit -m 15000

Flaggen

Verwenden Sie ulimit Flags, um einzelne Werte für verschiedene Systemressourcen anzuzeigen oder einzuschränken. Wenn ein [limit] gegeben ist, handelt es sich um den neuen Wert der angegebenen Ressource.

Die verfügbaren Flags sind:

Flag Beschreibung
-H Die harte Grenze für die angegebene Ressource. Nur Root-Benutzer können das harte Limit erhöhen, und jeder Prozess kann es verringern.
-S Das weiche Limit für die angegebene Ressource. Jeder Prozess kann das Softlimit ändern.
-a Listet alle aktuellen Ressourcenlimits auf.
-b Die maximale Socket-Puffergröße.
-c Die Core-Dump-Größe, ausgedrückt in der Anzahl von 512-Byte-Blöcken.
-d Die Größe des Datenbereichs in Kilobyte.
-e Die höchste Prozessplanungspriorität (nett).
-f Das Dateigrößenlimit in Blöcken bei Verwendung von [limit] Parameter. Kein [limit] angeben weist den Befehl an, die Beschränkung der Dateigröße zu melden.
-i Die Begrenzung der ausstehenden Signalanzahl.
-k Das Limit für die Anzahl der Warteschlangenzuweisungen.
-l Die maximal zulässige Größe für das Sperren im Speicher.
-m Die physische Speichergröße in Kilobyte.
-n Die maximale Anzahl an Dateideskriptoren, die ein Prozess haben kann.
-p Die Pipe-Puffergröße.
-P Die maximale Anzahl von Pseudoterminals.
-q Die maximale Anzahl von Bytes in POSIX-Nachrichtenwarteschlangen.
-r Die maximale Anzahl von Threads, die ein Prozess haben kann.
-R Die maximale Prozesslaufzeit, ausgedrückt in Mikrosekunden.
-s Die Stapelgröße in Kilobyte.
-t Gibt die maximale Laufzeit eines Prozesses in Sekunden an.
-T Das Thread-Nummernlimit.
-u Gibt an, wie viele Prozesse ein Benutzer erstellen kann.
-v Der maximal verfügbare virtuelle Speicher für Prozesse.
-x Die maximale Anzahl von Dateisperren.

[limit] Parameter

Hinzufügen eines [limit] übergibt den neuen Wert für die angegebenen Ressourcen. Wenn er weggelassen wird, gibt der Befehl den aktuellen weichen Grenzwert für die angegebene Ressource aus, es sei denn, Sie geben -H an Flagge.

Das Limit gilt sowohl für das Soft- als auch für das Hard-Limit, wenn weder -H noch -S Flags angegeben werden.

Exit-Werte

Das ulimit Der Befehl hat zwei Exit-Werte:

  • 0 . Markiert einen erfolgreichen Abschluss.
  • >0 . Eine Anfrage für ein höheres Limit wurde abgelehnt oder es ist ein Fehler aufgetreten.

Soft-Limit

Die weichen Ressourcengrenzen sind vom Kernel erzwungene Werte für die entsprechende Ressource. Das Soft-Limit kann von jedem Benutzer verwaltet werden, und sein Maximalwert kann das Hard-Limit nicht überschreiten. Das harte Limit dient als Obergrenze für das weiche Limit.

Um die detaillierten Softlimits für den aktuellen Benutzer anzuzeigen, führen Sie Folgendes aus:

ulimit -Sa

Hard-Limit

Die harte Ressourcengrenze definiert die physische Ressourcengrenze für einen Benutzer. Gleichzeitig ist das Hard Limit der Maximalwert für das Soft Limit. Nur Root-Benutzer dürfen das Hard Limit ändern .

Um die detaillierten Hardlimits für den aktuellen Benutzer anzuzeigen, führen Sie Folgendes aus:

ulimit -Ha

Verwendung von ulimit

Führen Sie ulimit aus Befehl durch Eingabe des Befehlsnamens im Terminal:

ulimit

Die Ausgabe zeigt die Ressourcenmenge, auf die der aktuelle Benutzer Zugriff hat. In diesem Beispiel hat der Benutzer unbegrenzte Systemressourcen. Verwenden Sie zum Anzeigen oder Festlegen individueller Ressourcenlimits das verfügbare ulimit Flaggen.

In den folgenden Abschnitten werden die häufigsten Verwendungen von ulimit aufgeführt Befehl.

Detaillierter Limitbericht

Erhalten Sie einen detaillierten Bericht mit allen Ressourcenlimits für den aktuellen Benutzer, indem Sie -a angeben Flagge:

ulimit -a

Die Ausgabe enthält einen detaillierten Bericht über die Ressourcenlimits für den aktuellen Benutzer.

Prozessnummer begrenzen

Begrenzen Sie die maximale Prozessanzahl eines Benutzers, indem Sie -u angeben Flag und die Anzahl der Prozesse.

Beispielsweise begrenzen wir die Prozessnummer auf 10:

ulimit -u 10

Durch die Beschränkung der maximalen Prozessanzahl pro Benutzer wird verhindert, dass alle Ressourcen des Systems verbraucht werden. Die Begrenzung der Prozessanzahl verhindert auch die nachteiligen Auswirkungen potenzieller Angriffe wie Fork Bomb.

Zum Beispiel:

Im obigen Beispiel haben wir zuerst die Prozessnummer auf 10 begrenzt und dann eine Fork-Bombe ausgeführt. Die Fork-Bombe würde sonst alle Ressourcen verbrauchen und das System nicht mehr reagieren lassen.

Dateigröße begrenzen

Das -f Flag legt die maximale Dateigröße fest, die ein Benutzer erstellen kann. Beispielsweise begrenzt der folgende Befehl die Dateigröße auf 50 KB:

ulimit -f 50

Testen Sie, ob das Limit funktioniert, indem Sie eine größere Datei erstellen. Zum Beispiel haben wir den cat-Befehl verwendet, um /dev/zero umzuleiten Ausgabe in eine Datei, die viel größer als 50 KB wäre:

Die Ausgabe besagt, dass die Dateigrößenbeschränkung überschritten wurde. Überprüfen Sie die Dateigröße, indem Sie Folgendes ausführen:

ls -lh file

Die Ausgabe des ls-Befehls zeigt, dass die Dateigröße genau 50 KB beträgt, was die zuvor festgelegte Grenze ist.

Maximalen virtuellen Speicher begrenzen

Verwenden Sie das -v -Flag, um die maximale Menge an virtuellem Speicher festzulegen, die einem Prozess zur Verfügung steht. Das Begrenzen des virtuellen Speichers eines Prozesses verhindert, dass er den gesamten Speicher verbraucht, und verhindert Thrashing.

Beispielsweise begrenzt der folgende Befehl den für einen Prozess verfügbaren virtuellen Speicher auf 1000 KB:

ulimit -v 1000

Begrenzen Sie die Anzahl der geöffneten Dateien

Das -n Flag begrenzt die Anzahl gleichzeitig geöffneter Dateien (Dateideskriptoren). Das folgende Beispiel legt die Anzahl der geöffneten Dateien auf fünf fest:

ulimit -n 5

Um dies zu testen, werden wir versuchen, mehrere Textdateien zu öffnen, was zu einem Fehler führt:

Limits.conf-Datei bearbeiten, um Soft- oder Hard-Limit zu ändern

Um das weiche oder harte Limit zu ändern, bearbeiten Sie die Werte in der limits.conf Datei.

Führen Sie die folgenden Schritte aus:

1. Öffnen Sie ein Terminalfenster und wechseln Sie in das Verzeichnis /etc/security :

cd /etc/security

2. Öffnen Sie die limits.conf Datei mit einem Texteditor wie dem vim-Editor.

vim limits.conf

3. Ändern Sie die Grenzwerte, indem Sie die bestehenden Einträge bearbeiten oder einen neuen hinzufügen. Jeder Einschränkungseintrag besteht aus vier Teilen:

  • <domain> . Definiert einen Benutzer, eine Gruppe oder enthält einen Platzhalter (* oder % ).
  • <type> . Akzeptiert zwei Werte - soft oder hard .
  • <item> . Akzeptiert alle in der Konfigurationsdatei aufgelisteten Werte.
  • <value> . Ein ganzzahliger Wert, ausgedrückt in einer Einheit, die <item> zugeordnet ist .

Zum Beispiel:

Stellen Sie sicher, dass Sie die Zeile beim Bearbeiten der Konfigurationsdatei auskommentieren.


Linux
  1. So verwenden Sie den Linux-Befehl sed

  2. So verwenden Sie den Linux-Grep-Befehl

  3. So verwenden Sie den Verlaufsbefehl unter Linux

  4. So verwenden Sie den Su-Befehl unter Linux

  5. So verwenden Sie den id-Befehl unter Linux

So verwenden Sie den fd-Befehl auf einem Linux-System

So verwenden Sie den ulimit-Befehl unter Linux

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?

So verwenden Sie den RPM-Befehl unter Linux

So verwenden Sie den which-Befehl in Linux