我遇到了一个问题,我的 godaddy VDS 上的平均服务器负载高达 50。罪魁祸首是所有 smtpd 进程。如果我关闭 postfix,服务器负载将下降到大约 0.7。
此服务器不是开放中继。我在 main.cf 中添加了以下内容以防止这种情况发生。
smtpd_helo_required = 是
smtpd_delay_reject = 否
disable_vrfy_command = 是
我的理论是,即使服务器拒绝中继,它仍然会因为大量的中继尝试而陷入困境。我刚刚在不到一小时前开始记录邮件,由于所有的中继尝试,文件大小在这段时间内从零增加到 8.0M。即使这些尝试被拒绝,它们是否会大大增加服务器负载?如果是这样,我该如何补救?
这是日志中典型的拒绝情况。
7 月 30 日 17:01:43 ip-xxx postfix/smtpd[7555]: NOQUEUE: 拒绝:来自 tdev193-211.codetel.net.do[200.88.193.211] 的 RCPT: 554 5.7.1:中继访问被拒绝;来自= 到= proto=ESMTP helo=
我绝对不擅长邮件服务器配置。我很乐意提供解决这个问题所需的任何进一步信息。
答案1
你的理论听起来是正确的,因为该来源出现在Spamhaus 的 XBL,因此很可能不怀好意。
你可以尝试尽快拒绝邮件,当客户端连接时,而不是等待,以RCPT TO
减少负载。
根据服务器的用途,其他访问限制可能有帮助。
答案2
此外,您可以限制同时运行的 Postfix 进程数,以防止其拖慢其他进程。如果 Postfix 使用的 RAM 足以导致交换,这将特别有用(实际上,它可能会增加您可以处理的尝试次数,而不是减少)。如果您的高负载来自所有连接的 CPU 使用率,它可能仍然有帮助,但效果不大。这意味着某些向您发送邮件的尝试将失败,但任何不是垃圾邮件发送者的发件人都会重试多次。
查看http://www.postfix.org/postconf.5.html#default_process_limit了解详情。还请查看从那里链接的 master.cf 部分(我会链接它,但显然我还没有足够的声誉来发布多个链接)