我有一个web服务器作为一个批处理作业发送电子邮件到一个sendmail中继服务器。 邮件需要尽可能快地被中继sendmail服务器接受,但是,他们不需要很快出去(被中继)。
我试图连接到中继服务器,从networking服务器偶尔看到一些暂停。 目前的负载是几秒钟约30个电子邮件。
在sendmail调优指南中,有很多调优选项可用于sendmail。
我现在所关注的是交付模式:
交付模式
SendMode(d)configuration选项设置了sendmail可以运行的多种传送模式。 这些模式指定邮件传送的速度。 合法模式是:
我以交互方式交付(同步)b在后台交付(asynchronous)q只有队列(不交付)d推迟交付尝试(不交付)有折衷。 模式我给发件人最快的反馈,但可能会减慢一些邮件,几乎没有必要。 模式b可以及时提供,但是如果您的邮件程序需要很长时间才能发送消息,则可能会导致大量进程。 模式q将机器上的负载降到最低,但意味着交付可能会延迟到队列间隔。 模式d与模式q相同,只是它也阻止在包括-D标志的映射中查找在初始队列阶段工作; 它旨在“按需拨号”的网站,其中DNS查找可能花费真钱。 一些简单的错误消息(例如,在SMTP协议期间未知的主机)将被延迟使用这种模式。 模式b是通常的默认模式。 如果以模式q(仅限队列)运行,d(延迟)或b(在后台交付),sendmail将不会在最初收到邮件时扩展别名并跟踪.forward文件。 这加快了对RCPT命令的响应速度。 我不应该使用SMTP服务器的模式。
我目前有CentOS的默认模式:
Sendmail.cf:
DeliveryMode=background
Submit.cf:
DeliveryMode=i
sendmail.cf/mc是用于从中继传出的电子邮件(到intertubes)和sumbit.cf/mc用于传入eamil(从我的web服务器)。 凯尔,
**我绝不是sendmail专家**
在你的用例中,sendmail接收/排队消息的需要是关键(批处理?)。 如果没有,请查看sendmail选项:QueueLA和RefuseLA – 队列加载平均和拒绝加载平均。 如果你真的在轰炸sendmail,你的负载平均值将很快到达屋顶,你会碰到RefuseLA,这可能是你的超时问题的一部分。 你可能想增加RefuseLA(如果你还没有)。
让sendmail不要马上做太多(接收和发送)降低QueueLA。 QueueLA的值越低,sendmail就进入队列模式,sendmail将把重点放在队列工作上,并保存后续的传输/发送工作。 QueueLA较低,RefuseLA较高会导致系统排队大量邮件(磁盘空间),然后在负载低于QueueLA后开始发送。
对于正常的sendmailconfiguration,值得注意的是QueueLA不应该比RefuseLA低得多,可能它应该稍微高一些。
传递模式'q'是一个低QueueLA设置的极端版本,你必须以某种方式启动一个传递命令来开始出站邮件传输。
资源: http : //www.brandonhutchinson.com/QueueLA_and_RefuseLA.html