it-swarm.com.de

Wie kann ich das Limit für offene Dateien für alle Prozesse erhöhen?

Ich kann ulimit verwenden, aber ich denke, das betrifft nur meine Shell-Sitzung. Ich möchte, dass das Limit für alle Prozesse erhöht wird. Dies ist auf Red Hat.

34
user5554

In Justins Antwort erfahren Sie, wie Sie die Anzahl der verfügbaren offenen Dateien total für das gesamte System erhöhen können. Aber ich denke, Sie fragen sich, wie Sie das Limit pro Benutzer global erhöhen können. Die Antwort darauf besteht darin, /etc/security/limits.conf Die folgenden Zeilen hinzuzufügen:

*               soft    nofile            2048
*               hard    nofile            2048

(Wobei das * alle Benutzer bedeutet.)

In dieser Datei selbst und in man limits.conf Gibt es eine zusammenfassende Dokumentation. Dies wird über das Modul pam_limits.so Implementiert, das für verschiedene in /etc/pam.d/ Konfigurierte Dienste aufgerufen wird.

Und ich muss zugeben, ich habe keine Ahnung woher dieser 1024-Standard kommt. Und glauben Sie mir, ich sah. Ich habe es sogar ohne das konfigurierte pam_limits-Modul versucht, und es ist immer noch da. Es muss irgendwo fest codiert sein, aber ich bin mir nicht ganz sicher, wo.

27
mattdm

Erhöhen Sie die maximale Anzahl offener ulimit-Dateien unter Linux

1.Schritt: Öffnen Sie das sysctl.conf und füge diese Zeile hinzu fs.file-max = 65536

$ vi /etc/sysctl.conf

neue Zeile hinzufügen und

fs.file-max = 65536

speichern und schließen.

2.Schritt:

$ vi /etc/security/limits.conf

und fügen Sie unten die genannten hinzu

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

speichern und Beenden überprüfen max offene Datei ulimit

# ulimit -a

....
open files                      (-n) 65535
14
minhas23

Gemäß dem Artikel Linux erhöht die maximale Anzahl geöffneter Dateien/Dateideskriptoren (FD) können Sie das Limit für geöffnete Dateien erhöhen, indem Sie einen Eintrag zu /etc/sysctl.conf Hinzufügen.

Fügen Sie eine Konfigurationsanweisung wie folgt hinzu:

fs.file-max = 100000

Speichern und schließen Sie dann die Datei. Benutzer müssen sich abmelden und erneut anmelden, damit Änderungen wirksam werden, oder sie können einfach den folgenden Befehl eingeben:

# sysctl -p

Sie können Ihre Einstellungen auch mit dem folgenden Befehl überprüfen:

# cat /proc/sys/fs/file-max
14
Justin Ethier

Aber wenn Sie versuchen, die maximale Anzahl geöffneter Dateien eines Dienstes wie MariaDB oder etwas anderem zu erhöhen (mit systemd) müssen Sie direkt in der Datei .service tun

/lib/systemd/system/<servicename>.service

Wird so etwas sein:

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

Die vollständige Antwort lautet hier: Erhöhung von nproc für Prozesse, die von systemd unter CentOS 7 gestartet wurden

8

Ergänzung:

Sie finden die Konfiguration möglicherweise an einer anderen Stelle: /etc/security/limits.d/*.conf

Ich musste es ändern. Ohne das hat es nicht funktioniert. Das Format ist das gleiche wie für limits.conf

3