Wie kann ich das Limit für offene Dateien für alle Prozesse erhöhen?
32
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.
In Justins Antwort erfahren Sie, wie Sie die Anzahl der insgesamt verfügbaren offenen Dateien für das gesamte System erhöhen können. Aber ich denke, Sie fragen sich, wie Sie das Pro-Benutzer-Limit global erhöhen können. Die Antwort darauf besteht darin, die folgenden Zeilen hinzuzufügen /etc/security/limits.conf:
* soft nofile 2048
* hard nofile 2048
(Wo das * alle Benutzer bedeutet.)
In dieser Datei selbst und in befindet sich eine zusammenfassende Dokumentation man limits.conf. Dies erfolgt über das pam_limits.soModul, das für verschiedene in konfigurierte Dienste aufgerufen wird /etc/pam.d/.
Und ich muss zugeben, ich habe keine Ahnung, woher diese 1024-Standardeinstellung kommt. Und glauben Sie mir, ich habe geschaut. Ich habe sogar versucht, ohne das Modul pam_limits zu konfigurieren, und es ist immer noch da. Es muss irgendwo fest programmiert sein, aber ich bin mir nicht ganz sicher, wo.
Hmm ... ich habe das richtig eingestellt. Beenden Sie SSH und kehren Sie zurück, und mein weiches Limit ist immer noch auf 1024 eingestellt. Fehlt mir etwas, um dies "aktiv" zu machen? Vielen Dank.
Joshua Pinter
@mattdm - Es ist erwähnenswert, dass sich die erwähnte Datei auf einigen Linux-Distributionen unter /etc/limits.conf befindet
Speichern und schließen Sie dann die Datei. Benutzer müssen sich abmelden und erneut anmelden, damit die Ä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:
Ich bin skeptisch, dass ich mich für diese bestimmte Einstellung, die systemweit gilt, aus- und wieder anmelden muss. (Das gilt für so ziemlich alles in sysctl ...)
mattdm
13
Erhöhen Sie die maximale Anzahl an offenen ulimit-Dateien unter Linux
1.Schritt: Öffnen Sie die sysctl.conf und fügen Sie 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 das erwähnte hinzu
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
speichern und beenden, max. offene Datei prüfen ulimit
Aber wenn Sie versuchen, die maximale Anzahl offener Dateien eines Dienstes wie MariaDB oder etwas anderem (mit systemd ) zu erhöhen , müssen Sie dies direkt in der Datei .service tun
Dies muss gewürdigt werden, da die Allgegenwart von systemdzusammen mit den laufenden Änderungen im gesamten Linux-Ökosystem zunimmt. Ich würde jedoch vorschlagen, die Antwort auf cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/diese Datei zu bearbeiten und die Änderungen daran vorzunehmen, anstatt die systemweite Servicedatei, die vom Paket bereitgestellt wird.
ILMostro_7
3
ZUSCHLAG:
Sie finden die Konfiguration möglicherweise an einer anderen Stelle: /etc/security/limits.d/*.conf
Ich musste es ändern. Ohne ging es nicht. Das Format ist dasselbe wie fürlimits.conf
Antworten:
In Justins Antwort erfahren Sie, wie Sie die Anzahl der insgesamt verfügbaren offenen Dateien für das gesamte System erhöhen können. Aber ich denke, Sie fragen sich, wie Sie das Pro-Benutzer-Limit global erhöhen können. Die Antwort darauf besteht darin, die folgenden Zeilen hinzuzufügen
/etc/security/limits.conf
:(Wo das * alle Benutzer bedeutet.)
In dieser Datei selbst und in befindet sich eine zusammenfassende Dokumentation
man limits.conf
. Dies erfolgt über daspam_limits.so
Modul, das für verschiedene in konfigurierte Dienste aufgerufen wird/etc/pam.d/
.Und ich muss zugeben, ich habe keine Ahnung, woher diese 1024-Standardeinstellung kommt. Und glauben Sie mir, ich habe geschaut. Ich habe sogar versucht, ohne das Modul pam_limits zu konfigurieren, und es ist immer noch da. Es muss irgendwo fest programmiert sein, aber ich bin mir nicht ganz sicher, wo.
quelle
Gemäß dem Artikel Linux-Erhöhung der maximalen Anzahl offener Dateien / Dateideskriptoren (FD) können Sie das Limit für geöffnete Dateien erhöhen, indem Sie einen Eintrag zu hinzufügen
/etc/sysctl.conf
.Fügen Sie eine config-Direktive wie folgt hinzu:
Speichern und schließen Sie dann die Datei. Benutzer müssen sich abmelden und erneut anmelden, damit die Änderungen wirksam werden, oder sie können einfach den folgenden Befehl eingeben:
Sie können Ihre Einstellungen auch mit dem folgenden Befehl überprüfen:
quelle
Erhöhen Sie die maximale Anzahl an offenen ulimit-Dateien unter Linux
1.Schritt: Öffnen Sie die
sysctl.conf
und fügen Sie diese Zeile hinzufs.file-max = 65536
neue Zeile hinzufügen und
speichern und schließen.
2.Schritt:
und fügen Sie unten das erwähnte hinzu
speichern und beenden, max. offene Datei prüfen
ulimit
quelle
Aber wenn Sie versuchen, die maximale Anzahl offener Dateien eines Dienstes wie MariaDB oder etwas anderem (mit systemd ) zu erhöhen , müssen Sie dies direkt in der Datei .service tun
Wird ungefähr so aussehen:
Die vollständige Antwort ist hier: Zunehmende Anzahl von Prozessen, die von systemd unter CentOS 7 gestartet wurden
quelle
systemd
zusammen mit den laufenden Änderungen im gesamten Linux-Ökosystem zunimmt. Ich würde jedoch vorschlagen, die Antwort aufcp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
diese Datei zu bearbeiten und die Änderungen daran vorzunehmen, anstatt die systemweite Servicedatei, die vom Paket bereitgestellt wird.ZUSCHLAG:
Sie finden die Konfiguration möglicherweise an einer anderen Stelle:
/etc/security/limits.d/*.conf
Ich musste es ändern. Ohne ging es nicht. Das Format ist dasselbe wie für
limits.conf
quelle