我每天都会向大约20K的收件人发送简报.移动到其他服务器后,我需要大约六倍的时间使用相同的PHP脚本 - 我尝试了许多不同的设置,但没有运气(请看这篇文章).电子邮件服务器似乎已正确配置(关于垃圾邮件,中继和病毒),服务器运行Plesk 11.5.30.
做了很多实验,改变了PHP脚本和Postfix设置,我能够通过以下方式获得最佳性能:
当我只启动一个进程时,PHP发送大约5封电子邮件/秒(当我使用mail()函数发送电子邮件时大致相同).Postfix在"动态"发送它们没有问题,所以没有队列.
当我开始四个进程时,PHP发送大约10封电子邮件/秒,但是后缀不再能够"动态"发送它们(它只能发送大约5封电子邮件/秒),因此队列变得越来越大.当PHP进程结束时,我的队列中有大约4500封电子邮件.这里有一个有趣的部分:当没有更多活跃的PHP进程发送电子邮件时,Postfix"加速"发送大约20封电子邮件/秒.当PHP发送新电子邮件时,Postfix是否能够以此速率发送电子邮件?没有队列,它会解决我的问题.
我很感激我能做些什么来改善我的脚本和服务器发送新闻通讯的性能.
这是Postfix配置:
root@hostname:~# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases, hash:/var/spool/postfix/plesk/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
disable_vrfy_command = yes
inet_interfaces = all
inet_protocols = ipv4
mailbox_size_limit = 0
mailman_destination_recipient_limit = 1
message_size_limit = 51200000
mydestination = (none), localhost, localhost.localdomain, localhost
mydomain = domain.com
myhostname = myhostname.com
mynetworks = 127.0.0.0/8 [::1]/128 my.ip.add.ress
plesk_virtual_destination_recipient_limit = 1
readme_directory = no
recipient_delimiter = +
relayhost =
sender_dependent_default_transport_maps …Run Code Online (Sandbox Code Playgroud)