Das Standardlimit für offene Dateien pro Prozess beträgt beispielsweise unter Linux 1024. Für bestimmte Dämonen reicht dies nicht aus. Daher die Frage: Wie kann man das Limit für geöffnete Dateien für einen bestimmten Benutzer ändern?
Das Standardlimit für offene Dateien pro Prozess beträgt beispielsweise unter Linux 1024. Für bestimmte Dämonen reicht dies nicht aus. Daher die Frage: Wie kann man das Limit für geöffnete Dateien für einen bestimmten Benutzer ändern?
Antworten:
Unter Linux können Sie es über konfigurieren limits.conf
, z. B. über
# cd /etc/security
# echo debian-transmission - nofile 8192 > limits.d/transmission.conf
(Damit wird sowohl das Hard- als auch das Soft-Limit für Prozesse, die unter der Debian-Übertragung des Benutzers gestartet wurden, auf 8192 festgelegt.)
Sie können die Änderung überprüfen über:
# sudo -u debian-transmission bash -c "ulimit -a"
[..]
open files (-n) 8192
[..]
Wenn ein Daemon bereits ausgeführt wird, muss er neu gestartet werden, damit das neue Limit erreicht wird. Wenn der Dämon manuell von einer Benutzersitzung aus gestartet wird, muss sich der Benutzer erneut anmelden, um das neue Limit zu erhalten.
Alternativ können Sie zusätzliche Grenzwerte /etc/security/limits.conf
natürlich auch direkt in angeben - ich bevorzuge jedoch den .d
Verzeichnisansatz für eine bessere Wartbarkeit.
Verwenden Sie zum Erzwingen unterschiedlicher Soft / Hard-Grenzwerte zwei Einträge, z
debian-transmission soft nofile 4096
debian-transmission hard nofile 8192
(Begründung dahinter: Der Soft-Wert wird festgelegt, nachdem sich der Benutzer angemeldet hat, aber ein Benutzerprozess darf das Limit bis zum Hard-Limit erhöhen.)
Die limits.conf
/ limits.d
-Konfiguration wird von verwendet pam_limits.so
, die in aktuellen Linux-Distributionen standardmäßig aktiviert ist.
Es gibt auch eine systemweite Beschränkung für Linux /proc/sys/fs/file-max
:
Diese Datei definiert eine systemweite Begrenzung der Anzahl geöffneter Dateien für alle Prozesse.
Zum Beispiel die Standardeinstellung unter Ubuntu 10.04:
$ cat /proc/sys/fs/file-max
786046
Die Pseudodatei /proc/sys/fs/file-nr
enthält weitere Informationen, z
$ cat /proc/sys/fs/file-nr
1408 0 786046
die Anzahl der zugewiesenen Dateihandles (dh die Anzahl der derzeit geöffneten Dateien); die Anzahl der freien Dateihandles; und die maximale Anzahl von Dateihandles
Einerseits müssen Sie möglicherweise auch das systemweite file-max
Limit anpassen , falls es sehr klein ist und / oder das System bereits sehr ausgelastet ist. Auf der anderen Seite file-max
reicht es nicht aus , nur zu erhöhen , da dies keinen Einfluss auf die vom pam_limits-Mechanismus erzwungenen Soft / Hard-Grenzwerte hat.
So ändern Sie file-max
in der Befehlszeile (kein Neustart erforderlich):
# sysctl -w fs.file-max=786046
Für dauerhafte Änderungen fs.file-max=786046
zu /etc/sysctl.conf
oder hinzufügen /etc/sysctl.d
.
Die Obergrenze für fs.file-max
wird in aufgezeichnet fs.nr_open
. Zum Beispiel (wieder) unter Ubuntu 10.04:
$ sysctl -n fs.nr_open
1048576
(das ist 1024 * 1024)
Dieses System ist auch konfigurierbar.