使用显示通道测量客户交互性能的制作方法

文档序号:7713905阅读:204来源:国知局

专利名称::使用显示通道测量客户交互性能的制作方法
技术领域
:本发明一般地涉及使用显示通道测量客户交互性能。
背景技术
:计算行业近年来已有许多进步,这些进步产生了大量产品和服务。计算系统也有了许多改变,包括它们的虚拟化。计算机资源的虚拟化通常意味着计算机硬件的抽象,其实质是将操作系统与应用同与具体硬件的直接相关相分离。硬件因而被抽象,使得多个操作系统和应用能够访问硬件的多个部分,进而定义了无缝虚拟机。虚拟化的结果是硬件被更有效利用并被平衡。在典型的虚拟化桌面基础体系结构中,用户显示器和输入设备是本地的,而应用在服务器上远程执行。因为应用远程执行,所以由于网络行进时间和应用响应时间引入了等待时间要素。评估远程应用性能的一种方法是通过测量多个事件的响应时间。这些响应时间是经过体系结构中的不同组件的合计等待时间。然而,测量这些等待时间是一个挑战,因为测量结果必须包含与低级别事件(例如鼠标运动)和高级别事件(应用启动)都相关的等待时间,以及与跨越网络边界的工作和一系列客户设备相关的等待时间。尽管记录客户侧事件的开始是易做的,但是由于缺少语义学信息,因此准确记录事件的结束是有挑战性的,例如知道应用何时启动或者检测到字符何时出现在屏幕上。正是在这种情况下,本发明的实施例应运而生。本申请与2008年12月18日递交的名为"MEASURINGREM0TEVIDE0PLAYBACKPERFORMANCEWITHEMBEDDEDENCODEDPIXELS"的美国专利申请12/337,895有关,该申请通过引用结合于此。
发明内容本发明的实施例提供了用于测量由服务器计算机提供的虚拟桌面服务的性能的方法、系统和计算机程序。计时信息通过编码像素在显示通道中传送,使得性能分析能够独立于底层的通信协议。应当意识到,本发明可以以多种方式实施,例如方法、装置、系统、计算机程序、计算机可读介质上的方法或设备。下文描述了本发明的几个创造性实施例。在一个实施例中,提供了一种测量由服务器计算机提供的虚拟桌面服务的性能的方法。所述方法包括从客户计算机接收将要在服务器计算机处执行的动作请求。在服务器计算机处,第一编码像素被插入第一图像帧中,所述第一图像帧在确收动作请求时被传送到客户计算机。所述方法进一步包括在服务器计算机处将第二编码像素插入第二图像帧中,所述第二图像帧在与动作请求相关联的动作完成之后被传送到客户计算机。在计算所述第一和第二图像帧到达客户计算机的时间差之后,动作性能时间被存储在存储器中。在另一实施例中,提供了一种用于在客户计算机处测量虚拟桌面应用的性能的方法。所述方法包括从所述客户计算机发送将要在服务器计算机处执行的动作请求,以及轮询在客户计算机处接收到的视频帧,直到在第一图像帧中检测到第一编码像素。编码像素指示服务器计算机接收到了动作请求。此外,方法轮询在客户计算机处接收到的视频帧,直到在指示与所述动作请求相关联的动作完成的第二图像帧中检测到第二编码像素。在计算所述第一和第二图像帧到达的时间差之后,动作性能时间被存储在存储器中。在又一实施例中,提供了一种测量虚拟桌面服务的性能的系统。所述系统包括服务器计算机和性能计算机。服务器计算机被配置来处理从客户计算机接收的动作请求。所述服务器计算机包括接收所述动作请求的服务器代理以及与所述服务器代理通信的工作负荷模块。所述工作负荷模块被配置成将第一编码像素插入第一图像帧中,其中所述第一图像帧在确收所述动作请求时被传送到所述客户计算机;处理与所述动作请求相关联的动作;以及将第二编码像素插入第二图像帧,其中所述第二图像帧在完成所述动作之后被传送到所述客户计算机。性能服务器从所述客户计算机接收动作性能时间,并且在存储器中存储所述动作性能时间,所述动作性能时间是所述第一和第二图像帧到达所述客户计算机的时间差。通过下面详细的说明并结合以示例方式图示本发明原理的附图,本发明的其它方面将变得明显。通过下面的说明并结合附图最好地理解本发明,其中图1描述了根据一个实施例的包括虚拟机服务器的远程桌面环境。图2示出了根据一个实施例使用在显示通道上发送的以及在镜像缓冲器上检测到的信息测量显示性能的体系军规。图3A-3D描述了根据不同实施例在显示通道上发送编码信息的不同方法。图4示出了根据一个实施例,使用带内和带外消息测量服务器处的响应时间的时序图。图5示出了根据一个实施例,使用带内消息测量服务器处的响应时间的时序图。图6描述了用于将路内(in-route)信息添加到显示通道的网络示图的一个实施例。图7示出了根据一个实施例,用于动作类型(MicrosoftOfficeWord修改)的性能数据和每个核的虚拟机(VM)的不同配置的图形表达。图8示出了根据一个实施例,作为每个逻辑单元号(LUN)的VM数的函数的等待时间的图形表达。图9示出了用于测量由服务器计算机提供的虚拟桌面服务的性能的流程图。图10示出了用于在客户计算机处测量虚拟桌面应用性能的流程图。图11是用于实现本发明实施例的计算机系统的简化示意图。具体实施例方式本发明的实施例包括用于测量由服务器计算机提供的虚拟桌面服务的性能的方法、系统和计算机程序。所述方法包括从客户计算机接收将要在服务器计算机处执行的动作请求,其中服务器计算机被配置成为发出请求的客户生成显示器视图。该方法进一步在服务器计算机处,将第一编码像素插入第一图像帧中,第一图像帧在确收动作请求时被传送到客户计算机。此外,该方法将第二编码像素插入第二图像帧中,第二图像帧在完成与动作请求相关联的动作之后被传送到客户计算机。动作性能时间,这里也被称作服务器等待时间,被存储在存储器中,其中动作性能时间是第一和第二图像帧到达客户计算机之间的时间。存储的计时信息被用来生成统计性能数据。然而,对本领域技术人员来说很明显,本发明可以在没有这些具体细节中的一些或全部的情况下实施。在其它实例中,为了避免不必要地模糊本发明,没有详细描述众所周知的过程操作。图1描述了根据一个实施例的包括虚拟机服务器(也被称作企业服务器)的远程桌面环境。图1中描述的环境包括向远程用户136a-m提供虚拟桌面服务的企业服务器102。尽管本发明的实施例是在虚拟桌面系统内进行描述的,但是提出的实施例可以用在远程显示应用向远程客户传输显示数据的其它环境中。在一个实施例中,性能服务器138也是虚拟化服务器102的一部分。性能服务器138收集来自服务器和客户的性能数据,并分析收集的数据用于向用户描述。虚拟化服务器102的简化体系结构在图1中示出,其中出于简化的目的省略了一些组件。虚拟基础结构层106管理企业服务器102中的虚拟机(VM)104a-n向远程用户的分配。远程用户136a-m连接到在虚拟基础结构中充当客户的计算机122、124和126。计算机122、124和126提供与虚拟机104a-n相关联的显示描述和输入/输出能力。客户包括PC122、膝上型计算机124、PDA、移动电话126等。客户通过网络120与虚拟化服务器102通信。虚拟机104a-n包括客户操作系统(G0S),G0S支持运行于客户0S上的应用。虚拟机104n的不同视图包括桌面视图110、工作负荷模块112和服务器代理114。服务器代理114是在VM中执行的进程,其处理来自本地客户128的动作请求,并提供动作开始和完成时间。另一方面,本地客户128包括显示器130、远程桌面客户132和帧缓冲器134。桌面视图110对应于虚拟机的显示,其被传输到本地客户128处的显示器130。显示信息被帧缓冲器134接收,并且远程桌面132更新显示器130。帧缓冲器是视频输出设备,其从包含完整帧数据的存储器缓冲器驱动视频显示器。缓冲器中的信息典型地包括用于屏幕上的每个像素的色彩值。色彩值通常以1比特黑白、4比特调色、8比特调色、16比特高彩色、24比特真彩色格式存储。虚拟机104n使用远程协议(例如远程桌面协议(RDP))通过网络120与关联的本地客户通信。远程桌面协议是有多通道能力的协议,其支持用于携带描述数据、串行设备通信、许可信息、高加密数据(键盘、鼠标活动)等的单独虚拟通道。在远程计算环境的一个实施例中,经由数据通道(例如RDP中的数据通道)以及经由用于屏幕更新的显示通道,通常以显示器的新矩形更新的形式,发生信息传送。与相同操作相对应的两条通道上的事件并不总是同步的。显示通道完成其更新的时刻是用户浏览并察觉先前请求的任务已完成的时刻。当运行在远程环境中的时候,测量显示更新对于评价用户体验来说至关重要。应当注意,显示更新的到达几乎总是迟于用于相同操作的数据通道更新。本发明的实施例测量用户136a-m所见的虚拟环境的性能。控制消息被编码到显示通道(带内消息)中而不是使用其它的带外通道。在许多情形中,由于服务器和客户之间的防火墙和其它障碍,显示通道是到达客户机器的唯一通道。此外,所提出的实施例独立于用来传送显示数据的通信协议,从而能够可靠地获得不同拓扑和协议之下的性能测量结果,并评估不同因素是如何影响虚拟桌面性能的。此外,所提出的方法可以扩展到数万客户和服务器,而不会过度加重虚拟基础结构的负担。图2示出了根据一个实施例使用在显示通道发送的并在镜像缓冲器上检测到的信息测量显示性能的体系结构。与使用数据通道不同,服务器104使用屏幕的特定部分来通知客户128特定事件。屏幕的特定区域被指定用来以编码像素的形式携带对应于预定义消息的信息。例如,所述区域可以是像素、正方形、矩形、线、圆等,如下面参考图3A-3D更为详细描述的那样。最初,诸如鼠标点击之类的用户动作在远程桌面应用132处被检测到。该动作经由客户模块204被发送到服务器代理114,并且随后被转发到工作负荷应用112。工作负荷应用112处理接收到的动作,并且将动作发送到将处理该动作的虚拟机中的适当模块。一旦对动作的响应完成,工作负荷应用112通知服务器代理114,并将编码像素插入显示器视图中。帧缓冲器134经由远程协议通道116接收更新的显示,并且当请求的动作已完成时,客户模块204扫描并检测编码像素。镜像缓冲器202保持帧缓冲器134的拷贝,以降低客户模块204扫描寻找编码像素所需的处理量。显示镜像技术被远程桌面应用广泛使用,例如NetMeeting、PCAnywhere、VNC、Webex等。镜像要比原语屏幕抓取执行起来更优,因为镜像允许仅获取显示器的最小更新区域并直接获取数据,绕过了中间拷贝。可购买到的镜像缓冲器的一个示例是DFMirage,一种用于WindowsNTOS家族的视频驱动器镜像技术。DFMirage是用于在图形系统的显示驱动器管理层(D匿L)级别处管理的虚拟视频设备的驱动器,其精确镜像一个或多个物理显示设备的画图操作。在另一实施例中,客户模块204直接检查帧缓冲器134,而不使用镜像缓冲器。下面的表1示出了在一个实施例中用来测量远程桌面性能的定义动作的列表。该列表是示例性的,可以做出其它动作的组合用于性能监视。在另一实施例中,其它动作(除了那些与具体应用有关的动作)可以被监视,例如鼠标指示符在按钮或窗口上移动、键盘输入、鼠标点击等。表17<table>tableseeoriginaldocumentpage8</column></row><table>在一个实施例中,在客户服务器远程显示环境中测量响应时间是通过让服务器通过数据通道利用消息告知客户特定任务的开始与停止来执行的。服务器还通过显示通道传输对应的更新。客户模块204轮询(poll)屏幕上的预定坐标以找到显示更新通知。所述方法当在远程环境中操作时,使能了真实用户体验的仿真和自动化。应当注意,除显示通道外还使用数据通道是一种优化,以防止客户侧过度的轮询,特别是当镜像驱动器未实现回呼(callback)功能的时候。在另一实施例中,数据通道上的通信被省略,如下文参考图5所见到的那样。在一个实施例中,通过监视显示更新并确信显示数据不包括作为常规视频更新一部分的编码像素,服务器代理114确保编码像素未被无意发送。在另一实施例中,不同的常量编码像素在开始和停止显示帧之间的显示帧中被发送。例如,开始像素可以是红色像素,停止像素可以是绿色像素,而白色像素被包括在红色和绿色像素之间的所有显示帧中。在另一实施例中,编码像素被包括在不只一个帧中以增加冗余度并减少由错失的更新产生的不准确测量结果的数目。在另一实施例中,编码像素被插入开始帧和所有后续帧中,直到所请求的动作完成。图3A-3D描述了根据不同实施例在显示通道上发送编码信息的不同方法。在图3A中,像素302被用来包括编码消息。每个消息利用不同像素值编码。例如,蓝绿色像素(0xffooff)被用于操作开始消息,红色像素(0xFF0000)用于操作完成消息。在另一实施例中,相同编码像素值被用于开始和完成消息,从而客户处的轮询仅扫描查找特定值。例如,如果值0x0(黑色)被用于编码像素,那么扫描仅需要检查等于零的像素值,从而计算周期更少并且扫描开销降低。在图3B示出的实施例中,使用若干编码像素向客户传送信息。额外的像素可以用于冗余目的,以帮助检测假的肯定或检测损坏的编码像素。额外的像素还可以被用来传送额外的信息。例如,第二像素可以被编码以指示与请求相关联的应用(g卩,MicrosoftPowerPoint),或编码与视频帧相关联的时间戳、帧号码、服务器标识、运行核标识等。在一个实施例中,通过向一个特定字节值分配0值并向不同字节值分配1值,使用一个字节(每比特一个信息)来编码信息。将每个比特编码到数据字节中解决了与一些远程通信协议相关联的问题,所述远程通信协议通过运送与初始视频几乎相同的视频,为改善总体性能会丢掉一些视频信息,但是需要更少的传输数据量。在另一实施例中,在多个像素或像素数据的若干字节上(例如两个、三个或更多)编码一个比特的信息,这在像素数据在传输过程中经历有损压縮时是有帮助的。在又一实施例中,在像素数据的子像素中编码一个比特的信息。子像素是一个像素的色彩组分的强度值。通常,子像素定义像素的红、绿或蓝组分的强度(intensity)信息。对于24比特"真彩色",其中每个子像素被编码为一个字节(8比特)的像素数据,那么在一个字节中编码每个比特。但是,如果子像素需要不同的存储量,那么将使用子像素所需要的存储量对每个比特编码。例如,在16比特"高彩色"中,红色和蓝色子像素每个用5比特的数据编码,而绿色子像素用6比特编码。—些视频或图像压縮算法依靠被称为色度(chroma)子抽样的算法,其中色度(或色彩信息)以比亮度(或亮度信息)更低的分辨率进行抽样。在此情形中,使用子像素信息对个体像素数据来说会是不可靠的。当使用色度子抽样时,可以使用像素的总体强度对每个比特的信息编码,而不是在子像素信息的基础上进行区分。在此情形中,可以使用白色和黑色像素,从而每个像素与一个比特的信息相关。可以实施多种技术来获得准确的总体强度值。例如,由于绿色组分携带最多的强度信息,因此每个像素的绿色组分可以被单独用来标识比特值。若干比特可以组合在一起形成字,例如帧号码。在一个实施例中,使用了RBG编码,其中每个像素被编码为三个字节,并且每个字节被用来编码一个比特的信息,从而对于每个像素得到3比特的编码信息。每个字节被编码为0x00或0xff。如果帧号码被编码为24比特值,那么8个像素被用来编码帧号码。应当注意,出于说明的目的,这里描述的一些实施例参考了一个编码像素。本领域技术人员很容易意识到,尽管描述的是一个编码像素,但是这里描述的实施例可以扩展到涵盖一组像素内编码的信息。该组像素可以用来记录更多比特的信息,向编码的信息添加冗余,使用不只一个字节编码比特,等等。图3C示出了视频帧的矩形内部的一组编码像素。在一个实施例中,矩形对应于视频帧的左上角,但其它配置也是可以的。在另一实施例中,可以同时使用若干矩形区域,每个矩形内包括唯一信息或者包括冗余信息以改善可靠性。图3D示出了视频屏幕的线308中的编码像素的配置。线可以是水平的、竖直的、或者任何其它方向。线还可以是视频显示中的完整水平线或竖直线,或者可以只是线的一段(这将类似于图3C的矩形306,具有一个像素的宽度)。在一个实施例中,线可以是若干像素宽。在测试期间,大编码像素区域(例如线308)对于监视目的是有帮助的,因为编码像素可以很容易被视觉检测观察到。在又一实施例中,整个视频帧被给予编码像素值,例如红色像素,当编码消息在客户处被接收时,这导致了闪烁的视频显示。应当意识到,图3A-3D中图示的实施例是视频帧内编码像素的示例性布置。其它实施例可以采用不同像素值或不同布置。图3A-3D中图示的实施例因此不应被理解为穷尽9性或限制性的,其仅是示例性或图示性的。图4示出了根据一个实施例使用带内和带外消息测量服务器处的响应时间的时序图。在图4示出的实施例中,动作请求由客户模块模拟,以便增加在测试环境中产生的动作请求的数量。在另一实施例中,动作由客户交互产生,并且客户模块检测到动作请求,该动作请求随后被发送到服务器。应当注意,计时信息是示例性的,并且计时说明意在帮助理解事件,而不是按实际比例描绘的。实际计时可能与图4中示出的计时信息不同。客户模块例如以动作(例如鼠标点击事件)的形式向服务器代理发送开始操作请求,服务器代理将请求以代理开始消息的形式转发到工作负荷模块。客户模块在发送开始操作消息之后开始轮询显示器,以检测来自服务器的"开始显示通知"消息。工作负荷模块将请求传送到服务器处的适当应用,然后向客户发送"开始显示通知"。"开始显示通知"在显示通道(也被称为带内通道)中被发送。—旦客户轮询检测到"开始显示通知",那么计时器开始测量服务器完成所请求动作所用的时间。一旦接收到开始显示通知后,用户就可以在显示器中看到操作开始。—旦在服务器处操作结束,工作负荷模块经由数据通道(这里被称为带外通道)发送"结束操作"消息。当"结束操作"消息被客户接收的时候,客户开始轮询显示更新以检测显示器中操作的结束。在发送带外消息之后,工作负荷模块在显示帧中发送带内"结束显示通知"消息。当在客户处接收到"结束显示通知"的时候,轮询检测到显示通道中的编码信息,并停止计时器,以便测量接收到开始和结束显示通知之间的时间,在图4中被称为"远程操作等待时间"。用户在"结束显示通知被接收"的同时在显示器中观察到操作结束。远程操作等待时间测量结果被存储在存储器中,并且可以被发送到中央性能服务器138(图l),中央性能服务器138收集一个或多个客户的性能数据。在另一实施例中,客户还测量发送初始开始操作和接收开始显示通知之间的时间量,以提供有关往返请求处理时间的额外信息,在图4中被标记为网络等待时间。图5示出了根据一个实施例使用带内消息测量服务器处的响应时间的时序图。图5的方法完全依靠带内消息,即,不发送任何带外消息。结果是客户侧对显示器的轮询在接收到开始显示通知之后开始。图6描述了用于向显示通道添加路内信息的网络示图的一个实施例。在显示通道中添加编码信息可以通过在不同时间添加编码像素进行扩展,并且可以由在处理客户请求过程中涉及的额外实体扩展。在图6中,在数据通过广域网(WAN)606发送之前,压縮模块604和608对数据执行压縮和解压縮。在压縮视频数据之前,压縮模块604和608内的编码模块612和614将编码像素加入显示通道以提供显示数据的行进信息。在一个实施例中,编码模块612和614在显示数据中编码时间戳和服务器标识。在另一实施例中,额外的编码像素被服务器610内的模块添加到显示帧中,以标识服务器内不同模块的处理时间。图7示出了根据一个实施例,用于动作类型(MicrosoftOfficeWord修改)的性能数据和每个核的虚拟机(VM)的不同配置的图形表达。一旦性能信息被记录在存储器中,性能信息会被处理以提供合计的统计信息。在一个实施例中,性能信息被发送到性能服务器,例如图1的性能服务器138,以产生来自多个客户的统计数据。图7提供了虚拟基础10结构环境中的远程桌面服务的用于MicrosoftOfficeWord修改动作的二维统计数据。第一维是关于服务器处每个处理核的虚拟机(VM)数量。第二维对应于响应时间。在图7示出的实施例中,响应时间基本保持不变,直到每个核的VM数量达到7。在每个核8VM处,性能略微降低,在每个核IOVM处,性能显著降低,从约7秒的延迟升至17秒的延迟。通过标识性能瓶颈并对其采取行动,性能结果被用来精细调节虚拟桌面环境。例如,虚拟基础结构可以将客户从一个服务器转移到另一服务器以改善响应时间和负载均衡。图8示出了根据一个实施例,作为每个逻辑单元号(LUN)的VM数的函数的等待时间的图形表达。在由图8中的性能数据获取的环境中,一旦每个LUN的VM数量超过256,响应时间就快速变差。网络管理器可以使用该信息标识出每个LUN的VM数量的适当限额,例如通过将VM转移给不同LUN,或者通过向计算环境添加额外的LUN。图9示出了用于测量由服务器计算机提供的虚拟桌面服务的性能的流程图。在操作902,该方法从客户计算机接收将在服务器计算机处执行的动作请求。例如参见前面提供的包括可能动作列表的表l。在操作904,在服务器计算机处插入第一编码像素。第一编码像素被插入第一图像帧中,第一图像帧在确认接收到动作请求时被传送到客户计算机。参见图3A-3D关于插入编码像素的示例性实施例。在操作906,在服务器计算机处第二编码像素被插入显示通道中。第二编码像素被添加到第二图像帧,第二图像帧在与所述动作请求相关联的动作完成之后被传送到客户计算机。在操作908,该方法在存储器中存储动作性能时间。动作性能时间是第一和第二图像帧到达客户计算机的时间差。参见上文图4和图5关于如何获得计时信息的详细描述。图IO示出了用于在客户计算机处测量虚拟桌面应用性能的流程图。在操作1002,该方法从客户计算机发送将要在服务器计算机处执行的动作请求。例如,参见图1中的客户136a-m和企业服务器102。在操作104,客户计算机轮询接收到的视频帧,直到在第一图像帧中检测到第一编码像素。第一编码像素指示服务器计算机处接收到动作请求。在操作1006,客户计算机进一步轮询接收到的视频帧,直到在第二图像帧中检测到第二编码像素。第二编码像素指示与动作请求相关联的动作完成。在操作1008,该方法在存储器中存储动作性能时间。动作性能时间是第一和第二图像帧到达的时间差。性能信息可以被处理以产生网络管理员使用的统计数据。例如参见图7和8关于所收集性能数据的图形表达。图11是用于实现本发明实施例的计算机系统的简化示意图。应当意识到,这里描述的方法可以用数字处理系统执行,例如传统的通用计算机系统。或者,可以使用被设计或编程用来执行仅仅一个功能的专用计算机。计算机系统包括中央处理单元(CPU)1104,CPU1104通过总线1110连接到随机存取存储器(RAM)1106、只读存储器(ROM)1112、以及大容量存储设备1114。程序1108驻留在随机存取存储器(RAM)1106中,但也可以驻留在大容量存储设备1114中。程序1108可以包括性能管理器程序、图2的客户模块204、服务器代理114、工作负荷应用112等。大容量存储设备1114代表永久性的数据存储设备,例如软盘驱动或固定盘驱动,其可以是本地或远程的。网络接口1130提供与网络1132的连接,允许与其它设备通信。应当意识到,CPU1104可以实现为通用处理器、专用处理器、或专门编程逻辑设备。输入/输出(I/O)接口提供与不同外围设备的通信,并且通过总线1110与CPU1104、RAM1106、R0M1112和大容量存储设备1114相连。示例性外围设备包括显示器1118、键盘1122、光标控制1124、可移动介质设备1134等。显示器1118被配置成显示这里描述的用户界面,例如图2的远程桌面视图130。键盘1122、光标控制1124、可移动介质设备1134和其它外围设备耦合到1/0接口1120,以便向CPU1104传送命令集信息。应当意识到,来自和去往外部设备的数据可以通过I/0接口1120传送。本发明的实施例可以利用多种计算机系统配置来实施,包括手持设备、微处理器系统、基于微处理器或可编程的消费电子产品、微机算计、大型计算机等。本发明还可以在分布式计算环境中实施,在分布式计算环境中,任务由通过有线或无线网络连接的远程处理设备执行。尽管虚拟化操作可以采用许多形式,但是为确保物理机器的物理构建被正确转移到虚拟机,一些概念是重要的。有鉴于此,作为参考,有关虚拟系统和方法的更多信息可以在由本申请的申请人威睿公司拥有的美国专利中找到。因此,美国专利6,397,242,6,496,847,7,069,413,7,356,679和美国申请公开2008/0244028A1中找到,这里提到的每个申请通过引用结合于此。出于完整性考虑,参考一个示例性服务器系统,其是由加州PaloAlto的VMware公司提供的"ESXTM"。然而所述的方法、系统和实施例不限于任何品牌的服务器或虚拟化服务器。示例ESX服务器是将物理服务器划分成多个虚拟机的系统监管器。每个虚拟机可以代表完整系统,具有处理器、存储器、连网、存储装置和BIOS。VMwareESX使得多个虚拟机能够(a)共享物理资源,(b)运行未经修改的操作系统和应用,以及(c)在同一服务器上并排运行资源密集型应用。取决于它们的目标产品,其它供应商制造的其它服务器可以具有类似的功能或更多或更少的功能。因此,可以使用任何产品、软件或硬件配置来实施所述系统、方法和计算机可读介质。参考上述实施例,应当理解,本发明可以使用多种计算机实现的涉及存储在计算机系统中的数据的操作。这些操作是需要对物理量进行物理操纵的操作。这里描述的构成本发明一部分的任何操作是有用的机器操作。本发明还涉及用于执行这些操作的设备或装置。所述装置可以为所需目的专门构建,或者所述装置可以是由存储在计算机中的计算机程序有选择地启动或配置的通用计算机。特别地,多个通用计算机可以结合根据这里的教导编写的计算机程序一起使用。或者,构建更为专门的装置来执行所需操作可能是更方便的。本发明还可以实现为计算机可读介质上的计算机可读代码。计算机可读介质是能够存储数据的任何数据存储设备,其随后可以被计算机系统读取。计算机可读介质的示例包括硬驱动、网络附接存储(NAS)、只读存储器、随机存取存储器、CD-R0M、CD-R、CD-RW、磁带、以及其它光和非光数据存储设备。计算机可读介质可以包括在网络连接的计算机系统上分布的计算机可读有形介质,从而计算机可读代码以分布的方式被存储和执行。尽管以具体的顺序描述了方法操作,但是应当理解,其它内务操作可以在操作之间执行,或者操作可以被调整使得它们在稍不同的时间发生,或者可以分布在下述系统中,所述系统允许在与处理相关联的多个间隔处发生处理操作,只要上层操作的处理以期望的方式被执行即可。12尽管出于明确说明的目的详细描述了前述发明,很明显在权利要求的范围内可以进行某些修改和改变。因此,实施例应视为示例性的而非限制性的,并且本发明不限于这里给出的细节,而是可以在权利要求的范围和等同物之内进行修改。权利要求一种测量由服务器计算机提供的虚拟桌面服务的性能的方法,所述方法包括从客户计算机接收将要在所述服务器计算机处执行的动作请求;在所述服务器计算机处将第一编码像素插入第一图像帧中,所述第一图像帧在确收所述动作请求时被传送到所述客户计算机;在所述服务器计算机处将第二编码像素插入第二图像帧中,所述第二图像帧在与所述动作请求相关联的动作完成之后被传送到所述客户计算机;以及在存储器中存储动作性能时间,所述动作性能时间是所述第一和第二图像帧到达所述客户计算机的时间差。2.如权利要求l所述的方法,进一步包括在传送所述第二图像帧之前,从所述服务器计算机向所述客户计算机发送带外消息,所述带外消息在与传送所述图像帧的通道不同的通道上被发送。3.如权利要求1所述的方法,其中用于所述第一编码像素和所述第二编码像素的值在色彩或强度的至少一个上不同,所述第一编码像素和所述第二编码像素在它们对应的图像帧中具有相同位置。4.如权利要求1所述的方法,进一步包括在所述第一图像帧中插入多个编码像素,所述多个编码像素形成正方形、矩形、线或线段中的一个。5.如权利要求l所述的方法,进一步包括将第三常量像素插入所述第一和所述第二图像帧之间传送的所有图像帧中。6.如权利要求l所述的方法,进一步包括在所述第一图像帧之后的n个连续帧中插入所述第一编码像素,其中所述客户计算机从每k个进入帧中抽样一个帧来检测所述第一编码像素,其中k小于等于n加1。7.如权利要求l所述的方法,进一步包括在所述第一图像帧被传送到所述客户计算机之前,将额外编码像素插入所述第一图像帧中,所述额外编码像素在所述服务器计算机内处理的不同阶段被插入。8.如权利要求l所述的方法,进一步包括在存储器中存储来自从所述服务器计算机请求动作的多个客户的动作性能时间。9.如权利要求8所述的方法,进一步包括基于所存储的动作性能时间生成统计性能度量。10.如权利要求1所述的方法,其中像素信息以二进制RGB值编码。11.一种用于在客户计算机处测量虚拟桌面应用的性能的方法,所述方法包括从所述客户计算机发送将要在服务器计算机处执行的动作请求;轮询在所述客户计算机处接收到的视频帧,直到在指示在所述服务器计算机处接收到所述动作请求的第一图像帧中检测到第一编码像素;轮询在所述客户计算机处接收到的视频帧,直到在指示与所述动作请求相关联的动作完成的第二图像帧中检测到第二编码像素;以及在存储器中存储动作性能时间,所述动作性能时间是所述第一和第二图像帧到达的时间差。12.如权利要求11所述的方法,其中所述客户计算机包括镜像缓冲器,所述镜像缓冲器镜像保持所接收图像帧的帧缓冲器,其中轮询视频帧进一步包括轮询所述镜像缓冲器。13.如权利要求11所述的方法,其中所述客户计算机包括保持所接收图像帧的帧缓冲器,其中轮询视频帧进一步包括轮询所述帧缓冲器。14.如权利要求11所述的方法,其中所述动作请求由所述客户计算机处的客户模块发起,所述客户模块被配置成模拟用户请求。15.如权利要求11所述的方法,其中所述动作请求选自以下动作构成的组运行应用、打开文件、打开网站、修改文件、保存文件、关闭文件、最小化窗口、最大化窗口、安装、解除安装、压縮、解压縮、发送或接收。16.如权利要求11所述的方法,进一步包括从所述服务器计算机接收带外消息,所述带外消息在与传送所述图像帧的通道不同的通道上被发送,其中轮询在所述客户计算机处接收到的视频帧直到检测到第二编码像素的操作是在接收到所述带外消息之后开始的。17.—种测量虚拟桌面服务的性能的系统,所述系统包括服务器计算机,被配置来处理从客户计算机接收的动作请求,所述服务器计算机包括接收所述动作请求的服务器代理,以及与所述服务器代理通信的工作负荷模块,所述工作负荷模块被配置成将第一编码像素插入第一图像帧中,其中所述第一图像帧在确收所述动作请求时被传送到所述客户计算机,处理与所述动作请求相关联的动作,将第二编码像素插入第二图像帧,其中所述第二图像帧在完成所述动作之后被传送到所述客户计算机;以及性能服务器,所述性能服务器从所述客户计算机接收动作性能时间,并且在存储器中存储所述动作性能时间,所述动作性能时间是所述第一和第二图像帧到达所述客户计算机的时间差。18.如权利要求17所述的系统,其中所述性能服务器从多个客户接收动作性能时间信息,所述性能服务器基于从所述多个客户接收的所述性能时间信息创建统计性能数据。19.如权利要求18所述的系统,其中所述性能服务器在显示器上显示所创建的统计性能数据。20.如权利要求17所述的系统,其中所述服务器计算机实现虚拟机,所述客户计算机实现与所述服务器计算机处实现的所述虚拟机相关联的远程桌面应用。21.如权利要求17所述的系统,进一步包括中间服务器,被配置成接收由所述工作负荷模块传送的所述第一图像帧,在所述第一图像帧中插入第三编码像素,以及将所述第一图像帧转发到所述客户计算机,其中所述第三编码像素被配置成提供与所述第一图像帧相关联的行进信息。全文摘要本发明提供了用于测量服务器系统提供的虚拟桌面服务的性能的方法、系统和计算机程序。所述方法包括从客户计算机接收将要在服务器计算机处执行的动作请求,其中服务器计算机被配置成为进行请求的客户生成显示视图。所述方法进一步在服务器计算机处将第一编码像素插入第一图像帧中,其中第一图像帧在确收动作请求时被传送到客户计算机。此外,该方法将第二编码像素插入第二图像帧中,其中第二图像帧在与动作请求相关联的动作完成之后被传送到客户计算机。动作性能时间被存储在存储器中,其中动作性能时间是第一和第二图像帧到达客户计算机的时间差。存储的计时信息被用来生成统计性能数据。文档编号H04N7/14GK101754046SQ20091017689公开日2010年6月23日申请日期2009年9月23日优先权日2008年12月18日发明者梅金贾·维克拉姆M,毕达卡·里希N,科里斯南·斯里尼瓦斯,萨特娜·苏尼尔申请人:威睿公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1