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.
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.
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
:
* 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.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.
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:
fs.file-max = 100000
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:
# cat /proc/sys/fs/file-max
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
# ulimit -a
....
open files (-n) 65535
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
/lib/systemd/system/<servicename>.service
Wird ungefähr so aussehen:
[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 ist hier: Zunehmende Anzahl von Prozessen, die von systemd unter CentOS 7 gestartet wurden
systemd
zusammen 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.
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