-
Postfix性能测试(PHP版)
Postfix的性能压测(PHP版)
- 发送测试:分别使用PHP Mail()函数和PHPMailler smtp协议发送邮件, 推送速率是指 发送个数/PHP程序运行时间, 发送速率是指 发送个数/(PHP推送时间+postfix处理积压的时间)
发送方式 | 发送量(个数*进程数) | 推送速率(封/s) | 发送速率(封/s) | 是否积压 |
local |
10000*1 |
61.56509558 |
61.56509558 |
否 |
local |
5000*1 |
130.4393196 |
42.50115919 |
积压 |
smtp |
10000*1 |
21.79115444 |
21.79115444 |
否 |
smtp |
5000*2 |
41.86831494 |
41.86831494 |
否 |
smtp |
5000*3 |
55.7815742 |
55.7815742 |
否 |
smtp |
5000*4 |
64.46328991 |
64.46328991 |
否 |
- 注:local方式是使用本机postfix发送邮件(使用PHP的mail()函数,需要配置PHP.ini,直接从本机发送邮件),smtp是其他机器连接以后postfix根据配置进行接受、转送(使用PHPmailer, 使用smtp协议发送)。
- 积压测试: 在不推送新的邮件请求的情况下, postfix自身发送积压的邮件所需时间, local方式需要maildrop->incoming->active之后发送, smtp方式需要用smtpd进程接收到->incoming队列->active之后发送。
发送方式 | 积压个数 | 发送速率(封/s) |
local |
10008 |
7.890513328 |
local |
5008 |
11.67511932 |
local |
2509 |
16.58659537 |
local |
1007 |
60.26456179 |
local |
509 |
59.08871629 |
local |
108 |
104.3172932 |
smtp |
10008 |
10.32851814 |
smtp |
5008 |
40.03314741 |
smtp |
2511 |
43.09662048 |
smtp |
1005 |
51.99071758 |
smtp |
507 |
52.73113486 |
smtp |
108 |
49.64010573 |
- 结论
- PHP使用smtp单进程推送(当前线上使用的模式),没有达到postfix的最大发送能力(即推送速度<发送速度), 这种模式下发送能力为21封/s。
- 使用本地PHP mail函数(需要配置php.ini)可以提高推送的速度,减轻PHP程序的压力,但是只能与本机的postfix交互。
- 队列积压越多,发送越慢, 积压>1000时, 速度明显变慢, <1000影响不大。
- 对于邮件发送来说速度是一个动态的概念, 比如软退多时, incoming队列的处理时间会相应变慢,判断推送速度是否过快的标准,应该以队列长度为准, 队列达到某个值比如1000(现在线上的值是500),则不再推送,否则会影响postxfix本身处理的速度。
-
相关阅读:
snabbdom源码(二)
linux汇总 文本操作三篇之grep
snabbdom源码(一)
linux汇总 文本操作三篇之sed
你的c语言中文版项目使用 char 还是 wchar_t?
实习经验谈
fastdfs 安装和使用
redison 自动续期的 分布式锁
vue3 中的axios的使用,使用Vue.prototype 报错问题
vue3的 keepalive 使用,以及activated钩子 和 vuerouter中的 scrollBehavior的使用
-
原文地址:https://www.cnblogs.com/sailrancho/p/3507552.html
Copyright © 2020-2023
润新知