Es ist wichtig zu wissen, dass es zwei Arten von Grenzen gibt:
- Ein festes Limit kann nur von root konfiguriert werden. Dies ist der höchstmögliche Wert (Grenzwert) für den weichen Grenzwert.
- Ein Soft-Limit kann von einem normalen Benutzer festgelegt werden. Dies ist die tatsächlich geltende Grenze.
Lösung für eine einzelne Sitzung
Stellen Sie in der Shell das Soft-Limit ein:
ulimit -Sn 2048
In diesem Beispiel wird das tatsächliche Limit auf 2048 angehoben, aber der Befehl ist nur erfolgreich, wenn das harte Limit (check :) ulimit -Hn
gleich oder höher ist. Wenn Sie höhere Werte benötigen, erhöhen Sie das Hard-Limit mit einer der folgenden Methoden. Die Grenzwerte werden pro Prozess festgelegt und von neu erzeugten Prozessen geerbt. Alles, was Sie nach diesem Befehl in derselben Shell ausführen, hat die neuen Grenzwerte.
Ändern des Hard Limits in einer einzelnen Sitzung
Dies ist nicht einfach, da nur root ein festes Limit ändern kann und Sie nach dem Wechsel zu root wieder zum ursprünglichen Benutzer wechseln müssen. Hier ist die Lösung mit sudo
:
sudo sh -c "ulimit -Hn 9000 ; exec su \"$USER\""
Systemweite Lösung
In Debian und vielen anderen Systemen können pam_limits
Sie die systemweiten Grenzwerte in /etc/security/limits.conf
und in Dateien festlegen /etc/security/limits.d
. Die conf-Datei enthält eine Beschreibung. Beispielzeilen:
@webadmins hard nofile 16384
@webadmins soft nofile 8192
Dadurch werden das harte Limit und das standardmäßige weiche Limit für Benutzer in der Gruppe webadmins
nach der Anmeldung festgelegt.
Andere Grenzen
Der Hard-Limit-Wert wird durch das globale Limit für offene Dateideskriptoren begrenzt, /proc/sys/fs/file-max
das in modernen Linux-Distributionen standardmäßig ziemlich hoch ist. Dieser Wert wird durch den NR_OPEN
Wert begrenzt , der während der Kernelkompilierung verwendet wird.
Gibt es keine bessere Lösung?
Vielleicht könnten Sie überprüfen, ob alle *log
Dateien, die Sie füttern, tail -f
wirklich aktive Dateien sind, die überwacht werden müssen. Es ist möglich, dass einige von ihnen bereits für die Protokollierung geschlossen sind und Sie nur eine kleinere Anzahl von Dateien öffnen können.