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本身处理的速度。

Postfix性能测试(PHP版)的更多相关文章

  1. GT性能测试Android版使用说明

    1 GT简介 GT(随身调) Android版是腾讯 MIG 专项测试组自行研发的 Android APP 随身调测平台,它是直接运行在手机上的“集成调测环境”(ITE, Integrated Tes ...

  2. Gitlab_ansible_jenkins三剑客①搭建gitlab的详细步骤

    环境准备 1.关闭selinux和防火墙 [root@node1 lesson2]# vim /etc/sysconfig/selinux SELINUX=disabled # systemctl s ...

  3. 红象云腾CRH 一键部署大数据平台

    平台: arm 类型: ARM 模板 软件包: azkaban hadoop 2.6 hbase hive kafka spark zeppelin azkaban basic software bi ...

  4. 性能测试培训:Ajax接口级性能测试之jmeter版

    性能测试培训:Ajax接口级性能测试之jmeter版   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest认为工具 ...

  5. 发行版Linux和麒麟操作系统下netperf 网络性能测试

    Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求 ...

  6. java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试

    1.冒泡排序是排序里面最简单的了,但性能也最差,数量小的时候还可以,数量一多,是非常慢的. 它的时间复杂度是O(n*n),空间复杂度是O(1) 代码如下,很好理解. public void bubbl ...

  7. 性能测试平台效率优化的一次经验(python版)

    在做性能测试平台的优化过程中,由于启动任务相对其他测试任务比较频繁,而目前30次两个包的交叉对比(30次)测试需要耗时30分钟整,因此打算优先对测试流程做一次优化,将测试时间消耗降低到20分钟. 由于 ...

  8. IntelliJ IDEA 2017版 使用笔记(五) 模板 live template自定义设置(二) ;postfix使用;IDE快捷键使用

    一.live template 活模板     就像这个单词的含义一样,live template就是一个高效的提高代码,书写速度的方式,(live template位置File-----settin ...

  9. 5款实用的硬盘、SSD固态硬盘、U盘、储存卡磁盘性能测试工具绿色版

    http://www.iplaysoft.com/disk-benchmark-tools.html/comment-page-1#comment-149425

随机推荐

  1. 2016-1-5第一个完整APP 私人通讯录的实现 1:登录界面及跳转的简单实现2

    ---恢复内容开始--- 实际效果如上 一:Segue的学习 1.什么是Segue: Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue)   ...

  2. HDOJ-三部曲一(搜索、数学)- A Knight's Journey

    A Knight's Journey Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) ...

  3. H5实现俄罗斯方块(二)

    对应的js 1.封装操作dom的js: (function (document) { //游戏的实例 var gameInst; /**封装一个返回原型的DOM对象 */ function DomOb ...

  4. IE6如何定义1px左右高度的容器?

    <!doctype html><html> <head> <meta charset="UTF-8"> <meta name= ...

  5. 实现Magento多文件上传代码功能开发

    在Magento中上传单个文件很简单,可以直接在继承的Mage_Adminhtml_Block_Widget_Form类中直接添加如下组件Field:  对于图片:   $fieldset->a ...

  6. js 字符串转化成数字:(实例:用正则检测大于0的正数,最多保留4位小数)

    来源:http://www.cnblogs.com/hwx0807/archive/2011/06/28/2092021.html 实例: function BindSubmitEvent() { / ...

  7. ld链接问题解决

    http://stackoverflow.com/questions/480764/linux-error-while-loading-shared-libraries-cannot-open-sha ...

  8. HTML-day-2-HTML常用标签

    一.常用标签 超链接标签 href-----hyperlink reference _blank,是指在新窗口中打开. 作用:①做锚点的标签,<a name=””></a> ② ...

  9. java web目录结构

    转自:http://blog.csdn.net/javaloveiphone/article/details/7828894 Javaweb项目的源文件与字节码文件的目录结构 1.新建项目的源文件目录 ...

  10. 来一场说走就走的骑行---23KM的上班探路行动圆满结束

    上午带着宝贝在游乐场疯了2小时,回家吃过中午饭,收拾利落,刚上刚拾掇利落的单车,出发,目的地:公司.预测距离22.5KM目的    1 锻炼身体,变每天上下班的娱乐时间为锻炼时间.    2 省钱(其 ...