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

So legen Sie das Limit für ulimit und Dateideskriptoren auf Linux-Servern fest

Einführung:  Herausforderungen wie die Anzahl offener Dateien in einer beliebigen Produktionsumgebung sind heutzutage alltäglich geworden. Da viele Anwendungen, die auf Java und Apache basieren, installiert und konfiguriert werden, kann dies zu zu vielen geöffneten Dateien, Dateideskriptoren usw. führen. Wenn dies das festgelegte Standardlimit überschreitet, kann es zu Problemen mit der Zugriffskontrolle und zum Öffnen von Dateien kommen Herausforderungen. Viele Produktionsumgebungen kommen dadurch zum Erliegen.

Glücklicherweise haben wir „ulimit ”-Befehl in jedem Linux-basierten Server, mit dem man die Anzahl der geöffneten Status-/Konfigurationsdetails von Dateien sehen/einstellen/abrufen kann. Dieser Befehl ist mit vielen Optionen ausgestattet und mit dieser Kombination kann man die Anzahl der geöffneten Dateien einstellen. Im Folgenden finden Sie Schritt-für-Schritt-Befehle mit ausführlich erläuterten Beispielen.

Um zu sehen, was das aktuelle Limit für offene Dateien in jedem Linux-System ist

Um das Limit für offene Dateien auf einem beliebigen Linux-Server zu erhalten, führen Sie den folgenden Befehl aus,

[[email protected] ~]# cat /proc/sys/fs/file-max146013

Die obige Zahl zeigt, dass der Benutzer die Datei „146013“ pro Benutzer-Anmeldesitzung öffnen kann.

[[email protected] ~]# cat /proc/sys/fs/file-max149219[[email protected] ~]# cat /proc/sys/fs/file-max73906

Dies zeigt deutlich, dass einzelne Linux-Betriebssysteme eine unterschiedliche Anzahl geöffneter Dateien haben. Dies basiert auf Abhängigkeiten und Anwendungen, die in den jeweiligen Systemen ausgeführt werden.

ulimit-Befehl :

Wie der Name schon sagt, wird ulimit (Benutzerlimit) verwendet, um das Ressourcenlimit für angemeldete Benutzer anzuzeigen und festzulegen. Wenn wir den Befehl ulimit mit der Option -a ausführen, wird das Limit aller Ressourcen für den angemeldeten Benutzer gedruckt. Lassen Sie uns nun „ulimit -a ausführen ” auf Ubuntu/Debian- und CentOS-Systemen,

Ubuntu / Debian-System ,

[E-Mail-geschützt] ~}$ ulimit -acore Dateigröße          (Blöcke, -c) 0 Datensegmentgröße           (KByte, -d) unbegrenzte Planungspriorität             (-e) 0 Dateigröße               (Blöcke, -f) unbegrenzt ausstehende Signale               5731MAX gesperrtem Speicher (KBYTES, -L) 64MAX -Speichergröße (KBYTES, -M) UnlimitedOpen -Dateien (-n) 1024 Rohrgröße (512 Bytes, -p) 8PoSix -Nachrichten -Warteschlangen (Bytes, -Q) 819200real -Zeit -Priorität (-r ) 0Stapelgröße              (kByte, -s) 8192CPU-Zeit               (Sekunden, -t) unbegrenzt max. Benutzerprozesse              (-u) 5731virtueller Speicher          (kByte, -v) unbegrenzt Dateisperren                                             

CentOS-System

[E-Mail-geschützt] ~}$ ulimit -acore Dateigröße          (Blöcke, -c) 0 Datensegmentgröße           (KByte, -d) unbegrenzte Planungspriorität             (-e) 0 Dateigröße               (Blöcke, -f) unbegrenzt ausstehende Signale               5901 max. gesperrter Speicher       (kByte, -l) 64 max. Speichergröße         (kByte, -m) unbegrenzt geöffnete Dateien                      (-n) 1024-Pipe-Größe            (512 Byte, -p) 8 POSIX-Nachrichtenwarteschlangen      (Byte, -q) 81920     Echtzeit Priorität      0Stapelgröße              (KByte, -s) 8192CPU-Zeit               (Sekunden, -t) Unbegrenzt max. Benutzerprozesse              (-u) 5901 Virtueller Speicher          (KByte, -v) Unbegrenzt Dateisperren               > Unbegrenzt
Wie wir hier sehen können, haben verschiedene Betriebssysteme unterschiedliche Grenzwerte festgelegt. Alle diese Limits können mit dem Befehl „ulimit“ konfiguriert/geändert werden.

Um das individuelle Ressourcenlimit anzuzeigen, übergeben Sie dann den individuellen Parameter im ulimit-Befehl, einige der Parameter sind unten aufgeführt:

  • ulimit -n  –> Es wird das Limit für die Anzahl der geöffneten Dateien angezeigt
  • ulimit -c –> Zeigt die Größe der Kerndatei an
  • umilit -u –> Es zeigt das maximale Benutzerprozesslimit für den angemeldeten Benutzer an.
  • ulimit -f –> Es zeigt die maximale Dateigröße an, die der Benutzer haben kann.
  • umilit -m –> Zeigt die maximale Speichergröße für angemeldete Benutzer an.
  • ulimit -v –> Es wird die maximale Speichergröße angezeigt

Verwenden Sie die folgenden Befehle, um die harten und weichen Grenzen für die Anzahl der geöffneten Dateien für den angemeldeten Benutzer zu überprüfen

[email protected] ~}$ ulimit -Hn1048576[email protected] ~}$ ulimit -Sn1024

Wie kann das Problem behoben werden, wenn die maximale Anzahl von Dateien erreicht wurde?

Nehmen wir an, unser Linux-Server hat das Limit der maximalen Anzahl geöffneter Dateien erreicht und möchte dieses Limit systemweit erweitern, zum Beispiel möchten wir 100000 als Limit der Anzahl geöffneter Dateien festlegen.

Verwenden Sie den Befehl sysctl, um den fs.file-max-Parameter spontan an den Kernel zu übergeben, und führen Sie den folgenden Befehl als Root-Benutzer aus,

[email protected]~]# sysctl -w fs.file-max=100000fs.file-max =100000

Die obigen Änderungen bleiben bis zum nächsten Neustart aktiv. Um diese Änderungen also über den Neustart hinweg dauerhaft zu machen, bearbeiten Sie die Datei /etc/sysctl.conf und denselben Parameter hinzufügen,

[email protected]~]# vi /etc/sysctl.conffs.file-max =100000

Datei speichern und beenden,

Führen Sie den folgenden Befehl aus, damit die obigen Änderungen sofort wirksam werden, ohne sich abzumelden und neu zu starten.

[email protected]~]# sysctl -p

Überprüfen Sie nun, ob neue Änderungen wirksam sind oder nicht.

[email protected]~]# cat /proc/sys/fs/file-max100000

Verwenden Sie den folgenden Befehl, um herauszufinden, wie viele Dateideskriptoren derzeit verwendet werden:

[[email protected] ~]# more /proc/sys/fs/file-nr1216 0 100000

Hinweis:- Befehl „sysctl -p “ wird verwendet, um die Änderungen ohne Neustart und Abmeldung zu übernehmen.

Ressourcenlimit auf Benutzerebene über die Datei limit.conf festlegen 

/etc/sysctl.conf “-Datei wird verwendet, um das Ressourcenlimit systemweit festzulegen, aber wenn Sie das Ressourcenlimit für bestimmte Benutzer wie Oracle, MariaDB und Apache festlegen möchten, kann dies über „/etc/security/limits.conf erreicht werden ” Datei.

Beispiel Limit.conf ist unten gezeigt,

[email protected]~]# cat /proc/sys/fs/file-max

Nehmen wir an, wir möchten ein hartes und weiches Limit für die Anzahl der geöffneten Dateien für Linuxtechi-Benutzer und für Oracle-Benutzer ein hartes und weiches Limit für die Anzahl der geöffneten Prozesse festlegen, bearbeiten Sie die Datei „/etc/security/limits.conf“ und fügen Sie Folgendes hinzu Zeilen

# harte Grenze für max. geöffnete Dateien für Linuxtechi-Benutzerlinuxtechi harte Nofile 4096# weiche Grenze für maximale Anzahl geöffneter Dateien für Linuxtechi-Benutzerlinuxtechi weiche Nofile 1024# harte Grenze für maximale Anzahl von Prozessen für Oracle-Benutzeroracle harte nproc 8096# weiche Grenze für maximale Anzahl von Prozess für Oracle UserOracle Soft nproc 4096

Speichern und beenden Sie die Datei.

Hinweis: Falls Sie anstelle von Benutzern eine Ressourcenbeschränkung für eine Gruppe festlegen möchten, kann dies auch über die Datei limit.conf möglich sein. Geben Sie anstelle des Benutzernamens @ ein und die restlichen Elemente sind gleich, das Beispiel ist unten gezeigt,

# festes Limit für maximal geöffnete Dateien für sysadmin group@sysadmin        hard         nofile            4096 # weiches Limit für maximal geöffnete Dateien für sysadmin group@sysadmin        soft         nofile            1024

Überprüfen Sie, ob neue Änderungen wirksam sind oder nicht,

~]# su - linuxtechi~]$ ulimit -n -H4096~]$ ulimit -n -S1024~]# su - oracle~]$ ulimit -H -u8096~]$ ulimit -S -u4096

Hinweis:Ein weiterer häufig verwendeter Befehl ist „lsof “, der verwendet wird, um herauszufinden, „wie viele Dateien derzeit geöffnet sind“. Dieser Befehl ist sehr hilfreich für Administratoren.

Fazit:

Wie im Einführungsabschnitt erwähnt, ist der Befehl „ulimit“ sehr leistungsfähig und hilft bei der Konfiguration und stellt sicher, dass Anwendungsinstallationen reibungsloser und ohne Engpässe ablaufen. Dieser Befehl hilft bei der Behebung vieler Dateibeschränkungen auf Linux-basierten Servern.


Linux
  1. So legen Sie eine statische IP-Adresse fest und konfigurieren das Netzwerk unter Linux

  2. So leiten Sie die Ausgabe in eine Datei und Stdout in Linux um

  3. So extrahieren Sie .gz- und .tar.gz-Dateien unter Linux

  4. Wie stelle ich die Datei-Upload-Größenbeschränkung in Apache ein?

  5. Wie richte ich eine verschlüsselte Auslagerungsdatei unter Linux ein?

So installieren und konfigurieren Sie den Tor-Browser unter Linux

Linux-Hostdatei:Wie wird sie bearbeitet und verwendet?

So ändern Sie das Limit für offene Dateien in Linux

So erstellen und verwenden Sie eine Auslagerungsdatei unter Linux

So stellen Sie Datum und Uhrzeit unter Linux ein

So setzen und löschen Sie Umgebungsvariablen unter Linux