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