虚拟机监控方法及装置制造方法及图纸

技术编号:12476779 阅读:70 留言:0更新日期:2015-12-10 12:50
本发明专利技术提供一种虚拟机监控方法,包括:通过虚拟机内核启动运行客机操作系统;在该虚拟机内核内截取该客机操作系统的所有的系统调用并获取与该系统调用相关的进程信息;根据该进程信息判断发起该系统调用的进程是否位于预设的监控列表内,若是则至少记录该系统调用的入口时间及出口时间;根据该入口时间及出口时间统计相关进程进行系统调用的时间分布并以可视形式输出该时间分布。此外,本发明专利技术还提供一种虚拟机监控装置。上述虚拟机监控方法及装置实现了有针对性的进程监控,同时还可获得更多的监控数据,从而可提高监控虚拟机性能的效率。

【技术实现步骤摘要】

本专利技术涉及计算机技术,尤其涉及一种虚拟机监控方法及装置
技术介绍
现有的虚拟机监控技术一般是通过一些监控软件(如Top监控工具),针对虚拟机中的进程 CPU (Central Processing Unit,中央处理器)、内存、I/O (Input/Output,输入 /输出)的使用情况进行监控。但这样的监控方法无法监控到系统中业务进程的详细运行状况,如:业务进程调用的系统调用种类、花销时间、失败次数等。而且,根据现有的监控方法获得的监控数据也无法对系统中业务进程的性能做出有效判断,如:当系统CPU负载过高时,如果仅仅根据现有的监控方法获得的进程CPU、内存、I/O (Input/Output,输入/输出)的使用数据,是无法分析出到底是哪个进程的哪个系统调用导致了系统CPU负载过高。因此,现有的虚拟机监控技术的监控内容有限,监控效率不高。
技术实现思路
有鉴于此,本专利技术提供一种虚拟机监控方法及装置,上述虚拟机监控方法及装置实现了有针对性的进程监控,同时还可获得更多的监控数据,从而可提高监控虚拟机性能的效率。本专利技术实施例提供的一种虚拟机监控方法,包括:通过虚拟机内核启动运行客机操作系统;在所述虚拟机内核内截取所述客机操作系统的所有的系统调用并获取与所述系统调用相关的进程信息;根据所述进程信息判断发起所述系统调用的进程是否位于预设的监控列表内,若是则至少记录所述系统调用的入口时间及出口时间;根据所述入口时间及出口时间统计相关进程进行系统调用的时间分布并以可视形式输出所述时间分布。本专利技术实施例提供的一种虚拟机监控装置,包括:启动模块,用于通过虚拟机内核启动运行客机操作系统;进程信息获取模块,用于在所述虚拟机内核内截取所述客机操作系统的所有的系统调用并获取与所述系统调用相关的进程信息;记录模块,用于根据所述进程信息获取模块获取的所述进程信息判断发起所述系统调用的进程是否位于预设的监控列表内,若是则至少记录所述系统调用的入口时间及出口时间;统计与输出模块,用于根据所述记录模块记录的所述入口时间及出口时间统计相关进程进行系统调用的时间分布并以可视形式输出所述时间分布。本专利技术实施例提供的上述虚拟机监控方法及装置,通过在虚拟机内核内截取客机操作系统的所有的系统调用并获取与该系统调用相关的进程信息,然后,根据该进程信息判断发起该系统调用的进程是否位于预设的监控列表内,若是则至少记录该系统调用的入口时间及出口时间,根据该入口时间及出口时间统计相关进程进行系统调用的时间分布并以可视形式输出该时间分布,实现了有针对性的进程监控,同时还可获得更多的监控数据,从而可提高监控虚拟机性能的效率。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例, 并配合所附图式,作详细说明如下。【附图说明】图1 TJK出了一种终端设备的系统架构图;图2为本专利技术第一实施例提供的虚拟机监控方法的流程图;图3为本专利技术第一实施例提供的虚拟机监控方法中保存信息的总体结构示意图;图4为本专利技术第二实施例提供的虚拟机监控方法的流程图;图5为本专利技术第三实施例提供的虚拟机监控装置的结构示意图;图6为本专利技术第四实施例提供的虚拟机监控装置的结构示意图。【具体实施方式】为更进一步阐述本专利技术为实现预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术的【具体实施方式】、结构、特征及其功效,详细说明如后。请参阅图1,本实施例提供的虚拟机监控方法可应用于图1所示的终端设备100中。如图1所示,终端设备100可以包括:硬件层110、运行在硬件层110之上的虚拟机监控器(Virtual Machine Monitor, VMM) 120、以及运行 VMM120 之上的至少一个虚拟机(VirtualMachine, VM) 130。硬件层110是虚拟化环境运行的硬件平台,可以包括:处理器、硬盘、网卡以及内存等。其中,处理器可以是中央处理器(Central Processing Unit, CPU)、数字信号处理器(Digital Signal Processing, DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)等等。VMl30是一个真实存在的计算机系统的软硬件副本,可以包括:虚拟硬件131、以及运行在虚拟硬件131之上的客机操作系统(Guest OS) 132。其中,虚拟硬件131可以包括:至少一个虚拟处理器1311、虚拟内存(VMEM) 1312、虚拟硬盘(VDISK) 1313、以及至少一个虚拟设备(VDEVICE) 1314。此外,VMl30中还可以包括运行在Guest OS之上的应用程序133。于本实施例中Guest OS可以包括:Linux系统、Windows系统等等。VMMl20是介于操作系统和底层物理硬件之间的一个独立的软件层,它管理着硬件层110的资源,可用于完成硬件资源的管理、分配,为VM130呈现一个虚拟硬件平台,以及执行VM130的调度和隔离。于本专利技术实施例中,VMMl20可以包括:Xen Hypervisor。此外,VMM120也可以不是独立构成并运行在所有软件之下的一层抽象,而是与宿主操作系统(HostOS,图中未示出)共享硬件。在此种情况下,也可将VMM120视为宿主机(Host)。请参阅图2,图2为本专利技术第一实施例提供的虚拟机监控方法的流程图。如图2所示,本实施例提供的虚拟机监控方法包括:步骤S101,通过虚拟机内核启动运行客机操作系统;内核是操作系统最基本的部分,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。于本实施例中,虚拟机内核是指HostOS内核中用于对虚拟机进行管理的部分。终端设备100通过HostOS中的虚拟机内核,启动运行Guest OS。步骤S102,在该虚拟机内核内截取该客机操作系统的所有的系统调用并获取与该系统调用相关的进程信息;系统调用(SystemCall)是指内核中一组提供给用户态程序使用的用于实现系统功能的子程序。在Linux系统中,截犾Guest OS中的系统调用可以通过以下两种方式来实现:使用int 0x80中断方式和快速系统调用sysenter/sysexit方式。其中,int 0x80中断方式是通过对中断向量表上的0x80中断向量地址修改,使其陷入到VMM中来截获系统调用。首先通过VMM获取客机的IDT (中断向量表)地址,由IDT找到0x80中断的地址,并对Xen的影子页表进行改动,将其地址设置为N0_PRESENT。当系统产生int0x80中断就会触发VM exit进入Xen内核中相应的缺页处理函数,在其中添加处理代码,判断是否由0x80中断产生,从而实现对系统调用的截获。快速系统调用方式,是执行快速系统调用指令SYSENTER/SYSEXIT读取相关MSR 寄存器值(SYSENTER_CS_MSR,SYSENTER_ESP_MSB, SYSENTER-EIP-MSR),通过修改SYSENTER-EIP-MSR寄存器值进行快速系统调用的截获。在Xen中记录实际M本文档来自技高网...

【技术保护点】
一种虚拟机监控方法,其特征在于,包括:通过虚拟机内核启动运行客机操作系统;在所述虚拟机内核内截取所述客机操作系统的所有的系统调用并获取与所述系统调用相关的进程信息;根据所述进程信息判断发起所述系统调用的进程是否位于预设的监控列表内,若是则至少记录所述系统调用的入口时间及出口时间;根据所述入口时间及出口时间统计相关进程进行系统调用的时间分布并以可视形式输出所述时间分布。

【技术特征摘要】

【专利技术属性】
技术研发人员:贺永红王佳朱建平
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1