Ich bin auf Ubuntu 17.04. Beim Versuch, das Limit für offene Dateien zu erhöhen, funktioniert keine der Anweisungen, die ich online gefunden habe. Ich kann auf 4096 steigen, aber ich kann nicht darüber hinausgehen.
$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096
Das funktioniert. Das tut nicht:
$ ulimit -n 4097
bash: ulimit: open files: cannot modify limit: Operation not permitted
Es scheint an der harten Grenze zu liegen:
$ ulimit -Hn
4096
Ich habe versucht, diese Zeilen zu /etc/security/limits.conf hinzuzufügen:
* hard nofile 65535
* soft nofile 65535
root soft nofile 65535
root hard nofile 65535
Diese Zeile wurde auch zu /etc/pam.d/common-session und /etc/pam.d/common-session-noninteractive hinzugefügt:
session required pam_limits.so
Seitdem habe ich meinen Computer neu gestartet. Änderungen an der limits.conf scheinen nichts zu bewirken. Das harte Limit liegt immer noch bei 4096 und hindert mich daran, noch weiter zu steigen. Wie erhöhe ich mein Limit für offene Dateien?
Hier sind einige zusätzliche Konfigurationsinformationen:
$ cat /proc/sys/fs/file-max
1624668
OK, ich habe es endlich herausgefunden. Die von mir in /etc/security/limits.conf festgelegten Grenzwerte wurden angewendet, jedoch nicht für die grafische Anmeldung. Dies kann folgendermaßen in einem Terminalfenster überprüft werden:
$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535
Weitere Nachforschungen führten mich zu diesem Fehlerbericht , der mich in die richtige Richtung wies. Um das Limit zu ändern, das von der Login-Shell verwendet wird, müssen wir /etc/systemd/user.conf die folgende Zeile hinzufügen:
DefaultLimitNOFILE=65535
Diese Änderung funktioniert, wirkt sich jedoch nur auf das Soft-Limit aus. (Damit wir immer noch eine Obergrenze von 4096 haben.) Um auch die Obergrenze zu beeinflussen, müssen wir /etc/systemd/system.conf mit derselben Änderung ändern.
Die Änderungen, die ich in /etc/pam.d vorgenommen habe, waren nicht notwendig. Zumindest unter Ubuntu funktioniert dies bereits. Außerdem war es nicht erforderlich, die Einstellungen für root
und *
in limits.conf zu ändern. Das Ändern der Grenzwerte für mkasberg
war zumindest für meinen Anwendungsfall ausreichend.
Wenn Sie das durch ulimit -n
angezeigte Limit erhöhen möchten, sollten Sie:
Ändern Sie /etc/systemd/user.conf und /etc/systemd/system.conf mit der folgenden Zeile (dies übernimmt die grafische Anmeldung):
DefaultLimitNOFILE=65535
Ändern Sie /etc/security/limits.conf mit den folgenden Zeilen (dies kümmert sich um die Nicht-GUI-Anmeldung):
mkasberg hard nofile 65535
mkasberg soft nofile 65535
Starten Sie Ihren Computer neu, damit die Änderungen wirksam werden.
Die Datei /etc/security/limits.conf
muss nicht geändert werden. Sie wird ignoriert, wenn Sie systemd verwenden.
(Wiedergabe einer geänderten Antwort auf eine andere Frage im Netzwerk ...)
Eine Alternative für diejenigen, die die Standarddateien /etc/systemd/system.conf
und /etc/systemd/user/conf
nicht bearbeiten möchten:
erstelle eine neue Datei /etc/systemd/system.conf.d/limits.conf
mit diesen Inhalten:
[Manager]
DefaultLimitNOFILE=65535
starte systemctl daemon-reexec
als root
abmelden und erneut anmelden
Überprüfen Sie Ihr neues Limit mit ulimit -n
.
Weitere Informationen finden Sie auf der Hilfeseite systemd-system.conf
.
Unter Ubuntu 17.04 habe ich das beschriebene Hard Limit bekommen:
[email protected]:~$ ulimit -Hn
4096
Ich könnte es mit ulimit
senken, aber nicht erhöhen, so wie die Frage es beschreibt. ulimit
manual beschreibt:
nur root kann das hard limit erhöhen.
Also habe ich versucht, ein höheres Limit in /etc/security/limits.conf
zu setzen:
user hard nofile 9999
und ein neuer Login wie ssh localhost -l user
hat mir das neue Limit gegeben:
[email protected]:~$ ulimit -Hn
9999
Ich hoffe, das funktioniert auch für Sie.