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. - 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. 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