Ich habe kürzlich einen unserer Redis-Prozesse daraufhin überprüft, welche Ulimits angewendet wurden:
cat /proc/<redis-pid>/limits
Und war überrascht zu erfahren, dass es sich um den niedrigen Standardwert handelt:
Limit Soft Limit Hard Limit
Max open files 4016 4016
Ich war überrascht, weil wir folgendes konfiguriert haben:
# /etc/sysctl.conf
fs.file-max = 100000
.
# /etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000
.
# /etc/ssh/sshd_config
UsePAM yes
.
# /etc/pam.d/sshd
session required pam_limits.so
Kann mir jemand sagen, warum das erhöhte ulimit nicht auf den laufenden Redis-Prozess angewendet wird?
Der Redis-Prozess wird ausgeführt, während der Benutzer "redis" ausgeführt wird. Der Server wurde neu gestartet, da die Grenzwerte erhöht wurden. Wir sind bei Debian Squeeze.
Der Parameter sysctl fs.file-max ist ein weites globales Systemlimit. Ich halte es nicht für eine gute Idee, in ulimit denselben Wert festzulegen.
Wenn Sie ulimit 100000 und sysctl.conf 100000 angeben, kann ein Benutzer das System blockieren
Wenn Sie über Ihr Problem sprechen, müssen Sie sicher sein, dass Ihr System pam_limits verwendet
quelle
Sie haben pam_limits für sshd aktiviert. Wird dieser Befehl jedoch in einer SSH-Sitzung ausgeführt? Möglicherweise müssen Sie dieselbe Zeile zu
/etc/pam.d/login
und / oder/etc/pam.d/su
und / oder hinzufügen/etc/pam.d/sudo
.quelle
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS
. Welche Pam wäre in diesem Fall angebracht?su [user] -c
Befehl, um das Skript als anderer Benutzer zu starten, oder wird Ihr Programm als Root ausgeführt? Wenn es verwendet wirdsu
, würden Sie es in setzen/etc/pam.d/su
. Wenn Sie alsroot
ausführen, sind Sie wahrscheinlich mit dem Vorschlag von c4f4t0r, denulimit
Befehl in Ihr Init-Skript einzufügen, besser dran .root
Es ist erlaubt, beliebige Limits festzulegen, sodass Sie sich in diesem Fall nicht wirklich um pam kümmern müssen.--chuid redis:redis
aufstart-stop-daemon
. Ich habe das ulimit jetzt zum Startskript hinzugefügt.