基于虚拟机的多核处理器的资源监控方法及系统技术方案

技术编号:2916348 阅读:464 留言:0更新日期:2012-04-11 18:40
一种基于虚拟机的多核处理器的资源监控系统,该系统设置在宿主机上,用于监控宿主机上的多核处理器的资源使用状态并将其提供给用户,每台安装有多核处理器的宿主机上可以同时运行多个虚拟机,每个虚拟机内独立运行一个客户操作系统,其特征在于,该系统包括资源监控主模块、虚拟机进程跟踪模块、宿主机处理器资源采集模块,其中: 资源监控主模块创建一个守护进程,周期性的访问宿主机处理器资源采集模块和虚拟机进程跟踪模块,获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信 息进行汇总和分析,客户操作系统上执行进程的CPU是虚拟机提供的VCPU(虚拟CPU),上述的获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析包括根据宿主机上多核处理器的每个内核的进程运行队列中VCPU的信息和客户操作系统上的进程的执行状态,得出客户操作系统的进程在宿主机上的实际执行位置及状态,进而分析得到宿主机上的多核处理器为每个虚拟机中的客户操作系统提供的计算资源和虚拟机对多核处理器的资源利用率,并将分析的结果显示给用户;  当虚拟机和客户操作系统启动时,虚拟机进程跟踪模块通过从虚拟机管理器中截获的硬件访问信息和客户操作系统的进程管理信息,自动识别在客户操作系统中运行的进程,进而得到客户操作系统进程的运行信息,虚拟机进程跟踪模块周期性的采集客户操作系统中的进程信息并将结果保存到一个文本文件中,供资源监控主模块读取; 宿主机处理器资源采集模块是内核模块,该模块工作在内核态,将宿主机处理器资源采集模块加载到宿主机操作系统内核中,该模块根据资源监控主模块发送的指令对宿主机的多核处理器资源信息进行采 集,并将这些信息传递给资源监控主模块。

【技术实现步骤摘要】

本专利技术涉及计算机科学中的多核处理器以及虚拟机领域,特别是基于虚拟机的多核处理器资源监控方法及系统。
技术介绍
系统资源监控器是通过收集操作系统资源的使用信息并加以处理,将系统的当前资源使用状态以图形化方式展示给用户。从而让用户根据当前系统的资源使用情况进行后续的系统操作。根据用户需求的不同,不同的系统监控器关注的系统资源不同。目前主要流行的系统监控器有:(1)windows任务管理器运行在windows平台上的主流系统监控器,能够图形化显示CPU的使用记录和页面文件使用记录,能够查看应用程序状态,能够查看当前运行进程名称、进程所属用户、进程内存占用情况以及CPU占用率,可以实时监控网络负载等。(2)CPU-Z一款家喻户晓的CPU检测软件,它能够鉴定处理器的类别及名称,探测CPU的核心频率以及倍频指数,探测处理器的核心电压,超频可能性探测(指出CPU是否被超过频,不过并一定完全正确),探测处理器所支持的指令集,探测处理器一、二级缓存信息,包括缓存位置、大小、速度等。探测主板部分信息,包括BIOS种类、芯片组类型、内存容量、AGP接口信息等。(3)Gnome system monitor运行在Linux平台上的主流系统监控器,它能够图形化显示多核处理器系统中每个核的使用记录、内存使用和交换记录以及网络使用记录,还能监控系统当前所有进程信息,包括进程名称、进程所属用户、进程状态、CPU使用率、CPU时间、进程NICE值、进程I/O以及进程内存使用等。这些系统监控器能够很好的监控系统资源的使用情况,能够满足普通用户的多数需求。但由于缺乏对多核处理器资源的监控(虽然gnome system monitor支持对多核处理器的监控,但是也仅限于对多核处理器的每个核的使用率进行监控),尤其缺乏的是基于虚拟机的多核处理器资源的监控。虚拟机可以虚拟多个CPU供客户操作系统使用,对于虚拟机将虚拟CPU和多核处理器的核进行映射,这个过程对宿主机而言是透明的。因此,本专利技术针对目前缺乏-->对基于虚拟机的多核处理器资源监控的支持,专利技术了一种基于虚拟机的多核处理器资源监控方法和系统。
技术实现思路
本专利技术涵盖一般监控器的功能外,重点以监控基于虚拟机的多核处理器系统中多核处理器资源为目标,设计并实现了基于虚拟机的多核处理器资源监控方法和系统。1.为了越过用户态进程无法访问内核数据结构的限制,本专利技术在Linux内核中加入宿主机处理器资源采集模块,通过该模块读取操作系统为多核处理器每个内核维护的可执行进程队列runqueue,将该队列上每个进程的进程描述符PID存入自定义的CPU_CORE结构中,然后通过Linux特有的netlink socket机制将CPU_CORE结构传递给处于用户态的监控程序。用户态的监控程序可以根据CPU_CORE中的PID在操作系统中的/proc目录下查询相应的进程信息描述文件,以此还原出多核处理器的每个CPU内核上正在执行和等待执行的进程信息。本专利技术同时还将以PROC伪文件系统为桥梁,获取系统其他资源利用信息如多核处理器的每个CPU核的使用记录、内存使用情况等信息。资源监控主模块在获取了系统(宿主系统)的全面资源使用信息后,对获取的信息进行加工处理,并以图形化方式展现给用户。2.通过虚拟机进程跟踪模块将Hypervisor和资源监控主模块进行通信,从而能在宿主机上监视和控制虚拟机上的客户操作系统上的进程。为了能在宿主机上监视虚拟机上的客户操作系统上的进程,可以从VMM(Virtual Machine Monitor)中根据截获的硬件访问信息和客户操作系统的进程管理信息,在系统运行时自动识别在客户操作系统中运行的进程,不需要对客户操作系统做任何修改或者安装任何软件,从而将VMM的监控粒度从系统级别提高到进程级别。为了可以在宿主机上对虚拟机上客户操作系统中的进程进行控制,从VMM中模拟客户操作系统发送信号给目标进程,目标进程接收到该信号既可以进行对应的操作。在一般的过程中,每个信号的执行过程中信号执行分两个阶段,产生信号和传递信号。在产生信号阶段,用户或者程序利用系统调用sys_signal在目标进程的描述结构task_struct中设置涉及到信号的域,以表示信号已到。在传递信号阶段,内核会通过检查目标进程的描述结构中涉及信号的域得知其是否有未处理信号,如果存在这样的未处理信号,则执行对应的信号处理程序。为了达到在VMM中控制客户操作系统中用户进程的目的,可以用VMM代替用户或者程序向目标进程产生信号。本专利技术提供了一种基于虚拟机的多核处理器的资源监控系统,该系统设置在宿主机上,用于监控宿主机上的多核处理器的资源使用状态并将其提供给用户,每台安装有多核处理器的宿主机上可以同时运行多个虚拟机,每个虚拟机内独立运行一个客户操作系统,其特征在-->于,该系统包括资源监控主模块、虚拟机进程跟踪模块、宿主机处理器资源采集模块,其中:资源监控主模块创建一个守护进程,周期性的访问宿主机处理器资源采集模块和虚拟机进程跟踪模块,获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析,客户操作系统上执行进程的CPU是虚拟机提供的VCPU(虚拟CPU),上述的获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析包括根据宿主机上多核处理器的每个内核的进程运行队列中VCPU的信息和客户操作系统上的进程的执行状态,得出客户操作系统的进程在宿主机上的实际执行位置及状态,进而分析得到宿主机上的多核处理器为每个虚拟机中的客户操作系统提供的计算资源和虚拟机对多核处理器的资源利用率,并将分析的结果显示给用户;当虚拟机和客户操作系统启动时,虚拟机进程跟踪模块通过从虚拟机管理器中截获的硬件访问信息和客户操作系统的进程管理信息,自动识别在客户操作系统中运行的进程,进而得到客户操作系统进程的运行信息,虚拟机进程跟踪模块周期性的采集客户操作系统中的进程信息并将结果保存到一个文本文件中,供资源监控主模块读取;宿主机处理器资源采集模块是Linux内核模块,该模块工作在内核态,将宿主机处理器资源采集模块加载到宿主机操作系统内核中,该模块根据资源监控主模块发送的指令对宿主机的多核处理器资源信息进行采集,并将这些信息传递给资源监控主模块。本专利技术也提供了一种基于虚拟机的多核处理器的资源监控方法,该方法用于监控宿主机上的多核处理器的资源使用状态并将其提供给用户,每台安装有多核处理器的宿主机上可以同时运行多个虚拟机,每个虚拟机内独立运行一个客户操作系统,其特征在于该方法包括以下步骤:在宿主机工作之前,将宿主机处理器资源采集模块加载到宿主机操作系统内核中,宿主机处理器资源采集模块是Linux内核模块,该模块运行在宿主机上且工作在内核态,在宿主机开始工作时,宿主机处理器资源采集模块根据资源监控主模块发送的指令对宿主机的多核处理器资源信息进行采集,并将这些信息传递给资源监控主模块;当虚拟机和客户操作系统启动时,虚拟机进程跟踪模块开始工作,虚拟机进程跟踪模块设置在宿主机上,该模块通过从虚拟机管理器中截获的硬件访问信息和客户操作系统的进程管理信息,自动识别在客户操作系统中运行的进程,进而得到客本文档来自技高网
...

【技术保护点】
一种基于虚拟机的多核处理器的资源监控系统,该系统设置在宿主机上,用于监控宿主机上的多核处理器的资源使用状态并将其提供给用户,每台安装有多核处理器的宿主机上可以同时运行多个虚拟机,每个虚拟机内独立运行一个客户操作系统,其特征在于,该系统包括资源监控主模块、虚拟机进程跟踪模块、宿主机处理器资源采集模块,其中: 资源监控主模块创建一个守护进程,周期性的访问宿主机处理器资源采集模块和虚拟机进程跟踪模块,获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析,客户操作系统上执行进程的CPU是虚拟机提供的VCPU(虚拟CPU),上述的获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析包括根据宿主机上多核处理器的每个内核的进程运行队列中VCPU的信息和客户操作系统上的进程的执行状态,得出客户操作系统的进程在宿主机上的实际执行位置及状态,进而分析得到宿主机上的多核处理器为每个虚拟机中的客户操作系统提供的计算资源和虚拟机对多核处理器的资源利用率,并将分析的结果显示给用户;当虚拟机和客户操作系统启动时,虚拟机进程跟踪模块通过从虚拟机管理器中截获的硬件访问信息和客户操作系统的进程管理信息,自动识别在客户操作系统中运行的进程,进而得到客户操作系统进程的运行信息,虚拟机进程跟踪模块周期性的采集客户操作系统中的进程信息并将结果保存到一个文本文件中,供资源监控主模块读取; 宿主机处理器资源采集模块是内核模块,该模块工作在内核态,将宿主机处理器资源采集模块加载到宿主机操作系统内核中,该模块根据资源监控主模块发送的指令对宿主机的多核处理器资源信息进行采集,并将这些信息传递给资源监控主模块。...

【技术特征摘要】
1、一种基于虚拟机的多核处理器的资源监控系统,该系统设置在宿主机上,用于监控宿主机上的多核处理器的资源使用状态并将其提供给用户,每台安装有多核处理器的宿主机上可以同时运行多个虚拟机,每个虚拟机内独立运行一个客户操作系统,其特征在于,该系统包括资源监控主模块、虚拟机进程跟踪模块、宿主机处理器资源采集模块,其中:资源监控主模块创建一个守护进程,周期性的访问宿主机处理器资源采集模块和虚拟机进程跟踪模块,获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析,客户操作系统上执行进程的CPU是虚拟机提供的VCPU(虚拟CPU),上述的获取宿主机的多核处理器运行状态和虚拟机上的客户操作系统的进程信息,并将这些信息进行汇总和分析包括根据宿主机上多核处理器的每个内核的进程运行队列中VCPU的信息和客户操作系统上的进程的执行状态,得出客户操作系统的进程在宿主机上的实际执行位置及状态,进而分析得到宿主机上的多核处理器为每个虚拟机中的客户操作系统提供的计算资源和虚拟机对多核处理器的资源利用率,并将分析的结果显示给用户;当虚拟机和客户操作系统启动时,虚拟机进程跟踪模块通过从虚拟机管理器中截获的硬件访问信息和客户操作系统的进程管理信息,自动识别在客户操作系统中运行的进程,进而得到客户操作系统进程的运行信息,虚拟机进程跟踪模块周期性的采集客户操作系统中的进程信息并将结果保存到一个文本文件中,供资源监控主模块读取;宿主机处理器资源采集模块是内核模块,该模块工作在内核态,将宿主机处理器资源采集模块加载到宿主机操作系统内核中,该模块根据资源监控主模块发送的指令对宿主机的多核处理器资源信息进行采集,并将这些信息传递给资源监控主模块。2、如权利要求1所述的系统,其特征在于,客户操作系统是Linux。3、如权利要求1和2所述的系统,其特征在于:当客户操作系统做进程切换时,通过访问特权寄存器载入新进程的页表基地址,这会导致在支持Intel-VT技术的多核处理器环境下造成一个陷入,虚拟机进程跟踪模块利用这个切换时的陷入时机和所带硬件信息建立并维护一个虚拟机上客户操作系统的进程踪迹记录。4、如权利要求3所述的系统,其特征在于虚拟机管理器为KVM,Xen,Lguest中之一。5、如权利要求1所述的系统,其特征在于,所述客户操作系统进程的运行信息包括在哪个虚拟CPU上执行,执行的时间和进程优先级。6、如权利要求1所述的系统,其特征在于当资源监控主模块发送查询数据后,宿主机处理器资源采集模块通过一个软中断调用一个指定的数据接收函数,由该数据接收函数负责接收资源监控主模块发送的查询指令和资源监控主模块...

【专利技术属性】
技术研发人员:白跃彬许聪罗成张良
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11

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

1