[lug-ld] Postfix
Michael Diederich
michael at md-d.org
Mo Apr 18 11:56:34 CEST 2011
Hallo Christian,
hallo Rest ;)
2011/4/17 Christian Boltz <lug-ld at cboltz.de>:
> Dann würde ich auf zwei wahrscheinliche Ursachen tippen:
> - "swap to death" - sprich: wegen RAM-Mangel "swappt er sich zu Tode",
> weil durch die Wartezeit für den Swap die Warteschlange immer länger
> wird
> - IO zu lahm - geht in eine ähnliche Richtung
Also der iSCSI-Storage hat sich eigentlich bewiesen was die
Performance angeht - vergleichbar mit lokalen Platten.
Swap kann ich jetzt nicht ausschließen. Die Kiste hat doch 4GB und
vorhin waren 150MB frei. Ich habe postfix gestartet und einzelne Mails
wurden sofort super verschickt (maximal 5 auf einmal, Mailqueue war
sofort leer, delay so 2 Sekunden)
Dann waren vom Newsletter noch 1300 unfertige E-Mails.
Ich hatte jetzt 130 Mails auf dem Quellserver in die Wartschlange
gepackt, der hat die ersten 26 sofort versendet und auf meinem
Mailserver hat sofort "top" sich aufgehängt und nicht mehr reagiert:
top - 11:28:04 up 24 min, 1 user, load average: 0.51, 0.17, 0.29
Tasks: 97 total, 2 running, 95 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4199420k total, 4067696k used, 131724k free, 25320k buffers
Swap: 522072k total, 964k used, 521108k free, 3372416k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5189 sshd 20 0 6620 1188 792 S 1 0.0 0:00.03 sshd
5188 root 20 0 6620 2216 1824 S 1 0.1 0:00.02 sshd
5173 mdied 20 0 2260 1132 880 R 0 0.0 0:00.05 top
1 root 20 0 1984 596 548 S 0 0.0 0:00.09 init
Ist die letzte Ansicht :(
das sshd ist vom 2. Login, ich wollte top und mailq zusammen anschauen :(
Die Kiste stirbt also sofort bei den Verbindungen..
> Nur zur Sicherheit: Hast Du irgendwas "lahmes" in der procmailrc?
Nein, die wird garnicht verwendet.
> BTW: Gehen Deine 1000 Mails eher an lokale Nutzer (via procmail) oder
> eher an externe Mailserver?
Ausschließlich externe Mailserver
> Ich habe stattdessen übrigens
> smtpd_client_connection_count_limit
> im Einsatz, weil mir mal jemand alle smtpd-Prozesse auf einmal
> dichtgemacht hat (und ihm dann zu allem Überfluss auch noch die Puste
> ausging und er nicht mehr zum Versand kam). Seit ich die Verbindungen
> pro Client begrenzt habe, bekommt er seine Mails problemlos raus ;-)
Habe ich auf 10 gesetzt
> Das klingt nach einer gut gefüllten Mail-Warteschlange (siehe Ausgabe
> von "mailq").
Waren 79 Stück, mittlerweile ständig leer oder nur ein "could not connect"
> In diesem Fall solltest Du den ausgehenden Versand der Mails limitieren.
> Ich bin mir nicht ganz sicher, welcher Parameter das macht, tippe aber
> auf smtp_destination_concurrency_limit ("smtp", nicht "smtp*d*"!).
> Allerdings greift das nur pro Zielserver. Eine Option, um die smtp-
> Prozesse insgesamt zu begrenzen, habe ich auf Anhieb nicht gesehen.
Habe ich auch mal auf 10 gesetzt.
Nach einem Neustart waren in mailq noch 18, zwei Sekunden später noch
9 Mails und dann 4.. Er arbeitet sie also gut ab (bzw. ausreichend
schnell ;)) aber wenn er viele eingehende E-Mails bekommt macht er
dicht? Habe ihm dann mal 22 Mails vorgeworfen, 11 waren sofort weg, 11
sind in der mailq wegen greylisting (btw: wer das erfunden, bitte Name
und Anschrift an mich..)
Danach mal 45 mails reingeworfen, Server reagiert nicht mehr.
top - 11:50:16 up 18 min, 2 users, load average: 18.69, 10.85, 4.72
Tasks: 108 total, 1 running, 106 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4199420k total, 4049232k used, 150188k free, 37080k buffers
Swap: 522072k total, 128k used, 521944k free, 3395736k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 1984 640 588 S 0 0.0 0:00.12 init
2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/0
....
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 128 151484 37076 3395424 0 0 984 12 91 59 2 1 88 9
# ps -A | grep smt
4146 ? 00:00:00 smtpd
4328 ? 00:00:00 smtp
4329 ? 00:00:00 smtp
4330 ? 00:00:00 smtp
4331 ? 00:00:00 smtp
4338 ? 00:00:00 smtpd
4343 ? 00:00:00 smtp
4455 ? 00:00:00 smtpd
4457 ? 00:00:00 smtpd
4463 ? 00:00:00 smtpd
# ps -A | grep defunct
3335 ? 00:00:00 pickup <defunct>
Ich limitiere mal die eingehenden Verbindungen stärker, das mail.info
hat da 25 gleichzeitige eingehende Mails angezeigt, vielleicht hilft
das ja :(
Liebe Grüße,
Michael 'da didi' Diederich
--
http://de.wikipedia.org/wiki/Benutzer:MichaelDiederich
http://www.md-d.org/