Zum Hauptinhalt springen

So erhöhen Sie die Anzahl der geöffneten Dateien in Linux: Benutzerhandbuch

Linux ist ein zuverlässiges und flexibles Betriebssystem, das häufig im Bereich Webhosting und Serveranwendungen verwendet wird. Standardmäßig beschränkt Linux jedoch die Anzahl der geöffneten Dateien auf einen einzelnen Benutzer, was insbesondere für Anwendungen, die große Datenmengen verarbeiten, zu Problemen führen kann.

In diesem Tutorial erfahren Sie, wie Sie das Limit für geöffnete Dateien in Linux erhöhen können, um die Leistung Ihrer Anwendungen zu verbessern. Dazu verwenden wir die Befehle, die in den meisten Linux-Distributionen verfügbar sind.

Anmerkung: bevor Sie irgendwelche Befehle ausführen, sollten Sie eine Sicherungskopie Ihres Systems oder Ihrer Einstellungen erstellen. Wenn Sie sich nicht sicher sind, was Sie tun, wenden Sie sich am besten an Ihren Systemadministrator oder einen Spezialisten.

Lassen Sie uns zunächst das aktuelle Limit der geöffneten Dateien auf Ihrem System überprüfen. Sie können dies tun, indem Sie den Befehl ulimit -n im Terminal ausführen. Das Ergebnis ist eine Zahl, die das aktuelle maximale Limit angibt.

Limit für geöffnete Dateien erhöhen

Die Anzahl der geöffneten Dateien auf einem Linux-Betriebssystem kann auf die Standardeinstellungen beschränkt sein. Jedoch, Benutzer benötigen möglicherweise mehr Dateideskriptoren für ihre Aufgaben. In diesem Abschnitt werden wir verschiedene Möglichkeiten untersuchen, wie Sie das Limit für geöffnete Dateien unter Linux erhöhen können.

    Methode 1: Temporäres Ändern des Limits Wenn Sie das Limit für geöffnete Dateien vorübergehend erhöhen müssen, können Sie den Befehl ulimit verwenden. Um beispielsweise das Limit auf 5000 Dateien zu erhöhen, können Sie den folgenden Befehl ausführen:

ulimit -n 5000
username soft nofile 5000username hard nofile 5000
* soft nofile 5000* hard nofile 5000
Fügen Sie in der common-session-Datei die folgende Zeile hinzu:
session required pam_limits.so

Nachdem Sie die Änderungen vorgenommen haben, müssen Sie möglicherweise das System oder die Benutzersitzung neu starten, damit die Änderungen wirksam werden. Sie können das aktuelle Limit für geöffnete Dateien mit dem Befehl ulimit -n überprüfen.

Das Erhöhen des Limits für geöffnete Dateien kann in vielen Szenarien nützlich sein, z. B. bei der Verarbeitung großer Datenmengen oder beim Ausführen verteilter Aufgaben. Seien Sie vorsichtig, wenn Sie diese Einstellungen ändern, und berücksichtigen Sie die Ressourcen Ihres Systems.

Überprüfen des aktuellen Limits

Bevor wir das Limit für geöffnete Dateien erhöhen, müssen wir den aktuellen Wert dieses Limits herausfinden. Dazu können Sie den Befehl verwenden ulimit -n. Dieser Befehl gibt die aktuelle Anzahl der zulässigen geöffneten Dateien für diesen Benutzer an.

Um das aktuelle Limit zu überprüfen, öffnen Sie einfach das Terminal und geben Sie den Befehl ein ulimit -n. Das Ergebnis ist eine Zahl, die das aktuelle Limit der geöffneten Dateien für Ihren Benutzer angibt.

Es ist wichtig zu beachten, dass einige Benutzer möglicherweise einer Einschränkung ausgesetzt sind, bei der der Befehl ulimit -n zeigt den Wert nicht an. In diesem Fall können Sie den Befehl verwenden ulimit -nH, um den oberen Grenzwert für den aktuellen Benutzer anzuzeigen.

Jetzt, da wir das aktuelle Limit kennen, sind wir bereit, seinen Wert zu erhöhen.

Ändern des Limits auf Benutzerebene

Um das Limit für die Anzahl der geöffneten Dateien auf Benutzerebene unter Linux zu ändern, müssen Sie die folgenden Schritte ausführen:

  1. Öffnen Sie das Terminal.
  2. Geben Sie den Befehl ulimit -n ein, um den aktuellen Grenzwert zu überprüfen.
  3. Wenn der aktuelle Wert nicht ausreicht, um Ihre Anforderungen zu erfüllen, führen Sie den Befehl ulimit -n aus [neuer Wert] , wo [neuer Wert] - die gewünschte Anzahl von geöffneten Dateien.
  4. Überprüfen Sie den neuen Grenzwert, indem Sie den Befehl ulimit -n erneut ausführen.
  5. Damit die Änderungen für Ihre aktuelle Sitzung wirksam werden, müssen Sie das Terminal neu starten oder den Befehl source ~/ ausführen.bashrc .

Beachten Sie, dass die Änderung des Limits auf Benutzerebene nur innerhalb Ihrer aktuellen Sitzung wirksam wird. Um das Limit für alle Benutzer des Systems zu ändern, ändern Sie die Konfigurationsdatei /etc/security/limits.conf .

Ändern des Limits auf Systemebene

Wenn Sie das Limit auf Systemebene ändern, können Sie die maximale Anzahl geöffneter Dateien für alle Benutzer erhöhen. Dies erfordert Root-Rechte.

1. Öffnen Sie ein Konsolenterminal und geben Sie den folgenden Befehl ein:

sudo vi /etc/security/limits.conf

2. Fügen Sie am Ende der Datei die folgenden Zeilen hinzu, um ein neues Limit festzulegen:

Beachten Sie, dass der Wert von 50000 ein Beispiel ist und je nach Ihren Anforderungen geändert werden kann.

3. Speichern und schließen Sie die Datei, drücken Sie Esc. geben Sie dann Folgendes ein :wq und drücken Sie die Taste Enter.

4. Starten Sie den Computer neu, damit die Änderungen wirksam werden.

Das System verwendet nun das neue Limit für die Anzahl der geöffneten Dateien für alle Benutzer. Sie können das aktuelle Limit mit dem Befehl ulimit -n überprüfen.

Ändern des Limits für einen bestimmten Prozess

Unter Linux besteht die Möglichkeit, das Limit für geöffnete Dateien für einen bestimmten Prozess zu ändern. Dazu können Sie den Befehl prlimit verwenden.

Führen Sie den folgenden Befehl aus, um das Limit für geöffnete Dateien für einen Prozess mit einer bestimmten ID (PID) zu ändern:

prlimit --pid --nofile=

Hier ist die Prozess-ID und der neue Wert für das Limit für geöffnete Dateien.

Wenn Sie beispielsweise für einen Prozess mit der ID 1234 ein Limit für geöffnete Dateien auf 500 festlegen möchten, führen Sie den folgenden Befehl aus:

prlimit --pid 1234 --nofile=500

Nach dem Ausführen des Befehls wird das Limit für geöffnete Dateien für den angegebenen Prozess geändert.

Neustart des Systems mit einem neuen Limit

Nachdem Sie die Datei /etc/security/limits geändert haben.conf muss das System neu starten, damit die neuen Grenzwerte wirksam werden.

Das System wird mit dem Befehl reboot oder shutdown -r now neu gestartet. Beachten Sie jedoch, dass für diese Befehle Root-Rechte erforderlich sind, sodass Sie während der Ausführung des Befehls ein Passwort eingeben müssen.

Nach dem Ausführen des Befehls wird das System heruntergefahren und automatisch mit einem neuen Limit für die Anzahl der geöffneten Dateien neu gestartet.

Verfolgen der Verwendung von geöffneten Dateien

Wenn Sie auf das Problem stoßen, die Anzahl der geöffneten Dateien unter Linux zu begrenzen, kann es hilfreich sein zu wissen, wie Sie die Verwendung von geöffneten Dateien verfolgen können, um problematische Prozesse oder Anwendungen zu identifizieren. Unter Linux gibt es mehrere Tools, die Ihnen dabei helfen.

1. lsof: Es ist ein universelles Dienstprogramm, mit dem Sie die geöffneten Dateien auf Ihrem System verfolgen können. Sie können diesen Befehl verwenden, um alle geöffneten Dateien aufzulisten oder die Ergebnisse nach einem bestimmten Prozess oder einer bestimmten Datei zu filtern.

2. fuser: Mit diesem Befehl können Sie Prozesse definieren, die eine bestimmte Datei oder ein bestimmtes Dateisystem verwenden. Sie können diesen Befehl verwenden, um zu bestimmen, welche Prozesse dazu führen können, dass geöffnete Dateien eingeschränkt werden.

3. procfs: Unter Linux gibt es ein spezielles Dateisystem namens procfs, das Informationen über den aktuellen Status des Systems bereitstellt, einschließlich einer Liste der geöffneten Dateien jedes Prozesses. Sie können auf diese Daten zugreifen, indem Sie die Dateien im Verzeichnis /proc durchsuchen. Mit der Datei /proc/PID/fd/ können Sie beispielsweise die geöffneten Dateideskriptoren für den Prozess mit der angegebenen ID anzeigen.

4. sysctl: Dies ist ein Dienstprogramm, mit dem Sie verschiedene Systemeinstellungen des Linux-Kernels ändern können. Sie können diesen Befehl verwenden, um die Anzahl der geöffneten Dateien zu begrenzen.

Achten Sie bei der Verwendung dieser Tools darauf, Ihr System nicht zu stören. Beachten Sie, dass die Anzahl der geöffneten Dateien möglicherweise auf die Systemressource beschränkt ist und die Änderung möglicherweise eine Erhöhung der Berechtigungen erfordert.