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.