Skip to main content

Anzahl gleichzeitig geöffneter Dateien hochsetzen

Mit dem Einzug von systemd in Debian funktioniert die Methode über die limits.conf nicht mehr (dort werden trotzdem noch die user level limits gesetzt). Die Anzahl der gleichzeitig geöffneten Files wird nun in der sysctl.conf und/oder über das systemd-unit-script gesetzt.

Systemd-Style, der systemctl edit wird eine Override-Datei in /etc/system/systemd/<service-name> anlegen:

systemctl edit mysql.service

[Service]
LimitNOFILE=65536

Hier die Version ohne Systemd:

Aktuellen Wert herausfinden:

# sysctl fs.file-nr
fs.file-nr = 3264	0	1637554

Ich habe den Wert nun einfach x3 genommen und in der sysctl.conf hinterlegt:

# set max number of open files
fs.file-max=4912662

Aktiviert wird der Eintrag mit sysctl –system. Kontrolliert wird das Setting über das Kommando oben.

Für ein Limit im user-level Bereich läßt sich das limits.conf verwenden. Kontrolliert werden kann das Setting über ulimit -n.

In /etc/security/limits.conf folgenden Eintrag vornehmen

/etc/security/limits.conf
*                soft      nofile           4096
*                hard     nofile           4096
# oder per user
meinuser         soft      nofile           8192
meinuser         hard      nofile           8192

Achtung bei openssh-server Versionen kleiner 3.8 ist nach dieser Änderung kein Einloggen via SSH mehr möglich. Folgende Fehlermeldung taucht dabei im Log auf:

Nov  8 09:23:03 XXX sshd[18108]: fatal: PAM session setup failed[6]: Permission denied

Dies kann behoben werden durch:

  • Ein Update auf eine aktuellere Version oder
  • Setzen der Parameter UsePrivilegeSeparation no und PAMAuthenticationViaKbdInt yes in /etc/ssh/sshd_config. Dies ist aber unsicher und nicht empfohlen.