Sizing Dovecot und „push“ imap_idle

Servus,

wir diskutieren gerade wie ressourcenhungrig das pushing sich bei
unterschiedlichen Nutzern mit mehreren Endgeräten entwickelt.

Wenn ich es richtig verstanden habe, dann erfolgt das pushen der eMails
zu R2Mail2 mit Hilfe des IMAP4 IDLE commands
(http://tools.ietf.org/html/rfc2177), oder?

Wenn ich es richtig verstanden habe, dann hält der Client die Verbindung
zum IMAP-Server quasi dauerhaft offen, in dem er regelmäßig den
IMAP-Server kurz „pingt“. Somit weiß der IMAP-Server, auf welcher IP er
seine Empfänger erreichen kann und pusht neue eMails zum Client.

Pro „überwachten IMAP-Ordner“ wird, wenn ich mir richtig informiert
habe, eine Verbindung gehalten.

Wenn ich nun einen IMAP-Server betreiben möchte, an dem sich ca. 1200
User anmelden können, dann wird sich das Nutzungsverhalten sicherlich
auf die Performance des IMAP-Servers niederschlagen. Im orstcase nehmen
wir nun 1200 Nutzer mit je 2 Mailkonten, 3 Geräten und 4 überwachten
Ordnern, gibt wieviel? In etwa 28.800 Connections – ich vermute mal da
wird einiges mehr gebraucht als ein „PIII mit 2GB RAM“.

Bin ich mit meinen Überlegungen auf dem Holzweg, oder wirkt sich die
Nutzung von „push“ bei vielen Nutzern mit unterschiedlichen Endgeräten
tatsächlich arg negativ auf den IMAP-Server und dessen Verfügbarkeit
aus? Und wie begegnet man nun ggf. diesem Umstand beim Design seines
Dovecot-Servers?

Wir freuen uns auf regen Beteiligung an der Diskussion.

Servus
Django & friend 😉

„Bonnie & Clyde der Postmaster-Szene!“ approved by Postfix-God
http://wetterstation-pliening.info
http://dokuwiki.nausch.org
http://wiki.piratenpartei.de/Benutzer:Django

  • 22. März 2013

  • Django [BOfH]

  • 1 Antwort

  1. Andreas Meyer sagt:

    Hallo!

    „Django [BOfH]“ wrote:

    > Servus,
    >
    > wir diskutieren gerade wie ressourcenhungrig das pushing sich bei
    > unterschiedlichen Nutzern mit mehreren Endgeräten entwickelt.
    >
    > Wenn ich es richtig verstanden habe, dann erfolgt das pushen der eMails
    > zu R2Mail2 mit Hilfe des IMAP4 IDLE commands
    > (http://tools.ietf.org/html/rfc2177), oder?
    >
    > Wenn ich es richtig verstanden habe, dann hält der Client die Verbindung
    > zum IMAP-Server quasi dauerhaft offen, in dem er regelmäßig den
    > IMAP-Server kurz „pingt“. Somit weiß der IMAP-Server, auf welcher IP er
    > seine Empfänger erreichen kann und pusht neue eMails zum Client.

    Es gibt einen imap_idle_notify_interval. Steht bei mir auf 29 mins.

    > Pro „überwachten IMAP-Ordner“ wird, wenn ich mir richtig informiert
    > habe, eine Verbindung gehalten.

    Das ist vermutlich so. K-9mail z.B. unterscheidet aber z.B. in
    Anzeigekassen (Haupt- oder Nebenordner), Synchronisationsklassen
    und Pushklassen, wobei mir der Unterschied bis heute nicht so recht
    klar ist. Ich habe mich damit noch nicht beschäftigt.

    > Wenn ich nun einen IMAP-Server betreiben möchte, an dem sich ca. 1200
    > User anmelden können, dann wird sich das Nutzungsverhalten sicherlich
    > auf die Performance des IMAP-Servers niederschlagen. Im orstcase nehmen
    > wir nun 1200 Nutzer mit je 2 Mailkonten, 3 Geräten und 4 überwachten
    > Ordnern, gibt wieviel? In etwa 28.800 Connections – ich vermute mal da
    > wird einiges mehr gebraucht als ein „PIII mit 2GB RAM“.

    Ich schätze, das ist heutzutage ein großes Problem für IMAP-Server,
    da viele Endgeräte gleichzeitig auf die Postfächer zugreifen wollen.

    Hier: mail_max_userip_connections = 20, was schon des öfteren erreicht
    wurde und dann sind keine weiteren Verbindungen möglich. Hilft nur
    doveadm kick .

    > Bin ich mit meinen Überlegungen auf dem Holzweg, oder wirkt sich die
    > Nutzung von „push“ bei vielen Nutzern mit unterschiedlichen Endgeräten
    > tatsächlich arg negativ auf den IMAP-Server und dessen Verfügbarkeit
    > aus? Und wie begegnet man nun ggf. diesem Umstand beim Design seines
    > Dovecot-Servers?

    Ich kann über den Ressourcenhunger keine Aussagen machen, weil hier
    nur wenig Nutzer mit Smartphone und PC gleichzeitig zugreifen. Man
    müsste das eruieren und beobachten.

    > Wir freuen uns auf regen Beteiligung an der Diskussion.
    >
    >
    > Servus
    > Django & friend 😉

    Andreas