这是我在PTS板块发的一份文章,转过看分享一下
前段时间写过我用PTS测试我公司的ECS服务(centos 6 x64 512M内存)性能。
具体的测试过程,请见:http://bbs.aliyun.com/read/167183.html?spm=5176.7189909.0.0.mn88Qd
我当时用这种方法共测试了三个环境: PHP都为5.3.3 Nginx为1.6 apache为2.2.15,测试的页面都是phpinfo页面。
- 环境1:Nginx1.6+phpfpm (这种环境很多人称为LNMP)
- 环境2:apache在perfork模式+php(这种环境很多人称为LAMP,传统的LAMP或LNAMP集成环境中的Apache都采用这种模式安装Apache)
- 环境3:apache在worker模式+phpfpm(这种环境配置的人很少,我开发的“Linux管理大师”采用这种模式配置apache)
通过对上面三种WEB环境的测试,结果让我比较吃惊。环境3(apache在worker模式+phpfpm)的结果和LNMP环境相比不相上下,甚至比LNMP环境还有优势!但很多人从传统的思维是LNMP速度最快,最省资源。这与我原来设想的结果是不一样的!
好了,闲话不多话,我来上干货!各位看结果:
从结果分析:
- 粗看可能是觉得apacheprefork模式TPS和RT最小,但不要这样下结论,因为这种环境下出现了请求不成功。
- TPS:apache worker模式下TPS比Nginx快0.02
- RT:apache worker模式下比Nginx慢一点。
- ECSCPU:apache worker模式下比Nginx占用CPU少一点
各位是否有点不相信呢?Apache换种工作模式后,性能真强劲啊!
在此普及一些专业的术语:(以下都是我自己从字面分析的结果,非官方解释)
- TPS:每秒传送的页面数量,这个应是越大越好。
- RT:页面响应时间(我不道这个是所有页面的值还是最高值),这个值应越小越好。
- ECSCPU:这是指ECS主机的CPU使用率,这个值应越小越好。
好了,不多说闲话了,继续上测试结果图
TPS结果
能看到apache在perfork模式下有异常页面。
因apache在perfork模式下有异常页面,所以不把测试结果图放出来了。如果各位有兴趣想看看结果图,可以到:http://bbs.aliyun.com/read/167452.html?spm=0.0.0.0.nnIxXI 查看我记录的两种Apache工作模式的记录。
响应时间
因apache在perfork模式下有异常页面,所以不把测试结果图放出来了。
如果各位有兴趣想看看结果图,可以到:http://bbs.aliyun.com/read/167452.html?spm=0.0.0.0.nnIxXI 查看我记录的两种Apache工作模式的记录。
请求状态
因apache在perfork模式下有异常页面,所以不把测试结果图放出来了。
如果各位有兴趣想看看结果图,可以到:http://bbs.aliyun.com/read/167452.html?spm=0.0.0.0.nnIxXI 查看我记录的两种Apache工作模式的记录。
ECS--CPU
因apache在perfork模式下有异常页面,所以不把测试结果图放出来了。
如果各位有兴趣想看看结果图,可以到:http://bbs.aliyun.com/read/167452.html?spm=0.0.0.0.nnIxXI 查看我记录的两种Apache工作模式的记录。
能看到在worker模式下的apache占用CPU比Nginx稍微平滑一些。
ECS--磁盘IO
因apache在perfork模式下有异常页面,所以不把测试结果图放出来了。
如果各位有兴趣想看看结果图,可以到:http://bbs.aliyun.com/read/167452.html?spm=0.0.0.0.nnIxXI 查看我记录的两种Apache工作模式的记录。
我不知为什么
worker模式下的apache,没有磁盘写入(我设置apache写日志了)
总结:
从结果来看,我个人感觉
worker模式下的apache比较适合阿里云的ECS主机。
试分析原因:
我技术不是很强,只是评我自己的理解,简单的分析一下原因:
如果各位对两种Apache工作模式有兴趣,可以到
http://bbs.aliyun.com/read/167452.html?spm=0.0.0.0.nnIxXI 看我的测试结果和相关定义。
- 先来说一下perfork模式的apache与PHP工作方式:这种模式是将PHP编译成APACHE一个模块,当每增加一个Apache线程时,都会加载PHP的模块。如果有20个Apache线程,就会重复加载20个PHP模块,这样会占用很多资源。我的ECS主机配置只有512M内存,当然不够用啊。
- 再来说一下worker模式的apache与PHP工作方式:这种方式下的PHP运行方式,是和NGINX一样的,Apache调用PHP-FPM来执行PHP程序。这样占用资源要比perfork模式的apache省很多资源。
以上只是我自己测试和自己的分析结果,只是抛砖引玉,欢迎各位交流。
Linux管理大师下载地址:
http://bbs.aliyun.com/read/164988.html?spm=0.0.0.0.nnIxXI 或参见:linux.its365.com.cn