[最佳实践] Discuz-Phpwind性能巅峰对决 (附测试方案,脚本,结果及报告)
测试概述:本来完成本次对比测试之前只是想给大家提供一个范例,教大家如何编写性能测试方案,开发测试脚本和对结果的一些分析,但是在做的过程中发现这不单可以做为一份教材,同样也可以为一些朋友在选择用哪个工具来搭建自己的论坛程序方面提供一些数据参考。
测试目的:
1) 对比目前两个人气最高的论坛程序Discuz和Phpwind的性能,从性能角度对工具进行评估和选型提供一些数据上的参考
2) 为初学性能测试和LoadRunner的朋友在如何制定测试方案,开发测试脚本和分析测试结果方面提供一些参考
总体结论:
1) 谁的总体性能好?
Discuz的总体性能好于Phpwind
2) 总体性能好多少?
Discuz总体性能好于Phpwind非常多
附件内容:
1) Discuz-Phpwind性能巅峰对决: 方案和报告 (PDF文档)-- 由于文件大于2M不能上传,所以本报告中去掉了一些截图,如有需要,可联系作者提供完整版报告。
2) Discuz-Phpwind性能测试脚本(LR9.5, VUGen打开)
3) Discuz-Phpwind性能测试结果(LR9.5, Analysis打开)
无图无真相,先上一小份:
[ 本帖最后由 dennyqiang 于 2010-6-19 00:46 编辑 ] 完整版的暂时就多了几个图而已,没有什么特别之处。由于时间的原因和本次测试的目的,我也就没有去细分析别的指标了,只要能比较出来两个系统谁的性能好就行,帖子中已说明:(由于文件大于2M不能上传,所以本报告中去掉了一些截图),只是去掉了一些截图而已,这些图大家用Analysis打开上面附件中的结果都可以看得到的。
我今天试着把报告发到PHPWind官方论坛,1小时后被和谐,比我预想的要快。
不过,既然邮件地址都留下了,那必须得发咯。 不错,支持一下:loveliness: 下载看看,谢了 强哥;P 请问,怎么联系作者!我想要完整版的!我的邮箱hlq0514@163.com
回复 1# 的帖子
先谢强哥,我的邮箱:sgyhmj27@126.com 嗯 支持一下 不错 谢谢 :loveliness: 37778643@qq.com谢谢了:victory: 强哥辛苦,谢谢了,分析了好半天,也肯定强哥的分析与测试报告写的很到位。但是强哥的结论未免下的太干脆了,这样一下就把 phpwind贬下去了,其实我认为不一定 phpwind 无一胜出,如下分析:
一、100USER 并发我觉得没有比对性了,原因大家也可以把测试结果做一个过滤我以3分30秒--10分30秒为例做为过滤后发现%CPU 已经饱,系统资源已经成为瓶颈,所以不做比较,其实50用户的压力就已经达到了此环境下两个论坛的巅峰值。所以100用户的比对几乎说明不了问题。若想继续做阶梯建议做 40 30 20 。。。
二、 经过50用户结果过滤后(3分30秒--10分30秒为例)我们可以看到二者AVG CPU 对比(D:P)81.8% VS 80.8% 。
那么AVG Processor Queue Length=5.2 VS 8.8 MAX=20 VS 29
三、 HIT(点击量) 对比 (仍旧过滤后)= 211 VS 193
Total TPS = 11.133 VS 15.681
看到这里有些兄弟们已经有些明白我要说什么了, TPS 低反而点击量会高,为什么? 问题出现在这里,所谓的“事务” 是一个相对的概念,而不是绝对概念,虽然在我们看来 实时 注册 或者 发帖 或者 回复这是一下操作,但是在它们二者在与后台交互的次数则是截然不同的。(P 的图片多?还是页面加载内容多?或许P比多一些安全性交互也说不定)。
四、 至于场景设置没有太多详细描述,但是我从你的脚本中Run-time settings 中看到 D 的脚本关闭了日志输出,而P 则是开放着标准日志输出。(当然这个推断也仅仅是一个猜测,此猜测没有任何依据。)
五、 至于检查点,我觉得还是有必要加的,否则有些事情真的说不清道不白。
六、 强哥的测试报告中看到 D 的执行时间早与 P 的执行时间 报告中只是说每次测试完成后重启一下XAMPP,但是有没有重新启动主机呢? 主机本身预留内存释放不完全也说不定呵呵。
以上几点本着共同探讨的态度真心与朋友们探讨性能测试,有探讨才有进步。 原帖由 Fin 于 2010-3-17 02:41 发表 http://bbs.51testing.com/images/common/back.gif
强哥辛苦,谢谢了,分析了好半天,也肯定强哥的分析与测试报告写的很到位。但是强哥的结论未免下的太干脆了,这样一下就把 phpwind贬下去了,其实我认为不一定 phpwind 无一胜出,如下分析:
一、100USER 并发我觉 ...
此帖必顶,虽然有一些地方我得说说我的理解,顺便也把有些地方的解释一下,不过精神可嘉。
1) 对于100VU来说,大家的最高量都是100%,平均使用率也是一样的80+%,在这方面都是一样的情况下,来比较此瓶颈条件下的其它指标,我认为完全可以。因为本次测试只是做对比,不是找瓶颈,所以不能因为有瓶颈了就不比了,大多数情况下如果系统运行起来的时候真的到瓶颈了怎么办呢,我们不能说这个系统到瓶颈了,把客户端断掉吧。
2) 再者说,如果只比较正常情况下,不比较CPU有瓶颈的情况下的结果,我觉得这是一个不完整的比较报告。
3) HPS与TPS其实没有任何关系,硬要说有关系,那么这个结果也是正常的(请求量多了,当然TPS就少咯)。当然,HPS只是一个请求数量而已,这里PHPWind的HPS高,而TPS却低,只能说明一个问题:PHPWind的请求量太多了,导致服务器增加了处理时间,那么相应的TPS较低也是可以理解的了。其实真正此处的PHPWind的TPS较低,是因为RT(响应时间)太高导致的(事务的RT太高,导致同样的运行的15分钟时间内事务量减少,TPS当然就少咯)
4) 关于场景设置,4次测试均禁用了日志,哪里可以看出来呢(结果文件中的log目录下如果有文件,则表明启用了日志,无文件,则禁用)。
5) 关于检查点,这个观点我赞同,能加则加,不过此处其实不用加,因为(发帖量,TPS,RT这几个和事务有关的指标均吻合,如RT长,导致TPS短,当然帖子量少)。所以本次测试虽然没加检查点,但是测试结果是可信的。
6) 我的3G的内存就用了1G不到,内存大大的,不会有任何问题,再说了,如果重启XAMPP内存都不能回收,这XAMPP未免太弱了吧,枉它这么多人用,是吧。不过兄弟你的严谨性值得敬佩。
综上所述,以上的讨论纯粹从技术和分析角度来探讨,性能测试是一门很精确的科学,必须非常严谨。
另外,云层通过对WEB诊断图的分析发现,在发帖的时候PHPWind和Discuz做的事情很不一样,导致POST的响应时间相差很多,此处大家可以一起分析分析。
[ 本帖最后由 dennyqiang 于 2010-3-17 10:39 编辑 ] phpWind的每个操作都会刷新有些别的东西这样会导致一件事情有多个请求,自然会出现HPS高,TPS低的问题 高手啊! 楼主果然很强@! 多谢楼主,真是好东西