Website-Suche

So erhöhen Sie das Limit für die Anzahl geöffneter Dateien unter Linux


Unter Linux können Sie die maximale Anzahl geöffneter Dateien ändern. Sie können diese Zahl mit dem Befehl ulimit ändern. Es gibt Ihnen die Möglichkeit, die verfügbaren Ressourcen für die Shell oder den von ihr gestarteten Prozess zu steuern.

Lesen Sie auch: Legen Sie die Grenzwerte für ausgeführte Linux-Prozesse auf Benutzerebene fest

In diesem kurzen Tutorial zeigen wir Ihnen, wie Sie Ihr aktuelles Limit an geöffneten Dateien und Dateibeschreibungen überprüfen können. Dazu benötigen Sie jedoch Root-Zugriff auf Ihr System.

Sehen wir uns zunächst an, wie wir die maximale Anzahl geöffneter Dateideskriptoren auf Ihrem Linux-System ermitteln können.

Finden Sie Linux Open File Limit

Der Wert wird gespeichert in:

cat /proc/sys/fs/file-max

818354

Die Zahl, die Sie sehen, zeigt die Anzahl der Dateien an, die ein Benutzer pro Anmeldesitzung geöffnet haben kann. Das Ergebnis kann je nach System unterschiedlich ausfallen.

Beispielsweise war auf einem meiner CentOS-Server das Limit auf 818354 eingestellt, während auf dem Ubuntu-Server, den ich zu Hause betreibe, das Standardlimit festgelegt war auf 176772 gesetzt.

Wenn Sie die harten und weichen Grenzen sehen möchten, können Sie die folgenden Befehle verwenden:

Überprüfen Sie das Hard-Limit unter Linux

ulimit -Hn

4096

Überprüfen Sie die Soft Limits unter Linux

ulimit -Sn

1024

Um die harten und weichen Werte für verschiedene Benutzer anzuzeigen, können Sie einfach mit „su“ zu dem Benutzer wechseln, dessen Grenzwerte Sie überprüfen möchten.

Zum Beispiel:

su marin
ulimit -Sn

1024
ulimit -Hn

4096

So überprüfen Sie systemweite Dateideskriptorbeschränkungen unter Linux

Wenn Sie einen Server betreiben, erfordern einige Ihrer Anwendungen möglicherweise höhere Grenzwerte für geöffnete Dateideskriptoren. Ein gutes Beispiel hierfür sind MySQL/MariaDB-Dienste oder der Apache-Webserver.

Sie können das Limit geöffneter Dateien unter Linux erhöhen, indem Sie die Kernel-Anweisung fs.file-max bearbeiten. Zu diesem Zweck können Sie das Dienstprogramm sysctl verwenden.

Sysctl wird verwendet, um Kernel-Parameter zur Laufzeit zu konfigurieren.

Um beispielsweise das Limit für offene Dateien auf 500.000 zu erhöhen, können Sie als Root den folgenden Befehl verwenden:

sysctl -w fs.file-max=500000

Sie können den aktuellen Wert für geöffnete Dateien mit dem folgenden Befehl überprüfen:

cat /proc/sys/fs/file-max

Mit dem obigen Befehl bleiben die von Ihnen vorgenommenen Änderungen nur bis zum nächsten Neustart aktiv. Wenn Sie sie dauerhaft anwenden möchten, müssen Sie die folgende Datei bearbeiten:

vi /etc/sysctl.conf

Fügen Sie die folgende Zeile hinzu:

fs.file-max=500000

Natürlich können Sie die Anzahl je nach Bedarf ändern. Um die Änderungen erneut zu überprüfen, verwenden Sie:

cat /proc/sys/fs/file-max

Benutzer müssen sich abmelden und erneut anmelden, damit die Änderungen wirksam werden. Wenn Sie das Limit sofort anwenden möchten, können Sie den folgenden Befehl verwenden:

sysctl -p

Legen Sie unter Linux Grenzwerte für das Öffnen von Dateien auf Benutzerebene fest

In den obigen Beispielen wurde gezeigt, wie globale Grenzwerte festgelegt werden. Möglicherweise möchten Sie jedoch Grenzwerte pro Benutzer anwenden. Zu diesem Zweck müssen Sie als Benutzer root die folgende Datei bearbeiten:

vi /etc/security/limits.conf

Wenn Sie ein Linux-Administrator sind, empfehle ich Ihnen, sich mit dieser Datei und den möglichen Aktionen damit vertraut zu machen. Lesen Sie alle darin enthaltenen Kommentare, da es große Flexibilität bei der Verwaltung der Systemressourcen bietet, indem es Benutzer/Gruppen auf verschiedenen Ebenen begrenzt.

Die Zeilen, die Sie hinzufügen sollten, haben die folgenden Parameter:

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

Hier ist ein Beispiel für die Festlegung weicher und harter Grenzwerte für den Benutzer marin:

## Example hard limit for max opened files
marin        hard nofile 4096
## Example soft limit for max opened files
marin        soft nofile 1024

Abschließende Gedanken

In diesem kurzen Artikel wurde Ihnen ein einfaches Beispiel gezeigt, wie Sie globale und benutzerbezogene Grenzwerte für die maximale Anzahl geöffneter Dateien überprüfen und konfigurieren können.

Auch wenn wir nur an der Oberfläche gekratzt haben, empfehle ich Ihnen dringend, einen detaillierteren Blick auf /etc/sysctl.conf und /etc/security/limits.conf zu werfen lernen, wie man sie benutzt. Sie werden Ihnen eines Tages eine große Hilfe sein.