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

Reply via email to