The implementation mode involves that the virtualization layer captures the replay running trace of the VM managed by the virtualization layer. Running trace can be performed on any running unit managed by the virtualization layer, such as thread, process, virtual processor, individual VM, multiple VMS, etc. The tracked running unit can run in parallel. Running trace involves capturing the following items into buffer: running instruction, memory input to instruction, memory output by instruction, register contacted by instruction and sorting mark. Trace data can be captured in blocks, where causality is preserved, and sorting between blocks, but not necessarily within blocks, is preserved. The blocks can be mapped by inserting monotonically increasing markers between context switches, thereby ranking the blocks relatively. Certainty can be provided in part by identifying non deterministic events. VM tracking is transparent to the customer software, which does not need to be aware. Alternatively, customers can interface with the virtualization layer to control tracking functionality.
【技术实现步骤摘要】
【国外来华专利技术】虚拟机运行跟踪
技术介绍
机器虚拟化是用于将计算机的硬件呈现为多个虚拟机(VM)的技术,其中每个虚拟机能够同时在相同计算机上运行。每个此类虚拟机(VM)能够托管客户操作系统,并且计算机的硬件到客户操作系统的虚拟化呈现对客户操作系统是基本上透明的。机器虚拟化已经变得有效、可靠并且便于管理。因此,机器虚拟化被更加频繁地使用,并且用于扩展应用和工作负载的类型。机器虚拟化越来越多的使用导致对于如下的需求增加:理解VM的运行、分析性能、维护VM的计算活动的记录以及调试VM的运行和/或其客户软件。VM运行跟踪是为了这些目的而提出的一种技术。运行跟踪包括跟踪VM的运行活动,并且存储运行跟踪以用于后续分析。运行跟踪可以用于详细的运行后分析以及调试VM运行。理想地,运行跟踪是确定性的并且“可重放”,也即,其具有足够的信息以支持软件调试工具中常见的回放特征,诸如语句的逐步运行、反向回放、详细堆栈以及每个语句之前和之后的符号分析等。虽然已经认识到VM运行跟踪是可期望的,但是先前的尝试在实现和性能上存在缺点。一种方法是强制VM在单个运行线程中运行,这促进确定性,但是难以实现并且限制了性能。对于并行性非常关键的许多类型的客户软件而言,该限制禁止了产品使用。另一种方法捕获所有VM存储器,但是这带来了启动和存储成本。又一种方法使用存储器状态的复杂运行时监测来维护跟踪确定性,但是这难以准确实现,具有高开销,并且可能显著影响一些工作负载的性能。具有跟踪启动指令的仪器客户软件是另一种可能性,但是其具有需要重新编译以及部署新的可运行代码的实际缺点。其他的方法尝试了在V ...
【技术保护点】
1.一种由计算设备执行的方法,所述计算设备包括处理硬件和存储硬件,所述方法包括:/n运行虚拟化层,所述虚拟化层管理所述处理硬件上的虚拟机的运行,每个虚拟机包括相应的虚拟处理器和相应的客户操作系统;/n由所述虚拟化层切换所述虚拟机的运行上下文,以支持所述客户操作系统向所述虚拟处理器发出指令;以及/n基于由所述虚拟处理器正在运行的所述客户操作系统的所述指令,记录运行跟踪数据,所述运行跟踪数据包括:(i)由所述虚拟处理器运行的所述客户操作系统的所述指令,(ii)基于存储所捕获的指令的输入和/或输出的存储器部分而选择用于跟踪的存储器部分,以及(iii)由所述虚拟化层插入到所述运行跟踪数据中的排序标记,每个排序标记对应于已经发生可排序事件的相应的确定。/n
【技术特征摘要】
【国外来华专利技术】20170401 US 62/480,408;20170414 US 15/488,2821.一种由计算设备执行的方法,所述计算设备包括处理硬件和存储硬件,所述方法包括:
运行虚拟化层,所述虚拟化层管理所述处理硬件上的虚拟机的运行,每个虚拟机包括相应的虚拟处理器和相应的客户操作系统;
由所述虚拟化层切换所述虚拟机的运行上下文,以支持所述客户操作系统向所述虚拟处理器发出指令;以及
基于由所述虚拟处理器正在运行的所述客户操作系统的所述指令,记录运行跟踪数据,所述运行跟踪数据包括:(i)由所述虚拟处理器运行的所述客户操作系统的所述指令,(ii)基于存储所捕获的指令的输入和/或输出的存储器部分而选择用于跟踪的存储器部分,以及(iii)由所述虚拟化层插入到所述运行跟踪数据中的排序标记,每个排序标记对应于已经发生可排序事件的相应的确定。
2.根据权利要求1所述的方法,其中所述可排序事件包括上下文切换。
3.根据权利要求1所述的方法,其中所述虚拟化层包括应用编程接口(API),所述API包括调用,所述方法还包括:调取由所述虚拟化层管理的第一虚拟机(VM)的调用,并且基于所述调用的所述调取,执行所述运行跟踪数据的记录。
4.根据权利要求3所述的方法,其中所述调用的所述调取开启/关闭所述运行跟踪数据的记录,和/或设置要跟踪的运行的范围。
5.根据权利要求1所述的方法,还包括:将所述运行跟踪数据记录到循环缓冲区中,并且将运行跟踪数据从所述循环缓冲区复制到永久存储中。
6.一种计算设备,包括:
处理硬件;
存储硬件,所述存储硬件存储包括管理程序的虚拟化层;
所述存储硬件存储包括客户操作系统的虚拟机,所述客户操作系统包括客户内核,所述虚拟机还包括由所述虚拟化层管理的虚拟处理器,所述客户内核配置用于向所述虚拟处理器发出客户指令;并且
所述虚拟化层配置用...
【专利技术属性】
技术研发人员:J·莫拉,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。