Mail-System ist gääääähnend langsam

PatrickBaer

Well-Known Member
Mahlzeit zusammen,

ich komme am besten gleich zum Punkt: Hab hier ein System laufen aus einem Proxy mit SMTP, einem Viren/Spamscanner, und einem internen Mailserver.

Das ganze läuft bei eingehenden Mails so ab: Mail wird auf dem Proxy Port 25 angenommen und auf den contentfilter/Scanner Port 10024 weitergeleitet. Der scannt die Emails und leitet sie dann auf den Proxy Port 10025 zurück. Von dort gehts dann weiter auf den internen Mailserver.

Ausgehende Mails kommen von den Clients auf den internen Mailserver, werden von dem auf den Proxy weitergeschickt und laufen weiter ins Netz.

Hört sich bescheuert an, ist auch so, nicht fragen am besten.

Problem wie gesagt, das ganze ist quälend langsam. Im laufenden Betrieb ist alles noch überschaubar, der Proxy weist alles ab, was keine gültige Empfängeradresse hat, somit bleibt es im Rahmen. Etwa 3000 Emails pro Tag mit einer Spitzenlast von 250 pro Stunde. Wenn jetzt aber wie neulich jemand mit einer gültigen Adresse von uns spamt und wir so an die 4000 Bounce-Mails bekommen, wird es lustig. Da läuft schnell die Queue voll und es geht gar nichts mehr. Heute morgen um zehn ist auch das hochverfügbare Hochverfügbarkeitssystem auf dem Proxy ausgefallen und drei Stunden war nichts mehr.

Jetzt bin ich bei 166 Mails queued und es geht nix vorwärts.

Der Scanner braucht pro Email etwa 4 Sekunden um sie zu scannen, davon etwa 2 Sekunden für Spam (und div. razor-checks nehme ich an) und 2 Sekunden für den clamAV.

Die Frage ist, wie kann ich da weiter nach dem Flaschenhals suchen? Ich sehe aktuell auf dem Proxy zwei offene Verbindungen zum Scanner, obwohl er eigentlich max. 25 aufmachen sollte. Hm.....
 
welchen MTA benutzen Sie denn überhaupt? Im Postfix könntest Du die Bounces z.B. schon vorweg durch eine geschickte Filterung rauswerfen, das könnte möglicherweise Last von den Filtern nehmen.
 
Ja es ist Postfix.

Postfix, amavisd, spamassassin, clamav.

Die bounces sind ja nicht so das Problem. Hab die gefunden und gelöscht, das dauerte drei Sekunden. Das Problem ist, sobald ich mehr als sagen wir 20 Mails für den Scanner habe, verschluckt der sich. Er schafft einfach nicht mehr und dann staut sich die Queue auf.

Hardware ist eigentlich gar nicht so übel:

OpenBSD 4.3 (GENERIC) #698: Wed Mar 12 11:07:05 MDT 2008
deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel(R) Pentium(R) 4 CPU 2.53GHz ("GenuineIntel" 686-class) 2.54 GHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,CNXT-ID,xTPR
real mem = 536428544 (511MB)
avail mem = 510652416 (486MB)


Nicht die Welt, aber für die Aufgabe doch wohl mehr als geeignet oder?

So sieht das ganze dann aus:

Oct 27 15:27:46 voodoo amavis[12663]: (12663-02) TIMING [total 10913 ms] -
SMTP greeting: 5 (0%)0,
SMTP EHLO: 4 (0%)0,
SMTP pre-MAIL: 6 (0%)0,
SMTP pre-DATA-flush: 14 (0%)0,
SMTP DATA: 228 (2%)2, check_init: 1 (0%)2, digest_hdr: 6 (0%)2, digest_body_dkim: 1 (0%)2, gen_mail_id: 2 (0%)2, check_header: 11 (0%)3,
AV-scan-1: 404 (4%)6, spam-wb-list: 8 (0%)6,
SA parse: 8 (0%)6,
SA check: 9770 (90%)96, update_cache: 16 (0%)96, decide_mail_destiny: 7 (0%)96, fwd-connect: 28 (0%)96, fwd-mail-pip: 25 (0%)97, fwd-rcpt-pip: 262 (2%)99, fwd-data-chkpnt: 0 (0%)99, write-header: 3 (0%)99, fwd-data-contents: 0 (0%)99, fwd-end-chkpnt: 65 (1%)100, prepare-dsn: 3 (0%)100, main_log_entry: 31 (0%)100, SMTP pre-response: 1 (0%)100,
SMTP response: 1 (0%)100, unlink-1-files: 1 (0%)100, rundown: 1 (0%)100





Nachtrag: Großes HMPFT

Es scheint als habe sich der clamd verschluckt gehabt, habe alle amavisd und clamd Prozesse -9't und neu gestartet, jetzt flutscht es.
 
Das ganze läuft bei eingehenden Mails so ab: Mail wird auf dem Proxy Port 25 angenommen und auf den contentfilter/Scanner Port 10024 weitergeleitet. Der scannt die Emails und leitet sie dann auf den Proxy Port 10025 zurück. Von dort gehts dann weiter auf den internen Mailserver.

Ausgehende Mails kommen von den Clients auf den internen Mailserver, werden von dem auf den Proxy weitergeschickt und laufen weiter ins Netz.

Hört sich bescheuert an, ist auch so, nicht fragen am besten.

Was ist daran bescheuert?
 
Ganz einfach, das ganze geht über einen EXTERNEN Scanner, dann wieder zurück und wieder weiter.

Statt

Gateway => Scanner => Gateway => Mailserver

wäre wohl

Gateway => Scanner => Mailserver

die sinnvollere Variante oder?

Und ausgehend sehe ich absolut keinen Grund, eine Email nicht einfach über den Mailserver zu verschicken, sondern ihn dieselbe lange Schleife durchlaufen zu lassen? Am Ende wird noch unser eigener Spam gefiltert :)
 
Ganz einfach, das ganze geht über einen EXTERNEN Scanner, dann wieder zurück und wieder weiter.

Statt

Gateway => Scanner => Gateway => Mailserver

wäre wohl

Gateway => Scanner => Mailserver

die sinnvollere Variante oder?

darüber ließe sich streiten. aber bei uns horcht amavisd ausschließlich an localhost.

Und ausgehend sehe ich absolut keinen Grund, eine Email nicht einfach über den Mailserver zu verschicken, sondern ihn dieselbe lange Schleife durchlaufen zu lassen? Am Ende wird noch unser eigener Spam gefiltert :)

zum einen s.o., zum anderen kann man hier mit whitelists arbeiten, dass die mails geskippt werden, wenn man sie denn überhaupt an den scanner füttert ;).
 
darüber ließe sich streiten. aber bei uns horcht amavisd ausschließlich an localhost.

Bei euch läuft der Filter aber auch auf demselben host. Bei uns nicht. Klärchen? Abgesehen davon immer noch kein Grund, wieso ich Emails nicht gleich von amavis weiter an den internen Mailserver schicke oder?



zum einen s.o., zum anderen kann man hier mit whitelists arbeiten, dass die mails geskippt werden, wenn man sie denn überhaupt an den scanner füttert ;).

Und wozu? Was spricht dagegen, die Email sofort vom internen Mailer in die weite Welt zu schicken?
 
Zurück
Oben