hammerhans
New Member
Hallo allerseits,
ich verschicke aus einem Java-Programm Emails mit postfix (per sendmail-Befehl), d.h. die Emails werden in den maildrop queue geschrieben.
Wenn ich viele Emails auf einmal verschicken möchte (Einlieferung aus der Java-App ca. 3000 / Minute), bekomme ich Probleme mit der Performance von Postfix. Es sieht dann exemplarisch so aus:
Offensichtlich ist hier die "time before queue manager, including message transmission;" das Problem. Also die Zeit, bevor die Email in die active queue aufgenommen wird.
Die Postfix-Seite sagt dazu, dass der pickup Service Mails aus dem maildrop queue in den active queue schreibt. Da pickup single threaded und i/o bound ist, scheint das der Performance-Killer zu sein, oder?
Außerdem steht da
Nun meine Fragen:
1)Wenn pickup die Schwachstelle ist, gibt es eine Möglichkeit dessen Performance zu optimieren ohne schnellere Hardware? Beispielsweise indem ich statt in den maildrop queue direkt in die active queue schreibe (geht das überhaupt)?
2) Wie soll man "large volumes" überhaupt verschicken, wenn pickup nicht verwendet werden soll?
Vielen Dank im Voraus!
ich verschicke aus einem Java-Programm Emails mit postfix (per sendmail-Befehl), d.h. die Emails werden in den maildrop queue geschrieben.
Wenn ich viele Emails auf einmal verschicken möchte (Einlieferung aus der Java-App ca. 3000 / Minute), bekomme ich Probleme mit der Performance von Postfix. Es sieht dann exemplarisch so aus:
delays=137/0.3/0.6/0.14
Offensichtlich ist hier die "time before queue manager, including message transmission;" das Problem. Also die Zeit, bevor die Email in die active queue aufgenommen wird.
Die Postfix-Seite sagt dazu, dass der pickup Service Mails aus dem maildrop queue in den active queue schreibt. Da pickup single threaded und i/o bound ist, scheint das der Performance-Killer zu sein, oder?
Außerdem steht da
Note, you should not attempt to deliver large volumes of mail via the pickup(8) service.
Nun meine Fragen:
1)Wenn pickup die Schwachstelle ist, gibt es eine Möglichkeit dessen Performance zu optimieren ohne schnellere Hardware? Beispielsweise indem ich statt in den maildrop queue direkt in die active queue schreibe (geht das überhaupt)?
2) Wie soll man "large volumes" überhaupt verschicken, wenn pickup nicht verwendet werden soll?
Vielen Dank im Voraus!