floriannn
Goto Top

Postfix - 1.000.000 Mails pro Stunde?

Hallo zusammen,

ich suche nach einer Lösung bis zu 1.000.000 E-Mails pro Stunde zu verschicken. Für alle die sich mit diesem Thema etwas schwer tun: Es handelt sich hierbei nicht um Spam! Ich biete eine webbasierte Software zur Steuerung von E-Mail Marketing Kampagnen (PHP, Perl, Postgresql, Postfix). Dabei verpflichten sich meine Kunden vertraglich ausschliesslich permission basierte Adressen zu verwenden (Double Optin). Bin mit meinem momentanen Mailserver bei diversen großen ISPs auf der Whitelist komme aber nicht über eine Versandmenge von ca. 60.000 E-Mails pro Stunde.
Ein neuer Auftrag macht mir zu schaffen, weil es hierbei darum geht wesentlich größere Mengen in kürzerer Zeit zu verschicken als ich das bisher mache. Mein Ziel ist es ca. 1.000.000 E-Mails pro Stunde verschicken zu können und ich weiss nicht genau wo ich ansetzen muss. Sieht irgendjemand eine Möglichkeit das mit Postfix zu bewerkstelligen? Kann man Postfix sinnvoll clustern und so die Versandkapazität erhöhen. Ich habe von einigen kommerziellen Lösungen gehört, wie zum Beispiel port25.com und strongmail.com. Meint ihr sowas kann man auch mit open source erreichen?

Vielen Dank für jeden Tipp und Hinweis. Gruß,
Florian

Content-ID: 39296

Url: https://administrator.de/contentid/39296

Ausgedruckt am: 14.11.2024 um 07:11 Uhr

Kisho
Kisho 04.09.2006, aktualisiert am 18.10.2012 um 17:57:11 Uhr
Goto Top
Ich halbe selbst einen Postfix Emailserver und erreiche in der Stunde gerade mal um die 15 000 Mails, wenn ich lokal bleibe. Habe dafür extra ein Script geschrieben, weil ich sehen wollte, wie hoch die CPU Auslastung wird.
Postfix hat außerdem Intervale wo er die Emails verschickt z.B. alle 30 Sek. Diese kann man, meines Wissens, umstellen.

Ich denke Postfix wird dafür nicht genug Power haben und Module wie Virenscanner, Spamfilter ect. verlangsamen die Sache natürlich gewaltig.
Ich kann mir auch gut vorstellen das mehr CPU Leistung, auch mehr Emailleistung für Postfix bietet.

Ich weiß es ehrlich gesagt auch nicht ob man da noch etwas großartig optimieren kann, aber mir konnt ja auch keiner mit meinem Postfix Problem helfen.
Siehe hier: Postfix SMTP Server mit MX Zonen Ueberpruefung ( moeglich? )
floriannn
floriannn 04.09.2006 um 11:51:34 Uhr
Goto Top
Hi,

danke für dein Antwort. Bei deinem Problem kann ich dir vielleicht helfen... Siehe original Thread.

Gruß,
Florian
carg
carg 04.09.2006 um 12:07:05 Uhr
Goto Top
HI,

ich glaube nicht, dass Du dies mit nur einem Rechner schaffen wirst. z.B. ist ja die Bandbreite irgendwann zu ende und auch die empfangenden Mailserver werden Dich bremsen.
Um solche Mengen zu verschicken wirst Du wenigstens 15 Server brauchen.
Wieviele eMails sind es denn am Tag? Weil man muß ja nicht alles innerhalb von 30 Minuten verschicken, sondern hat ggf. mehr Zeit.
So oder so wirste aber nicht um ein "cluster" herumkommen. Man bedenke alleine die Bounces .... ist sicher auch nicht wenig.

gruß

ps.: es ist nicht so kriegsentscheidend welchen MTA Du verwendest. Zum versenden sollte der eh recht simpel eingestellt sein - also ohne große checks.
floriannn
floriannn 04.09.2006 um 14:01:37 Uhr
Goto Top
Hi,

danke für deine Antwort. Das Thema Bandbreite hatte mich zunächst auch ins Grübeln gebracht, aber nach einigen Checks habe ich festgestellt, dass ich auf dem Server eine effektive Bandbreite von ca. 50 Mbit habe. Bei einer durchschnittlichen Mailgröße von 13 kB bräuchte ich für 1.000.000 Mio E-Mails 12 GB/Stunde Datendurchsatz mit den eben genannten 50 Mbit stehen mir aber ca. 22 GB/Stunde zur Verfügung. Und ehrlich gesagt würden mir zunächst ja auch schon 500.000 die Stunde reichen face-smile

Mein Postfix ist bereits recht simple eingestellt, keine großen Checks, lokaler DNS, einige Tuning Massnahmen, so dass ich wie gesagt auf ca. 60.000 pro Stunde komme. Jetzt brauche ich noch jemanden der mir den Postifx auf 120.000 tunen kann und weiss wie man Postfix clustert ;)

Danke und Gruß,
Florian
Kisho
Kisho 04.09.2006 um 15:02:56 Uhr
Goto Top
Ich glaube das es nicht möglich ist Postfix selbst zu clustern.
Ich hatte mal in einem Beowolf Cluster Postfix laufen, aber richtig geclustert wurde der Postfix trotzdem nicht.

Zum tunen kann ich das offizielle HowTo empfehlen: http://www.postfix.org/TUNING_README.html#rope

Interessant ist auf der Postfix Tunig Readme folgendes Zitat:
"Although Postfix can be configured to run 1000 SMTP client processes at the same time, it is rarely desirable that it makes 1000 simultaneous connections to the same remote system. For this reason, Postfix has safety mechanisms in place to avoid this so-called "thundering herd" problem. " <--- das könnte was werden. So 150 000 werden wohl drinnen sein.

Und das hier ist, zum Thema DNS lookup tuning, noch interessant:
http://software.newsforge.com/article.pl?sid=05/05/12/1510200&tid=7 ...

Ich denke langsam das es vom Grundsatz her machbar sein sollte über 100 000 Emails pro Stunde zu verschicken. Denke aber das Hardware und Internetbandbreite letztendlich das Problem darstellen.
Das größere Problem werden wahrscheinlich die SMTP Server am anderen Ende sein die, die Emails empfangen werden. So gmx, yahoo, gmail usw. hat ja auch ne Clusterfarm von Emailservern, ansonsten würden viele Emailbesitzer dort mehrere Tage warten, bis sie eine Email verschicken können bzw. empfangen haben, aber die haben auch mehrere Gbit Bandbreite *G*.
carg
carg 04.09.2006 um 15:10:39 Uhr
Goto Top
Hi,

was Du meinst ist die theoretische Bandbreite. Da ist ja doch noch ein wenig Protokoll overhead.

Aber egal. Dein Problem ist auch nicht wirklich die Bandbreite, sondern die Geschwindigkeit beim Verarbeiten der emails.
Ich weiß nicht wie Du die zu verschickenden eMails erzeugst, aber wahrscheinlich ist es einfacher diese schon dort auf mehrere Mailserver zu verteilen. Man könnte z.B. eine Art DNS-Round-Robin mit mehreren Host-A Einträgen verwenden. Es kommt aber wirklich auch die Application an die die eMails erstellt und dann an die verschiedenen Mailserver gibt.
Wenn das Scriptgesteuert ist, dann ist das recht einfach zu implementieren. So als Schnellschuß (nicht durchdacht!!) :
sendene email%20 (modulo 20)
wenns aufgeht:
host a als mailhost
wenn 1 überbleibt:
host b asl mailhost
etc.etc.
Sicher ist es besser in z.b. 100'er oder 1000'er Schritten den Host zu wechseln. Aber nur so als Gedanke.

Gruß patrick