首页 > 知识点讲解
       软件问题的诊断
知识路径: > 测试技术的分类 > 网络测试 > 网络应用测试 > 网络故障分析 > 
相关知识点:6个      
        软件问题的诊断建立在网络应用分析的基础上。
        目前测试需要面对的大多数系统是复杂的分布式多层应用,这些应用的特点是:网络是应用中的一个组件,应用对网络产生影响,同时网络对应用也会产生影响,这样的特点造成应用在网络上的容量需求很难估计,失败的风险较大。如何针对分布式多层应用进行网络故障定位,以及在应用线程级分析中的应用是迫切需要解决的问题。网络应用分析可以发现多种问题,例如,客户端是否对数据库服务器运行了不必要的请求;当服务器从客户端接受了一个查询,应用服务器是否花费了不可接受的时间与数据库服务器通信等。借助于网络应用分析工具,可以在投产前调整应用在网络上的性能。
        目前成熟的网络应用分析工具很少,并且从事网络故障分析的成本很高。为了实现分布式应用分析,规避应用实施风险,可以重点考虑以下几个方面的测试:
        ①优化应用程序的性能。
        ②预测响应时间。
        ③确定网络带宽需求。
        ④在应用程序领域和网络领域分别进行故障定位。
               网络应用分析的关键因素
               网络应用分析的关键因素包括:会话信息、包信息、响应时间信息、负载信息、高峰信息、线程信息等。同时还可以采用一些网络应用分析技术,例如,响应时间预测技术与带宽模拟技术等。
               . 会话信息。指应用程序节点之间的会话信息,会话信息主要包括会话往返行程和会话流量信息。
               ①往返行程。一个往返行程是一对节点之间的一系列帧请求/回应。如下图所示的会话中,往返行程个数是2。一个应用程序如果具有较少的往返行程次数,那么它受网络品质的影响,例如网络延迟的影响较小,反之则较大。
               
               往返行程
               ②流量信息。会话的流量信息包括节点之间传输的字节数或者帧数目,如下图所示表示的是节点之间传输的字节数。
               
               节点之间传输的字节数
               当捕捉到的节点很多,并且流量纷繁交织时,可以设定某种条件过滤流量。如下图一和如下图二所示,表示的是过滤前和过滤后的流量显示状态。
               
               过滤前流量状态
               
               过滤后流量状态
               . 包信息。
               可以先对包信息进行解码,然后分析包的详细信息,还可以分析包与包之间的关系、一个时间段内包的数量和包尺寸平均大小,以及包与线程的关系等。如下图所示为利用工具监控与应用相关的包大小及传输方向。大量的红色表示不充足的流量,传输线之间的间隔表示存在延迟问题。
               
               包的大小及传输方向
               . 响应时间信息。
               如下图所示,分解出客户端响应时间、网络传输时间以及服务器(包括Web服务器、应用服务器、数据库服务器等)的处理时间,为分段定位故障提供依据。
               
               响应时间信息
               . 负载信息。
               如下图所示显示了有效负载与其他负载的比例,来评估与业务相关的流量效率。
               
               负载信息
               . 高峰信息。
               需要明确高峰发生的时刻以及高峰期的流量,以确定广域网的容量需求,如下图所示表示了一个应用的平均流量和高峰流量。
               
               高峰信息
               . 线程信息。
               可以对某个线程进行分析,也可对线程之间的关系进行分析。如下图所示,每个线程中都包含了一组包信息,所以可以分析线程和包之间的关联。线程也可以解析为协议信息进行分析。在线程分析时还可以将有关联的线程设置为线程组来分析。
               . 响应时间预测。
               可以利用工具为实验室中得到的测试数据进行响应时间预测。要完成这项工作需要定义三类参数,分别是带宽、背景负载(利用率)以及延迟,例如可以模拟在与服务器通信的带宽、负载、延迟参数下预测某个会话的响应时间。
               
               线程信息
               如下图一、如下图二和如下图三所示,可以看出随着带宽的逐渐递增,数据传输时间以及网络通信时间的变化趋势。
               
               客户端和Web服务器通过56K连接通信
               
               客户端和Web服务器通过256K连接通信
               
               客户端和Web服务器通过T1连接通信
               . 带宽模拟。
               带宽模拟的目的是为系统传输选择一个合适的带宽,使得系统的峰值流量可以接受。这些测试数据为选择带宽提供了依据。
               故障定位举例
               下面举两个例子,说明如何对性能问题进行故障定位。
               . 第一个例子命名为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请求都发生在客户端。
               
               线程分析
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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