客户端-服务器应用的测量属性的制作方法

文档序号:7913251阅读:175来源:国知局
专利名称:客户端-服务器应用的测量属性的制作方法
技术领域
本公开一般地涉及网络管理。本公开更具体地涉及用于测量客户端-服务器计算机应用程序的端到端性能的技术。
背景技术
这部分中所描述的途径可以被继续进行,但是不一定是先前已经被构想到或被进行的途径。因此,除非在此另外指明,否则,这部分中所描述的途径不是本申请中的权利要求书的现有技术,并且,不因为包括在这部分中就被承认是现有技术。许多种计算机服务提供商需要测量客户端_服务器应用程序或基于网页的应用程序的性能来对远程用户的应用体验进行评估和故障排查,而不必在用户的远程计算机上安装代理。这样的计算机服务提供商的示例包括网络服务提供商、蜂窝无线电话网络服务提供商、移动无线网络运营商、基于网页的云计算存储提供商等。端用户计算机可以包括个人计算机或移动手持设备。在解决该问题时,引入诸如VMWARE之类的服务器应用虚拟化系统会引起先前在物理机上运行的应用的用户感知性能的重要改变。服务器虚拟化的部署需要伴随允许对客户端的应用性能的仔细测量的技术。因此,部署虚拟化系统的IT专家期望测量在虚拟化引入之前和之后所感知应用性能。网络运营商更喜欢在不必使用靠近端用户计算机的情况下执行性能测量,并且,希望在不劣化被测量的基于服务器的应用的性能的情况下测量性能。


在附图中图1图示出用于性能测量的基于硬件的流量采样和流重定向途径;图2图示出用于性能测量的请求重定向处理;图3图示出使用报告脚本的性能测量处理。图4图示出可以在其上实现实施例的计算机系统。
具体实施例方式在以下描述中,为了说明的目的,阐述了大量具体细节以提供对本发明的透彻理解。然而,对于本领域技术人员显然的是,本发明可以在没有这些具体细节的情况下被实行。在其它实例中,以框图形式示出公知的结构和设备以便避免不必要地模糊本发明。在此根据以下大纲来描述实施例1.0 —般概述2.0结构和功能概述3. 0实现机制_硬件概述4.0扩展例和替换例1.0 —般概述
在实施例中,一种数据处理系统,包括分组数据交换系统,其包括内容可寻址存储器,该内容可寻址存储器被配置为响应于接收到来自客户端计算机的、访问服务器计算机处所容宿的服务器应用程序的请求而将所述请求重定向至测量计算机;所述测量计算机,其包括请求重写逻辑,该请求重写逻辑被配置为接收经由基于所述交换系统的所述内容可寻址存储器的重定向的、所述客户端计算机的所述请求,记录表示接收所述请求的时间的第一时间值,将所述请求转发给所述服务器应用程序,从所述服务器计算机接收对所述请求的响应,通过将浏览器可运行测量报告脚本嵌入到所述响应的有效载荷中来重写所述有效载荷,并且,将重写的响应转发给所述客户端计算机;性能记录逻辑,该性能记录逻辑被配置为接收基于所述客户端计算机运行所述测量报告脚本的、来自所述客户端计算机的第二时间值,并且,存储至少包括所述第一时间值和所述第二时间值的性能记录。在实施例中,所述内容可寻址存储器是可编程三态内容可寻址存储器(TCAM)。在实施例中,所述请求包括统一资源定位符(URL),其中,所述有效载荷包括超文本标记语言 (HTML),并且其中,所述测量报告脚本包括JavaScript。在实施例中,所述分组数据交换系统在包括所述服务器计算机的数据中心内。在实施例中,所述客户端计算机是手持无线计算机。在实施例中,所述测量计算机和所述服务器计算机被耦合到所述交换系统,其中,所述测量计算机与从所述客户端计算机到所述服务器计算机的逻辑数据路径在逻辑上是分离的。在实施例中,所述交换系统还包括网络流存储逻辑,该网络流存储逻辑被配置为存储表示所述交换系统已经处理了的网络流量的网络流记录;所述测量计算机还包括网络流分析逻辑,该网络流分析逻辑被配置为选择所述流记录的子集,并且,对所述交换系统的所述内容可寻址存储器中的一个或多个条目重新编程,以使得将来自所述网络记录的选定子集中所识别的客户端计算机的请求重定向至所述测量计算机。在实施例中,所述服务器应用程序未被修改,其中,没有软件被安装在客户端计算机上,并且其中,所述测量计算机在物理上或逻辑上是远离所述客户端计算机的。在实施例中,所述分组数据交换系统包括分组数据交换机和分组数据路由器中的任一者。在其它实施例中,本发明包括被配置为执行上述步骤的计算机实现的方法和计算机可读介质。2. 0结构和功能概述在各个实施例中,性能测量途径实用于各种网络管理和IT管理上下文(context) 中,包括但不限于服务器虚拟化部署;服务器或数据中心合并项目;云计算基于网络的文件访问和存储服务的性能的监视;以及移动应用。这些上下文使得能看见给定应用的用户体验是重要并且复杂的。然而,实施例可以提供允许服务提供商或其它实体确定客户端所体验的给定应用的感知性能的工具。在实施例中,一种性能管理途径能够从分组数据交换系统获取流量数据,并且基于用户可定义的标准来选择用户总体(user population)的一部分。例如,活动客户端计算机的子集可以基于IP地址掩码、应用协议或其它标准而被选定。基于选定的子集,一个或多个内容可寻址存储器(CAM)编程串被生成并被提供给CAM以使得将部分流量重定向至性能测量计算机。CAM编程可以被周期性地重复来将不同的流量重定向至测量计算机。性能计算机可以令CAM编程随着流量流改变以及随着不同客户端计算机进入和离开网络而
7被自动地重复,使得活动客户端计算机的选定子集可以响应于变化的网络条件而随着时间动态改变。因此,CAM编程可以是持续动态的并且是响应于变化的当前流量流的。流量数据模块可以被配置为保持与测量计算机相关联的现有会话。以下,到达交换系统的来自客户端计算机的访问服务器计算机应用程序的请求被重定向至测量计算机。测量计算机接收完整的客户端请求,而不仅仅是有关多个请求的数据的概要或聚合。测量计算机将每个接收的请求转发给服务器计算机应用程序并接收来自服务器计算机或应用的响应。测量计算机随后通过将浏览器可运行性能测量脚本嵌入到响应的有效载荷部分来重写服务器响应。该脚本被配置为在客户端计算机处的浏览器中运行期间,使得测量从客户端计算机来看的服务器计算机应用的性能。在实施例中,流量数据是来自被容宿在路由器或交换机上的Cisco IOS Software 的Netflow模块的统计数据。在实施例中,测量计算机合并HTML解析器和撰写器,撰写器将JavaScript代码嵌入到服务器计算机应用程序响应的的HTML有效载荷中,以用于收集有关应用程序的用户体验的统计信息的目的。这里的性能途径相比于现有的途径提供许多益处。不需要在客户端计算机上安装代理或其它持久存储的软件;而是,暂时存储的脚本代码在浏览器中运行但是不被持久地存储,并且,在客户端计算机重启时被移除。所述途径可以既用于个人计算机又用于手持计算机(诸如无线联网的设备)。所述途径不需要安装靠近客户端的远程工具。服务器计算机应用程序不被修改地运行。结果,相比于修改网络站点或服务器站点程序的途径,服务器计算机应用程序响应时间可以被更准确地测量。此外,在路由器或交换机处使用CAM实现的本途径的基于硬件的采样和重定向允许测量被应用于路由器或交换机正在处理的全部流量的子集。因此,如果性能测量脚本引入了较小的性能劣化,则仅用户总体的较小一部分受影响。此外,使用CAM基于硬件的重定向使得这里的途径能够在使用10吉比特传输速度的高速网络内操作,而不会负面地影响交换系统的性能。这里的途径是可高度伸缩至大量客户端计算机,因为穿越测量计算机的流量仅仅是基于用户标准的总流量的子集。因此,测量计算机不需要使用高性能的硬件,并且,测量计算机的性能不需要匹配服务器计算机所处于的数据中心的总性能。在一个实施例中,测量报告脚本可以被配置为确定和报告有关用户正在访问哪个网络站点的信息或有关客户端计算机与服务器计算机的交互的其它统计信息或分析信息。各个实施例可适用于广泛的网络互连设备,诸如路由器和交换机,并且,例如包括Cisco Nexus 7k,Cisco Catalyst 6500系列交换机和Cisco Catalyst 4000系列交换机,并且,实施例可以被适配以与可从加利福尼亚州圣何塞侧思科系统公司商购的Cisco AVS 3180管理台站一起使用或集成到其中。在实施例中,对用于性能测量的流的选择可以根据各种度量来进行。在实施例中, 被选择用于性能测量的流的数目是基于流量数据库或Netflow模块所指示的由各种应用产生的流量的数量而确定的,以避免压垮测量计算机,这可能劣化应用性能。在实施例中, 测量计算机包括被配置为选择表示各个用户和应用类别的流,而不必选出太多流,并且,不会完全遗漏某些用户类别。
报告从客户端来看的性能信息和/或分析信息的浏览器可运行的脚本的可用性被期望在云计算环境中具有很大的实用性,其中,客户端通常不受云计算提供商管理。在此公开的无代理的性能监视可以在云计算环境中用来既解决问题又确保遵循服务级别协议 (SLA)。图1图示出用于性能测量的基于硬件的流量采样和流重定向途径。在实施例中, 多个客户端计算机102、104、106通过一个或多个网络被直接或间接地耦合到路由器105, 路由器105被耦合到包括一个或多个交换机108和服务器130的数据中心。测量计算机 120通过一个或多个网络被直接或间接地耦合到交换机108之一。客户端计算机102、104、106可以包括任何网络端点台站,例如有线湖无线的个人或手持计算机、工作站、服务器、打印机或其它计算机。客户端计算机中的任何或全部可以包括通过蜂窝无线电话网络或无线IP网络无线地耦合到路由器105的移动设备。通常,客户端计算机102、104、106的每个容宿可以与服务器130处所容宿的服务器应用程序交互的浏览器。客户端计算机102、104、106通常通过发出一个或多个HTTP请求134和接收包含用于在客户端计算机处所容宿的浏览器处解析、运行和显示的HTML有效载荷的一个或多个响应132来与服务器130处所容宿的服务器应用程序交互。虽然某些实施例在此是在包括安全套接字层(SSL)和传输层安全性(TLS)事务的HTTP和HTML的语境中描述的,但是可以使用诸如RDP之类的其它协议。路由器105和交换机108是可从加利福尼亚州圣何塞的思科系统公司商购的类型的分组数据交换系统。在一个实施例中,交换机108包括isco Nexus 5000和Nexus 7000 交换机中任一者。每个交换机108包括内容可寻址存储器(CAM) 112、测量命令逻辑114和流量数据逻辑110。CAM 112包括电子数据硬件逻辑并且可以是三态CAM(TCAM)并且可以接收流量重定向指令并利用其被编程。测量命令逻辑114被配置为接收和运行对CAM重新配置以将经过交换机108的选定网络流量重定向至测量计算机120的命令。在此在其它部分进一步描述测量命令逻辑114的具体功能。流量数据逻辑110被配置为监视流经交换机108的全部数据分组,将有关的分组关联到网络流量流中,并且,创建和存储流的聚合概要以输出到网络管理计算机,或输出到测量计算机120。在实施例中,流量数据逻辑110包括可从加利福尼亚州圣何塞思科系统公司商购的 Cisco IOS Software 中的 Netflow 模块。服务器130容宿对于客户端计算机102、104、106有用的一个或多个服务器计算机应用程序。任何形式的客户端-服务器应用程序可被使用。在实施例中,测量计算机120包括流选择逻辑121、请求重写逻辑122、一个或多个测量脚本124和性能记录逻辑127。一般,流选择逻辑121被配置为从交换机108接收流量流数据,并且选择用于客户端域的一个或多个流的集合。在实施例中,流选择逻辑121例如使用简单网络管理协议(SNMP)来传送一个或多个命令给交换机108以令流量数据逻辑 110输出或返回流量流数据集合。选择流集合可以是通过对接收的输出流量流数据执行反向DNS查找并检查与网络地址相关联的域来完成的。在实施例中,流选择逻辑121或其它逻辑被进一步配置为基于掩码IP地址和层4 端口值来对匹配给定流的CAM 112的一个或多个CAM条目编程,以指定在交换机108处到
9达并且匹配CAM条目的将来的流量应当被重定向至测量计算机120。因此,当在交换机108 的交换操作中请求或流识别数据或客户端识别数据被应用于CAM时,CAM响应于接收到该请求而返回测量计算机120的地址。在实施例中,重定向编程可以使得将这样的将来的流量重定向至位于网络中的其它地方的第二不同的性能测量计算机。在实施例中,请求重写逻辑122被配置为接收用于被重定向的选定流的完整数据报。在实施例中,仅在服务器到客户端方向移动的流量流或响应被重定向并被接收。请求重写逻辑122被配置为解析在来自服务器130之一的HTTP响应132的有效载荷中运载的 HTML代码,将测量基脚本124的复本插入到有效载荷的适当位置处,并将带有脚本的已修改响应转发给客户端102、104、106中的服务器响应中的目的地所指示的一个客户端。性能记录逻辑126被配置为收集由正在运行测量脚本124的客户端102、104、106 报告的统计数据。图2图示出用于性能测量的请求重定向处理;图3图示出使用报告脚本的性能测量处理。在实施例中,图2主要涉及截取和处理客户端请求来添加报告脚本,而图3主要涉及对脚本的客户端侧处理。首先参考图2,在步骤202,测量计算机120与流量数据逻辑110 通信,检查Netflow表或以其他方式选择要监视的流量子集。例如,作为替换,所要监视的流量可以使用在测量计算机120处输入的配置命令或基于配置文件或通过对管理计算机处所容宿的图形用户接口的用户输入来配置。选择流量流可以涉及基于对生成多数流量的源IP地址族的识别和采样或基于用户类型、往返时间值或其它度量来选择流。在步骤204中,测量计算机使得利用重定向指令对交换机108的一个或多个CAM 条目进行编程。重定向指令可以包括具有重定向选项的CAM可编程比特串和掩码,这使得将交换机108的CAM 112配置为将与CAM条目匹配的进入流量转送到测量计算机120。在实施例中,CAM串代表用户的人口统计,所述串随着时间改变以反映应用的当前使用并且被预先编程。原子编程(atomic programming)可以在CAM被预先编程的同时确保不中断的重定向。在实施例中,来自服务器130的响应被重定向。步骤204处的编程还可以包括或可以在之前加上管理员针对适当流量类型(例如Web/SSL或RDP流量)来配置交换机108 的截取策略以及要重定向的百分比。在步骤202处选择要监视的流量子集可以通过相对随机地选择流量流来执行,除非选择所配置的百分比的流量。在实施例中,测量计算机120应当接收会话的整个时段的用户会话通信。因此,在 CAM被预先编程为截取不同流量流时,流量数据逻辑110可以被用来将现有流量流保持到测量计算机120。在步骤206,客户端计算机102发出HTTP请求给服务器130之一,其通常与在服务器130之一处所容宿的客户端_服务器应用连接或与之交互。HTTP请求到达交换机108。 假定请求与已经针对重定向被编程的CAM条目匹配,则在步骤208,请求被重定向至测量计算机120。测量计算机120检查接收的请求并确定它是请求而不是来自服务器的响应;因此,不需要写入,而是测量计算机可以记录与该请求相关联的一个或多个时间戳值,如步骤 210所示。例如,测量计算机120可以将客户端请求在测量计算机处被接收到的日期时间和 /或客户端发出请求的日期时间记入日志,如果这样的值在请求中被携带的话。在步骤212,测量计算机120将请求转发给服务器130。服务器130使用服务器处容宿的应用程序来处理请求,导致形成并发送响应给客户端,如步骤214可见。响应到达交换机108并且与CAM 112中的条目匹配,使得交换机将该响应重定向至测量计算机120。测量计算机120将该响应识别为服务器响应,因此重写响应的HTML有效载荷以嵌入测量脚本 124的复本,如步骤218中所示。在步骤220中,测量计算机120将重写的响应转发给客户端计算机102。步骤218处重写响应发生在测量计算机120处并且不需要修改服务器130处所容宿的服务器应用程序,并且,不需要修改客户端计算机102处所容宿的浏览器。在步骤218 处重写响应可以包括测试指示测量脚本124先前是否作为之前的服务器响应的部分被提供给过相同客户端计算机102的标签或其它已存储变量的值。例如,测量计算机120可以包括存储装置,该存储装置存储流标识符到标签值的映射,该映射指示测量脚本124先前是否被提供给过与流标识符相关联的客户端计算机102的。现在参考图3,在接收到从步骤220的转发产生的响应之后,位于客户端计算机 102处的浏览器解析接收的响应,导致浏览器运行浏览器中的测量报告脚本,如步骤302所示。
在浏览器中运行测量报告脚本通常在不显著影响显示给客户端计算机102的端用户的用户接口的情况下发生,但是在某些浏览器中,一个或多个测量报告请求的URL可以是当数据转送发生时可在浏览器用户接口的状态字段中看见的。在一些实施例中,运行管理报告脚本可以使得浏览器设置或重置存储用于稍后报告给测量计算机120的分析信息的客户端计算机102上的一个或多个cookie (甜饼)。运行测量脚本可以使得客户端计算机102确定与客户端计算机102或浏览器与服务器130或服务器处容宿的(一个或多个)服务器应用程序的交互有关的一个或多个时间戳值或其它性能度量。例如,运行测量脚本可以使得客户端计算机102确定随后的客户端请求被发送以及随后的服务器响应被接收的日期时间值。在步骤306,和与服务器130处容宿的客户端_服务器应用程序的交互相关连地,HTTP请求可以从客户端102被发给服务器 130。作为步骤302的部分,运行测量脚本使得浏览器将请求的日期时间的时间戳记录在客户端计算机102的主存储器中。在步骤308,请求到达交换机108,基于请求的报头的网络地址或其它参数中指示的客户端102的身份来匹配CAM条目,并且,被重定向至测量计算机120。在步骤312,测量计算机120确定客户端请求不是需要重写的服务器响应,因此请求被转发给服务器130。在步骤314,服务器形成并发送响应给客户端。响应到达交换机108并在步骤316处基于匹配的CAM条目被重定向至测量计算机120。在步骤320,测量计算机120确定器先前将测量脚本124提供给过作为服务器响应的目的地的客户端计算机102。因此,该响应在没有重写或提供脚本的情况下被转发给客户端计算机102。在步骤322,在接收到服务器响应时,客户端计算机102的浏览器中运行的测量报告脚本可以确定和存储表示接收到响应的时间的日期时间值。例如,客户端计算机确定和存储到第一字节的总时间(TTFB)和到最后字节的时间(TTLB)的相对时间,以及响应于页面加载事件完成页面渲染的时间。因此,主要的性能度量是端用户或客户端计算机感知到的应用性能,其以包括网络响应时间和应用服务器响应时间二者的总体应用相应时间来测量。在一些实施例中,其它性能度量可以被确定,并且,或者被存储在非易失性存储器中或者被存储在主存储器中。示例性能度量包括但不限于可以测量和存储的从服务器130下载页面所引发的时间;连接带宽;当前对于运载表示客户端_服务器应用程序请求和响应的HTTP流量的传输层连接有效的最大传输单元(MTU)值;接收的字节数;分段比特是否已被设置;IP报头中的服务质量参数或字段的值;等等。在步骤322,为了报告一个或多个时间戳值,测量报告脚本使得客户端计算机102 开启到测量计算机120的连接并报告所述值。报告可以包括发出一个或多个HTTP GET请求,所述HTTP GET请求包括运载时间戳值或其它性能度量的询问参数值或其它形式的有效载荷。为了经由HTTP接收和处理请求,测量计算机120可以容宿HTTP服务器。用于报告性能数据的HTTP GET请求的形式的示例是GET/perftool/perfmon/post. html ? ResponseId = p30fi2z00xlx5glacqvakm3duhl83&StartTime = 1168643852687&EndTime = 1168643852734&HTMLEndTime = 1168643852703&URL = http://12. 20. 99. 201/irj/portalapps/com. sap. portal, htmlb/jslib/ emptyhover. html&Method = Image HTTP/1. 1在步骤324,测量计算机120使用接收到的时间戳值来存储一个或多个性能记录。 记录可以被本地存储在测量计算机120处或被存储在联网的存储装置中。另外或可替换地,响应于接收到来自客户端计算机102的报告,测量计算机120可以将接收到的时间戳值或其它度量传递给其它逻辑,诸如独立的性能分析程序,或传递给分离的网络管理台站。各个实施例可以使用测量计算机120内的编程性手段,诸如通过调用性能分析程序的应用编程接口(API)功能或通过将消息在网络上从测量计算机传送到另一管理台站或应用,来传递接收到的时间戳值和度量,在图2、图3期间的任意时刻,测量计算机120可以基于用于流经交换机108的流量的IP地址分发中的改变来对CAM串编程。在实施例中,流选择逻辑121合并了定时器, 该定时器周期性地使得发出新命令或询问给流量数据逻辑110来识别当时正在生成流经交换机108的多数流量的主要源IP地址或族,并对地址或族重新采样直到指定的或已配置的百分比的流量被选定为止。流选择逻辑121随后生成具有重定向选项的一个或多个新的 CAM编程串和比特标记,并且使得对CAM 112重新编程来重定向新选定的流或流量。结果, 图1的系统的操作和图2、图3的处理是动态的并且适应网络中的流量样式的改变。因此, 与性能测量有关的输出数据更准确地反映应用程序的端用户的实际体验。结果,测量计算机120、其它性能分析应用、或其它网络管理系统可以接收和分析从客户端计算机102直接报告的客户端请求时间、服务器响应时间和其它性能度量,并且, 因此代表客户端处的端用户的观点。测量计算机120、其它性能分析应用或其它网络管理系统可以以代表接收到的性能度量的分析、聚合或概要的报告或显示的形式生成输出。例如,输出可以包括总响应时间、服务器响应时间、表示其认为浏览器接收服务器响应的第一字节的到第一字节的总时间(TTFB)、其认为浏览器接收到最后字节的时间的到最后字节的总时间(TTLB)。输出可以包括TTFB和服务器响应时间之间的差,该差表示因为网络增加的等待时间。输出可以包括TTLB-TTFB之间的差,该差指示由于下载HTML引起的延迟。输出还可以指示例如从做出验证HTML容器中所引用的嵌入对象的条件GET请求渲染内容的浏览器所需时间。所公开的途径相比于其它途径具有许多益处。例如,本途径可以被配置为仅将交换机处的全部流量的小部分转移到测量计算机120,以使得测量计算机不会被掩膜,并且, 使得服务器130处的基于网络的应用不会被劣化。此外,本途径依赖于交换机108——即, 联网元素——来重定向流量的具体部分,而不像需要应用被修改并且在网络中不使用智能的途径那样。此外,交换机108中的硬件逻辑,诸如CAM 112,执行流量重定向,因此本途径由于避免了将软件应用插入到客户端计算机102、104、106与服务器之间的通信路径中而不会劣化服务器130处的应用的性能。另外,本途径不需要改变服务器130处的基于网络的应用。本途径可以不必节制地利用现有的性能分析工具,诸如,Cisco Appscope,来用于显示诸如服务器响应时间、网络等待时间、客户端渲染时间等的应用性能度量。可替换地,确定、记录和/或显示性能度量可以使用测量计算机120的性能记录逻辑126或另一逻辑元素来执行。与现有性能分析工具的集成可以允许对性能相关的问题进行更容易的故障排查。结果,这里的途径提供有关应用性能的更深入的信息和改进的可伸缩性。在各个实施例中,图2、图3的途径既可以在服务器虚拟化层的部署之前也可以在之后被执行,以使得管理员能够测量在VMWARE或另一虚拟化机制的实现前后服务器130的性能。类似地,图2、图3的途径既可以在服务器或数据中心合并项目之前也可以在之后被执行,以使得管理员能够测量和比较在合并前后服务器130的性能。使用这里的技术所获得的性能测量的分析可以引起各种补救步骤。例如,检测到过量的条件GET可以通过使用Cisco Flashforward特征或在一些情况中使用基于网络的应用的优化版本(如果可用)来修理。长下载时间可以使用数据压缩来解决。不断发生网络或互联网络的延迟可以通过寻找可替换路由来解决。负载均衡的储存区(load balanced farm)中的过长服务器响应时间可能由不恰当的VMWARE ESX服务器配置引起,例如存储器不足、配置接收侧缩放(RSS)或网络排队(Netqueue)失败或其它问题。例如,假定服务提供商正在通过将应用合并到更少的地点中来缩小全世界的数据中心的数目。因此,SP的应用用户的一部分将从比他们过去访问应用的地方更远的站点访问应用。SP还将虚拟化服务器以便充分利用其已经拥有的硬件。因此,SP有关与该项目相关联的用户体验中的潜在劣化并且需要用于隔离潜在问题的工具并且确保它们不会因为采用虚拟化而被引发。通过使用这里的基于硬件的采样途径,SP可以定义仅捕获正在流经客户端到服务器的流量的30%,更具体而言,仅HTTP流量。给流量被重定向至测量计算机 120,测量计算机120以图形格式提供如下信息针对每个用户前缀的总等待时间;等待时间如何被分到服务器响应时间中的、网络相关的等待时间和浏览器渲染时间。3. 0实现机制_硬件概述根据一个实施例,在此所述的技术是由一个或多个专用计算设备实现的。专用计算设备可以是被硬连线来执行这些技术,或者可以包括数字电子设备,诸如被永久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可
13以包括被编程为执行依据固件、存储器、其它存储装置或组合中的程序指令的技术的一个或多个通用硬件处理器。这样的专用计算设备还可以将硬连线逻辑、ASIC或FPGA与定制编程相结合来实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、网络设备或合并了用于实现这些技术的硬连线和/或程序逻辑的任何其它设备。例如,图4是图示出可以在其上实现本发明的实施例的计算机系统400的框图。 计算机系统400包括总线402或用于传送信息的其它通信机制,和用于处理信息的与总线 402耦合的硬件处理器404,以及用于处理信息的与总线402耦合的硬件处理器404。硬件处理器404可以是例如通用微处理器。计算机系统400还可以包括用于存储将由处理器404运行的指令和信息、耦合到总线402的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器406 还可以被用于在将被处理器404运行的指令的运行期间存储临时变量或其它中间信息。这样的指令当被存储在处理器404可访问的存储介质中时,使得计算机系统400变为被定制用于执行指令中所指定的操作的专用机器。计算机系统400还包括用于存储用于处理器404的静态信息和指令的耦合到总线 402的只读存储器(ROM) 408或其它静态存储设备。存储设备410,诸如磁盘或光盘,被提供并且被耦合到总线402以用于从存储信息和指令。计算机系统400可以经由总线402耦合到显示器412,诸如阴极射线管(CRT),以用于向计算机用户显示信息。包括字母数字和其它按键的输入设备414被耦合到总线402 以用于传送信息和命令选择给处理器404。另一类型的用户输入设备是广播控制器416,诸如鼠标、跟踪球或光标方向键以用于传送方向信息和命令选择给处理器404和用于控制显示器412上的光标移动。该输入设备通常具有两个轴(第一轴(例如χ)和第二轴(例如 y))上的两个自由度,允许设备指定平面中的位置。计算机系统400可以使用与计算机系统400结合的或将计算机系统400编程为专用机器的定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现在此所述的技术。根据一个实施例,这里的技术由计算机系统400响应于处理器404运行主存储器406中所包含的一个或多个指令的一个或多个序列而被执行。这样的指令可以从诸如存储设备410之类的另一存储介质被读入主存储器406中。主存储器406中所包含的指令的序列的运行令处理器404执行在此所述的处理步骤。在可替换实施例中,硬连线的电路可以替换软件指令或结合软件指令被使用。这里使用的术语“存储介质”是指存储令机器按照特定方式操作的数据和/或指令。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质例如包括光盘或磁盘,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。存储介质的通常形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、 CD-ROM、任何其它的光学数据存储介质、具有孔图案的任何物理介质,RAM、PROM和EPR0M、 FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式存储器。存储介质与传输介质不同但是可以与传输介质结合使用。传输介质参与存储介质之间的信息传送。例如,传输介质包括同轴线缆、铜线和光纤,包括包含总线402在内的线路。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外数据传输期间所生成的那些。
在运载一个或多个指令的一个或多个序列给处理器404以供运行中涉及各种形式的介质。例如,指令可以一开始在磁盘或远程计算机的固态驱动器上被运载。远程计算机可以将指令加载到其动态存储器中并将使用调制解调器在电话线上发送指令。计算机系统400本地的调制解调器可以接收电话线上的数据并使用红外发射机将数据转换成红外信号。红外检测器可以接收在红外信号中运载的数据,并且,适当的电路可以将数据放置在总线402上。总线402将数据运载到主存储器406,处理器404从主存储器406获取和运行指令。由主存储器406接收到的指令在被处理器404运行之前或之后可以被可选地存储在存储设备410上。计算机系统400还包括耦合到总线402的通信接口 418。通信接口 418提供与连接到本地网络422的网络链路420耦合的双路数据通信。例如,通信接口 418可以是综合业务数字网络(ISDN)卡、线缆调制解调器、卫星调制解调器或用于提供到对应类型的电话线的数据通信连接的调制解调器。作为另一示例,通信接口 418可以是用于提供到可兼容的LAN的数据通信连接的局域网(LAN)卡。还可以实现无线链路。在任何这样的实现中, 通信接口 418发送和接收运载表示各种信息的数字数据流的电的、电磁的或光的信号。网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如, 网络链路420可以通过本地网络422提供到主机计算机424或到由因特网服务提供商 (ISP)426运营的数据设备的连接。ISP 426进而通过现在成为“因特网”428的世界分组数据通信网络来提供数据通信服务。本地网络422和因特网428 二者都使用运载数字数据流的电的、电磁的或光学的信号。运载来自和去往计算机系统400的数字数据的通过各种网络的信号和网络链路420上的以及通过通信接口 418的信号是传输介质的示例形式。计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口 418来发送消息和接收数据,包括程序代码。在因特网示例中,服务器430可以通过因特网428、 ISP 426、本地网络422和通信接口 418来发送针对应用程序所请求的代码。接收到的代码可以在其被接收时由处理器404运行,和/或被存储在存储设备410 中,或存储在其它非易失性存储介质中以用于稍后的运行。4. 0扩展例和替换例在以上说明书中,已经参考可以因实现方式不同而不同的许多具体细节描述了本发明的实施例。针对这样的权利要求书中所包含的术语而在此清楚地阐述的任何定义应当支配在权利要求书中所使用的这样的术语的含义。因此,在权利要求中没有清楚地记载的限制、元素、特性、特征、优点或属性不应当以任何方式限制这样的权利要求的范围。相应地,应当以阐释的意义而不是限制的意义来看说明书和附图。
1权利要求
1.一种数据处理系统,包括分组数据交换系统,所述分组数据交换系统包括内容可寻址存储器,所述内容可寻址存储器被配置为响应于接收到来自客户端计算机的、访问服务器计算机处所容宿的服务器应用程序的请求而将所述请求重定向至测量计算机;所述测量计算机,包括请求重写逻辑,所述请求重写逻辑被配置为接收经由基于所述交换系统的所述内容可寻址存储器的重定向的、所述客户端计算机的所述请求,记录表示接收所述请求的时间的第一时间值,将所述请求转发给所述服务器应用程序,从所述服务器计算机接收对所述请求的响应,通过将浏览器可运行测量报告脚本嵌入到所述响应的有效载荷中来重写所述有效载荷,并且,将重写的响应转发给所述客户端计算机。
2.如权利要求1所述的系统,其中,所述测量计算机还包括性能记录逻辑,所述性能记录逻辑被配置为接收基于所述客户端计算机运行所述测量报告脚本的、来自所述客户端计算机的第二时间值,并且,存储至少包括所述第一时间值和所述第二时间值的性能记录。
3.如权利要求1所述的系统,其中,所述内容可寻址存储器是可编程三态内容可寻址存储器TCAM。
4.如权利要求1所述的系统,其中,所述请求包括统一资源定位符URL,其中,所述有效载荷包括超文本标记语言HTML,并且其中,所述测量报告脚本包括JavaScript。
5.如权利要求1所述的系统,其中,所述分组数据交换系统在包括所述服务器计算机的数据中心内。
6.如权利要求1所述的系统,其中,所述客户端计算机是手持无线计算机。
7.如权利要求1所述的系统,其中,所述测量计算机和所述服务器计算机被耦合到所述交换系统,其中,所述测量计算机与从所述客户端计算机到所述服务器计算机的逻辑数据路径在逻辑上是分离的。
8.如权利要求1所述的系统,其中,所述交换系统还包括网络流存储逻辑,所述网络流存储逻辑被配置为存储表示所述交换系统已经处理了的网络流量的网络流记录;其中,所述测量计算机还包括网络流分析逻辑,所述网络流分析逻辑被配置为选择所述流记录的子集,并且,对所述交换系统的所述内容可寻址存储器中的一个或多个条目重新编程,以使得将来自所述网络记录的选定子集中所识别的客户端计算机的请求重定向至所述测量计算机。
9.如权利要求1所述的系统,其中,所述服务器应用程序未被修改,其中,没有软件被安装在客户端计算机上,并且其中,所述测量计算机在物理上或逻辑上是远离所述客户端计算机的。
10.如权利要求1所述的系统,其中,所述分组数据交换系统包括分组数据交换机和分组数据路由器中的任一者。
11.一种计算机实现的方法,包括对分组数据交换系统的内容可寻址存储器编程来响应于接收到来自客户端计算机的访问服务器计算机处所容宿的服务器应用程序的请求而将所述请求重定向至测量计算机;接收经由基于所述交换系统的所述内容可寻址存储器的重定向的所述客户端计算机的所述请求;记录表示接收所述请求的时间的第一时间值; 将所述请求转发给所述服务器应用程序; 从所述服务器计算机接收对所述请求的响应;通过将浏览器可运行测量报告脚本嵌入到所述响应的有效载荷中来重写所述有效载荷;将重写的响应转发给所述客户端计算机;接收基于所述客户端计算机运行所述测量报告脚本的来自所述客户端计算机的第二时间值;以及存储至少包括所述第一时间值和所述第二时间值的性能记录。
12.如权利要求11所述的方法,其中,所述编程包括对三态内容可寻址存储器TCAM编程。
13.如权利要求11所述的方法,其中,所述请求包括统一资源定位符URL,其中,所述有效载荷包括超文本标记语言HTML,并且其中,所述测量报告脚本包括JavaScript。
14.如权利要求11所述的方法,其中,所述编程是在位于包括所述服务器计算机的数据中心内的所述分组数据交换系统上执行的。
15.如权利要求11所述的方法,其中,所述请求是从包括手持无线计算机的客户端计算机接收的。
16.如权利要求11所述的方法,其中,所述测量计算机和所述服务器计算机被耦合到所述交换系统,其中,所述测量计算机与从所述客户端计算机到所述服务器计算机的逻辑数据路径在逻辑上是分离的。
17.如权利要求11所述的方法,还包括存储表示所述交换系统已经处理了的网络流量的网络流记录; 选择所述流记录的子集;对所述交换系统的所述内容可寻址存储器中的一个或多个条目重新编程来配置所述交换系统,以用于将来自所述网络记录的选定子集中所识别的客户端计算机的请求重定向至所述测量计算机。
18.如权利要求11所述的方法,其中,所述服务器应用程序未被修改,其中,没有软件被安装在客户端计算机上,并且其中,所述测量计算机在物理上或逻辑上是远离所述客户端计算机的。
19.一种计算机可读存储介质,存储一个或多个指令序列,所述一个或多个指令序列当被一个或多个处理器运行时使得执行对分组数据交换系统的内容可寻址存储器编程来响应于接收到来自客户端计算机的访问服务器计算机处所容宿的服务器应用程序的请求而将所述请求重定向至测量计算机;接收经由基于所述交换系统的所述内容可寻址存储器的重定向的所述客户端计算机的所述请求;记录表示接收所述请求的时间的第一时间值; 将所述请求转发给所述服务器应用程序;从所述服务器计算机接收对所述请求的响应;通过将浏览器可运行测量报告脚本嵌入到所述响应的有效载荷中来重写所述有效载荷;将重写的响应转发给所述客户端计算机;接收基于所述客户端计算机运行所述测量报告脚本的来自所述客户端计算机的第二时间值;以及存储至少包括所述第一时间值和所述第二时间值的性能记录。
20.如权利要求19所述的计算机可读存储介质,其中,所述编程包括对三态内容可寻址存储器TCAM编程。
21.如权利要求19所述的计算机可读存储介质,其中,所述请求包括统一资源定位符URL,其中,所述有效载荷包括超文本标记语言HTML,并且其中所述测量报告脚本包括J"已VBScript ο
22.如权利要求19所述的计算机可读存储介质,其中,所述编程是在位于包括所述服务器计算机的数据中心内的所述分组数据交换系统上执行的。
23.如权利要求19所述的计算机可读存储介质,其中,所述请求是从包括手持无线计算机的客户端计算机接收的。
24.如权利要求19所述的计算机可读存储介质,其中,所述测量计算机和所述服务器计算机被耦合到所述交换系统,其中,所述测量计算机与从所述客户端计算机到所述服务器计算机的逻辑数据路径在逻辑上是分离的。
25.如权利要求19所述的计算机可读存储介质,还包括当被运行时执行如下步骤的指令存储表示所述交换系统已经处理了的网络流量的网络流记录; 选择所述流记录的子集;对所述交换系统的所述内容可寻址存储器中的一个或多个条目重新编程来配置所述交换系统,以用于将来自所述网络记录的选定子集中所识别的客户端计算机的请求重定向至所述测量计算机。
26.如权利要求19所述的计算机可读存储介质,其中,所述服务器应用程序未被修改, 其中,没有软件被安装在客户端计算机上,并且其中,所述测量计算机在物理上或逻辑上是远离所述客户端计算机的。
27.一种计算机,包括请求重写逻辑,所述请求重写逻辑被配置为接收经由已被配置为进行重定向的分组数据交换系统的内容可寻址存储器的重定向的、客户端计算机的、访问服务器计算机处所容宿的服务器应用程序的请求,记录表示接收所述请求的时间的第一时间值,将所述请求转发给所述服务器应用程序,从所述服务器计算机接收对所述请求的响应,通过将浏览器可运行测量报告脚本嵌入到所述响应的有效载荷中来重写所述有效载荷,以及将重写的响应转发给所述客户端计算机。
28.如权利要求27所述的计算机,还包括性能记录逻辑,所述性能记录逻辑被配置为接收基于所述客户端计算机运行所述测量报告脚本的、来自所述客户端计算机的第二时间值,以及存储至少包括所述第一时间值和所述第二时间值的性能记录。
29.如权利要求27所述的计算机,其中,所述内容可寻址存储器是可编程三态内容可寻址存储器TCAM。
30.如权利要求27所述的计算机,其中,所述交换系统还包括网络流存储逻辑,所述网络流存储逻辑被配置为存储表示所述交换系统已经处理了的网络流量的网络流记录;其中,所述测量计算机还包括网络流分析逻辑,所述网络流分析逻辑被配置为选择所述流记录的子集,并且,对所述交换系统的所述内容可寻址存储器中的一个或多个条目重新编程, 以使得将来自所述网络记录的选定子集中所识别的客户端计算机的请求重定向至所述测量计算机。
全文摘要
在实施例中,一种分组数据交换系统包括内容可寻址存储器,该内容可寻址存储器被配置为响应于接收到来自客户端计算机的、访问服务器计算机处所容宿的服务器应用程序的请求而将请求重定向至测量计算机;该测量计算机包括请求重写逻辑,该请求重写逻辑被配置为接收经由基于CAM重定向的请求,记录表示接收请求的时间的第一时间值,将请求转发给服务器应用程序,从服务器计算机接收对请求的响应,通过将浏览器可运行测量报告脚本嵌入到响应的有效载荷中来重写有效载荷,并且,将重写的响应转发给客户端计算机;性能记录逻辑,其被配置为接收基于客户端计算机运行测量报告脚本的、来自客户端的第二时间值,并且,存储带有时间值的性能记录。
文档编号H04L29/08GK102484653SQ201080038576
公开日2012年5月30日 申请日期2010年6月29日 优先权日2009年8月31日
发明者毛里西奥·波尔托拉尼 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1