基于分布式虚拟机系统的软件性能测试的管理方法和系统的制作方法

文档序号:6500190阅读:173来源:国知局
基于分布式虚拟机系统的软件性能测试的管理方法和系统的制作方法
【专利摘要】本发明公开了一种基于分布式虚拟机系统的软件性能调试的管理方法和系统,该方法包括:响应于感知到当前虚拟机上的软件系统的调试状态,控制当前虚拟机的系统时间;响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间;根据其它虚拟机发送数据分组时的系统时间和基准时间、截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间;根据该数据分组应该被当前虚拟机接收的时间以及截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。
【专利说明】基于分布式虚拟机系统的软件性能测试的管理方法和系统
【技术领域】
[0001]本发明涉及软件性能测试的管理,更具体地,涉及一种基于分布式虚拟机系统的软件性能测试的管理方法和系统。
【背景技术】
[0002]软件的性能调试是软件质量控制的重要组成部分,软件调试的目的是检查出软件实现或配置中潜在的瑕疵,在此基础上对系统加以改进。软件调试关注的是一系列的反映软件详细运行状态的诊断信息(如一个复杂功能下多个相关函数的迭代调用次序)。为了让被测系统能够生成这些诊断信息,在运行前需要向被测系统嵌入一系列的用于产生诊断信息的调试代码(instrument)。这些代码的嵌入会使程序运行开销增加,体现出较差的系统性能,如过长的任务处理时间,加剧的响应延迟等。
[0003]随着软件产品的功能越来越强大,软件产品的规模也越发庞大。通常的大型软件不是部署在同一个物理机上,而是分布式部署在多个物理机节点上。而随着虚拟机技术和云计算服务的完善和普及,越来越多的分布式系统搭建在分布式虚拟环境下。分布式虚拟机系统是由一系列广泛分布于网络中物理资源之上的虚拟机节点构成的,这些虚拟机节点之间是安全隔离且相对独立的。每个虚拟机都封装了用户应用运行所需的硬件和软件资源,这些虚拟机节点按照特定的关系协同工作,构建虚拟运行环境完成用户任务。在分布式虚拟环境中运行的软件,不同的功能组件通常分布在不同物理机上的虚拟机上,在运行时发生有层次结构的相互访问或调用,如:上一级的子任务需要调用下一级的子任务执行的结果。在进行软件的性能调试时,由于在软件中嵌入了调试代码,造成下一级子任务执行时间的延长,因此造成对上一级子任务请求的响应时间延时,甚至响应失败。这不仅对调试本身的顺利进行产生影响,还排除了在软件调试的过程中并发高效的进行其它任务(如:软件性能测试)的可能性。
[0004]因此需要一种在分布式虚拟环境中进行软件性能调试的管理方法。

【发明内容】

[0005]根据本发明的一个方面,提供了一种基于分布式虚拟机系统的软件性能调试的管理方法,包括:响应于感知到当前虚拟机上的软件系统的调试状态,控制当前虚拟机的系统时间;响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间;根据其它虚拟机发送数据分组时的系统时间和基准时间、截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间;根据该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。
[0006]根据本发明的另一个方面,提供了一种基于分布式虚拟机系统的软件性能调试的管理系统,包括:时间控制模块,被配置为响应于感知到当前虚拟机上的软件系统的调试状态,控制当前虚拟机的系统时间;时间提取模块,被配置为响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间;时间计算模块,被配置为根据其它虚拟机发送数据分组时的系统时间和基准时间、截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间;数据分组处理模块,被配置为根据该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。
[0007]根据本发明实施例的基于分布式虚拟机系统的软件性能调试的管理方法通过对运行在各个节点上的虚拟机的系统时间进行控制来排除调试代码对系统运行时间的干扰,使得在软件性能调试的过程中实现并发高效地执行其它任务,而不受到软件性能调试的影响。
【专利附图】

【附图说明】
[0008]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0009]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
[0010]图2示出根据本发明实施例的虚拟化系统中单个节点的示意图。
[0011]图3示出根据本发明实施例的基于分布式虚拟机系统的软件性能调试的管理方法。
[0012]图4示出虚拟机上的软件系统进行I/O操作的性能调试的示例。
[0013]图5示出根据本发明实施例的基于分布式虚拟机系统的软件性能调试的管理系统 500。
【具体实施方式】
[0014]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0015]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0016]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0017]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0018]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0019]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向连接的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0020]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0021]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0022]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0023]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0024]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0025]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0026]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0027]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0028]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0029]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0030]图2示出根据本发明实施例的虚拟化系统中单个节点的示意图,该单个节点包括物理机、虚拟机管理器(Hypervisor)和多个虚拟机,其中虚拟机是一种严密隔离的软件容器,它包括多个客户机操作系统(guest OS)以及运行在每个客户机操作系统上的多个应用程序,可具有不同操作系统的多个虚拟机在同一物理机上独立并行运行,从而在多台虚拟机之间实现单台物理机的资源共享。虚拟机管理器(hypervisor)是提供底层机器虚拟化的软件层,其运行在物理硬件之上,在底层上实现对虚拟机的管理和支持,以动态和透明方式向虚拟机分配硬件资源。本发明的实施例的虚拟机可以运行在被Java标准规范定义的Java虚拟机(JVM)运行环境内,也可以是任何类型的独立于平台的虚拟机,例如C#、Smalltalk、Ruby、D语言、nuva,而不限于Java虚拟机。
[0031]图3示出根据本发明实施例的基于分布式虚拟机系统的软件性能调试的管理方法,该分布式虚拟机系统包括多个节点,每个节点包括虚拟机管理器和至少一个虚拟机,根据本发明实施例的管理方法由每个节点的虚拟机管理器来执行,运行在每个节点上的虚拟机与虚拟机管理器相互配合,包括:在步骤S201,响应于感知到运行在当前虚拟机上的软件系统的调试代码的执行状态,控制当前虚拟机的系统时间;在步骤S202,响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间;在步骤S203,根据其它虚拟机发送数据分组时的系统时间和基准时间、截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间;在步骤S204,根据该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。
[0032]在步骤S201,响应于感知到运行在当前虚拟机上的软件系统的调试代码的执行状态,控制当前虚拟机的系统时间,具体地,响应于接收到当前虚拟机上的软件系统发出的即将执行调试代码的通知,暂停所述虚拟机的系统时钟的计时;以及响应于接收到当前虚拟机上的软件系统发出的调试代码执行完毕的通知,恢复所述虚拟机的系统时钟的计时。在此,其它虚拟机可以与当前虚拟机分布在同一个节点上,也可以与当前虚拟机分布在不同节点上。
[0033]图4示出虚拟机上的软件系统进行I/O操作的性能调试的示例,软件代码执行到函数ch.receive (p)触发调试代码的执行,根据本发明的实施例,在当前节点的虚拟机和虚拟机管理器之间实现调试代码执行状况的通知机制,具体地,由函数Send2HyperviSOr()实现虚拟机向虚拟机管理器通知调试代码的执行状态,具体地,在程序即将执行调试代码之前,软件系统调用函数send2Hypervisor (enter_profiling)向虚拟机管理器发出程序即将执行调试代码的通知,在调试代码被执行完毕之后,软件系统调用函数send2Hypervisor (quit_prof iIing)向虚拟机管理器发出调试代码已执行完毕的通知,同时程序返回至函数ch.receive (P),接着执行函数ch.receive (p)下面的程序。在虚拟机管理器接收到函数Send2HyperviSOr()发出的通知后,调试代码执行完毕的通知,恢复所述虚拟机的系统时钟的计时。
[0034]在步骤S202,响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间,具体地,其它虚拟机向当前虚拟机发送的数据分组首先被其它虚拟机管理器截获,从该数据分组的包头中解析出其它虚拟机的地址,从而获取到其它虚拟机发送数据分组时的系统时间,并向包头中添加两个时间标签,分别为当前虚拟机发送数据分组时刻的基准时钟和当前虚拟机的系统时钟,根据本发明的实施例,可以向包头的可选域中添加时间标签,然后将添加有时间标签的数据分组转发给当前虚拟机,在此需要说明的是,在分布式虚拟机系统中各个节点上的基准时间是一致的。
[0035]当前虚拟机管理器截获到从其它虚拟机(即源虚拟机)发送至当前虚拟机(即目的地虚拟机)的数据分组,从该数据分组的包头中解析出其源虚拟机的源地址address_svm和目的地虚拟机的目的地地址addreSS_dvm,以及在源虚拟机侧添加的源虚拟机在发送时刻的基准时钟t_swc和系统时钟t_svm。
[0036]当前虚拟机管理器还会截获到当前虚拟机发送给其它虚拟机的数据分组,首先从所述当前虚拟机发送给其它虚拟机的数据分组中解析出当前虚拟机的地址,进而根据当前虚拟机的地址获取当前虚拟机在发送时的系统时间和基准时间,并向所述数据分组中添加当前虚拟机发送数据分组时的系统时间和基准时间。[0037]在步骤S203,根据其它虚拟机发送数据分组时的系统时间、发送时刻的基准时间以及截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间,具体地,该数据分组应该被当前虚拟机接收到的时间t’计算如下:
[0038]t’ =t_svm+ (t_dwc-t_swc),其中t_dwc是截获时刻的基准时钟,
[0039]将接收到的数据分组保存至虚拟机管理器的缓存中,并将t’与目的地虚拟机的系统时钟t_dvm的差值的绝对值与预定义的时间精度阈值d进行比较,根据比较结果进行不同的处理,在此d可以根据实际情况进行设置,例如I毫秒。
[0040]在步骤S204,根据该数据分组应该被当前虚拟机接收的时间以及截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。在此及以下,一个时间大于另一个时间即表明一个时间晚于另一个时间。
[0041]根据本发明的实施例,
[0042]如果t’ -t_dvm ( d,表明该数据分组应该立即被处理,虚拟机管理器立刻将该数据分组转发给目的地的虚拟机。
[0043]如果t’ > t_dvm+d,表明该数据分组应被晚些处理,虚拟机管理器把该数据分组缓存至队列中,直到当前虚拟机的系统时间等于t’,即,t_dvm=f时,将该数据分组转发给目的地的虚拟机。
[0044]如果t’ < t_dvm-d,表明该数据分组到来的时间太迟,虚拟机管理器直接将该数据分组丢弃。
[0045]由于暂停或继续虚拟机的系统时间而造成的不同虚拟机之间系统时间不一致,从而可能导致虚拟机之间的操作在执行上发生时序混乱。按照上面的逻辑处理数据分组是为了防止时序混乱现象的发生。
[0046]此外,虚拟机管理器在内存中建立一个从源虚拟机发送至目的地虚拟机的的数据分组缓存队列的列表,在该列表中记录了源虚拟机的地址、目的地虚拟机的地址以及从源虚拟机发送至目的地虚拟机的待处理的数据分组的数目,表1示出缓存队列的列表的示例。
[0047]表1
[0048]
【权利要求】
1.一种基于分布式虚拟机系统的软件性能调试的管理方法,包括: 响应于感知到当前虚拟机上的软件系统的调试状态,控制当前虚拟机的系统时间; 响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间; 根据其它虚拟机发送数据分组时的系统时间和基准时间、截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间; 根据该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。
2.根据权利要求1所述的管理方法,其中响应于感知到当前虚拟机上的软件系统的调试状态,控制当前虚拟机的系统时间包括: 响应于接收到当前虚拟机上的软件系统发出的即将执行调试代码的通知,暂停所述当前虚拟机的系统时钟的计时;以及 响应于接收到当前虚拟机上的软件系统发出的调试代码执行完毕的通知,恢复所述当前虚拟机的系统时钟的计时。
3.根据权利要求2所述的管理方法,其中根据该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机包括: 响应于该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的差值的绝对值小于或等于预定义的时间精度阈值,将所述数据分组立刻转发给当前虚拟机; 响应于该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的差值大于预定义的时间精度阈值,将所述数据分组缓存至数据分组缓存队列中,直到当前虚拟机的系统时间等于该数据分组应该被当前虚拟机接收的时间,则将该数据分组转发给当前虚拟机; 响应于截获时当前虚拟机的系统时间与该数据分组应该被当前虚拟机接收的时间的差值大于预定义的时间精度阈值,将该数据分组丢弃。
4.根据权利要求1所述的管理方法,还包括: 响应于截获到当前虚拟机发送给其它虚拟机的数据分组,从所述当前虚拟机发送给其它虚拟机的数据分组中解析出当前虚拟机的地址; 根据当前虚拟机的地址获取当前虚拟机在向其它虚拟机发送数据分组时的系统时间和基准时间; 向所述当前虚拟机发送给其它虚拟机的数据分组中添加当前虚拟机向其它虚拟机发送数据分组时的系统时间和基准时间。
5.根据权利要求3所述的管理方法,还包括: 响应于感知到当前虚拟机以面向连接的模式向其它虚拟机发送数据分组的操作,截获当前虚拟机向其它虚拟机发送的数据分组; 暂停该当前虚拟机的运行; 响应于在数据分组缓存队列中查找到其它虚拟机发出的确认收到的数据分组,获取该确认收到的数据分组应该被当前虚拟机接收的时间;响应于该确认收到的数据分组应该被当前虚拟机接收的时间大于当前虚拟机在当前时刻的系统时间,继续该当前虚拟机的运行。
6.根据权利要求3所述的管理方法,还包括: 响应于感知到当前虚拟机以非阻塞模式从其它虚拟机接收数据分组的操作,暂停该当前虚拟机的运行; 对于每个可能向该当前虚拟机发送数据分组的其它虚拟机,如果满足以下条件之一,则继续该当前虚拟机的运行: 1)可能向该当前虚拟机发送数据分组的其它虚拟机在缓存队列中缓存有至少一个数据分组并且所述数据分组应该被当前虚拟机接收的时间大于或等于当前虚拟机在当前时刻的系统时间; 2)查询到可能向当前虚拟机发送数据分组的其它虚拟机的系统时间已经大于或等于当前虚拟机的系统时间。
7.根据权利要求3所述的管理方法,还包括: 响应于感知到当前虚拟机以阻塞模式从其它虚拟机接收数据分组的操作,暂停该当前虚拟机的运行; 对于每个可能向该当前虚拟机发送数据分组的其它虚拟机,如果满足以下条件之一,则继续该当前虚拟机的运行: 1)可能向该当前虚拟机发送数据分组的其它虚拟机在缓存队列中缓存有至少一个数据分组并且所述数据分组应该被当前虚拟机接收的时间大于或等于以阻塞模式执行接收操作的超时时间点; 2)查询到可能向当前虚拟机发送数据分组的其它虚拟机的系统时间已经大于或等于以阻塞模式执行接收操作的超时时间点。
8.根据权利要求3所述的管理方法,还包括: 响应于感知到当前虚拟机以阻塞模式从其它虚拟机接收数据分组的操作,暂停该当前虚拟机的运行; 对于每个可能向该当前虚拟机发送数据分组的其它虚拟机,如果满足以下条件之一,则继续该当前虚拟机的运行: 1)可能向该当前虚拟机发送数据分组的其它虚拟机在缓存队列中缓存有至少一个数据分组并且所述数据分组应该被当前虚拟机接收的时间大于或等于时间点T,其中时间点T大于当前虚拟机的系统时间但小于以阻塞模式执行接收操作的超时时间点; 2)查询到可能向当前虚拟机发送数据分组的其它虚拟机的系统时间已经大于或等于时间点T。
9.一种基于分布式虚拟机系统的软件性能调试的管理系统,包括: 时间控制模块,被配置为响应于感知到当前虚拟机上的软件系统的调试状态,控制当前虚拟机的系统时间; 时间提取模块,被配置为响应于截获到其它虚拟机发送给当前虚拟机的数据分组,从所述发送给当前虚拟机的数据分组中提取出添加的其它虚拟机发送数据分组时的系统时间和基准时间; 时间计算模块,被配置为根据其它虚拟机发送数据分组时的系统时间和基准时间、截获时的基准时间计算该数据分组应该被当前虚拟机接收的时间; 数据分组处理模块,被配置为根据该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的比较结果决定是否将所述数据分组转发给当前虚拟机。
10.根据权利要求9所述的管理系统,其中时间控制模块被配置为: 响应于接收到当前虚拟机上的软件系统发出的即将执行调试代码的通知,暂停所述当前虚拟机的系统时钟的计时;以及 响应于接收到当前虚拟机上的软件系统发出的调试代码执行完毕的通知,恢复所述当前虚拟机的系统时钟的计时。
11.根据权利要求10所述的管理系统,其中数据分组处理模块包括: 数据分组转发模块,被配置为响应于该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的差值的绝对值小于或等于预定义的时间精度阈值,将所述数据分组立刻转发给当前虚拟机; 数据分组缓存模块,被配置为响应于该数据分组应该被当前虚拟机接收的时间与截获时当前虚拟机的系统时间的差值大于预定义的时间精度阈值,将所述数据分组缓存至数据分组缓存队列中,直到当前虚拟机的系统时间等于该数据分组应该被当前虚拟机接收的时间,则将该数据分组转发给当前虚拟机; 数据分组丢弃模块,被配置为响应于截获时当前虚拟机的系统时间与该数据分组应该被当前虚拟机接收的时间的差值大于预定义的时间精度阈值,将该数据分组丢弃。
12.根据权利要求9所述的管理系统,还包括: 解析模块,被配置为响应于截获到当前虚拟机发送给其它虚拟机的数据分组,从所述当前虚拟机发送给其它虚拟机的数据分组中解析出当前虚拟机的地址; 时间获取模块,被配置为根据当前虚拟机的地址获取当前虚拟机在向其它虚拟机发送数据分组时的系统时间和基准时间; 时间添加模块,被配置为向所述当前虚拟机发送给其它虚拟机的数据分组中添加当前虚拟机向其它虚拟机发送数据分组时的系统时间和基准时间。
13.根据权利要求11所述的管理系统,还包括截获模块、虚拟机暂停模块和虚拟机运行模块,其中截获模块被配置为响应于感知到当前虚拟机以面向连接的模式向其它虚拟机发送数据分组的操作,截获当前虚拟机向其它虚拟机发送的数据分组;虚拟机暂停模块被配置为暂停该当前虚拟机的运行;时间获取模块进一步被配置为响应于在数据分组缓存队列中查找到其它虚拟机发出的确认收到的数据分组,获取该确认收到的数据分组应该被当前虚拟机接收的时间;虚拟机运行模块被配置为响应于该确认收到的数据分组应该被当前虚拟机接收的时间大于当前虚拟机在当前时刻的系统时间,继续该当前虚拟机的运行。
14.根据权利要求11所述的管理系统,其中虚拟机暂停模块进一步被配置为响应于感知到当前虚拟机以非阻塞模式从其它虚拟机接收数据分组的操作,暂停该当前虚拟机的运行; 虚拟机运行模块进一步被配置为对于每个可能向该当前虚拟机发送数据分组的其它虚拟机,如果满足以下条件之一,则继续该当前虚拟机的运行: I)可能向该当前虚拟机发送数据分组的其它虚拟机在缓存队列中缓存有至少一个数据分组并且所述数据分组应该被当前虚拟机接收的时间大于或等于当前虚拟机在当前时刻的系统时间; 2)查询到可能向当前虚拟机发送数据分组的其它虚拟机的系统时间已经大于或等于当前虚拟机的系统时间。
15.根据权利要求11所述的管理系统,其中虚拟机暂停模块进一步被配置为响应于感知到当前虚拟机以阻塞模式从其它虚拟机接收数据分组的操作,暂停该当前虚拟机的运行; 虚拟机运行模块进一步被配置为对于每个可能向该当前虚拟机发送数据分组的其它虚拟机,如果满足以下条件之一,则继续该当前虚拟机的运行: 1)可能向该当前虚拟机发送数据分组的其它虚拟机在缓存队列中缓存有至少一个数据分组并且所述数据分组应该被当前虚拟机接收的时间大于或等于以阻塞模式执行接收操作的超时时间点; 2)查询到可能向当前虚拟机发送数据分组的其它虚拟机的系统时间已经大于或等于以阻塞模式执行接收操作的超时时间点。
16.根据权利要求11所述的管理系统,其中虚拟机暂停模块进一步被配置为响应于感知到当前虚拟机以阻塞模式从其它虚拟机接收数据分组的操作,暂停该当前虚拟机的运行; 虚拟机运行模块进一步被配置为对于每个可能向该当前虚拟机发送数据分组的其它虚拟机,如果满足以下条件之一,则继续该当前虚拟机的运行: 1)可能向该当前虚拟机发送数据分组的其它虚拟机在缓存队列中缓存有至少一个数据分组并且所述数据分组应该被当前虚拟机接收的时间大于或等于时间点T,其中时间点T大于当前虚拟机的系统时间但小于以阻塞模式执行接收操作的超时时间点; 2)查询到可能向当前虚拟机发送数据分组的其它虚拟机的系统时间已经大于或等于时间点T。
【文档编号】G06F9/455GK104021069SQ201310064438
【公开日】2014年9月3日 申请日期:2013年2月28日 优先权日:2013年2月28日
【发明者】胡国强, 杨博, 王宜敏, 王健, 李起成 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1