使用 SuperAgent 监测网络应用的响应时间
2004-06-23      
打印自: 安恒公司
地址: HTTP://dtx-otdr-kit.anheng.com.cn/news/article.php?articleid=315
使用 Super Agent 监测网络应用的响应时间

 

理解网络应用响应时间 – 用户的经验
计算机的用户最讨厌等待。在大量的处理环境中,超过3秒以上的响应时间将会严重影响工作效率。然而最终用户的感受不仅仅是绝对时间问题,他们对于响应时间的期望是参照以往的经验,而这种期望是相对于他们使用该应用的基准性能。如果使用该应用的当前感受和以往的经验有很大的差别时,抱怨以及需要支持的电话就会成倍地增加。

监测网络应用响应时间的重要性
应用响应时间的问题随着基于服务器应用的大量增加而迅速增多。确定造成应用延迟的原因成为很困难的任务。财富500强中一个财务公司的网络管理经理说他们花了太多的时间用来查找问题,该经理补充说:“甚至技术人员已经把故障确定为网络中问题的情况下,也只有50%的情况真是网络的问题。有时我们不得不将所有人都派出去而只是为了找到问题在哪里”。

企业要求其网络,应用以及MIS的经理要保证那些与业务相关的关键应用必须在网络上平稳运行。确定影响应用性能的问题在哪里以及谁负责解决该问题是IT部门面临的十分费时且具有挑战性的工作。由于缺少有经验的人员和人力资源的限制,所有企业都希望以省时省力的方法来维护和管理响应时间。

这就要求:

  • 非常清楚地了解响应时间的构成
  • 了解可以提供的工具和方法
  • 了解商业应用的响应时间监测工具

 

响应时间的构成

响应时间的定义
一个用户坐在PC前(客户),使用某个应用正在通过网络和一个服务器通讯。客户向服务器发出一个请求,服务器用一个或几个包作为对请求的响应。如果它是使用积极握手的可靠应用, 客户会以一个响应作为应答。客户可能会给服务器发送另外一个请求。一般地,一个交易过程(例如一个请求,完成一个查询)可能由几个客户请求和服务器响应组成,从客户发出请求(信息包层或交易层)至他收到最后一个响应的时间就是整体的响应时间。网络,服务器和应用都对整体响应时间有影响。

网络
网络对整体响应时间的影响是是通过不同机制完成的。所选择的协议(例如帧中继或ATM,EIGRP或OSPF)会很大程度地影响数据在网络中传输的延迟时间。这些时间包括处理的时延(主机接收到数据包并获得各种信息), 排队时延(当出现了其它的信息包时),传送或连续传输时延(传输帧中的第一位和最后一位的时间), 传输时延(一个数据位通过链路的时间,他取决于物理的介质和距离)。包的损坏和丢失也会降低信息的质量或增加额外的时延,因为需要重新传输。地面传输的企业网络,等待和传输时延是网络时延的主要问题。对于卫星网络,传输时延(加上访问协议)是主要问题。

服务器
服务器时延的影响有服务器本身和应用设计两个方面。服务器本身的性能包括处理器的速度,存储器和I/O性能,硬盘驱动速度以及其它设置。应用设计包括结构和算法。

应用
应用时延受几个独立的因素影响,例如应用设计(例如通话的稳定性),交易的大小,选择的协议(例如UDP或TCP),以及网络的结构。完成一个确定的交易时,一个应用所需要的往返次数越少,它受到网络结构的影响也越小。然而,由于需要重新传输,所以往返的次数本身可能取决于网络结构。

 

响应时间分析方法

基于监测的类型(被动和主动)以及监测位置(服务器端或客户端)的不同,分析响应时间有几种不同的方法。不同方法的选择会影响维护费用,响应时间测量精确和效率以及部署实施的复杂性。不同方法都有其优缺点,市场上有不同的厂商支持不同的方法。

服务器端和客户端监测方法

  • 服务器端:服务器端的监测方法是部署在服务器上(一个代理)或靠近它的地方(一个设备)。因为这种方法不需要安装在客户端,从而大大减少了部署和管理的费用。因为安装在服务器或服务器附近,他们可以提供不受限制的,对所有和服务器阵列进行交易的监测。由于在最近的位置,他们也可以提供最精确的服务器时延统计。

    服务器端的代理是安装在被监测的服务器上,所以应该小心确保他不会影响服务器的工作。服务器端的设备可以是在线型或旁路型(接口盒设备)。在线设备是类似于路由器一样让数据通过的设备,他们对应用的服务可能是额外的故障源;而接口盒不会因为它们本身的故障而造成额外的影响。
  • 客户端:客户端的监测方法是部署在感兴趣的客户端上。它们可以提供非常精确的端至端的时延测量,但是却很难隔离是网络还是服务器时延问题。常见的两个客户端的方法是定期地“ping”服务器或者设置TCP连接在网络中往返时间并假设在整个对话过程中是恒定不变的。第一种方法可能不是很准确,因为网络设备在处理ICMP pings的时候随应用包不同(路由,等待,丢弃,服务)而不同。这两种方法都取决于采样标准,而这些采样不一定能反映网络的实际情况。

 

被动和主动监测

  • 被动监测:被动监测是接入一个非侵入设备来观测实际的应用流量。他一般是对包解码(最低是传输层,并可能直至应用层),或者是使用ARM API来识别应用交易的开始和结尾。由于分析的数据是最终用户的实际活动状态,所以这种方法很明确地测量了最终用户的活动状态。被动式监测的工具可以是在客户端或是服务器端。服务器端的被动式监测具有对所有时间,所有用户,所有交易的监测能力。

    被动式监测方法的一个限制是它不能用来检测服务,因为从来就没有通讯是按照固定计划进行的,所以它不能百分之百精确地确定是否有连接失败,也许用户只是暂停请求。然而它能够使用相关的历史记录信息来得到合理的结论-假设用户没有正常连接上网时,失败就不会发生。
  • 主动监测:主动的监测是在客户端“模仿”用户正常安装时的一种方法。主动监测可以提供基于计划的重新模拟交易的能力。这种计划模式可以使它进行24x7的网络连通性测试,而不是用户日常工作的模式。

    主动式监测按照预选设定的模式执行,这些模式包括每一种要监测应用的处理过程,而且这些模式力求接近用户的真实情况。另外,不断的重复进行会对网络设备的缓存提出要求。

 

SuperAgent – 无侵扰,服务器端的监测方案

概述
FNET开发了SuperAgent,它是一种被动式的,服务器端的设备进行TCP应用的响应时间分析。SuperAgent识别跨广域网时应用性能降低的原因—而不需要在安装代理,也不会给网络或服务器增加额外的负担。SuperAgent可以在任何时候,在所有位置,对最终用户的工作情况进行监测,并实时地反映网络情况的变化。

 

图1 — 独立式配置

SuperAgent分为独立式配置或分布式配置。它连接到服务器阵列交换机的镜象端口并且检查TCP包的包头信息。该解决方案并不限于某个特定的应用,例如HTTP或SAP/R3;它可以监测任何基于TCP的应用。响应时间被分解为针对网络,应用以及服务器各个部分以清楚地识别出瓶颈位置。

应用响应时间的测量
SuperAgent分解响应时间为应用,网络和服务器时延等各个部分,从而给出交易过程所耗时的详细观察结果。它通过追踪服务器响应和客户机相对应答之间的时间差来计算网络部分的往返响应时间。SuperAgent的算法会对一些情况做出补偿,例如TCP即不需要对每个包应答,也不需要立即响应的情况。它也会补偿客户的处理时间。

响应时间的构成
图2是典型响应时间的说明,它解释了SuperAgent如何将关键的时延分解为访问网络,服务器和应用的响应时间。
 

图2 — SuperAgent响应时间图示

SuperAgent通过监测相关应用的所有进出服务器的TCP/IP包来采集响应时间。 随后对包进行分析并拆解为下面的部分:
连接时间(Conn Time) — 表示TCP建立的时间。该参数测量客户和服务器之间在进行数据传输之前建立TCP对话(通讯路径)的时间。

 

服务器时延(Srv Delay) — 表示服务器处理请求的所有时间。

数据传输(Data Xfer) — 表示服务器开始响应一个请求之后(例如发送第一个包)直至所有信息都送入网络(发送最后一个包)。响应的流程受到TCP协议配置以及应用设计的控制。该时延通常包括多个通过网络完成交易的往返时间。

 

重试往返时间(RTT Retry) — 表示由于重新传输而产生的额外时延。

网络往返时间(Network RTT) — 表示一个包穿过网络的往返时间。客户和服务器的处理时间不在该测量数值之内。

为了对上述响应时间的分解提供详尽的分析,SuperAgent通过下面的测量参数提供了应用性能的详尽分析:

  • 平均响应时间—提供整体响应时间的情况。
  • 标准偏差—它是测量响应时间测量的变化。该参数帮助确定响应是在发生在很窄的一段范围的一大串通讯的影响还是那些一般通讯中的较大偏离影响了平均值。
  • 数据量—它是测量流进和流出服务器的数据量(字节和包)。例如数据量提供了是否有足够的数据用来评价响应时间。
  • 响应大小—它是依据指定的交易来测量响应时间。这种测量提供了详尽的观测来确定时延是否是由于异常的大的响应或是一系列小的响应造成的。
  • 百分点—他是测量在某个给定响应时间上的用户百分比。通过这个测量参数就可以确定问题的范围—例如是否有50%的用户超过了某个响应时间或者不到10%的用户遇到了问题。
  • 观测数值—他是从统计意义上来观测响应时间。如果响应时间很大,但是它只是基于一种参数的测量,所以可能不需要采取任何措施。如果响应时间很大,而它是基于多个参数的观测得到的,那就是真的有问题了。
  • 进程报告—分析TCP对话数据。包括对话断开,对话完成,超时和据绝响应。对话断开,对话完成,超时等状态可以反映用户特征。拒绝会话计数可以用来用来分析是拒绝服务攻击,还是服务器对大量的请求不能响应。
  • 服务质量(QoS)图表—用来分析服务质量。该数据提供了一个方法用来了解响应时间对用户的影响。数据分析包括每个用户的速率,用户的数量,数据丢失率以及服务器正常数据的进出量。


一旦得到了流量通过网络的详尽观测结果,SuperAgent就可以为企业提供极大的帮助。

 

响应时间分析的业务价值

SuperAgent的设计就是为了很好地和当前网络构架相结合。SuperAgent是网络中正在使用的其它网络管理工具的一个很好补充,他使用开放式数据,标准的数据报告格式(CSV, XML)以及与SNMP 故障报警功能的配合.

响应时间分析,例如SuperAgent,有多种不同的业务应用。网络管理和应用管理经理可以通过SuperAgent完成下面的多种工作,并且它是一个高效,容易安装和使用,从而帮助你完成工作的工具。

日常监测
使用易懂的报警,SuperAgent可以用来作为日常的基准。它可以帮助IT部门监测应用的响应时间并发现网络和应用瓶颈发生时的关键时间,SuperAgent可以基于自己采集的数据而得到的自动基准线进行报警。当使用自动基准线报警功能,用户可以根据自己的需要改变基准的灵敏度,根据自己的特定环境来设置报警线。这种信息可以帮助信息中心的维护人员及时正确地响应用户的求救电话,从而提供高用户的满意度。

故障诊断
IT部门可以使用SuperAgent的强大功能来分析关键网络应用性能和网络传输时间。网管人员可以通过SuperAgent来隔离响应时间问题,以确定这些问题是由于网络结构造成的还是应用/服务器的能力问题。使用SuperAgent来发现响应时间问题的故障源可以节省大量用于故障诊断的时间和费用。

分清责任
在一个单位的IT部门,网管或信息中心的网络支持是跨在好几个IT组之间。 每个组只负责一个或几个不同的网络技术问题。例如典型的IT部门由下面几个小组构成:WAN小组负责路由和传输问题;LAN小组负责交换,客户以及一般客户救援;应用小组管理客户的应用;还可能有服务器小组负责处理服务器的问题以及机房的管理。

当网络发生了响应时间的问题时,隔离这种类型的故障并确定问题所在(哪一个小组负责)就会令人困惑并浪费大量的资源和宝贵时间。而SuperAgent能够迅速给IT部门一个非常明确的方向,问题究竟是于网络相关,与一个特定的服务器相关,或是运行于某个服务器上的一个特定应用相关,还是局限在网络的某个区域。

客户 分布分析
IT部门和服务提供商面临的很多响应时间问题涉及地理上分布在各地的客户。SuperAgent提供了通过区域,基于子网分组数据和分析,可以指出应用响应时延所关联的不同网络拓朴。

SuperAgent的数据分析可以显示是否需要对一组用户的远程链路升级或是将应用从一个服务器转移到另外一个服务器上。SuperAgent也可以用来针对确定一些新服务器的位置,例如数据库服务器,邮件服务器,域控制服务器以及企业内部网服务器。

多层(N-Tier)应用分析
多层(N-Tier)应用是指那些在分布式网络结构中跨几个不同的计算机系统的应用。例如一个JAVA程序由几个脚本组成,这些脚本安装在使用某些应用的客户机上,这些客户机要进入服务器进行相关算法的支持,而这些服务器要将数据库按顺序地从其它服务器获得。

隔离这种结构的响应时间问题是非常费时的,并且经常出错。因为响应时间问题和和很多问题相关:提供的带宽,传输拓朴,后台处理过程,服务器问题。你需要观察网络的相互关系以及三个计算机之间的应用对话来查出和解决问题。而这种能力正是SuperAgent所特有的技术。

SuperAgent也可以用在多层(N-tier)应用的原型(实验)阶段,此时编程人员可以检测用不同方法跨越多个服务器和不同的WAN和LAN拓朴对应用性能的影响。

 

服务水平协议(SLA)
IT部门通常会有基于性能的服务水平协议(SLA),而该协议又是很难测评的。他们面临的任务是要确保外部的机构,例如服务提供商达到了SLA。他们还必须能够给单位的领导,经理演示或证明内部的用户组达到了SLA。

SuperAgent利用报警功能设置特定的门限就能够提示IT人员响应时间是否有问题,而不是等用户抱怨有问题。SuperAgent随后可以测量,分析并且记录所遇到的响应时间问题,包括了用户,服务器或应用的影响以及网络的影响。这种量化的分析还可以用来确定在网络的其它地方是否还有类似的问题,例如网络的租用部分(例如公共帧中继网络),或是在应用服务器环境本身于,是服务水平(SLA)就可以公正地监测;相关的方案可以凭经验有效地进行测量,而这种经验是将SuperAgent的前后数据进行比较得到的。

服务提供商对用户通常会给予不同的优先权。SuperAgent可以定义用户的级别并给予不同级别的用户以不同的服务水平(SLA)。这对于有多种连接方式的用户例如LAN,WAN和卫星或不同级别的服务提供了方便的工具。

SuperAgent也可以用来检测服务水平协议(SLA)和其实际的性能,从而用来评估不同服务提供商。设置一个期望的和合理的服务水平(SLA)门限,这就让IT部门有效地购买所需要的服务,也帮助提供商提供分层地服务模式以满足多点不同服务不同费用的需求。

 

结论
本文介绍了响应时间的构成以及监测的方法。我们相信,每种方法都有其优缺点。总体而言,被动式,服务器端的方法提供了既准确又易实施的最佳方法。 响应时间的监测以及快速地确定问题的原因对于IT部门是非常有价值的,它可以提高工作效率,最大限度地减少宕机时间。

 

责任编辑: admin