Aus Linux-Magazin 06/2007

UW IMAP, Courier, Cyrus und Dovecot im direkten Vergleich

© schoelzy, photocase.com

Was leisten moderne IMAP-Server? Wo liegen ihre Grenzen, wo die Unterschiede? Welche Faktoren beeinflussen die Leistung? Das Linux-Magazin hat die vier besten in der Businessklasse getestet.

Vier aktuelle und populäre Server treten hier gegeneinander an: UW IMAP, Cyrus IMAP, Courier IMAP und Dovecot. Gemeinsam ist ihnen, dass sie IMAP anbieten. Was sie vor allem unterscheidet, sind ihre Entstehungsgründe und Ziele. Marc Crispin, der Vater des IMAP-Protokolls, ist zugleich der Programmierer von UW IMAP. Der Server diente ihm als Proof of Concept und gilt als Referenz für die IMAP-Implementierung. Wer sich damit beschäftigt, der merkt, dass der Schöpfer Wert auf Vielseitigkeit und Einfachheit legt. Der Server läuft auf vielen Plattformen und unterstützt mehrere Mailbox-Formate.

Der Admin konfiguriert UW IMAP, indem er vor dem Übersetzen eigene Build-Optionen setzt. Nach dem Kompilieren kopiert er dann lediglich einige wenige Binaries an passende Orte im Dateisystem. Den IMAP-Dienst selbst rufen »inetd« oder »xinetd« bei Bedarf auf. Den Benutzer authentifizieren klassische Systemdatenbanken oder PAM und die darüber erreichbaren Backends.

Für viele Admins war UW der erste IMAP-Server. Sobald ihre Anforderungen und vor allem sobald die Mailboxen wuchsen, ließen ihn viele aber wieder fallen. Grund war sicherlich das Festhalten seines Erfinders am Mbox-Format und die damit verbundenen Problemen (siehe weiter unten). Ende letzten Jahres hat Marc Crispin das neue Mailbox-Format Mix vorgestellt. Grund genug für ein Wiedersehen mit dem alten Bekannten, dessen aktuelle Version Imap-2006g hier zur Prüfung antritt.

Cyrus IMAP, der Allrounder

Der nächste Kandidat ist Teil des Projekt Cyrus der Carnegie Mellon Universität und als Nachfolger des dortigen Andrew- Mailsystems für den Einsatz auf einer Sealed Box konzipiert. Der Server ist weit über die Grenzen seiner Alma Mater hinaus bekannt und gilt als Feature-Monster. Die Software ist höflich gesagt unterdokumentiert. Für wiederkehrende Aktionen erstellt und pflegt der Server Caches und Indizes, um I/O-Operationen auf ein Minimum zu reduzieren.

Übersteigt die Last die Fähigkeiten eines einzelnen Cyrus-Servers, kann das Projekt Cyrus Murder helfen. Es bündelt verschiedene verteilte Cyrus-Server und lässt sie nach außen als ein System erscheinen. Benutzer authentifiziert und autorisiert Cyrus IMAP über das Framework Cyrus SASL, das sich für eine größere Zahl sehr unterschiedlicher Backends eignet. Cyrus verfügt mit Sieve über eine ausgewachsene Filtersprache (siehe Artikel). Der Test verwendete Cyrus-Imapd-2.2 aus Ubuntus Fundus.

Courier IMAP und Dovecot

Kandidat drei ist Teil der Courier-MTA-Suite des Autors Sam Varshavchik. Nach eigenen Aussagen begann er Courier IMAP zu schreiben, weil in seinen Augen nichts Vernünftiges auf dem Markt war. Mit den Jahren hat sein Unmut einen IMAP-Server, den Local-Delivery-Agenten Maildrop, die Webmail-Applikation Sqwebmail und sogar den eigenen Mailclient Cone hervorgebracht.

Courier kann Benutzer über die Courier Authlib, Systemdatenbanken, PAM, LDAP-Verzeichnisse, SQL-Server und die eigene Userdatenbank authentifizieren. Bei Providern ist Courier beliebt, weil er seine Daten im einfach zu verwaltenden Mailbox-Format Maildir ablegt. Reicht ein IMAP-Server nicht, um die Last der Clients zu tragen, verteilt sie der seit Version 4.0 eingebaute Proxy auf mehrere Server. Der Test verwendete die ältere Version 3.0.8-13ubuntu5.1.

Testkandidat Nummer vier dürfte sich nicht wundern, wenn er diesen Test verlieren würde. Denn Version 1.0 von Dovecot ist genau am Freitag, dem 13. April 2007 erschienen. Wer meint, die geringe Versionsnummer sei mit geringem Funktionsumfang gleichzusetzen, irrt. Entwickler Timo Sirainen hat fünf Jahre investiert, um einen möglichst sicheren IMAP-Server zu schreiben. Dovecot verfügt als einziger Testteilnehmer über mehrere Spezialkomponenten, bei denen jede mit Minimal-Privilegien läuft.

Der Server liest mehrere Mailbox-Formate und bringt als Eigenentwicklung transaktionsorientierte Indizes mit. Diese wendet die Software sowohl auf Mbox- als auch auf Maildir-Mailboxen an und speichert sie bei Bedarf getrennt von den Boxen. Das ist praktisch, wenn diese über NFS gemountet sind, der Admin aber die Indizes vor NFS-Ärger bewahren will. Auch Dovecot verfügt über einen Proxy-Modus, mit dem er Last auf andere Server verteilt. Neue Fertigkeiten lernt er durch eine Plugin-Infrastruktur. Damit haben Quotas und ACLs bereits Einzug in die Applikation gefunden [1].

Dovecot gewinnt gerade viele Freunde in der IMAP-Gemeinde. Das liegt nicht nur an der guten Dokumentation, sondern auch daran, dass Timo Sirainen mit Ideen und Engagement frischen Wind in die Szene bringt. Im Test kam die Version 1.0.beta3-3ubuntu zum Einsatz.

Test-Szenario

Schnell war klar im Testlabor des Linux-Magazins: Kein Test dieser Welt kann einen alles umfassenden Eindruck vermitteln. Zu stark schwanken die Anforderungen an Mailserver in der Praxis. Als Vorbild werteten die Tester ein echtes Mailsystem einer deutschen Firma mit 8500 Mailboxen aus. Im Schnitt betrug die Anzahl der Mails pro Box 250, die 50 größten enthielten mehr als 10000. Eine signifikante Anzahl an Konten speicherte um die 2500 E-Mails und viele Nutzer hatten weniger als 50.

Daraus entwickelten die Tester ein Muster-szenario für eine kleinere Organisation mit 200 Mitarbeitern, die verschiedene Aufgaben bearbeiten. Als Benchmarkprogramm diente Mstone auf aktueller Hardware in einem überschaubaren Netzwerk (siehe Kasten “So haben wir getestet”). Die Mstone-IMAP-Testclients bauten eine Stunde lang bis zu 200 gleichzeitige Verbindungen zum Testserver auf. Nach dem Login setzten die Clients typische IMAP-Befehle (»SELECT INBOX«, »FETCH«, »RETRIEVE«, »NOOP« …) ab und waren dann für kurze Zeit »IDLE«.

So haben wir
getestet

Alle Tests liefen auf demselben Server, einem Intel P4 mit 3,6 GHz, 3 GByte RAM und einem Raid-5-System mit drei SATA-Platten. Als Client-Plattform für die Benchmark-Suite diente ein Pentium 4 mit 3 GHz und 1 GByte RAM sowie ein Pentium M mit 1,7 GHz und 512 MByte RAM. Alle Rechner waren mit Ubuntu 6.10 (Edgy Eft) in passender Server- oder Client-Variante ausgestattet.

Das Server-Raid war partitioniert, statische Systemdaten lagen in einem Ext-3-System, während sich die Betriebsdaten (E-Mails, Indizes, Caches) in einem extra eingerichteten XFS-Dateisystem befanden. Eine Empfehlung für das Dateisystem XFS hatten die Tester in Mailinglisten, FAQs oder im direkten Mailkontakt mit den IMAP-Entwicklern erhalten.

Kein IMAP-Server war speziell für den Test optimiert. Alle sollten out of the Box gegeneinander antreten und das nach eigener Einschätzung beste Mailbox-Format verwenden. Als Benchmark diente Mstone, das Multi-Protocol Stress and Performance Measurement Tool, in der aktuellen Version Mstone 4.9.1 [2] (siehe folgenden Artikel).

Vor den IMAP-Tests füllten die Tester die virtuellen User-Mailboxen von einem Client-Rechner aus via Imapsync [3]. Bei den IMAP-Servern, die Maildir verwenden, löschten die Prüfer die bei der Synchronisation angelegten Indexdateien und Keyword-Listen. In der Praxis sind sie bei neu zugegangenen E-Mails auch nicht vorhanden.

Um die Ungeduld von Nutzern zu simulieren, fragten sie bereits nach drei Minuten neue Mails ab. Und: Die Clients sendeten gleichzeitig Nachrichten per SMTP. Dadurch ändert sich ständig die Anzahl an Nachrichten in ihren Konten, die getesteten Server waren dazu gezwungen, bei steter Kontenabfrage Indizes und Caches zu aktualisieren.

Die simulierte E-Mail-Nutzung der Clients ist sehr heterogen: Abteilung A versendet ständig Dateien mit großen Attachments, während in den Boxen von B viele kleine Mails überwiegen. Manche Abteilung bereinigt ihre Mail-Archive häufig, andere heben alles auf.

In Zahlen variierten bei diesem Test folgende Faktoren:

  • Die durchschnittliche Größe der Mailboxen: 22 bis
    225 MByte
  • Wachsen und Schrumpfen der Mailbox durch SMTP-Einlieferung oder
    Löschen während der IMAP-Session
  • Die Anzahl der vorgehaltenen E-Mails: 223 bis 7068
  • Die durchschnittliche Größe der abgelegten E-Mails:
    1,5, 3, 5, 17 KByte oder 1,3 MByte
Abbildung 1: Es gibt nur wenige grafische Tools für die Administration von IMAP-Servern, Webmin enthält drei davon. Zwei Module passen zu Cyrus und Dovecot.

Abbildung 1: Es gibt nur wenige grafische Tools für die Administration von IMAP-Servern, Webmin enthält drei davon. Zwei Module passen zu Cyrus und Dovecot.

Test zwei und drei zum Ausreizen

Als zweites Szenario dient ein erdachtes Unternehmen mit 1000 Mitarbeitern. Diese zweite Testreihe baute zwar keine SMTP-Verbindungen auf, dafür forderten hier 1000 Clients gleichzeitig ein Login. Das erzeugt die nötige Last, um zu zeigen, ob und wo die getesteten Server bei reiner IMAP-Last Grenzen haben.

Eine dritte und letzte Testreihe prüfte ausschließlich die zugehörigen Local Delivery Agents (LDA) der IMAP-Server. Einerseits ist deren Nutzung dort zwingend, wo die IMAP-Server proprietäre Mailbox-Formate verwenden – ein normaler LDA kann diese Server nicht bedienen. Andererseits sind gerade IMAP-LDAs häufig in der Lage, Filterregeln anzuwenden, weshalb Admins sie gerne in den Zustellweg integrieren. So lassen sich verdächtige Nachrichten in eine Sub-Mailbox aussortieren. Die Fragestellung in dieser Testreihe war: Welcher IMAP-Server verfügt über den leistungsfähigsten LDA?

Abbildung 2: Auf das Testszenario 1 reagierten die Server unterschiedlich: Während Dovecot konstant niedrige Reaktionszeiten hatte, benötigten die anderen Server mehr Zeit, und zwar auch über einen längeren Zeitraum, wie die Grafik für UW IMAP besonders deutlich zeigt.

Abbildung 2: Auf das Testszenario 1 reagierten die Server unterschiedlich: Während Dovecot konstant niedrige Reaktionszeiten hatte, benötigten die anderen Server mehr Zeit, und zwar auch über einen längeren Zeitraum, wie die Grafik für UW IMAP besonders deutlich zeigt.

Performance-Faktoren

Gute Organisation und schnelle Erreichbarkeit der E-Mails auf dem Server sind bei IMAP von entscheidender Bedeutung. E-Mail verarbeiten bedeutet für den Server vor allem zahlreiche Lese- und Schreiboperationen mit vielen kleinen Dateien. Einfluss auf die Performance nehmen Hardware, Dateisystem und Organisation der Datei-Ablage.

Schnelle Festplatten, idealerweise in größerer Anzahl gebunden zu einem Hardware-Raid, erscheinen deshalb obligatorisch für einen Server, der hohe Durchsatz- und Zugriffsraten zu verkraften hat. Sind die Platten langsam oder gar noch mit anderen Aufgaben beschäftigt, wird der IMAP-Server viel Zeit damit verbringen, auf I/O-Operationen zu warten. Wartezeit, die direkt auf seine Ansprechbarkeit durchschlägt.

Die fast gleiche Bedeutung kommt dem gemounteten Dateisystem zu. Ist es nicht robust, stabil und dauerhaft performant, beschert die unternehmenskritische Anwendung E-Mail dem Admin bestimmt einen schlechten Schlaf und Ärger mit den Kollegen.

Das letzte Glied in der Kette ist das Mailbox-Format, für das sich jeder Server entschieden hat. Mit dessen Effizienz steht und fällt die erreichbare Performance bei jedem Mailbox-Zugriff – gerade bei IMAP. Hier sieht das Protokoll explizit vor, viele Client-Aufgaben durch Aktionen auf Server-Seite (Listen, Suchen, Sortieren, Flaggen) zu ersetzen. Ein Server, der nicht zeitig Ergebnisse bringt, bremst alle abhängigen Clients.

Die Einigkeit trügt

Alle Mailserver-Entwickler sind sich mittlerweile darin einig, dass das traditionelle Mbox-Format für moderne IMAP-Server nicht taugt. Solche Mailboxen sind langsam, weil der Server bei jedem Zugriff die ganze große Mbox-Datei komplett einlesen muss. Außerdem sind Shared Folders nicht zu realisieren, weil Locking-Mechanismen konkurrierende Schreibzugriffe auf ein und dieselbe Mbox-Datei verhindern.

Die Vorstellungen darüber, wie Daten organisiert sein müssen, damit sie für die teils widersprüchlichen Anforderungen wie gute Performance, Robustheit und Konformität mit IMAP-Protokoll-Anforderungen (zum Beispiel Keywords) besonders geeignet sind, gehen weit auseinander und werden auf Mailinglisten mit fast religiösem Eifer diskutiert. Sogar die Kernentwickler einiger IMAP-Projekte geben sich im Grabenkampf besonders engagiert (siehe Kasten “IMAP-Kriege ohne Scham”). Als Resultat bietet jeder der vorgestellten IMAP-Server eine anderes Mailbox-Format an. Keines erfüllt alle Kriterien zur vollen Zufriedenheit und jeder Entwickler legt seinen Schwerpunkt auf einen anderen Aspekt.

IMAP-Kriege ohne
Scham

Es ist nicht einfach, sich aus der spärlichen Dokumentation der IMAP-Server ein Bild über deren IMAP-Konformität zu machen. Hinzu kommt Politik: Offenbar versuchen manche Entwickler gezielt, andere Projekte schlecht zu machen und ihren Server als Allzweckwaffe hinzustellen. So ätzt Mark Crispin, Entwickler von UW IMAP und Autor der IMAP-RFC, auch in den Medien seit Jahren gegen Sam Varshavchiks Courier. Varshavchik wiederum meint, Crispin führe einen unnötigen Glaubenskrieg gegen ihn. Auch im Web und in Mailinglisten toben die Flamewars weiter und überlagern sachliche und technische Darstellungen.

Robust: Couriers Maildir

Courier IMAP setzt auf das Maildir-Format [4]. Im Gegensatz zur traditionellen Mbox versammelt Maildir seine Nachrichten nicht in einer einzigen Datei, sondern legt jede E-Mail einzeln als Datei in eine vorgegebene Verzeichnisstruktur. Locking-Probleme, wie sie bei gemeinsamen Zugriffen auf dieselbe Mailbox bei Mbox üblich sind, kennt Maildir aufgrund dieses Designs nicht.

Bei Maildir spiegelt der Verzeichnisname den Mailboxnamen wider (Abbildung 3). Die Nachrichten selbst kommen je nach Status in einem von drei Unterordnern »new«, »tmp« und »cur« zu liegen. Stellt die Serversoftware eine Mail in ein Maildir zu, wird sie zuerst im Verzeichnis »tmp« angelegt.

Abbildung 3: Die Robustheit hat Maildir zu einem inoffiziellen Standard in der E-Mail-Welt gemacht. Im Verzeichnis »courierimapkeywords« speichert Courier Meta-Informationen zu den Mails.

Abbildung 3: Die Robustheit hat Maildir zu einem inoffiziellen Standard in der E-Mail-Welt gemacht. Im Verzeichnis »courierimapkeywords« speichert Courier Meta-Informationen zu den Mails.

Der Dateiname besteht aus Prozess-ID, Uhrzeit und Hostname. Wenn das Zustellen ins »tmp«-Verzeichnis erfolgreich war, verschiebt Courier die Datei nach »new« – ein atomischer und deshalb schneller Vorgang. Greift ein Prozess lesend auf eine neue E-Mail zu, wandert sie von »new« nach »cur«, bevor sie der User angezeigt bekommt.

Courier IMAP legt zusätzlich und im Einklang mit der Maildir-Spezifikation Metadaten im Maildir-Verzeichnis ab. Die Datei »courierimapacl« bildet in Listenform Rechte einzelner User auf die Mailbox ab, »courierimapuiddb« listet alle eingegangenen und bereits bekannten E-Mails. Das Verzeichnis »courierimapkeywords« führt Protokoll über die Flags (»Seen«, »Answered«, »Draft«, »Deleted«, »Flagged« …), die den einzelnen Nachrichten zugeordnet sind.

Gegenüber dem traditionellen Mbox-Format ist Maildir sehr schnell [5]. In großen Systemumgebungen aber bricht es ein, denn Maildir vermerkt den Status einer E-Mail auch in ihrem Dateinamen. (Den Courier-Entwickler indes ficht das nicht an, siehe Kasten “Nachgehakt”). Änderungen haben also zwangsweise Schreib- und Leseoperationen im Dateisystem zur Folge. Daher auch die Kritik an Maildir, dass die Buchführung über die Nachrichten viel zu aufwändige Lese-/Schreiboperationen erfordert, zu hohen Latenzzeiten führt und damit das Gesamtsystem ausbremst.

Nachgehakt: Courier-Entwickler
Varshavchiks zur Performance

Zur schlechten Performance befragt, äußert sich Sam Varshavchik eindeutig. Courier IMAP bleibe beim Maildir-Format. Performance würde, so sagt er, verglichen mit anderen Eigenschaften ein zu hoher Stellenwert zugewiesen: “Ich bin der Überzeugung, dass Interoperabilität und einfache Administrierbarkeit heute viel wichtiger sind [als Performance]. Maildir ist viel, viel einfacher zu verwalten als jedes andere existierende Mailformat. Es handelt sich nur um einfache Dateien, einfacher geht es nicht. […] Man muss sich schon sehr anstrengen, um ein Maildir so zu zerschießen, dass der Server nichts mehr damit anfangen kann. Eigentlich müsste einer dafür das ganze Teil löschen.”

Schnell: Indiziertes Maildir

Dovecot setzt Maildir mit zusätzlichen Indexdateien ein. Sie dienen dazu, das regelmäßige vollständige Einlesen aller E-Mails im Maildir zu reduzieren. Zugriffe auf E-Mails und Server-seitige IMAP-Operationen wie Suchen und Sortieren werden spürbar schneller.

Die Indizes »dovecot.index«, »dovecot.index.log«, »dovecot.index.log.2« und »dovecot.index.cache« generiert Dovecot automatisch, was sich gerade bei korrupten Dateien oder dem Import bestehender Maildir- oder auch Mbox-Stores als sehr praktisch erweist. Andere Werkzeuge zur Wiederherstellung gibt es allerdings zurzeit nicht.

Wie Motorrad ohne Helm: Mix-Format für UW IMAP

UW IMAP, jahrelang vehementer Verfechter des Mbox-Formats, bietet seit Version 2006g ein eigenes, neu entwickeltes Mailbox-Format mit dem Namen Mix an. Mix löst viele der Probleme von Mbox, ist aber mit keinem der gebräuchlichen Formate kompatibel.

Ähnlich den Sektoren einer Festplatte schreibt Mix E-Mails so lange in eine Datei hinein, bis diese eine bestimmte Größe erreicht hat. Dann legt es eine neue Datei an und fährt dort mit dem Schreiben fort. Auch Mix erstellt Indizes (».mixmeta«, ».mixindex«, ».mixstatus«), in denen es Buch über diverse Informationen führt, die immer schnell und ohne aufwändiges Scannen des Dateisystems verfügbar sein sollten. Aber: Kaputte Indizes – keine E-Mails. Alle passenden Reparaturwerkzeuge, in erster Linie Mixrbld [7] und Mixfix [8], verharren überdies noch in frühen Alphastadien.

Cyrus IMAPs Mailformat

Wie Maildir verwendet Cyrus IMAP ein Verzeichnis pro Mailbox. Damit enden die Gemeinsamkeiten auch: Cyrus legt jede Mail in einer separaten Datei fortlaufend nummeriert ab. Der Dateiname endet immer mit einem Punkt (».«). Welchen Status die E-Mail hat, welche Flags gesetzt sind und welche Mime-Teile eine Mail enthält, entnimmt Cyrus IMAP separaten Dateien mit den Namen »cyrus.header«, »cyrus.index«, »cyrus.cache« und »cyrus.seen« (Abbildung 4).

Abbildung 4: Cyrus verwendet Maildir als Dateiformat und trimmt seine Mailboxen auf Performance. Mit Hilfe von Cache- und Indexdateien lag Cyrus beim Leistungswettbewerb lange vorne.

Abbildung 4: Cyrus verwendet Maildir als Dateiformat und trimmt seine Mailboxen auf Performance. Mit Hilfe von Cache- und Indexdateien lag Cyrus beim Leistungswettbewerb lange vorne.

Weil Cyrus die Informationen nicht in den Dateinamen der E-Mail kodiert, sondern separat in Listen führt, ist die Anzahl der erforderlichen Zugriffe auf die E-Mails minimiert. Alle für IMAP relevanten Metadaten, auch die Mime-Struktur des Mailbody, stehen in separaten Indizes oder BDB-Datenbanken. Anfragen des Clients beantwortet Cyrus direkt aus den Indizes und Datenbanken im Arbeitsspeicher. Sind die Indizes in den »cyrus.*« oder »*.db« -Dateien allerdings mal korrupt, findet sich der IMAP-Server nicht mehr zurecht. Selbstheilung wie Dovecot kennt Cyrus noch nicht.

Crashtest Dummy

Wer von Backup redet, will eigentlich die vorzügliche Funktionalität eines Restore genießen. Zur Wiederherstellung konsistenter Daten hilft das mit Cyrus gelieferte Programm »reconstruct«. Für ein Backup ist es ausreichend, den Mailstore, die Indizes und BDB-Datenbanken zu sichern. Idealerweise hält der Admin den Mailserver zuvor kurz an. Zwar baut »reconstruct« allein aus den E-Mail-Dateien den ganzen Mailstore wieder auf, aber es benötigt dafür sehr lange: Administratoren berichten von sieben Stunden für 3 GByte – Zeit, die Mailbenutzer im Katastrophenfall sicher nicht haben.

Dafür sind dann mit Maildir elegante inkrementelle Backups sogar mit Rsync möglich. Anders schaut es bei Mbox aus: Wer eine rund 3 KByte große Mail in seine 300-MByte-Mbox-Mailbox bekommt, darf anschließend die nur minimal gewachsene 300-MByte-Datei als Ganzes neu sichern. Bei UWs Mix-Format ist das Sichern der Index-Dateien lebensnotwendig, denn verlässliche Werkzeuge zur Wiederherstellung verlorener Indizes gibt es zurzeit nicht. Dovecot macht das automatisch, einfaches Kopieren der Daten reicht.

Große Durchsicht

Jeder Server bringt seine eigenen Verwaltungswerkzeuge mit. Im Wesentlichen helfen sie dem Admin dabei, Mailboxen entsprechend den speziellen Formaten anzulegen und Zugriffsrechte zu regeln. Alle Werkzeuge eignen sich fast ausschließlich für die Kommandozeile; grafische Benutzeroberflächen sind absolute Mangelware und beackern dann nur Teilaspekte des Admin-Alltags.

Das Standardwerkzeug von Cyrus ist »cyradm«, das in einer einigermaßen komfortablen Shell die Mailboxen verwaltet. Für Cyrus und Dovecot stehen einige Web-basierte Administrationsoberflächen wie die Webmin-Module (Abbildung 1) oder »webcyradmin« zur Verfügung, die unter anderem das Perl::IMAP::Admin-Modul verwenden.

Courier-Admins müssen Werkzeuge wie »maildirmake« bemühen. Ein Verwalter von UW IMAP benutzt

./mailutil create "#driver.mix//home/p/INBOX"

um eine Mix-Mailbox zu erstellen. UW legt als Einziger in der Standardkonfiguration die Mailboxen der Benutzer in deren Homeverzeichnis an.

Das ist allerdings eine gefährliche Sache: Der Benutzer kann den gesamten Mailstore durch simple Datei-Operationen zerstören. Hinzu kommt wie berichtet, dass Mix noch ohne Recovery-Werkzeug dasteht. Schlauer ist da die Standardeinstellung von Cyrus, den Mailstore unter »/var/spool« abzulegen.

Rennergebnisse

Die Durchschnittswerte der gemessenen Antwortzeiten in Abbildung 5 bestätigen die Grundannahmen, die sich aus der Analyse der Mailbox-Architekturen ergeben. Das Integral über den gesamten Messzeitraum verdeutlicht, dass sowohl beim SMTP-IMAP-Mischbetrieb mit 200 Clients als auch beim IMAP-Stresstest mit 1000 Verbindungen UW, Courier und Dovecot in einer Liga spielen.

Abbildung 5: Die dunklen Balken zeigen die errechneten durchschnittlichen Antwortzeiten von Testszenario 1, die hellen die von Szenario 2.

Abbildung 5: Die dunklen Balken zeigen die errechneten durchschnittlichen Antwortzeiten von Testszenario 1, die hellen die von Szenario 2.

Schaut man sich den Rennverlauf in Abbildung 2 detailliert an, gefällt das Antwortverhalten von Dovecot sogar etwas besser als das der beiden anderen. Er lieferte auch dann noch erträgliche Transaktionszeiten, als die eingehenden E-Mails die Mailboxen überschwemmten und allerorten Re-Indizieren oder ein komplettes Neueinlesen des Verzeichnisses notwendig war. Diese Vermutung ist erlaubt: Die Wahrscheinlichkeit besteht, dass Dovecots Mail-User statistisch weniger mit hängenden Verbindungen zu kämpfen haben.

Der Grund für Dovecot gutes Abschneiden ist mit Sicherheit im Local Delivery Agent, Deliver, zu suchen, der eingehende E-Mails nicht nur passgenau ablegt, sondern gleichzeitig auch noch die Indizes entsprechend aktualisiert. So kann Dovecot immer auf dem neuesten Stand seine Arbeiten beginnen. Abbildung 6 zeigt: Selbst im schlimmsten Fall benötigte Dovecot nur das Zweieinhalbfache der Zeit aller Kandidaten.

Abbildung 6: Anders als in Abbildung 5 bedeutet hier beim Datendurchsatz des LDA, dass lange Balken für die Testkandidaten erstrebenswert sind.

Abbildung 6: Anders als in Abbildung 5 bedeutet hier beim Datendurchsatz des LDA, dass lange Balken für die Testkandidaten erstrebenswert sind.

Überraschend schlecht schneidet Cyrus IMAP ab. Gerade der Branchenprimus ist eigentlich für seine (gefühlte) Geschwindigkeit bekannt. In den Messreihen kommt Cyrus aber nicht mal an Courier heran, der aufgrund seiner Mailbox-Architektur eigentlich im Nachteil ist. Überdeutlich wird der Sachverhalt dank Abbildung 2 im direkten Vergleich. Cyrus\’ Negativrekord lieferte den Testern Anlass, über die Sinnhaftigkeit der Standardeinstellungen des ausgelieferten Serverpakets nachzudenken.

Zurück zum zweiten Test mit 1000 Clients, er hatte ja die Ergebnisse der ersten Testrunde bestätigt. Der Unterschied: Während des Testzeitraums versuchen die Clients nicht neue E-Mails anzuliefern. Bei diesem Test, der den Servern keine Re-Indizierung oder ein Scannen des Dateisystems abverlangt, konnten die Server zeigen, wie gut sie mit ihren Daten umgehen können, wenn niemand stört. Die durchschnittliche Antwortzeit verbesserte sich bei allen Maildir-orientierten Servern daraufhin. UW IMAP und Cyrus benötigten mehr Zeit zur Abarbeitung ihrer Aufgaben.

Zusammenfassung

UW IMAP ist mit dem Mailboxformat Mix ein kleiner Renn-Bolide gelungen. Insbesondere im SMTP-IMAP-Mischbetrieb überzeugt UW IMAP mit kurzen Transaktionszeiten. Jetzt fehlen dem Server allerdings noch die passenden Reparaturwerkzeuge für den Fall, das die Mailboxen kaputtgehen. Dann stünde einem entspannten Alltagsbetrieb nichts mehr im Wege.

Cyrus jedoch kommt in diesem Test nicht annähernd so gut weg, wie es zu erwarten wäre. Unabhängig davon, ob die Performance tatsächlich gegenüber dem Teilnehmerfeld zurückfällt oder nicht, ist Cyrus immer noch die erste Wahl, wenn es um Funktionsreichtum geht. Wer viele Funktionen aus dem IMAP-Repertoire sucht, wird hier fündig.

Courier ist auf Robustheit und Stabilität ausgelegt. Er ist in allen Punkten ausgereift. Wer genau diese Qualitäten sucht, ist hier gut aufgehoben, denn Courier wird installiert und dann einfach nur noch genutzt. Ein Minus an Maildir-Performance lässt sich durch bessere Hardware, Raids und Dateisystem-Optimierung einigermaßen ausgleichen.

So wie es allerdings zurzeit aussieht, ist mit Dovecot ein überaus ernst zu nehmender Konkurrent für alle drei Klassiker der IMAP-Szene auf den Plan getreten. Dovecot ist, verglichen mit den Konkurrenten, gut dokumentiert und verhältnismäßig leicht zu konfigurieren. Das indizierte Maildir und die Art der Implementierung gefallen durchaus. Es scheint fast, als sei seinem Erfinder der Brückenschlag von robustem Maildir zu performantem Index- und Datenbank-Ansatz gelungen.

Eine Überarbeitung, die Dovecots indiziertes Maildir noch schneller machen soll, ist bereits erdacht und für Version 2.0 geplant. Dann müssen sich die Mitbewerber wohl wärmer anziehen. Die Sympathien der Open-Source-Gemeinde hat Dovecot wohl schon länger. Zumindest legt das eine schnelle Trendanalyse der Tester bei Google nahe. (mfe)

Infos

[1] Dovecot-Plugins: [http://wiki.dovecot.org/Plugins]

[2] Mstone: [http://mstone.sourceforge.net]

[3] Imapsync: [http://freshmeat.net/projects/imapsync]

[4] Maildir-Format: [http://cr.yp.to/proto/maildir.html]

[5] Vergleich Maildir vs. Mailbox: [http://www.courier-mta.org/mbox-vs-maildir]

[6] Mix-Format von UW IMAP: [http://www.washington.edu/imap/documentation/mixfmt.txt.html]

[7] Mixrbld: [ftp://ftp.cac.washington.edu/mail/mixrbld.tar.Z]

[8] Mixfix: [http://andrew.triumf.ca/mbx]

[9] UW IMAP vs. Courier: [http://mailman1.u.washington.edu/pipermail/imap-uw/2006-September/000632.html]

[10] Courier vs. UW IMAP: [http://www.courier-mta.org/fud]

Der Autor


Patrick Ben Koetter ist Gründer von State of Mind, [http://www.state-of-mind.de], Mailserver-Experte und Co-Autor des Buches “Postfix – Einrichtung, Betrieb und Wartung”. Er spricht oft auf Konferenzen im In- und Ausland über Postfix, Cyrus SASL und Antispam und gibt sein Wissen im Linuxhotel weiter.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben