Sniffer智能显现

一个成立于 1984 年,另一个成立于 1986 年,同样是网络和性能分析领域的老牌厂商,NetScout和Network General(下文简称 NG)命运截然不同。自成之日立起,NetScout 一直坚持其统一分析平台的产品设计理念,创建了独到的通用数据模型(CDM),发展至今,其解决方案的成熟度,以及对于用户需求理解的深入程度已经在业界遥遥领先;相比之下,NG 的命运则稍显坎坷,从家喻户晓的 Sniffer Portable,到Sniffer企业级解决方案,也曾经风云一时,纵然如此,经历过 NAI的合并和拆分,命运波折的 NG最终难逃被 NetScout收购的结局。

在 20多年的发展历史中,两家公司都是业内的领军厂商,而各自具有区别明显的技术优势,NetScout更注重统计报告的呈现,为用户提供统一的高层次分析和管理视图;而 NG则以强大的解码功能和专家系统著称,其早期产品 Sniffer Portable(Sniffer Pro)至今仍是众多 IT 技术人士手边的一把利器。NetScout 收购 NG,自然不仅仅看中其品牌价值,要牢牢把握住用户和在行业内的领先地位,NetScout更加看重的是产品自身的技术优势。

使用过Sniffer Portable(Sniffer Pro)的朋友都会有这样的体验,外观朴实而功能强大,参数众多甚至十分繁琐,但是结构严谨,对于每一个协议,每一个事件都设计了极其具有针对性的解码和分析模型。而正是这种严谨成就了 Sniffer Portable 的精髓:解码模块和专家系统——识别相互关联的数据包,并把它们解构成表征问题本质的事件和度量值。其协议解码的深度,以及专家系统针对网络层和应用层事件发现的广度和精确度即使历经多年,仍然保持着活力和竞争力,也正因为如此,这个老爷车级别的便携式分析软件经久不衰。

然而NG在发展后期,在其旗下的众多产品线中 Sniffer Portable 仅占有了销售额的一小部分,戏份更多的主角是 Sniffer企业级解决方案。看到网络和应用架构的发展趋势和市场需求,NG后来开发了高性能的硬件平台 Sniffer InfiniStream,和面向应用的 Sniffer Intelligence,以及 Visualizer、Administrator、NetVigil统一管理平台,软、硬件结合,分布式的三层架构组成 Sniffer 企业级解决方案。

同样是面向企业级用户,在 NetScout 收购NG 之前两家公司即是竞争对手,在产品架构和功能上有一定的重叠。NetScout 企业级解决方案的硬件探针和 nGenius Performance Manager(nGenius PM)管理平台具有深厚的技术功底,高度的统一性、可扩展性和强大的统计信息报表功能更加适用于企业级应用环境。不论是设计理念还是产品成熟度,NG原有的Visualizer、Administrator、NetVigil在管理平台这些层面上都不及nGenius PM,因此在产品的整合阶段陆续结束生命周期也就理所当然。

自收购之日算起,历经一年的产品整合期,初步整合之后的新产品终于在9月份发布。NG原有的Sniffer Portable(Sniffer Pro)升级为 Sniffer Global,Sniffer InfiniStream 和Sniffer Intelligence被保留了下来,并且与 NetScout 原有的 nGenius AFMon 无缝整合在一起。整合之后的新产品被命名为 nGenius InfiniStream,在功能上具备了原来两家公司各自的技术优势,具体就体现在在如今的 InfiniStream上既可以使用 nGenius PM 的全部功能,又获得了 Sniffer 解码模块、专家系统和 Sniffer Intelligence 的绝技真传。

从这样的产品整合思路上可以看出 NetScout 对于Sniffer Intelligence技术优势的认可,而 Sniffer
Intelligence 究竟价值何在?

Sniffer Intelligence最终为用户提供了一个灵活的应用分析平台,其工作台上所有的面板均可以随意定制、拖拽、排列,用户可以任意选取相关的元素组成图形、数据表,也可以用鼠标左右键任意筛选关键数据,只要你有想象力,可以任意发挥。

然而不要被这些已经算得上华丽的曲线、图形所迷惑,其骨子里真正的核心在于那些表征关键性能因素的度量值。也许细心的朋友已经注意到所有的面板,不管是图形还是表格,左侧的功能按钮中总有一个配置按钮。但是不知道有多少朋友点击过这个配置按钮,而真正打开这个配置面板又仔细阅读过这些度量值的人才算得上发现了 Intelligence 的宝藏。

举一个例子来说,在这一堆度量值中有下面这样四个:

EERT —— 端到端的响应时间
Server Delay —— 应用服务器的延迟时间
Xaction Xfer Time —— 数据包在网络上传输花费的时间
Network Time —— 网络自身产生的延迟

相信敏感的朋友可以一眼看出这四个度量值的用途,单独拿出其中任意一个也许看不出有什么特别之处,只有当这四个度量值组合在一起才初显威力:

EERT = Network Time + Xaction Xfer Time + Server Delay

EERT 是总的响应时间,相当于用户对于某个应用速度的体验,而 Server Delay、Xaction Xfer Time、Network Time 则是构成和影响用户体验的三个部分,这样四个数值组合在一起就使得我们有机会直接判断在整个数据获取的路径上,影响用户体验的问题究竟在发生在哪个环节。

这里有一个案例,一家企业的员工在早上工作刚刚开始的时间段,访问业务系统时感觉到响应速度总是特别慢,严重影响了工作效率。来看 Sniffer Intelligence给出的分析结果:

蓝色曲线代表EERT、绿色曲线代表 Server Delay、红色和黄色曲线分别代表 Xaction Xfer Time 和Network Time。通过这四条罗列在一起的曲线可以一眼看出服务器延迟(Server Delay)在7:50 和8:05之间的上升导致了端到端的延迟(EERT)增加,最终体现在用户端则是应用性能下降,或者说是响应速度慢。该问题发生的时间段与用户反映的时间段完全相符。

问题已经定位到应用服务器环节,然而这仅仅是开始,为何服务器会响应慢?再次挖掘 Intelligence宝藏:


如图,我们再次把另外四个度量值组合在一起:

绿色:Flows(Active)——活动的 TCP 会话,即并发连接数
红色:Flows(New)——新建立的 TCP 会话
黄色:Flows(Deleted)—— 关闭的 TCP 会话
蓝色:Unique Clients ——访问应用服务器的客户端数量

来看图中的绿色曲线,它反映了应用服务器正在处理的活动 TCP 会话数(并发连接数)变化情况,而其曲线波动变化让我们立刻把注意力集中到波峰部分,TCP 会话数(并发连接数)从 7:20 开始陡增,在 7:50 和 8:05 之间达到峰值,一度达到每分钟 1200 个,而这一段时间恰恰是服务器延迟增大的时刻,这不是巧合。

应用服务器同时处理的 TCP 会话数(并发连接数)过多直接导致了应用服务器的响应性下降。

再进一步分析,来看访问该应用的客户端数量随时间变化的情况,从 7:20 开始客户端数量逐渐上升,直到 8:00 达到峰值,每分钟 328 个客户端,之后慢慢回落。

到此为止,问题露出全貌,早上8:00正是一天工作开始的时间,7:20 开始大家先后到达办公室,随着访问业务应用的客户数量增多,应用服务器处理的并发连接数陡增,从而导致应用程序处理性能下降,最终影响了用户体验。

除了用这些直观的曲线来描述事件现象,以网络的视角观察业务应用的运行状况,这些数据可以同时为网络部门和应用部门的后续工作提供很好的支撑:

客户端数量 并发连接数 应用响应时间平均值 应用响应时间最大值
通常时间 150个左右 500-600个 50-100ms 1-7s
高峰时间 328个 1200个 900ms 154s

不论是为应用服务器建立负载均衡架构,还是优化应用程序本身,这些数据都可以作为参考依据。

在上面这个案例中仅仅用到了 8个度量值,更多度量值只有在其他特定场景中才能体现价值,比如TCP Efficiency(TCP 传输效率)、TCP ReTx Packets(TCP 重传数据包数量)等可以用来判断网络自身的传输效能;而 Jitter(抖动)、Audio Packet Loss(语音数据包丢失)等度量值可以结合带宽利用率、应用分布等数据来判断其他业务应用对语音质量的影响。

当然,前面说的都是针对基于 TCP 的常规应用(大部分应用也都是基于 TCP的),对于 VoIP、Mobile(用于移动通信)、Multicast 和 FIX(国外广泛用于金融系统),Sniffer Intelligence 都提供了一系列综合的,极其有价值的面对应用的度量值。有兴趣的朋友可以查阅 Intelligence 的使用手册,其中总共有50 页用来描述这些度量值的定义,及其计算方法和应用场景。

同属于Intelligence 系列的 Sniffer Multi-Segment Analysis(简称 MSA,主要由 Multi-segment Analys和Multi-Tier Analysis 共同组成),则能够自动把用户访问业务应用的整个数据路径分解为一个个可能导致性能瓶颈的网段或者节点进行数据统计和关联分析,帮助用户更加细致的去定位瓶颈所在。其中Multi-Segment Analysis分解用户访问业务应用时,数据所经过的网络节点或者网段,给出经过每个节点或者网段的网络延迟以及数据流传输的各项统计信息;Multi-Tier Analysis分解在多层架构的业务应用下(例如前端 Web服务器,中间应用服务器,后端数据库服务器),每一层应用服务器各自处理数据所花费的时间,并把它们所处理的同一个数据流关联在一起。

越来越多的业务应用运行在网络上,网络结构自身和应用体系架构的日益复杂使得应用和网络密不可分。Sniffer Intelligence系列产品的设计理念就是在网络的基础之上,面向应用层定义了各种关键性能因素,再结合网络层的传输效能数据,为用户呈现一个完整的业务应用性能视图。

在其中不难发现,从网络层到应用层,针对关键性能因素的度量值设计,严谨的计算公式,Sniffer Intelligence 在很大程度上继承了 Sniffer Portable解码和专家系统的精髓,这是 NG发展20 多年积累下来的宝贵经验。而面向业务应用的功能设计让 Sniffer Intelligence 站在一个前所未有的高度,用那些表征关键性能因素的度量值解构了如今聚合网络环境下的复杂应用,从而给予用户一个保障其业务应用高效运行的全景视图,这也就是它的价值所在。

Ricky