Lösung:Erhöhen Sie das Limit
Linux-Systeme begrenzen die Anzahl geöffneter Dateien, auf die ein Benutzer gleichzeitig zugreifen kann. Der Fehler „Zu viele geöffnete Dateien“ tritt auf, wenn die Anzahl der geöffneten Dateien diese Grenzwerte überschreitet. Um dieses Problem zu beheben, erhöhen Sie das Limit für geöffnete Dateien.
Bearbeiten Sie die entsprechende Datei „/etc/security/limits.conf“, je nachdem, ob Sie versuchen, die Änderung global oder auf einen bestimmten Benutzer anzuwenden.
Wenn Sie versuchen, das Limit für jeden Benutzer zu erhöhen, bearbeiten Sie „/etc/security/limits.conf“:
„
sudo nano /etc/security/limits.conf
„
Um das Limit für einen bestimmten Benutzer namens „Benutzername“ zu ändern, bearbeiten Sie die entsprechende Datei „/etc/security/limits.d“:
„
sudo nano /etc/security/limits.d/username.conf
„
Suchen und bearbeiten Sie in der jeweiligen Datei die „nofile“-Parameter, um die neuen Grenzwerte festzulegen:
„
* Weiche Nofile 65535
* harte Nofile 65535
„
Folgendes bewirken diese Parameter:
- „Soft“ legt einen Soft-Grenzwert fest, der unter bestimmten Umständen vorübergehend außer Kraft gesetzt werden kann.
- „hart“ legt eine harte Grenze fest, die nicht überschritten werden kann.
Der Zahlenwert (im Beispiel „65535“) gibt die gewünschte maximale Anzahl geöffneter Dateien an.
Nachdem Sie die Änderungen gespeichert und den Editor beendet haben, führen Sie die folgenden Befehle aus, um die neuen Grenzwerte anzuwenden. (Ersetzen Sie „Benutzername“ durch Ihren Zielbenutzer, wenn Sie einen bestimmten Benutzer ändern):
„
sudo ulimit -n 65535 (Für die aktuelle Sitzung)
„
„
sudo sysctl -w fs.file-max=65535 (Ab jeder Sitzung)
„
Überprüfen Sie die Dateilimitänderungen mit dem folgenden Befehl:
„
ulimit -n
„
Wenn Sie das erhöhte Limit als Ausgabe erhalten, ist die Änderung wirksam und der Fehler „Zu viele offene Dateien“ sollte behoben sein.
Alternative Lösung:Nicht verwendete Dateien schließen
Wenn eine Erhöhung des Dateilimits unpraktisch ist, sollten Sie erwägen, alle unnötigen geöffneten Dateien zu schließen, um ein Erreichen des Limits zu vermeiden. Suchen Sie nach unnötigen Hintergrundprozessen oder Anwendungen, die Dateideskriptoren verbrauchen.
Führen Sie den folgenden Befehl aus, um eine Übersicht über offene Dateihandles zu erhalten:
„
lsof -Fn | grep gelöscht
„
Suchen Sie nach unnötigen Handles und beenden Sie die entsprechenden Prozesse, um sie freizugeben.