当负载平均值过高时,SendMail守护程序操作的问题

我的sendmail服务器开始拒绝连接,因为平均负载过高(由于垃圾邮件问题已经解决)。

Error was: sendmail[13400]: rejecting connections on daemon MTA: load average: 50 

我想更好地理解这种行为。

  • 这个门槛在哪里?
  • 什么是“平均负荷”呢?
  • 平均载荷平均多久计算一次?
  • 有没有办法主动监控这个? 或当平均负荷接近高值时收到警报? 很明显sendmail会给连接的MTA一个4.0.0的dsn类,但是我正在寻找某种警报机制。

谢谢,

中号


嗨,大家好,

当我看到它再次出现时,我想我会再碰撞一次。 我现在看到的问题是,由于超出平均负载而排队等待的消息不会迟到(甚至在性能恢复到可接受的水平之后),为什么会这样呢?

谢谢,

中号

系统负载平均值是用来表示系统正在做多less工作的性能指标。 当您login到邮件服务器(假设是UNIXtypes的系统)时,可以inputuptime命令查看最后一分钟,5分钟和15分钟的平均负载。 下面是一个生产服务器的例子:

 sh$ uptime 10:53am up 248 day(s), 36 min(s), 12 users, load average: 0.28, 0.29, 0.30 

所以5分钟的平均负载是0.28,最后5分钟的平均负载是0.29等。在这种情况下,你可以看到系统的负载随着时间的推移而略微下降。

作为一个经验法则,您将要保持服务器负载低于1.但是在所有情况下都不一定是正确的。 如果你观察你的服务器一段时间,你会开始看到一个合理的负载。 这可能是通过在真实世界中观察来理解它的最简单的方法。 也就是说,如何计算负载平均值实际上是相当复杂的,但如果您有兴趣,我推荐阅读以下关于Linux如何计算它的文章:

http://www.linuxjournal.com/article/9001

现在回到sendmail。 当负载平均值(LA)变得太高时,可以将Sendmailconfiguration为仅排队消息,或者排除拒绝消息。 这个想法是,这将使sendmail不能把整个系统closures。 如果它太早拒绝连接,则可以在sendmail.cf中查看两个设置:

 O QueueLA=8 - load average at which Sendmail queues new messages O RefuseLA=12 - load average at which Sendmail rejects connections 

上面的search返回页面的一些说明如何更改这些参数(当使用M4macros),这可能是有帮助的:

http://www.revsys.com/writings/quicktips/sendmail-mc.html