Kurz und schmerzlos

Erwartetes Mail-Volumen: 1,7 Millionen Empfänger für Rundmails, Frequenz zwischen 1/Woche und 4/Woche. Zusätzlich erwartete sechs Millionen transaktionsbezogene Mails pro Woche. Vier IPs mit guter Reputation vorhanden. Logischerweise resultierte daraus ein Setup mit vier Postfix-Maschinen (vier eigentlich nur wegen der Verfügbarkeit, nicht wegen der Last).

Die Mails werden bei den ersten beiden Servern eingeliefert, diese versuchen die Erstzustellung an die Empfänger. Das Problem sind Mails, die nicht sofort zugestellt werden können. Der qmgr versucht diese, periodisch neu zuzustellen - und verstopft damit die sog. active queue, was dann gerade bei den transaktionsbezogenen Mails zu unerwünschten Verzögerungen führt. Also via smtp_fallback_relay die beiden anderen Server angegeben und dort eine größere maximal_backoff_time, mehr smtp-Prozesse und eine extrem große active queue konfiguriert - klassisches Beispiel eines graveyard servers.

In dem ganzen Setup sind keine Loadbalancer vorhanden, das Balancing geschieht nur über interne MX-Records (hat gedauert, die Entwickler davon zu überzeugen, daß sie die Unterstützung dafür in ihre Applikation einbauen). Für jeden bekannten großen Mailprovider sind die entsprechenden concurrency limits hinterlegt (sowohl auf den primären als auch den Friedhof-Servern), FBL- und BulkMail-SingIns sind durch. Das Bounce-Processing macht die Applikation (über die normalen, dedizierten Empfangsserver), die Mails fallen mit VERP’ifizierter Adresse und DKIM-Signatur aus der Anwendung raus. Die Länge der Konfigurationsdatei main.cf ist 28 Zeilen auf den primären und 21 Zeilen auf den Friedhof-Servern. Es hat sich als gute Wahl herausgestellt, schnelle Platten in den Servern zu verbauen. Die Postfix-Version ist 2.7.2, das Filesystem ext4, letzteres mit den üblichen Tunings für den Anwendungszweck.

Mittlerweile sind wir bei 120 Millionen Mails (und damit deutlich über den angeforderten Werten, soviel zu Schätzungen…) und es gab von Anfang an keinerlei Probleme, die Last auf den Servern hält sich in sehr vernünftigen Grenzen. Postfix ist wirklich ein unglaublich solides Stück Software - und vielleicht sollte ich mich für solche Setups bezahlen lassen…

Update: Man muß halt schon nach dem richtigen Text suchen. Es sind also keine 120, sondern 41 Millionen Mails. Womit es aber immer noch mehr waren als geschätzt…