如何在不实际发送现有地址邮件的情况下对我的 Postfix 系统进行压力测试?

如何在不实际发送现有地址邮件的情况下对我的 Postfix 系统进行压力测试?

我想强调我的 Postfix 服务器,并且我需要进行大量发送,但当然,我不想向任何真实地址发送垃圾邮件,并且我不想将我的 IP 列入黑名单。

有没有办法通过这种方式配置 postfix?

答案1

从这里https://web.archive.org/web/20140912030425/http://postfixmail.com/blog/index.php/postfix-stress-test/

您要解决的问题之一是您的硬件可以处理多少邮件流量。这通常是人们过度构建硬件的原因,因为他们不确定,而且没有人愿意构建邮件服务器然后在 3 个月内重建。幸运的是,Postfix 附带几个程序,您可以使用它们来测试服务器并大致了解您的需求。

硬件考虑因素 - 构建邮件服务器时,尤其是构建将托管多个域的邮件服务器时,很难确定所需的硬件,因为两个领域的增长情况是未知的。首先,邮件服务器上新域或新帐户的增长情况很难预测,因为业务可能会发生变化,员工可能会在 6 个月内发生巨大变化。构建邮件服务器时,您希望构建能够提供 3 年甚至 5 年服务的服务器。因此,您必须为业务的增长量提供补偿。其次,很难根据服务器必须能够管理的垃圾邮件数量来估计增长情况。这是邮件服务器的一个非常令人沮丧的方面,因为垃圾邮件可能会在 3 个月内增加三倍,而且这与您管理邮件服务器的方式几乎没有关系,因此您还必须为此类问题做好准备。垃圾邮件对资源的消耗尤其大,因为您将对进入系统的每封电子邮件运行 Spamassassin 等程序和 ClamAv 等防病毒程序。

压力测试 - smtp-source 程序将使用端口 25 来模拟到达您的邮件服务器进行处理的邮件。在此模拟中,您可以单独或并行处理邮件。您可以修改几个设置来帮助确定您的服务器最佳性能的压力水平。为了运行测试,您可能需要在 smtpd 限制中注释掉几行。

smtpd_recipient_restrictions = warn_if_reject reject_non_fqdn_recipient
#   reject_non_fqdn_sender
#   reject_unknown_sender_domain reject_unknown_recipient_domain permit_mynetworks reject_unauth_destination reject_non_fqdn_hostname reject_invalid_hostname
#   check_helo_access pcre:/etc/postfix/helo_checks check_sender_mx_access cidr:/etc/postfix/bogus_mx reject_rbl_client sbl-xbl.spamhaus.org reject_unverified_sender permit

并行会话——这将指示您的服务器将运行的并发会话数或最大进程数。

邮件大小——您可以测试各种邮件大小来模拟您通常会在服务器上收到的邮件。

总消息数 – 您可以确定接收时要测试的消息总数。

显示计数器-这将仅显示在命令运行时收到消息的计数器。

# time /usr/sbin/smtp-source -s 20 -l 5120 -m 100 -c -f [email protected] -t [email protected] localhost:25  100

real    0m2.664s user    0m0.020s sys    0m0.100s

此示例显示 20 个并行会话 (-s 20)、5KB 大小的消息 (-l 5120)、100 条消息 (-m 100)、计数器显示 (-c)、信封发送者和接收者 (-f[电子邮件保护]-t [电子邮件保护]) 和本地主机 (localhost:25) 端口 25 上的连接。 “100” 表示发送的总消息数。 实际时间 (0m2.664s) 是注入所用的时间。 这是在同一台服务器上进行的额外测试,表明会话数增加到 40 个、邮件大小为 10 KB 和消息数增加到 500 条。 这让您能够通过比较时间来评估服务器上的额外负载。

# time /usr/sbin/smtp-source -s 40 -l 10120 -m 500 -c -f [email protected] -t    [email protected] localhost:25  500

real    0m29.795s user    0m0.200s sys    0m0.530s

答案2

此命令对于#StressTest #Performance #CapacityPlanning 非常有用

# time /usr/sbin/smtp-source -s 20 -l 5120 -m 100 -c -f [email protected] -t [email protected] localhost:25  100

real    0m2.664s user    0m0.020s sys    0m0.100s

就我的情况而言:(Debian Weezy)最后的“100”与语法不一致。

# time /usr/sbin/smtp-source -s 20 -l 5120 -m 100 -c -f [email protected] -t [email protected] localhost:25

real    0m2.664s user    0m0.020s sys    0m0.100s

相关内容