Last Tests bei LMTP

Abstract

Wer eine Mail-Software entwickelt oder ein neues Mailserver-Setup in Betrieb nimmt, möchte für gewöhnlich vor dem Live-Betrieb Leistungskennzahlen ermitteln.

Wer eine Mail-Software entwickelt oder ein neues Mailserver-Setup in Betrieb nimmt, möchte für gewöhnlich vor dem Live-Betrieb Leistungskennzahlen ermitteln.

Ein gutes Werkzeug dafür ist smtp-source von Postfix, denn es kennt viele Parameter.

Ein typischer Test für den LMTP-Server des neuen Mailman 3 könnte in etwa so aussehen:

$ smtp-source -v -L -s 1 -m 1 -c -F example.mail -f test@example.com -t test@mailman3.example.com inet:127.0.0.1:8024

Hier wird eine Beispiel-Mail example.mail über LMTP an Mailman 3 übergeben.

Note

Mailman 3 hat derzeit noch einige Fehler, so dass man für einen Leistungstest die Beispiel-Mail besonders gestalten muss. Sie sollte etwa 5 KB groß sein, was der Größe der meisten realen Mails entspricht.

Möchte man dann mehrere Mails einliefern, empfehle ich dies mit einem Loop in einem Shellscript zu erledigen. Um die Zeit für einen Leistungstest zu nehmen, kann man zusätzlich das Programm time nutzen. Für Dovecot könnte ein Test z.B. so aussehen:

$ smtp-source -L -s 10 -l 10120 -m 1000 -c -f sender@example.com -t user@example.com unix:/bin/var/run/dovecot/lmtp

Bei Leistungstests über LMTP muss man berücksichtigen, dass schon während des Einlieferns der Mails die nachgeschaltete Software – je nach Konfiguration – sofort beginnt, die Mails zu bearbeiten.

Bei Dovecot könnten Sieve-Skripte eine Sortierung übernehmen, oder bei Mailman 3 wird eine Mail z.B. gleich in diverse Warteschlangen gefiltert (Hold etc.). Dies kann Rückkopplungen am LMTP erzeugen, so dass dieser die Annahme zeitweilig aussetzt. Das sollte dann in den jeweiligen Log-Daten zu erkennen sein.

Robert Schetterer, 17. April 2013