故障定位举例
考试要求: 掌握     
知识路径:  > 测试技术的分类  > 网络测试  > 网络应用测试  > 网络故障分析  > 软件问题的诊断


 
       下面举两个例子,说明如何对性能问题进行故障定位。
       . 第一个例子命名为Taskl,访问一个网页,例如www.cnn.com,速度较慢,问题出在哪里?为了实现故障定位,需要关注的问题如下。
       ①性能问题在哪里。
       如下图所示,在初始的DNS请求之后有一个8秒的间隔,也就是服务器为了响应DNS请求花费了8秒钟时间。
       
       DNS请求Bounce图
       如下图一和下图二所示,线程4、5、6所关联的数据包之间有10秒的时间间隔。
       
       线程4、5、6信息
       
       与线程4、5、6相关数据包的Bounce信息
       ②这个应用涉及哪些服务器。
       这个应用涉及一个DNS服务器和一个Web服务器“www..CNN.com”。如下图所示为应用会话图。
       
       应用会话
       ③流量中哪些是有效的。
       从下图所示可知有效负载达到90.9%,应用流量效率较高。
       
       流量负载
       ④流量的高峰期如何。
       从下图可以看到,25~30秒之间应用产生了持续流量高峰,可以将这个高峰与相关执行的线程关联起来。
       
       流量高峰期
       . 第二个例子是一个对比测试,我们来看如下图所示的Task1与Task2的测试数据。
       Task1的执行时间是3.43秒,Task2的执行时间是5.71秒。为什么Task2的流量小于Task1,而执行时间却长于Task1?是否存在性能问题?
       
       Task1与Task2应用数据
       首先我们发现在应用执行的开始存在一个1秒的时间间隔,在2~5秒之间有一个超过2秒的时间间隔。如下图所示为应用Bounce图。
       
       应用Bounce图
       那么问题发生在客户端、服务器还是在网络上?
       客户端发出一个请求,Web服务器响应,在1秒之后又发出了同样的HTTP/GET请求,说明第一个请求失败。如下图所示为HTTP线程与Bounce关联图。
       
       HTTP线程与Bounce关联图
       最后一个Oracle SQL请求在物理时刻1.65秒时发生,而下一个HTTP/GET请求直到物理时刻4.88秒时才发生,说明在请求之间存在较长时间间隔,服务器空闲。
       从如下图所示的Oracle线程与Bounce关联图可知,每个时间间隔之后,系统都在等待客户端,可以初步将故障定位在客户端,下面可以进一步验证。
       
       Oracle线程与Bounce关联图
       从下图可以看出,响应时间分析显示客户端响应时间为4.6秒,总的响应时间为5.7秒,客户端响应时间占总响应时间的80%左右,客户端的响应时间较长。下面从线程代码级再做进一步验证。
       
       响应时间分析
       从下图所示的线程分析可以看到,发生延迟的HTTP请求都发生在客户端。
       
       线程分析
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有