
Kostenlose Temp Mailohne Schnickschnack.
250.000 E-Mails pro Tag: Herausforderungen und Lösungen

Unser zwei Jahre alter Refresh von Müllmail läuft im Vergleich zum Vorgänger eigentlich perfekt – bis auf ein Problem mit der Leistungsaufnahme.
Seit jeher betreiben wir Müllmail.com auf einem virtuellen Server (VPS), mit fast jährlichen Sprüngen in der Leistung und den Ressourcen. Zuletzt hatte der Server 16 Kerne, 64 GB RAM und mehrere Terabyte Speicherplatz für die Daten. Eigentlich sollte das ausreichen, dachte man – doch leider falsch gedacht. Eine konstante CPU-Auslastung von 80 bis 90 % mit Spitzen, die den CPU konstant auf 100 % brachten, waren bis vor kurzem an der Tagesordnung.
Die Ursache? Ein Zusammenspiel von Datenbank und Mailserver, wobei 90 % der Last auf die Datenbank zurückzuführen war. Die Folge: Unser Mailserver konnte sporadisch seinen Dienst nicht mehr leisten, und E-Mails wurden erst etliche Minuten bis zu einer halben Stunde später zugestellt. Suboptimal wäre hier eine Untertreibung – es musste dringend eine Lösung her.
Die Lösung: Mehr Hardware und ein besseres Datenbankdesign
Hardware-Upgrade war die erste Maßnahme. Wir haben einen dedizierten Server angeschafft – 32 Kerne, 128 GB RAM, NVMe-Speicher. Kostet deutlich mehr als der virtuelle Vorgänger, aber für einen verlässlichen Dienst ist es das wert. Ergebnis? Der neue Server war ein Quantensprung: Die CPU-Auslastung sank auf 30 %.
Im Rahmen der Migration auf den neuen Server haben wir auch das Datenbankdesign genau unter die Lupe genommen und festgestellt, dass ein entscheidender Index fehlte.
Was ist ein Index?
Stell dir einen Index in einer Datenbank wie das Inhaltsverzeichnis eines Buches vor. Er hilft der Datenbank, Daten schnell zu finden, ohne jede Zeile in jeder Tabelle durchsuchen zu müssen. Ohne einen Index müsstest du, ähnlich wie bei der Suche nach einem Wort in einem Buch ohne Inhaltsverzeichnis, jede Seite umblättern – zeitaufwendig und ineffizient.
Wenn deine Datenbank nicht richtig indiziert ist, muss sie bei jeder Anfrage alle Zeilen in der Tabelle durchsuchen, um die benötigten Daten zu finden. Das führt zu erheblichen Verzögerungen, besonders bei großen Datenbanken mit Millionen von Zeilen. Korrekte Indizes ermöglichen hingegen schnelle "Index Scans", die direkt zu den benötigten Daten führen, so wie ein Inhaltsverzeichnis dich direkt zur gesuchten Seite im Buch bringt.
Fazit: Effiziente Datenbanken und reduzierte Last
Nachdem wir den fehlenden Index gesetzt haben, kann unsere CPU nun quasi Sommerurlaub machen, mit einer durchschnittlichen Last von nur noch 10 %. Diesen Fehler unter den Teppich zu kehren wäre vielleicht einfacher gewesen, aber das wären nicht wir.
Kurzum, wir sind jetzt bestens gerüstet, und Ausfälle aufgrund fehlender Kapazität sind Geschichte.
Abschließend möchten wir uns bei dir bedanken, dass du Müllmail.com nutzt – egal ob für Gutscheincodes, Newsletter-Anmeldungen oder zum Testen deines Mailsystems. Wir haben auch ein paar neue Endungen hinzugefügt, viel Spaß damit! Solltest du Fragen oder Probleme haben, sind wir jederzeit unter kontakt@team.muellmail.com für dich erreichbar!