Wie setze ich unter mongod
CentOS ulimits für den Prozess / Benutzer?
Ich habe die offizielle Dokumentation gelesen, aber sie enthält keine betriebssystemspezifischen Anweisungen.
Ich muss einstellen
ulimit -u 64000
und dies muss nach dem Neustart bestehen bleiben.Ich verwende CentOS 5.5, werde aber bald auf 6.5 aktualisieren.
Ich würde es vorziehen, keine vom Paketmanager installierten Skripte zu ändern
cat /proc/{pid}/limits
zeigt sich keine Änderung. Muss etwas zusätzliches getan werden, um sicherzustellen, dass das Conf gelesen wird?In der neueren Version des CentOS Mongod-Startskripts (/etc/init.d/mongod) sind die Standardeinstellungen in die Startoption integriert:
Wenn Sie die Werte ändern und das Skript nicht ändern möchten, kopieren Sie das Skript nach /etc/init.d/mongod-custom, bearbeiten Sie das benutzerdefinierte Init-Skript, legen Sie Ihre Werte fest und ändern Sie chkconfig so, dass mongod-custom anstelle von mongod verwendet wird.
quelle
Um Thaspius 'Antwort zu ergänzen, scheinen die Grenzen so festgelegt zu sein, wie er es im Init-Skript beschreibt, aber ich bekam immer noch die Warnung
[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
Dies scheint darauf hinzudeuten, dass das im Init-Skript definierte Dateilimit wirksam wurde, nicht jedoch das Prozesslimit. Folgen Sie auch der Antwort von Nathan C und fügen Sie hinzu
mongod soft nproc 64000
Durch
/etc/security/limits.d/90-nproc.conf
Starten und Neustarten des Systems wurde das Problem behoben.Wenn jemand in der Lage ist, Licht ins Dunkel zu bringen, warum dies trotz der Werte im Mongodb-Init-Skript notwendig war, bin ich ganz Ohr!
quelle
Nehmen Sie diese Änderung in der
/etc/security/limits.conf
Datei vor. Setzen Sie die harten und weichen Grenzen, und Sie sollten gut sein.quelle
/etc/security/limits.d/
anstattlimits.conf
direkt mit der Datei zu spielenDamit die Änderung dauerhaft bleibt, müssen Sie das Init-Skript bearbeiten. In Red Hat 7 enthält das Init-Skript beispielsweise die folgende Zeile:
Sie müssen den nächsten hinzufügen:
Starten Sie dann den Dienst neu.
Ich hoffe das hilft.
quelle