Wietse,
Thank you for your answer.
> Eduardo M . Stelmaszczyk:
> > Hello,
> >
> > I'm having problems with mail accumulating in the incoming queue under
> > heavy load (2500+ SMTPd processes). The queue manager stops for a long
> > time once in a while after trying to communicate with the "trace" client,
> > as shown in a trace from cleanup below:
> >
> > --
> > open("public/qmgr", O_WRONLY|O_NONBLOCK) = 14
> > fstat64(14, {st_mode=S_IFIFO|0622, st_size=0, ...}) = 0
> > lstat64("public/qmgr", {st_mode=S_IFIFO|0622, st_size=0, ...}) = 0
> > fcntl64(14, F_GETFL) = 0x801 (flags O_WRONLY|O_NONBLOCK)
> > fcntl64(14, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
> > poll([{fd=14, events=POLLOUT}], 1, 10000) = 0
> > close(14) = 0
>
> The queue manager has a synchronous trace_flush() client, which is
> used for DSN NOTIFY=SUCCESS notification, and for sender/recipient
> address verification. This trace_flush() client is subject to delays
> in the cleanup server:
>
> - trigger_timeout (default 10s) when the qmgr FIFO is full. The
> minumum value is 1.
It looks like to me that this is the case here (qmgr FIFO full), just as
it was in the "bounce" case, since:
- The files accumulating in the incoming queue have mode 0700 (ready to
be moved to the active queue)
- The timeout you see in the poll call above comes from trigger_timeout
(I've changed it and tested)
- There ARE resources available in the server (memory, CPU and I/O)
This leads be to believe that there's no good reason for the queue
manager not to be moving these messages to the active queue.
>
> - in_flow_delay (default 1s) when new mail gets ahead of deliveries.
> To disable, use "in_flow_delay = 0".
>
> I am not aware of other delays.
>
> If your Postfix is doing address verification on a large scale,
> that may not be a good idea.
Yes, I do some address verification, but that doesn't seem to be a
problem since when I disable DSNs the problem disappears.
As for the in_flow_delay and trigger_timeout parameters: I've tried
changing them before reporting the problem here, but unfortunately they
didn't help much.
>
> If your Postfix is sending lots of DSN NOTIFY=SUCCESS messages for
> SMTP mail, turn off DSN on the SMTP daemon. One example from
> http://www.postfix.org/DSN_README.html shows this:
>
> /etc/postfix/main.cf:
> smtpd_discard_ehlo_keyword_address_maps =
> cidr:/etc/postfix/esmtp_access
>
> /etc/postfix/esmtp_access:
> # Allow DSN requests from local subnet only
> 192.168.0.0/28 silent-discard
> 0.0.0.0/0 silent-discard, dsn
> ::/0 silent-discard, dsn
>
> Another option is
>
> /etc/postfix/main.cf:
> smtpd_discard_ehlo_keywords = silent-discard, dsn
>
> meaning don't send DSN NOTIFY for anyone.
>
> DSN was added long after the synchronous tls_flush() client
> which was not designed for high volume.
>
> Wietse
I would disable DSNs if I could, but unfortunately I'm not allowed to do
that since it's a service the users need.
Regards,
Eduardo