大约 2 天前,我的服务器的平均负载变得非常高,我成功将问题隔离开来,以减慢 exim 发送速度并导致 iowaits。
我现在正在尝试弄清楚如何解决这个问题。
我运行了这个程序,发现发送速度明显变慢了,从每封邮件 1 秒减慢到了每封邮件 10-20 秒:
cat exim_mainlog | grep "Completed QT=" | tail
我将此 exim 设置更新为:
rfc1413_query_timeout = 0s
和其他问题一样,但这没有帮助。我以为这可能是假脱机的磁盘问题,但看起来队列调用很快。
这是单条消息的日志 - 看起来出站 SMTP 需要很长时间。这是什么意思?这一步到底起什么作用,如何降低它?
2019-06-14 04:51:35.895 [16331] 1hbkjs-0004FP-PQ <= emails@****.com H=localhost (server.****.com) [127.0.0.1]:24868 I=[127.0.0.1]:25 P=esmtpa L- A=dovecot_login:emails@****.com S=5844 M8S=0 RT=2.571s id=bbd815677983ad92d1345cb071e45fdf@server.******.com T="Email Subject" from <emails@*****.com> for ******@hotmail.com
2019-06-14 04:51:35.904 [16334] cwd=/var/spool/exim 3 args: /usr/sbin/exim -Mc 1hbkjs-0004FP-PQ
2019-06-14 04:51:35.935 [16334] 1hbkjs-0004FP-PQ Sender identification U=daniel D=*****.com S=emails@*****.com
2019-06-14 04:51:35.936 [16334] 1hbkjs-0004FP-PQ SMTP connection outbound 1560513095 1hbkjs-0004FP-PQ ******.com *****@hotmail.com
2019-06-14 04:51:42.363 [16334] 1hbkjs-0004FP-PQ => *****@hotmail.com F=<emails@****.com> P=<emails@*****.com> R=dkim_lookuphost T=dkim_remote_smtp S=7260 H=hotmail-com.olc.protection.outlook.com [104.47.13.33]:25 I=[1.2.3.4]40283 X=TLSv1.2:ECDHE-RSA-AES256-SHA384:256 CV=yes DN="/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=mail.protection.outlook.com" L C="250 2.6.0 <bbd815677983ad92d1345cb071e45fdf@server.****.com> [InternalId=43731357090107, Hostname=HE1EUR04HT131.eop-eur04.prod.protection.outlook.com] 14909 bytes in 0.364, 39.896 KB/sec Queued mail for delivery -> 250 2.1.5" QT=17s DT=2.656s
2019-06-14 04:51:42.363 [16334] 1hbkjs-0004FP-PQ Completed QT=17s