Mail Delivery "Loadbalancing"
Beat Jucker
beat at juckers.ch
Di Dez 8 16:52:52 CET 2015
Hallo Michael
Besten Dank für deine Lösung - ist sicher ein guter und funktionierender
Lösungsansatz. Das Fragezeichen, das ich dazu setze ist die Performance
bei hohem Mailaufkommen: zusätzlich Procmail mit einem Shell- und einem
Perl-Interpreter wobei sich dieser Lösungsansatz sicher auch als kleines
C-Programm implementieren lässt. Es spricht auch nichts dagegen, Shell
durch Perl zu ersetzen (ein Interpreter weniger). Vielleicht mache ich
mir betreffend Performance aber auch zuviele Gedanken.
Ich selber habe an ein einfaches Script gedacht, das die Emails im
User-Mailfolder auf mehrere User-N Mailfoders verteilt. Eventuell gibt
es aber auch einen Postfix internen Kniff?
Der Grund für die Loadbalancing Idee war ein Massentest, den wir
durchführten: über eine längere Zeit 400 S/Mime Emails pro Minute mit
Spitzenwert 700 S/Mime Emails/Min). Für den Mailserver kein Problem,
aber für den dahinter liegenden Verarbeitungsprozess.
Gruss
-- Beat
Am 08.12.2015 um 16:23 schrieb Michael Grundmann:
> Hallo Beat,
>
> procmail und modulo ist dein Freund.
>
> Hier ein Script:
>
> #!/bin/bash
> tmpfile=/etc/num.txt
> num=$(cat $tmpfile)
> max=$(perl - "print in(rand()*$num)")
>
>
> Die .procmailrc :
>
> MAILDIR=$HOME/Maildir/
>
> FOLDER=`/das/script/oben.sh`
> :0
> .$FOLDER/
>
>
> In die num.txt trägst du die Anzahl der Ordner ein, die du haben
> möchtest (modulo fängt bei 0 an).
>
>
>
> Am 08.12.15 um 16:11 schrieb Beat Jucker:
>> Gibt es eine einfache Methode, wie Emails an eine Zieladresse nach dem
>> RoundRobin Prinzip in verschiedene Mailfolders verteilt werden können?
>>
>> Beispiel: alle Mails an user at x.y adressiert, wobei Auslieferung
>>
>> 1. Mail -->user_1,
>> 2. Mail -->user_2,
>> 3. Mail -->user_1,
>> 4. Mail -->user_2,
>> ... usw ...
>>
>> Hintergrund:
>>
>> Ein Prozess verarbeitet eingehende Emails. Dieser Prozess holt die
>> Emails mit POP ab und werden einzeln verarbeitet. Die Verarbeitung
>> dauert aber länger als erwartet und als Folge kann es einen grossen
>> Backlog geben. Zur Optimierung will man nun mehrere Prozesse parallel
>> die Emails abarbeiten lassen ... daher ist die Idee aufgekommen, die
>> eingehenden Emails in verschiedene Mailfolders zu verteilen.
>>
>> Eine Lösung könnte sein, dass losgelöst von Postfix dieses
>> "Loadbalancing" implementiert wird. Gibt es aber eventuell auch
>> innerhalb Postfix eine Möglichkeit?
>>
>> Besten Dank für Ideen
>> -- Beat
Mehr Informationen über die Mailingliste Postfixbuch-users