我有一个基于 Java 的 smtp 服务器,我发现它相当慢。尝试了其他 smtp 服务器作为参考,发现 postfix (cpp?) 和 samotop (rust) 更慢。
我在同一硬件上运行 smtp 服务器 (2core celeron, linux)
客户端与服务器之间的rtt为2ms,带宽为1Gbps。
测试命令
smtp-source -d -l 5000 -m 100000 -s 15 -S bench -f [email protected] -t [email protected] server.net:25
我在 postfix 中设置了 Maildir/ 以避免写入单个邮箱文件
收件人是普通系统用户(没有 ldap 等)
这些选项似乎与并发有关
default_process_limit = 1000
in_flow_delay = 0s
local_destination_concurrency_limit = 40
default_destination_concurrency_limit = 40
使用 postfix 我得到大约 2.5MBps(用 dstat 观察)和非常奇怪的 25MBps 磁盘 io
瓶颈是 CPU(50% 系统,50% 用户),io 利用率接近满载,但仍为 83%
使用 samotop 我得到 3MBps,磁盘 io - 5MBps
瓶颈是 CPU(50% 系统,50% 用户),io 利用率可以忽略不计,只有 5%
使用 subetha 我得到 8MBps,磁盘 io - 10MBps
瓶颈是 CPU(40% 系统,60% 用户),io 利用率可以忽略不计 5%
Postfix 能更快吗?我的每日负载与基准相同:大量邮件发往单个地址(邮件存档)。