Last auf Mailservern wodurch verursacht.

fwrede

New Member
Hallo.
Dieses Thema ist eher etwas theoreitscher Natur.

Ich habe mir in den letzten Tagen einige Gedanken über die Verteilung und Erzeugung von Last auf einem Mailserver nachgedacht, die vor allem aus der Nutzung von Mail-Clients erzeugt wird.

Im Grund benutzte ich auf meinem Smartphone einen Client, der alle 15 Minuten bei dem Mailserver die aktuellen Emails abholt. In diesem Moment muss es ja auf dem Server zu einer (zugegebener sehr geringen) Last auf dem Server kommen, da hier ja die neusten Emails herausgefunden werden und dann dem Client zugesendet werden müssten. Hier frage ich mich daneben auch noch, wie denn die zu übermittelnden Emails herausgefunden werden (IMAP4). Hier bleiben die Emails ja auch auf dem Server, sodass ich diese mit mehreren Geräten synchronisieren kann und dann auch der Öffnungsstatus der Emails übertragen wird. Dies alles muss ja dann bei dem 15 Minütigen Abfrageintervall erfolgen.

Darüber hinaus nutze ich auf meinem Windows-PC und auf dem Laptop das Email-Program von Windows 10. Dieses lässt sich so einstellen, dass die Emails direkt abgefragt werden. Hier müsste dann ja in einem sehr geringen Intervall von maximal einigen wenigen Sekunden der Server abgefragt werden, was die Last auf dem Server deutlich erhöhen müsste. Liege ich mit dieser Einschätzung richtig?

Mir ist bewusst, dass die Last auf dem Server, die ich erzeuge sehr gering ist, aber wenn man jetzt von einem Server ausgeht, auf den 20.000 User zugreifen, so müsste es zumindest aus meiner Sicht schon einen größeren Unterschied machen, ob das Abfrageintervall auf "sofort" oder "15 Minuten" eingestellt ist.

Ich freue mich, wenn mich einige von Ihnen vielleicht etwas schlauer in der Welt der Email-Server und Emails-Clients machen können :)

Viele Grüße
fwrede
 
Afaik ist es bei IMAP so dass der Client sich kurz verbindet und dann nix mehr macht. Wenn nun eine neue Mail kommt so wird der Server über die noch offene Verbindung den Client informieren. Somit ist eben gerade kein ständiges Polling des Clients nötig wie es noch mit POP war.

PS: Ich denke wir sind hier per Du
 
Afaik ist es bei IMAP so dass der Client sich kurz verbindet und dann nix mehr macht. Wenn nun eine neue Mail kommt so wird der Server über die noch offene Verbindung den Client informieren. Somit ist eben gerade kein ständiges Polling des Clients nötig wie es noch mit POP war.

PS: Ich denke wir sind hier per Du
Hallo Thomas,

von mir aus auch gerne per Du ;) .
Erstmal vielen Dank für deine Nachricht, dass klingt wirklich logisch. Ich fand den Gedanken auch schon etwas komisch, dass der Client sich dauerhaft beim Server meldet um eine Antwort zu erhalten.
Das dann eine dauerhafte Verbindung aufgebaut wird und Updates immer sofort übertragen werden, erscheint mir da wirklich sinnvoll. Das wird vermutlich auch deutlich weniger Rechenleistung auf dem Server verbrauchen, als sekündlich von jedem Client die Anfrage zu verarbeiten.

Vielen Dank für deine Antwort!

Viele Grüße
fwrede
 
Ansonsten hat ein Mailserver auch zahlreiche Möglichkeiten zur Optimierung. So werden beispielsweise Indexe der Mails angelegt, um dem Client relevante Informationen zu liefern (z.B. welche Mails der Client noch übertragen muss, Gelesen-Status usw.) - die Informationen im Index sind dann sehr effizient verfügbar. Hat der Server ausreichend RAM, kann das Betriebssystem außerdem bestimmte Daten im RAM cachen, was ebenfalls die CPU-Last senkt, da wiederholte lesende Zugriffe aus dem RAM statt von der HDD oder SSD bedient werden können.
 
Ein vernünftiger Postmaster wird ein dauerhaftes Polling in Intervallen von <5Min sanktionieren, schliesslich ist E-Mail kein Echtzeitmedium.
Ein unvernünftiger Postmaster schmeisst blind und dumm mit Geld und Energie (aka Hardware) um sich und läuft ständig dem Problem hinterher und doktort an den Symtomen rum statt das Problem einfach zu lösen. Von der völlig unnötigen Umweltbelastung mal ganz zu schweigen...
 
Ein Mechanismus, "Realtime" eMaileingang ohne permanentes Polling haben zu können ist https://en.wikipedia.org/wiki/IMAP_IDLE . Exchange hat dann nochmals andere Mechanismen ( https://de.wikipedia.org/wiki/Exchange_ActiveSync), die im Endeffekt das gleiche machen. Als Kerio Connect Serveradmin sehe ich die Endgeräte im Admin Interface permanent verbunden.

Und ja, ein größerer Mailserver braucht schon auch ein bisschen mehr Hardware (v.a. wohl Massenspeicher). In der Regel sind große Mailserver dann auch noch in Clustern aufgesetzt, damit nicht EIN Hardwareausfall den ganzen Mailbetrieb lahmlegt.

Ich würde meinen, dass zeitgesteuerte Abrufe wirklich nur noch beim uralten und kaum mehr verwendeten Pop3 verwendet werden. Die meisten IMAP Clients und Server werden wohl einen der o.g. Mechanismen verwenden. D.h. der Server informiert den Client, dass eine neue Mail da ist. Und nur dann passiert auch was (die Übertragung).
 
Ansonsten hat ein Mailserver auch zahlreiche Möglichkeiten zur Optimierung. So werden beispielsweise Indexe der Mails angelegt, um dem Client relevante Informationen zu liefern (z.B. welche Mails der Client noch übertragen muss, Gelesen-Status usw.) - die Informationen im Index sind dann sehr effizient verfügbar. Hat der Server ausreichend RAM, kann das Betriebssystem außerdem bestimmte Daten im RAM cachen, was ebenfalls die CPU-Last senkt, da wiederholte lesende Zugriffe aus dem RAM statt von der HDD oder SSD bedient werden können.
Danke für die Antwort, dann kann man also einen Email-Server auf relativ schmaler Hardware aufsetzten und durch Optimierung dennoch sehr viele Nutzer bedienen?
 
Ein vernünftiger Postmaster wird ein dauerhaftes Polling in Intervallen von <5Min sanktionieren, schliesslich ist E-Mail kein Echtzeitmedium.
Ein unvernünftiger Postmaster schmeisst blind und dumm mit Geld und Energie (aka Hardware) um sich und läuft ständig dem Problem hinterher und doktort an den Symtomen rum statt das Problem einfach zu lösen. Von der völlig unnötigen Umweltbelastung mal ganz zu schweigen...
Danke für die Antwort.
Mir selbst war nicht bewusst, dass ein Email-Client bei IMAP eine dauerhafte Verbindung aufbaut, daher war mein nächster Gedanke, dass einfach ziemlich häufig nachgefragt wird. Aber das ist ja somit nicht erforderlich.
Vermutlich kann man mit der dauerhaften Verbindung auch die Anforderungen an die Hardware senken.
 
Ein Mechanismus, "Realtime" eMaileingang ohne permanentes Polling haben zu können ist https://en.wikipedia.org/wiki/IMAP_IDLE . Exchange hat dann nochmals andere Mechanismen ( https://de.wikipedia.org/wiki/Exchange_ActiveSync), die im Endeffekt das gleiche machen. Als Kerio Connect Serveradmin sehe ich die Endgeräte im Admin Interface permanent verbunden.

Und ja, ein größerer Mailserver braucht schon auch ein bisschen mehr Hardware (v.a. wohl Massenspeicher). In der Regel sind große Mailserver dann auch noch in Clustern aufgesetzt, damit nicht EIN Hardwareausfall den ganzen Mailbetrieb lahmlegt.

Ich würde meinen, dass zeitgesteuerte Abrufe wirklich nur noch beim uralten und kaum mehr verwendeten Pop3 verwendet werden. Die meisten IMAP Clients und Server werden wohl einen der o.g. Mechanismen verwenden. D.h. der Server informiert den Client, dass eine neue Mail da ist. Und nur dann passiert auch was (die Übertragung).
Danke für die Antwort.
Habe mich in der letzten Zeit auch mal ein wenig zu IMAP eingelesen und auch mit netstat unter Windows die Verbindung herausfinden können.
Von daher kann ich mir gut vorstellen, dass es genau so funktioniert, wie von dir im letzten Absatz beschrieben. Ich war nur vorher leider nicht so in dem Thema drin, als das ich von selbst auf die Lösung gekommen wäre.
 
Mir selbst war nicht bewusst, dass ein Email-Client bei IMAP eine dauerhafte Verbindung aufbaut, daher war mein nächster Gedanke, dass einfach ziemlich häufig nachgefragt wird.
Theorie und Praxis sind auch hier zwei Paar Schuhe ;)
Es gibt da draussen etliche Mailclients (auch verbreitete), welche IMAP unvollständig oder fehlerhaft implementiert haben, weshalb ein diesbezügliches Limit auch die nächsten 15 Jahre noch sehr viel Sinn macht...

Auch "(private) Firewalls" und Kernel-/Netzwerkmodul-Optionen können hier dazwischengrätschen und kappen aus Sicherheitsgründen oder zur Ressourcenschonung einfach langlaufende Verbindungen...
 
dann kann man also einen Email-Server auf relativ schmaler Hardware aufsetzten und durch Optimierung dennoch sehr viele Nutzer bedienen?
Nein, das was ich beschrieben habe, sind die Optimierungen, die Software wie Dovecot und Postfix bereits enthalten und nutzen. Ein Server mit schwacher Hardware wird immer langsam sein. Bedenke auch, dass nicht nur die IMAP-Clients Last auf dem Server erzeugen, sondern auch der Mail-Empfang - z.B. bei der Spamabwehr und bevor die Mail überhaupt im Postfach landet.
 
Back
Top