kol*_*nep 2 performance email-server postfix
我正在维护一个服务器来发送电子邮件(当然不是垃圾邮件)。这台机器的当前速度约为。每小时 2000 封电子邮件。
(编辑:实际上我今天做了一个测试邮件,删除了限制并向 2500 个最近的 + 活跃订阅者发送了邮件。大约花了 1 小时 45 分钟才寄出。)
我的老板指出他对此并不满意,因为他看到像 Mail Chimp 之类的公司,您可以在几秒钟/几分钟内发送数千封电子邮件。当然,当您立即收到回复、打开等时,它们确实会消失。
我的问题是,达到这样的发送速度到底需要什么?我的意思是,当然您可以添加硬件并构建一个越来越复杂的服务器系统,这些服务器都可以发送您的邮件等。当然,这也是一个干净的列表(没有未知主机等)的问题。因为他们都吃掉了服务器的资源)
但除此之外,我相信一定有其他方法可以改善这一点。任何人都可以对此进行概述吗?
编辑
根据评论中的要求,这里有一些关于正在使用的硬件以及发送行为的更多细节:
服务器类型
Operating system: CentOS Linux 5.11
Kernel and CPU: Linux 2.6.18-400.1.1.el5 on i686
Processor: Intel Core2 Duo CPU E7500 @ 2.93GHz, 2 cores
CPU load averages: 1.07 (1 min) 1.18 (5 mins) 0.65 (15 mins)
CPU usage: 4% user, 1% kernel, 56% IO, 38% idle
Real memory: 1.49 GB used, 1.94 GB total
Virtual memory: 1.13 GB used, 3.91 GB total
Local disk space: 55.10 GB used, 219.71 GB total
Run Code Online (Sandbox Code Playgroud)
MTA
Postfix version 2.3.3
Run Code Online (Sandbox Code Playgroud)
电子邮件的平均大小
Of the recent mailings, the largest one I found was just below 20k.
On average I can say it's probably between 8k and 10k per message.
Run Code Online (Sandbox Code Playgroud)
可用带宽
30Mbit/s symmetrical
Run Code Online (Sandbox Code Playgroud)
磁盘速度
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 336 MB in 3.01 seconds = 111.64 MB/sec
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 23.9512 seconds, 44.8 MB/s
Run Code Online (Sandbox Code Playgroud)
各种指标的测量
CPU load - see above
disk time - ???
RAM usage - see above
bandwidth usage - below data from "iftop -n" over a time period of ca. 5 minutes while sending mail.
TX: cum: 3.43MB peak: 1.16Mb rates: 5.36Kb 99.5Kb 137Kb
RX: 1.01MB 120Kb 2.06Kb 38.0Kb 32.3Kb
TOTAL: 4.44MB 1.28Mb 7.42Kb 137Kb 169Kb
Run Code Online (Sandbox Code Playgroud)
一些邮件日志数据:
in case this is of value, here are a couple of lines from the maillog:
Mar 4 14:00:32 mailserver postfix/smtp[25768]: 6C419107802A: to=<email1@example.com>, relay=mx.example.com[123.123.123.123]:25, delay=1.6, delays=0.05/0/0.14/1.4, dsn=2.0.0, status=sent (250 OK id=1YT8ud-0004fe-Rn)
Mar 4 14:00:32 mailserver postfix/qmgr[2806]: 6C419107802A: removed
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) lookup (score_sender), 1 matches for "email2@example.com", results: "."=>[Amavis::Lookup::RE=ARRAY(0xaa7f358),HASH(0xac5f891)]
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) lookup_re("myself@mailserver.com"), no matches
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) query_keys: myself@mailserver.com, myself@, mailserver.com, .mailserver.com, .com, .
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) lookup_hash(myself@mailserver.com), no matches
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) lookup (score_sender<myself@mailserver.com>) => undef, "myself@mailserver.com" does not match
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) SpamControl: calling spam scanner
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) spam_scan: DSPAM not available, skipping it
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) timer set to 320 s for SA (was 480 s)
Mar 4 14:00:32 mailserver amavis[26392]: (26392-01-46) calling SA parse, SA version 3.2.5
Mar 4 14:00:33 mailserver amavis[26392]: (26392-01-46) CALLING SA check
Mar 4 14:00:33 mailserver postfix/smtp[25767]: A5341207802D: to=<email3@example.com>, relay=mx.example.com[123.123.123.123]:25, delay=1.7, delays=0.15/0/0.14/1.4, dsn=2.0.0, status=sent (250 OK id=1YT8ue-0005BY-5x)
Mar 4 14:00:33 mailserver postfix/qmgr[2806]: A5341107802D: removed
Mar 4 14:00:34 mailserver postfix/smtp[25764]: C30371078144: to=<email4@example.com>, relay=mx.example.com[123.123.123.123]:25, delay=1.8, delays=0.05/0/0.13/1.6, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on mx.example.com as 1425474034-NECyl5JAc9-0Xx8wjwN)
Run Code Online (Sandbox Code Playgroud)
我自己在 postfix 服务器上运行邮件列表,我希望在您完成一杯咖啡之前,至少会看到 2,000 条消息被处理一次(即它们可能会被推迟)。
您的系统似乎正在对外发邮件运行垃圾邮件和病毒扫描。虽然扫描传入邮件是个好主意,但扫描传出邮件可能不是一个好主意,尤其是如果该邮件的来源已经得到很好的控制。我们可以看到,这使每条消息的传递时间增加了几秒钟,并且还显着提高了磁盘 I/O。
我会重新配置 Postfix 以停止扫描外发邮件。如果您需要正常扫描外发邮件,例如您办公室里的人从他们的计算机发送邮件,那么请设置一个专门用于处理外发邮件列表流量的专用邮件服务器。
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |