Hallo Forum,
ich kann gar nicht sagen, wieviel mir dieses Forum schon geholfen, diesmal stehe ich aber auf dem Schlauch.
Ich habe einen relativ alten VServer (Plesk 8.6, openSUSE 10.3, Qmail). Seit etwa zwei Monaten (gefühlt) wird der Email-Versand immer langsamer. Kollegen mit Email-Programmen klagen, dass die Email nicht verschickt werden können und sie müssen teilweise mehrere Minuten warten. Auf dem selben Server werden von einer Webanwendung relativ viele (~1000 prozessbezogene) Emails mit der PHP-Funktion mail() verschickt.
Wenn die Kollegen klagen und ich Plesk nach dem SMTP-Dienst schaue, zeigt er meisten rot an (läuft nicht). Gleichtzeitig gehen aber Mails aus der Mailqueue raus und auch ein Neustart ist nicht erforderlich, da das Icon von selbst wieder auf grün geht. Die ganze Zeit über gibt es auch ein qmail-send Prozess in der Prozessliste, der nicht zuviel Last erzeugt. Ein Aufruf von top zeigt, dass dieses Problem unabhängig vom load auftaucht, der irgendwo zwischen 0,4 und 2 liegt (siehe top ganz unten).
Allerdings gibt es einen Zusammenhang mit anderen z.Z. zu verschickenden Mails. Sobald qmail eine Mail ausliefern muss (egal ob lokal oder remote), bricht die Geschwindigkeit für neue Mailaufträge massiv ein. Wenn die Mailqueue leer ist, kann PHP mail() eine knapp unter einer Sekunde ausliefern, sobald Mails in der Mailqueue sind dauert es zwischen 10-45 Sekunden. Ruf ich das PHP Script kurz hintereinander auf, geht die erste Mail schnell raus und die zweite Mail langsam.
Bei hohem Mailaufkommen schaukelt sich das Problem spürbar auf. Wobei es keine Rolle spiel, ob die Mails auf dem Server erstellt werden oder von Kollegen eingeliefert werden. Sobald das Mailaufkommen wieder kleiner wird, verringert sich das Problem. Einen Anstieg im Mailaufkommen hat es aber vor zwei Monaten auch nicht gegeben, als die Probleme begannen.
Die Nameserver, Reverse-DNS, und -Rt0 Geschichten habe ich natürlich gecheckt (siehe unten). Die Mails werden unverschlüsselt eingeliefert (an den Zertifikaten sollte es nicht liegen). Einige Postfächer sind bis zu 6 Gigs groß.
An die concurrency-Settings von Qmail bin ich noch nicht rangegangen. Da es ja auch schon reicht, dass in der Mailqueue nur eine Mail liegt (egal ob remote oder local), damit dieses Problem auftritt. Vielleicht verstehe ich da aber etwas falsch.
Und mir ist aufgefallen, dass in /var/qmail/handlers/spool etwa 200 z.T. Monate alte Mails liegen.
Kennt jemand das Problem und kann mir helfen?
Grüße und Danke
Felix
Mit PHP:
Ich habe das mal nachgebaut mit qmail-inject. Auch hier kann man sehen, das nachfolgende mails deutlich langsamer rausgehen.
Der passende Auszug aus /usr/local/psa/var/log/maillog
/etc/resolv.conf
/etc/hosts
/var/qmail/control/me
/var/qmail/control/locals
/etc/xinet.d/smtp_psa
/etc/xinet.d/smtps_psa
ich kann gar nicht sagen, wieviel mir dieses Forum schon geholfen, diesmal stehe ich aber auf dem Schlauch.
Ich habe einen relativ alten VServer (Plesk 8.6, openSUSE 10.3, Qmail). Seit etwa zwei Monaten (gefühlt) wird der Email-Versand immer langsamer. Kollegen mit Email-Programmen klagen, dass die Email nicht verschickt werden können und sie müssen teilweise mehrere Minuten warten. Auf dem selben Server werden von einer Webanwendung relativ viele (~1000 prozessbezogene) Emails mit der PHP-Funktion mail() verschickt.
Wenn die Kollegen klagen und ich Plesk nach dem SMTP-Dienst schaue, zeigt er meisten rot an (läuft nicht). Gleichtzeitig gehen aber Mails aus der Mailqueue raus und auch ein Neustart ist nicht erforderlich, da das Icon von selbst wieder auf grün geht. Die ganze Zeit über gibt es auch ein qmail-send Prozess in der Prozessliste, der nicht zuviel Last erzeugt. Ein Aufruf von top zeigt, dass dieses Problem unabhängig vom load auftaucht, der irgendwo zwischen 0,4 und 2 liegt (siehe top ganz unten).
Allerdings gibt es einen Zusammenhang mit anderen z.Z. zu verschickenden Mails. Sobald qmail eine Mail ausliefern muss (egal ob lokal oder remote), bricht die Geschwindigkeit für neue Mailaufträge massiv ein. Wenn die Mailqueue leer ist, kann PHP mail() eine knapp unter einer Sekunde ausliefern, sobald Mails in der Mailqueue sind dauert es zwischen 10-45 Sekunden. Ruf ich das PHP Script kurz hintereinander auf, geht die erste Mail schnell raus und die zweite Mail langsam.
Bei hohem Mailaufkommen schaukelt sich das Problem spürbar auf. Wobei es keine Rolle spiel, ob die Mails auf dem Server erstellt werden oder von Kollegen eingeliefert werden. Sobald das Mailaufkommen wieder kleiner wird, verringert sich das Problem. Einen Anstieg im Mailaufkommen hat es aber vor zwei Monaten auch nicht gegeben, als die Probleme begannen.
Die Nameserver, Reverse-DNS, und -Rt0 Geschichten habe ich natürlich gecheckt (siehe unten). Die Mails werden unverschlüsselt eingeliefert (an den Zertifikaten sollte es nicht liegen). Einige Postfächer sind bis zu 6 Gigs groß.
An die concurrency-Settings von Qmail bin ich noch nicht rangegangen. Da es ja auch schon reicht, dass in der Mailqueue nur eine Mail liegt (egal ob remote oder local), damit dieses Problem auftritt. Vielleicht verstehe ich da aber etwas falsch.
Und mir ist aufgefallen, dass in /var/qmail/handlers/spool etwa 200 z.T. Monate alte Mails liegen.
Kennt jemand das Problem und kann mir helfen?
Grüße und Danke
Felix
Mit PHP:
Code:
$ php mail.php
Sending mail()
0.63656902313232 seconds
$ php mail.php
Sending mail()
4.7495679855347 seconds
Ich habe das mal nachgebaut mit qmail-inject. Auch hier kann man sehen, das nachfolgende mails deutlich langsamer rausgehen.
Code:
h14xxxxx:~ # date; echo to: felix@server.de | /var/qmail/bin/qmail-inject; date
Do 16. Feb 13:24:24 CET 2012
Do 16. Feb 13:24:25 CET 2012
h14xxxxx:~ # date; echo to: felix@server.de | /var/qmail/bin/qmail-inject; date
Do 16. Feb 13:24:26 CET 2012
Do 16. Feb 13:24:28 CET 2012
h14xxxxx:~ # date; echo to: felix@server.de | /var/qmail/bin/qmail-inject; date
Do 16. Feb 13:24:29 CET 2012
Do 16. Feb 13:24:34 CET 2012
h14xxxxx:~ # date; echo to: felix@server.de | /var/qmail/bin/qmail-inject; date
Do 16. Feb 13:24:35 CET 2012
Do 16. Feb 13:24:39 CET 2012
h14xxxxx:~ #
Der passende Auszug aus /usr/local/psa/var/log/maillog
Code:
Feb 16 13:24:24 h14xxxxx qmail-queue-handlers[19931]: Handlers Filter before-queue for qmail started ...
Feb 16 13:24:24 h14xxxxx qmail-queue-handlers[19931]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:24 h14xxxxx qmail-queue-handlers[19931]: to=felix@server.de
Feb 16 13:24:24 h14xxxxx qmail-queue-handlers[19931]: hook_dir = '/var/qmail//handlers/before-queue'
Feb 16 13:24:24 h14xxxxx qmail-queue-handlers[19931]: recipient[3] = 'felix@server.de'
Feb 16 13:24:24 h14xxxxx qmail-queue-handlers[19931]: handlers dir = '/var/qmail//handlers/before-queue/recipient/felix@server.de'
Feb 16 13:24:25 h14xxxxx qmail-queue-handlers[19931]: starter: submitter[19932] exited normally
Feb 16 13:24:25 h14xxxxx qmail: 1329395065.157427 new msg 9850236
Feb 16 13:24:25 h14xxxxx qmail: 1329395065.157626 info msg 9850236: bytes 230 from <root@h14xxxxx.stratoserver.net> qp 19932 uid 0
Feb 16 13:24:25 h14xxxxx qmail: 1329395065.856861 starting delivery 46: msg 9850236 to local 1-felix@server.de
Feb 16 13:24:25 h14xxxxx qmail: 1329395065.857024 status: local 1/10 remote 0/20
Feb 16 13:24:25 h14xxxxx qmail-local-handlers[19934]: Handlers Filter before-local for qmail started ...
Feb 16 13:24:26 h14xxxxx qmail-queue-handlers[19938]: Handlers Filter before-queue for qmail started ...
Feb 16 13:24:26 h14xxxxx qmail-local-handlers[19934]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:26 h14xxxxx qmail-local-handlers[19934]: to=felix@server.de
Feb 16 13:24:26 h14xxxxx qmail-queue-handlers[19938]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:26 h14xxxxx qmail: 1329395066.298940 delivery 46: success: did_0+0+2/
Feb 16 13:24:26 h14xxxxx qmail-queue-handlers[19938]: to=felix@server.de
Feb 16 13:24:27 h14xxxxx qmail-queue-handlers[19938]: hook_dir = '/var/qmail//handlers/before-queue'
Feb 16 13:24:27 h14xxxxx qmail: 1329395067.091093 status: local 0/10 remote 0/20
Feb 16 13:24:28 h14xxxxx qmail-queue-handlers[19938]: recipient[3] = 'felix@server.de'
Feb 16 13:24:28 h14xxxxx qmail: 1329395068.363638 end msg 9850236
Feb 16 13:24:28 h14xxxxx qmail-queue-handlers[19938]: handlers dir = '/var/qmail//handlers/before-queue/recipient/felix@server.de'
Feb 16 13:24:28 h14xxxxx qmail-queue-handlers[19938]: starter: submitter[19942] exited normally
Feb 16 13:24:28 h14xxxxx qmail: 1329395068.665296 new msg 9850184
Feb 16 13:24:28 h14xxxxx qmail-local-handlers[19944]: Handlers Filter before-local for qmail started ...
Feb 16 13:24:29 h14xxxxx qmail: 1329395069.473648 info msg 9850184: bytes 230 from <root@h14xxxxx.stratoserver.net> qp 19942 uid 0
Feb 16 13:24:29 h14xxxxx qmail-queue-handlers[19948]: Handlers Filter before-queue for qmail started ...
Feb 16 13:24:29 h14xxxxx qmail-local-handlers[19944]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:30 h14xxxxx qmail: 1329395070.264613 starting delivery 47: msg 9850184 to local 1-felix@server.de
Feb 16 13:24:30 h14xxxxx qmail-local-handlers[19944]: to=felix@server.de
Feb 16 13:24:30 h14xxxxx qmail-queue-handlers[19948]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:31 h14xxxxx qmail: 1329395071.364589 status: local 1/10 remote 0/20
Feb 16 13:24:32 h14xxxxx qmail-queue-handlers[19948]: to=felix@server.de
Feb 16 13:24:32 h14xxxxx qmail: 1329395072.423865 delivery 47: success: did_0+0+2/
Feb 16 13:24:32 h14xxxxx qmail-queue-handlers[19948]: hook_dir = '/var/qmail//handlers/before-queue'
Feb 16 13:24:33 h14xxxxx qmail: 1329395073.026831 status: local 0/10 remote 0/20
Feb 16 13:24:33 h14xxxxx qmail-queue-handlers[19948]: recipient[3] = 'felix@server.de'
Feb 16 13:24:33 h14xxxxx qmail: 1329395073.401616 end msg 9850184
Feb 16 13:24:33 h14xxxxx qmail-queue-handlers[19948]: handlers dir = '/var/qmail//handlers/before-queue/recipient/felix@server.de'
Feb 16 13:24:34 h14xxxxx qmail-queue-handlers[19948]: starter: submitter[19952] exited normally
Feb 16 13:24:34 h14xxxxx qmail: 1329395074.558677 new msg 9850184
Feb 16 13:24:34 h14xxxxx qmail: 1329395074.773783 info msg 9850184: bytes 230 from <root@h14xxxxx.stratoserver.net> qp 19952 uid 0
Feb 16 13:24:34 h14xxxxx qmail-local-handlers[19954]: Handlers Filter before-local for qmail started ...
Feb 16 13:24:35 h14xxxxx qmail: 1329395075.309948 starting delivery 48: msg 9850184 to local 1-felix@server.de
Feb 16 13:24:35 h14xxxxx qmail-queue-handlers[19958]: Handlers Filter before-queue for qmail started ...
Feb 16 13:24:36 h14xxxxx qmail: 1329395076.330075 status: local 1/10 remote 0/20
Feb 16 13:24:36 h14xxxxx qmail-local-handlers[19954]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:37 h14xxxxx qmail-local-handlers[19954]: to=felix@server.de
Feb 16 13:24:37 h14xxxxx qmail-queue-handlers[19958]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:37 h14xxxxx qmail: 1329395077.678698 delivery 48: success: did_0+0+2/
Feb 16 13:24:38 h14xxxxx qmail-queue-handlers[19958]: to=felix@server.de
Feb 16 13:24:38 h14xxxxx qmail: 1329395078.009558 status: local 0/10 remote 0/20
Feb 16 13:24:38 h14xxxxx qmail: 1329395078.871718 end msg 9850184
Feb 16 13:24:38 h14xxxxx qmail-queue-handlers[19958]: hook_dir = '/var/qmail//handlers/before-queue'
Feb 16 13:24:38 h14xxxxx qmail-queue-handlers[19958]: recipient[3] = 'felix@server.de'
Feb 16 13:24:39 h14xxxxx qmail-queue-handlers[19958]: handlers dir = '/var/qmail//handlers/before-queue/recipient/felix@server.de'
Feb 16 13:24:39 h14xxxxx qmail: 1329395079.587290 new msg 9850184
Feb 16 13:24:39 h14xxxxx qmail-queue-handlers[19958]: starter: submitter[19962] exited normally
Feb 16 13:24:39 h14xxxxx qmail: 1329395079.697880 info msg 9850184: bytes 230 from <root@h14xxxxx.stratoserver.net> qp 19962 uid 0
Feb 16 13:24:40 h14xxxxx qmail-local-handlers[19964]: Handlers Filter before-local for qmail started ...
Feb 16 13:24:40 h14xxxxx qmail: 1329395080.167264 starting delivery 49: msg 9850184 to local 1-felix@server.de
Feb 16 13:24:41 h14xxxxx qmail: 1329395081.380693 status: local 1/10 remote 0/20
Feb 16 13:24:40 h14xxxxx qmail-local-handlers[19964]: from=root@h14xxxxx.stratoserver.net
Feb 16 13:24:41 h14xxxxx qmail-local-handlers[19964]: to=felix@server.de
Feb 16 13:24:41 h14xxxxx qmail: 1329395081.775765 delivery 49: success: did_0+0+2/
Feb 16 13:24:41 h14xxxxx qmail: 1329395081.775847 status: local 0/10 remote 0/20
Feb 16 13:24:41 h14xxxxx qmail: 1329395081.904212
/etc/resolv.conf
Code:
nameserver 85.214.7.22
nameserver 81.169.163.106
/etc/hosts
Code:
127.0.0.1 localhost
# special IPv6 addresses
::1 localhost ipv6-localhost ipv6-loopback
fe00::0 ipv6-localnet
ff00::0 ipv6-mcastprefix
ff02::1 ipv6-allnodes
ff02::2 ipv6-allrouters
ff02::3 ipv6-allhosts
# Auto-generated hostname. Please do not remove this comment.
85.214.xx.xxx h14xxxxx.stratoserver.net h14xxxxx
Code:
$nslookup 127.0.0.1
Server: 85.214.7.22
Address: 85.214.7.22#53
Non-authoritative answer:
1.0.0.127.in-addr.arpa name = localhost.
Authoritative answers can be found from:
$nslookup 85.214.xx.xxx
Server: 85.214.7.22
Address: 85.214.7.22#53
Non-authoritative answer:
xxx.xx.214.85.in-addr.arpa name = h14xxxxx.stratoserver.net.
Authoritative answers can be found from:
/var/qmail/control/me
Code:
h14xxxxx.stratoserver.net
/var/qmail/control/locals
Code:
localhost
/etc/xinet.d/smtp_psa
Code:
service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
env = SMTPAUTH=1
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}
/etc/xinet.d/smtps_psa
Code:
service smtps
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
env = SMTPAUTH=1
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}
Code:
top - 13:53:29 up 21:53, 2 users, load average: 0.78, 0.58, 0.42
Tasks: 83 total, 3 running, 80 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.4%us, 2.0%sy, 0.0%ni, 86.7%id, 6.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 6291456k total, 473208k used, 5818248k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
Last edited by a moderator: