Der aktuelle Kernel 3.2.0 (dem Default-Kernel von Debian 7) hat einen Bug im Inotify-Mechanismus, den Dovecot für die Benachrichtigung seiner Mailclients aktiv nutzt. In der Folge beenden sich IMAP-Prozesse ausgeloggter Nutzer nicht mehr richtig, sondern verbleiben im Status "S" (interruptable sleep) in der Prozessliste. Diese Prozesse warten auf eine Rückmeldung im Kernel. Der Workaround ist nur ein Handgriff.
Durch die hängenden IMAP-Prozesse zeigt der Server eine sehr hohe Load -- bei großen Systemen auch drei- und vierstellige Werte. Nicht weiter kritisch, denn die Prozesse verbrauchen weder CPU- noch I/O-Resourcen, belegen aber etwas RAM und nerven.
Abhilfe ist die Installation eines anderen Kernels oder als Workaround die Deaktivierung des Inotify-Mechanismus:
echo 0 > /proc/sys/fs/inotify/max_user_instances echo 0 > /proc/sys/fs/inotify/max_user_watches
Dauerhaft läßt sich das auch in /etc/systctl.conf eintragen:
fs.inotify.max_user_instances=0 fs.inotify.max_user_watches=0
Dadurch funktioniert jetzt die IDLE push notification nicht mehr in Echtzeit. Allerdings erhält der User nach 30 Sekunden trotzdem eine Benachrichtigung über neue E-Mails.
~# doveconf | grep mailbox_idle_check_interval mailbox_idle_check_interval = 30 secs
Tel: +49 30 40 50 51 - 0
Fax: +49 30 40 50 51 - 19
Kommentare
2 Antworten zu Dovecot 2.2 unter Kernel 3.2.0 (Debian 7) zeigt hohe Load
Danke für die Info. Gibt es dazu auch schon einen Bugreport bei Debian im Tracker?
Danke für diesen Beitrag. Ich hab das alles ganz brav erledigt, allerdings wird mein Warning-Log trotzdem weiter fleißig mit der Meldung "Inotify instance limit for user exceeded, disabling" geflutet. Habt ihr eine Ahnung woran das noch liegen kann?