Ich kann anscheinend nicht herausfinden, was genau erforderlich ist, damit die maximale Anzahl von Dateideskriptoren dauerhaft für alle Benutzer erhöht werden kann.
/etc/security/limits.conf
:
root hard nofile 1500000
root soft nofile 1000000
root hard nproc 15000
root soft nproc 10000
* hard nofile 1500000
* soft nofile 1000000
* hard nproc 15000
* soft nproc 10000
Ich habe Folgendes in /etc/pam.d/common-session
eingefügt :
session required pam_limits.so
Melden Sie sich nach einem Neustart als beliebiger Benutzer an und geben Sie ulimit -n
aus führte zu 1024
.
Danach habe ich versucht, pam_limits.so
zu verlangen in jede Datei unter /etc/pam.d
. Neustart. Eingeloggt. Kein Glück.
Wenn ich den Befehl ulimit -n 1000000
ausführe , dann überprüfen Sie, ob das Limit wie erwartet eingestellt ist. Also habe ich @reboot ulimit -n 1000000
platziert in crontab -e
. Neustart. Eingeloggt. Kein Glück.
Ich habe /etc/ssh/sshd_config
überprüft und PAM ist aktiviert.
Ich habe versucht, die Grenzen bei jedem Neustart festzulegen mit:
/sbin/sysctl -w fs.file-max=1000000
/sbin/sysctl -p
Kein Glück.
Ich habe einen Server mit einer Menge gleichzeitigem Datenverkehr und brauche diese Grenzwerte so hoch, weil der Server sehr lange braucht, um Dateideskriptoren zu löschen. Was muss ich tun, um das Dateideskriptor-Limit dauerhaft zu erhöhen?
Akzeptierte Antwort:
Ich habe die Anzahl der Dateilimits für alle auf diese Weise erhöht (Segment aus /etc/security/limits.conf
):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files (Doug: - so Samba will not complain)
* - nofile 16384
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
Das war auf einem 12.04-Server. Ich habe jedoch 100000 auf meinem 14.04-Server getestet und es hat gut funktioniert. (Edit:auch geprüft am 20.04)
~/config/security$ ulimit -n
16384
EDIT:Für die meisten Anwendungen reicht das aus, ändert aber nicht den Standardwert für root:
# ulimit -n
1024
Wenn die Nummer auch für root geändert werden muss, dann (2020.09.04 – ich verwende jetzt 131.072):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open file descriptors
* - nofile 131072
root - nofile 131072
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
Und so:
$ sudo su
# ulimit -n
131072