我发送电子邮件的目的地之一具有不寻常的性能特征。活动队列可能会填满该域的消息,从而阻止发送到其他域。我想限制该域使用的活动队列中的插槽数量。
作为临时措施,该域的流量通过专用中继进行路由,我在其中设置:
default_recipient_refill_limit=50
default_recipient_limit=1000
活动队列大小的上限仍然是默认的 20000。按照上面修改 main.cf 后,我运行了 apostfix check
和systemctl reload postfix
。日志显示重新加载事件。
然而,我的监控显示,几个小时后,Active队列在2分钟的窗口内跃升至20000。即消息的速率和上限似乎都没有被应用。它在20000处保持了几分钟。
监控是通过 check_MK 进行的 - 虽然我很容易相信它可能报告了传入队列和活动队列的计数,但 20000 处的稳定状态表明情况并非如此。
我在这里缺少什么?/ 如何限制消息从传入状态转移到活动状态的数量或速度?
(我需要一个可以使用自定义传输实现的解决方案,以便我可以通过共享中继将流量移回)。
这是在 Amazon Linux 2 上运行的 Postfix 2.10,MTA 上没有配置将在活动队列中扩展的通讯组列表。请注意,我不是在问如何更快地将邮件传递到该域 - 我是在问如何限制活动队列中关联邮件的数量。
经过进一步调查,除了 $qmgr_message_active_limit 中定义的数量之外,似乎没有办法限制添加到活动队列中的消息。
我上面列出的指令处理消息进入活动队列后传递列表的扩展。
有人建议,适当的应对措施是使活动队列变得更大,但是在这种情况下存在遇到 OOMKiller 的风险。