第一部分, 测试执行

先看一图,再看下文

这个当然就是压力过程中带宽的使用率了,我们的带宽是1Gbps的,合计传输速率为128MB/s,也正因为这个就让我越来越疑惑了,不过通过压力过程中的各项数据我又不得不相信。

在看看测试页面的大小和请求,如下图所示:

这是通过httpwatch检测得出来的,页面传输内容的大小为652154Byte,请求数为149次,也就是说加载一次页面就大概需要请求这么多次请求,传输这么大的内容,当然这里剔除缓存机制来分析的。

场景设计:

  1、并发用户200

  2、每20秒加载10个用户

  3、全部用户加载完成之后,持续运行10分钟

监控目标:TPS、响应时间、点击率、吞吐率、内存、CPU和网络带宽

测试分析结果如下图:

这里的可以得出平均点击率为11952.139次/s,而吞吐率为73178737byte,大约为73MB/s,TPS:720/s,这里的错误后面再说。

这里的响应时间很显然没有上去,说明压力没有传到页面上,而上面的错误也同时可以证实,报错基本都是请求被拒绝,也就说后面没有请求导致页面没有压力,响应时间就无效了。  

通过监控得到系统资源占用率数据有:

  CPU:25~30%

  内存:20%

  网络带宽:70~95%  

通过Httpwatch在压力过程监控的页面响应时间为:6.454s

通过结合虚拟用户、点击率、吞吐率和响应时间的曲线图分析得出如下总结:

  当虚拟用户加载到150的时候,点击率和吞吐率此时处于峰值,且网络带宽达到90%以上,当虚拟用户继续加载的时候,点击率和吞吐率均都开始下降,此时场景运行开始报错,提示信息为服务器连接被拒绝。通过分析,处于峰值只有网络带宽,为90%以上,而对比此处的吞吐率值恰为95MB/s左右,1Gbps的网络带宽传输速率为128MB/s,从而表明由于吞吐量过大,占用了大量的带宽资源,导致后续的虚拟用户无法得到服务器的资源,而致使请求被拒绝。从最后的页面响应时间来看,系统的压力并没有被承接到页面上,而是由于过大的吞吐量吞噬了网络带宽,导致最终无法有效地完成测试任务。

第二部分,测试分析

  如上的结果确实是证实了网络带宽不够用,抱着这个不大相信的疑问,我在群里跟大家讨论了一番,当然大家的给出结论也都是一致,也有建议修改系统的参数,释放所有的带宽等;还有就是分析页面,当然这个我个人认为是比较切实的路径,毕竟1Gbps的带宽,如果再扩从的话也不大现实,所以还是要靠优化程序着手。

  我又继续通过httpwatch工具对其他门户网站首页进行检测,发现页面容量差不多,但是从请求上来讲,腾讯和同花顺的首页请求都只有80左右,而我们的却有149个请求,这里的请求数就直接决定于点击率的多少,从这里我们就可以发觉,并不是对所有的压力测试来说,每秒钟的点击率越高,对应的吞吐率越大就说明系统的性能越好,必须相对请求数而言来进行分析。从另一个层面上来说点击率越高是说明程序效率好,但是从本身来讲,如果一个页面本身的请求就很多,那最后的点击率必然会大,大到最后的结果就是页面内容累计容量就越大,导致传输带宽的不断放大,当然就带宽不够用了。如果一定程序上降低了单个页面的请求数量,那页面的执行效率必然会越高,而需要结合整体页面的容量大小来衡量。

最后,我给开发提出的建议,还是需要对程序、页面等进行优化,优化硬件还有待考量,优化建议如下:

  1、降低页面的请求次数

  2、优化页面中各个元素的容量大小,结合Page Speed和YSlow工具进行优化测试

  3、多方面结合缓存机制

不知道以上的分析结果是否准确,但让我从性能分析的思路上又走出了一个绝地,不要放过每一个细节,也许那就是拐点。

性能测试分析之带宽瓶颈的疑惑相关推荐

  1. 《WEB性能测试实战》之WEB性能测试分析

    性能测试的结果分析是性能测试的重中之重.在实际工作中,由于测试的结果分析比较复 杂.需要具备很多相关的专业知识,因此常常会感觉拿到数据不知从何下手.这也是我学习性能 测试过程中感觉比较尴尬和棘手的事, ...

  2. 软件性能测试分析与调优实践之路---性能测试和性能分析的基础概念

    1.1.   性能测试的基础概念 性能可以理解为一个系统实现其功能的能力,从宏观上可以描述为系统能够稳定运行,高并发访问时系统不会出现宕机,系统处理完成用户请求需要的时间,系统能够同时支撑的并发访问量 ...

  3. java反射最佳实践,java反射性能测试分析

    java反射性能测试分析 java有别于其他编程语言而让我着迷的特性有很多,其中最喜欢的是接口设计,他让我们设计的东西具有美感.同样反射也是我比较喜欢的一个特性,他让程序自动运行,动态加载成为了可能, ...

  4. web性能测试分析-工具篇 (转载)

    web性能测试分析-工具篇 用于Web性能分析的工具还有很多,以下只不过是我所略知的几种,如各位有使用未列出性能工具,请跟帖共享.以下软件都可容易下载到.我建议全部下载,根据自已的需求,选择最适合自己 ...

  5. 测试cpu调度软件,性能测试分析之CPU篇

    <性能测试分析之CPU篇>由会员分享,可在线阅读,更多相关<性能测试分析之CPU篇(15页珍藏版)>请在人人文库网上搜索. 1.性能测试分析之CPU篇,目录,Linux系统结构 ...

  6. 终端软件测试风险,终端的性能测试分析

    终端的性能测试分析 [摘要]本文对终端产品的性能测试提供一些技术介绍.结合本人工作实践,对终端性能测试需要涵盖的范围进行了分析,然后对终端性能测试的自动化 [关键词]终端性能测试, 进入2005年,国 ...

  7. 【转载】软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...

  8. 【转载】软件性能测试分析与调优实践之路-性能分析调优思想与调优技术总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 一.  性能分析与调优思想 1.性能分析调优模型 性能测试除了为获取性能指标 ...

  9. 软件性能测试分析与调优实践之路-性能分析调优思想与调优技术总结

    来源:https://www.cnblogs.com/laoqing/p/13660768.html 本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之 ...

最新文章

  1. winform修改、打开窗体、构造函数传值
  2. 从领导身上学习到的几个观点
  3. 艾伟_转载:ASP.NET模板引擎技术
  4. [Web开发] MySpace 发布开发接口
  5. spring自动装配依赖包_解决Spring自动装配中的循环依赖
  6. 运维人员mysql如何访问_mysql 运维常见操作
  7. 1t硬盘怎么分区最好_win7系统硬盘怎么分区 win7系统硬盘分区步骤【介绍】
  8. linux内核那些事之mmap_region流程梳理
  9. php查询框,html查找框功能
  10. java-redis字符类数据操作示例(一)
  11. 什么样的男人才是最牛的男人
  12. 爬楼梯算法-java(递归与非递归)
  13. 【EM算法】小波域隐马尔科夫树模型参数的EM算法估计MATLAB仿真
  14. Vue的diff算法原理是什么?
  15. 百度地图API——修改infowindow样式
  16. torch.sin() - torch.cos() - v1.5.0
  17. 集合之ArrayDeque
  18. Oracle中关于临时表空间无法释放问题
  19. 测试四年工作心得:如何追求卓越
  20. 1. 将数据导入到前置数据库中(MySQL)

热门文章

  1. ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API
  2. RunTime的使用-Category改变整个项目全部字体
  3. 翻译:CREATE DATABASE语句
  4. Spring Batch在大型企业中的最佳实践
  5. html input不可编辑
  6. Android Studio创建项目
  7. AssertValid函数学习
  8. vMA学习笔记之一:将vMA加入域
  9. matplotlib01-plot折线图、scatter散点图
  10. Python基础04-数据类型:数字、布尔、字符串