[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/