Das Limit für offene Dateien kann nicht über 4096 (Ubuntu) erhöht werden

17008
mkasberg

Ich bin auf Ubuntu 17.04. Der Versuch, das Limit für offene Dateien zu erhöhen, und keine der Anweisungen, die ich online gefunden habe, funktionieren. Ich kann bis 4096 gehen, kann aber nicht darüber hinweggehen.

$ 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 limits.conf scheinen sich auf nichts zu auswirken. Das harte Limit liegt immer noch bei 4096, sodass ich nicht weiter steigen kann. Wie kann ich das Limit für offene Dateien erhöhen?


Hier einige zusätzliche Konfigurationsinformationen:

$ cat /proc/sys/fs/file-max  1624668 
19

3 Antworten auf die Frage

31
mkasberg

OK, ich habe es endlich herausgefunden. Die Grenzwerte, die ich in /etc/security/limits.conf festgelegt habe, wurden angewendet, jedoch nicht auf das grafische Login. Dies kann in einem Terminalfenster folgendermaßen ü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 lenkte. Um das von der Login-Shell verwendete Limit zu ändern, müssen Sie die folgende Zeile in /etc/systemd/user.conf hinzufügen:

DefaultLimitNOFILE=65535 

Diese Änderung funktioniert, wirkt sich aber nur auf das weiche Limit aus. (Damit bleibt uns noch ein Hard Limit von 4096 vorbehalten.) Um auch das Hard Limit zu beeinflussen, müssen wir die Datei /etc/systemd/system.conf mit derselben Änderung ändern.

Die in /etc/pam.d vorgenommenen Änderungen waren nicht erforderlich. Zumindest auf Ubuntu funktioniert das schon. Es war auch nicht notwendig, die Einstellungen für rootund *in limits.conf zu ändern . Das Ändern der Grenzwerte mkasbergwar zumindest für meinen Anwendungsfall ausreichend.


In Summe

Wenn Sie das angezeigte Limit erhöhen möchten ulimit -n, sollten Sie:

  • Ändern Sie /etc/systemd/user.conf und /etc/systemd/system.conf mit der folgenden Zeile (dies kümmert sich um 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 
`DefaultLimitNOFILE = 65535` hat es geschafft. Aber warum funktioniert "/etc/security/limits.conf" nicht? Suvitruf vor 6 Jahren 1
Das GUI-Login verwendet systemd, das offensichtlich eine eigene Konfiguration (`/ etc / systemd / system.conf`) hat, die von der normalen Konfiguration für Terminalsitzungen (` / etc / security / limits.conf`) unabhängig ist. Ich weiß nicht genug über systemd, um zu wissen, warum es so implementiert wurde. mkasberg vor 6 Jahren 1
Vielen Dank! Stunden des Suchens und Ausprobieren alles, aber das Problem wurde behoben. Roger Collins vor 6 Jahren 0
@Suvitruf, weil es in einem * systemd * -System ignoriert wird. Ich poste eine Antwort. Marc.2377 vor 5 Jahren 0
3
Marc.2377

Sie müssen nichts in der /etc/security/limits.confDatei ändern, es wird ignoriert, wenn Sie systemd verwenden.

(Wiedergabe einer modifizierten Antwort auf eine andere Frage im Netzwerk ...)

Eine Alternative für diejenigen, die Standard /etc/systemd/system.confund /etc/systemd/user/confDateien nicht bearbeiten möchten :

  1. Erstellen Sie eine neue Datei /etc/systemd/system.conf.d/limits.confmit folgendem Inhalt:

    [Manager] DefaultLimitNOFILE=65535 
  2. systemctl daemon-reexecals root ausführen

  3. abmelden und erneut anmelden

  4. Überprüfen Sie Ihr neues Limit mit ulimit -n.

Weitere Informationen finden Sie in der systemd-system.confManpage .

0
Paresh Chauhan

Mit Ubuntu 17.04 bekam ich das beschriebene harte Limit:

user@paresh.com:~$ ulimit -Hn 4096 

Ich könnte es reduzieren ulimit, aber nicht erhöhen, so wie es die Frage beschreibt. ulimitHandbuch beschreibt:

Nur root kann das harte Limit erhöhen.

Also habe ich versucht, eine höhere Grenze zu setzen /etc/security/limits.conf:

user hard nofile 9999 

und ein ssh localhost -l userneues Login wie das mir das neue Limit gegeben hat:

user@paresh.com:~$ ulimit -Hn 9999 

Ich hoffe das funktioniert auch für dich.