如何解决Exim邮件重试问题?

我的服务器遇到很高的CPU负载(如几乎挂100%),以至于Apache服务无法运行,我们得到Apache 500错误。 我们使用了一个脚本来捕捉这个,这是我们发现通常服务器不会运行一大堆像“/ usr / sbin / exim -Mc 1R6Nvz-0006CN-KI”的进程的地方。 但是,当问题发生的时候,我们会一直在内存中find一堆说“/ usr / sbin / exim -Mc 1R6Nvz-0006CN-KI”的进程。 我们联系了HostGator的支持,他们说这个问题的原因确实是Exim Mail Retries(什么是-Mc开关),而不是Apache或者MySQL或者其他的进程。 他们同意我纯粹关注Exim的结论。

HostGator今天将授予我根访问这个专用的主机。 我对Exim来说是全新的,但对Linux很了解。 什么日志,电子邮件目录和Eximconfiguration文件,你会build议我看看,以解决高Exim邮件重试? 请注意,这是一个CentOS 5 Linux,其上有WHM / cPanel。

例如,我很想看到的东西:

  • Exim活动的日志文件,都是成功和错误的
  • 想打开其中一个试图重试的电子邮件,以便看到一个线索也许
  • 会喜欢看到Eximconfiguration文件,看看是否有一个我们可以应用的油门,以便我们不会一次执行所有这些Exim邮件重试,但可能在很长一段时间

首先运行mailqexiwhat命令来掌握正在发生的事情。 mailq将显示什么排队。 exiwhat会告诉你正在运行的进程正在做什么。

Exim的日志文件包括mainlog(所有messagess),rejectlog(拒绝具有更多细节的消息)和paniclog(失败,罕见)。 它们应该位于/ var / log / exim或/ var / log / exim4下。

队列中的消息可以在Exim的假脱机目录中find,可能是/ var / spool / exim4等等。 消息位于input目录中,状态信息位于相应的msglog目录中。

如果您正在进行大量重试,则说明configuration不正确。 我对运行电子邮件服务器的咆哮会给你一个想法什么是必需的,我发现检测电子邮件服务器伪造可能会让你知道你的队列为什么增长。 我的经验是,网站的邮件服务器往往configuration不好。 花点时间来正确configuration,这并不难。

一些可能帮助你的variables包括:

  • deliver_queue_load_max – 禁止从队列传递消息
  • queue_only_load – 在加载系统时强制排队
  • queue_run_max – 限制队列进程的数量

有关更多详细信息,请参阅Exim规范部分14 。