我的 sendmail 服务器开始拒绝连接,因为平均负载太高(由于垃圾邮件问题已经解决)。
Error was: sendmail[13400]: rejecting connections on daemon MTA: load average: 50
不过,我想更好地理解这种行为。
- 这个阈值设置在哪里?
- “平均负载”是什么意思?
- 平均负载多久计算一次?
- 有没有办法主动监控这个?还是在平均负载接近高值时发出警报?显然 sendmail 会给连接的 MTA 一个 4.0.0 类 dsn,但我正在寻找某种警报机制。
谢谢,
米
嗨,大家好,
当我看到它再次出现时,我以为我会再撞一次。我现在看到的问题是,由于超过平均负载而排队的消息以后不会重新发送(即使在性能恢复到可接受的水平之后。知道为什么会这样吗?
谢谢,
米
系统负载平均值是一种性能指标,用于表示系统正在执行的工作量。当您登录到您的邮件服务器(假设是 UNIX 类型的系统)时,您可以键入 uptime 命令来查看过去一分钟、5 分钟和 15 分钟的平均负载。以下是生产服务器的示例:
因此 5 分钟的平均负载为 0.28,最后 5 分钟的平均负载为 0.29,依此类推。在这种情况下,您可以看到系统的负载随着时间的推移略有下降。
根据经验,您希望将服务器负载保持在 1 以下。但这并不一定适用于所有情况。如果您观察您的服务器一段时间,您将开始了解合理的负载是多少。这可能是理解它的最简单方法,只需在现实世界中观看即可。也就是说,如何计算平均负载实际上是相当复杂的,但是如果您有兴趣,我建议您查看以下有关 Linux 如何计算它的文章:
http://www.linuxjournal.com/article/9001
现在回到sendmail。当平均负载 (LA) 过高时,Sendmail 可以配置为仅对消息进行排队,或者将消息完全拒绝。这样做的目的是防止 sendmail 使您的整个系统崩溃。如果它过早拒绝连接,您可以在 sendmail.cf 中查看两个设置:
谷歌搜索上面返回了一个页面,其中包含一些关于如何更改这些参数(使用 M4 宏时)的说明,这可能会有所帮助:
http://www.revsys.com/writings/quicktips/sendmail-mc.html