apache php 3秒,php版本(5.3,5.5,7.0)及运行模式(fast-cgi/fpm,apache模块)之间性能对比测试...
php 7.0发布在即,一直以来有传言说php7性能有飞跃,于是做了一个测试。
测试环境
硬件 虚拟机2G内存
OS CentOS 6.7 (kernel 2.6.32-573.7.1.el6.x86_64)
Web Apache/2.2.15 (centos 6自带)
php版本选择
5.3.3, CentOS 6自带的版本
5.3.29, 官方5.3分支的最后一个版本,用于跟apache模块做对比
5.6.15,
7.0.0beta3
除了第一个CentOS自带5.3.3是apache模块之外,全部跑在fast-cgi (php-fpm) 模式下,通过apache模块mod_proxy_fcgi整合在apache中(整合方式)。每个版本配置一个虚拟站点,域名分别为 a.dom, b.com... 。
php编译参数
三个自编译版本的编译参数如下(在 /usr/loca 目录下,分别安装到子目录里)
'./configure' '--enable-fpm' '--prefix=/usr/local/php53' '--with-config-file-path=/usr/local/php53/etc' '--with-config-file-scan-dir=/usr/local/php53/etc/php.d' '--enable-exif' '--with-gd' '--with-mysql' '--with-mysqli' '--with-pdo-mysql'
'./configure' '--enable-fpm' '--prefix=/usr/local/php56' '--with-config-file-path=/usr/local/php56/etc' '--with-config-file-scan-dir=/usr/local/php56/etc/php.d' '--enable-exif' '--with-gd' '--with-mysql' '--with-mysqli' '--with-pdo-mysql'
'./configure' '--enable-fpm' '--prefix=/usr/local/php7' '--with-config-file-path=/usr/local/php7/etc' '--with-config-file-scan-dir=/usr/local/php7/etc/php.d' '--enable-exif' '--with-gd' '--with-mysql' '--with-mysqli' '--with-pdo-mysql'
[注] centos自带5.3.3配置参数略,有点长,而且很多模块动态编译成动态加载模块,编译参数里是with-out,所以参数价值不大,故从略。
php7已经移除mysql模块,所以其配置参数里的 --with-mysql 事实上没用,在实际编译中被忽略掉的。
php-fpm配置
php-fpm全部配置成最大20进程,apache也配置成最大20个进程
测试说明
在本机上使用ab测试,减少网络传输的影响,500次连接,并发10,记录 Requests per second(req/s, 以下不再指明),示例
ab -c 10 -n 500 -H "Host: c.dom" http://127.0.0.1/phpinfo.php
[注] 因为使用虚假的域名,所以通过 -H参数指定主机名Host(改host文件也是一样的效果)
测试过程1:phpinfo页面
静态html基准测试,将phpinfo页面的输出保存成html文件,每秒稳定在3000次以上(300并发以下基本上能稳定在3000次,开ab的-k参数的情况下)
(phpinfo页面测试意义其实不大)
版本 次数1 次数2 次数3
--------- -------- -------- ----------
5.3模块: 810 837 774
5.6: 517 635 663
7.0b3: 675 700 638
这里看出php7的性能并不突出,反而apache模块运行效率更高
测试过程2:新安装wordpress文章页
新安装wordpress,其自带的一篇文章页http://127.0.0.1/wordpress/?p=1
版本 次数1 次数2 次数3 次数4
--------- -------- -------- --------- --------
5.3模块: 7.00 7.06 6.84 6.91
5.6: 7.54 7.55 7.48 4.55
7.0b3: 10.12 10.38 10.14 10.47
[小结]:5.6 较5.3略有增强,但差别很小;但php7较都有显示提高。
测试过程3:wordpress导入一批文章后的文章页
导入一批文章后,该测试里增加php5.3.29的fast-cgi版本
ab -c 10 -n 500 -H "Host: c.dom" http://127.0.0.1/wordpress/?p=6459
版本 次数1 次数2 次数3 次数4 次数5 平均值
--------- ------ ------- -------- ------- ----- -----
5.3模块: 5.76 5.60 5.66 5.64 5.82 5.696
5.3 fpm: 5.86 5.97 5.91 6.11 5.97 5.964
5.6: 6.57 6.62 6.65 7.35 5.49 6.536
7.0b3: 8.73 8.33 9.02 9.00 8.67 8.750
[小结]:延续前面的结果,php7比5.x有30%-50%提升,效果明显。
另外5.3的fastCGI及模块差别可以忽略,似乎不像有人说的fastCGI效率有多高。
php7性能提升幅度,似乎也不像鸟哥Laruence所说的翻倍以上的提升(第45页片子)但30%+的提升,也足够让人欣喜了
测试结论
就前面做的测试来看,php7确实比5.x版本有明显提升,值得在生产环境中部署(暂不考虑兼容性)。然而说前面测试结果来看,
附记*php的后向兼容性
按官方文档所示,php7在语言核心方面,变化几乎忽略。主要是彻底放弃php5.4以来已经声明“过时”的特性。
已知可能有较大影响的是 mysql_* 函数被移除,这就意味着使用mysql_*的一些旧应用将无法在php7上跑!一个可选的解决方案是,使用fastCGI,多php版本共存,迁就这些旧应用。
延伸阅读coded by nessus
apache php 3秒,php版本(5.3,5.5,7.0)及运行模式(fast-cgi/fpm,apache模块)之间性能对比测试...相关推荐
- CentOS下与Apache连接的PHP多版本共存方案实现详解
这篇文章主要介绍了CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些说明,需要的朋友可以参考下 在apache下整合fastCGI模式运行的php-fp ...
- apache php隐藏头信息的方法,科技常识:nginx/apache/php隐藏http头部版本信息的实现方法...
今天小编跟大家讲解下有关科技常识:nginx/apache/php隐藏http头部版本信息的实现方法,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关科技常识:nginx/apache/php ...
- macOS下Apache+nginx+mysql+php多版本切换的配置
macOS下Apache+nginx+mysql+php多版本切换的配置 1.安装Homebrew 首先我们要先安装homebrew一个能让你很方便下载Apache.nginx.php的小工具 $ r ...
- linux隐藏apache信息,Apache防盗链和隐藏版本信息-linux-centos运维
有需要服务器方面的需求和咨询,可以联系博主 QQ 7271895 一.防盗链 二.隐藏版本信息 实验要求: 三台虚拟机分别是:linux和两台windows虚拟机,linux虚拟机为服务器,Windo ...
- mac修改php配置文件,MAC下通过改apache配置文件切换php多版本的方法
前言 前段时间,在自己的电脑上升级了php,php7.0虽然有部分更新,速度也提升了不少,但最近在做微信开发时,发现很多引擎不支持php7,于是想能不能安装两个版本进行切换,百度了很多方法发现不行.于 ...
- 是男人就坚持20秒—python版本
记得玩这个游戏的时候是初中三年级,那时候在qq空间,网页版的,是男人就坚持20秒!很好奇!玩得忘了吃饭,还是坚持不到20秒,现在给大家机会! # coding = utf-8 # time 2015- ...
- 项目动态|Apache Pulsar 2.8.1 版本发布
本文原文作者是 StreamNative 工程师陈航.刘昱. 关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息 ...
- 项目动态 | Apache Pulsar 2.7.3 版本介绍
本文原文作者是 StreamNative 工程师丛搏.刘昱.译者刘梓霖,传智教育工程师. 关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云 ...
- Apache Pulsar 2.7.1 版本正式发布!
作者:StreamNative 文档工程师刘昱.软件工程师张勇. 关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集 ...
最新文章
- 7个IntelliJ IDEA必备插件,让写代码像火箭一样飞起!
- u盘盘符不显示 win10_学会这三招,在win10上安全弹出U盘,保证数据不损坏
- 解决Ubuntu双击打开 txt 中文乱码(gedit)
- 数字媒体技术和数据科学与大数据技术_?数据科学与大数据技术的就业前景和待遇怎么样?...
- 《我在51CTO微职位学软考——奋发之路》
- 虚拟机登陆别的服务器吗,云服务器只能用虚拟机登录吗
- 传智播客全栈_播客:从家庭学生到自学成才的全栈开发人员
- python中的私有方法_Python: 内置私有方法
- Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类	1 1.1. 排序算法 字符串匹配(String Matching)	1 1.2. 加密算法 编码算法 序列
- 陈桥五笔,我再也不会下载了
- 电脑没有“立体声混音”设备怎么办,虚拟声卡安装教程
- spark-streaming 编程(一)构建开发环境
- python 北上资金_北上资金持股相关因子
- Python批量读取txt文件
- Spring_AOP(execution表达式)
- uni-app前端开发(一)登录功能
- 为你的程序创建一个控制台
- 如何运用dos命令进入指定目录
- Ubuntu16.04搜索不到wifi
- 玩转群晖NAS套件系列五:Moments的安装与使用保姆级教程!