Postfix日志告警smtp_destination_concurrency_limit为1,但配置文件设为10的问题排查求助
遇到这种配置和日志告警对不上的情况确实挺闹心的,我帮你整理几个常见的排查方向,你可以逐一试试看:
首先先确认当前Postfix实际生效的配置,别光看配置文件,因为有时候加载的可能不是你改的那个:
- 执行
postconf -n命令,这个会输出当前运行中Postfix使用的所有非默认配置,重点找smtp_destination_concurrency_limit这一项,看看实际值到底是多少。如果这里显示的是10,那说明配置本身没问题,问题可能出在针对特定域的单独设置上。
然后检查有没有针对iu-mail.org的专属并发限制:
- Postfix支持给单个域设置独立的并发参数,格式是
smtp_destination_concurrency_limit_<域名> = <数值>,你可以用postconf -n | grep iu-mail.org或者postconf -n | grep -i concurrency来排查有没有这类配置。如果存在smtp_destination_concurrency_limit_iu-mail.org = 1,那它会覆盖全局的10,这就是日志告警的来源。
接下来确认配置是否正确重载:
- 如果你修改了main.cf之后没有执行重载命令,Postfix可能还在用旧配置。执行
postfix reload重新加载配置,然后观察日志是否还会出现同样的告警。另外,如果你的系统用了Postfix多实例(postmulti),要先确认操作的是正确的实例,用postmulti -l列出所有实例,再用postmulti -i <实例名> -c postconf -n查看对应实例的配置。
还有一个可能是传输映射(Transport Map)的影响:
- 如果你给
iu-mail.org配置了自定义的传输规则,比如在transport文件里指定了类似iu-mail.org smtp:[smtp.iu-mail.org]:25,concurrency=1这样的参数,也会导致针对该域的并发限制被强制设为1。可以检查你的传输映射配置文件(通常是/etc/postfix/transport),以及对应的postmap生成的.db文件是否有这类设置。
附上你提供的原始日志和配置信息:
Dec 8 14:34:28 s29 postfix/qmgr[2773433]: warning: mail for iu-mail.org is using up 20000 of 20000 active queue entries
Dec 8 14:34:28 s29 postfix/qmgr[2773433]: warning: you may need to increase the main.cf smtp_destination_concurrency_limit from 1
Dec 8 14:34:28 s29 postfix/qmgr[2773433]: warning: please avoid flushing the whole queue when you have
Dec 8 14:34:28 s29 postfix/qmgr[2773433]: warning: lots of deferred mail, that is bad for performance
Dec 8 14:34:28 s29 postfix/qmgr[2773433]: warning: to turn off these warnings specify: qmgr_clog_warn_time = 0
你的main.conf配置:
smtp_destination_concurrency_limit = 10 smtp_destination_rate_delay = 1s smtp_extra_recipient_limit = 10
备注:内容来源于stack exchange,提问作者Deckard

