CN101403983A - 基于虚拟机的多核处理器的资源监控方法及系统 - Google Patents

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

Info

Publication number
CN101403983A
CN101403983A CNA2008102272397A CN200810227239A CN101403983A CN 101403983 A CN101403983 A CN 101403983A CN A2008102272397 A CNA2008102272397 A CN A2008102272397A CN 200810227239 A CN200810227239 A CN 200810227239A CN 101403983 A CN101403983 A CN 101403983A
Authority
CN
China
Prior art keywords
host
virtual machine
operating system
client operating
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008102272397A
Other languages
English (en)
Other versions
CN101403983B (zh
Inventor
白跃彬
许聪
罗成
张良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2008102272397A priority Critical patent/CN101403983B/zh
Publication of CN101403983A publication Critical patent/CN101403983A/zh
Application granted granted Critical
Publication of CN101403983B publication Critical patent/CN101403983B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种基于虚拟机的多核处理器资源监控系统和方法,以Linux下的/proc伪文件系统为桥梁,采用在Linux内核添加宿主机处理器资源采集模块的方法,通过与Linux内核进行通信,从而获取当前宿主系统资源使用信息,通过虚拟机进程跟踪模块建立资源监控主模块的守护进程与Hypervisor通信,获取运行于虚拟机上客户操作系统的资源信息,资源监控主模块对信息加以处理,以图形化的方式显示,从而达到对宿主系统以及虚拟机上的客户系统的软硬件资源进行监控的目的。

Description

基于虚拟机的多核处理器的资源监控方法及系统
技术领域
本发明涉及计算机科学中的多核处理器以及虚拟机领域,特别是基于虚拟机的多核处理器资源监控方法及系统。
背景技术
系统资源监控器是通过收集操作系统资源的使用信息并加以处理,将系统的当前资源使用状态以图形化方式展示给用户。从而让用户根据当前系统的资源使用情况进行后续的系统操作。根据用户需求的不同,不同的系统监控器关注的系统资源不同。目前主要流行的系统监控器有:
(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的信息和客户操作系统上的进程的执行状态,得出客户操作系统的进程在宿主机上实际由哪个CPU内核执行及该进程的执行状态,进而分析得到宿主机上的多核处理器为每个虚拟机中的客户操作系统提供的计算资源和虚拟机对多核处理器的资源利用率,并将分析的结果显示给用户。
与现有技术相比较,本发明的创新之处在于:能对多核处理器系统中的多核处理器资源进行全面的监控,能对基于虚拟机的多核处理器系统中的客户操作系统资源进行监控。具体体现在:
1.本发明中,通过在Linux内核中添加宿主机处理器资源采集模块,收集多核处理器的使用情况,具体包括多核处理器的每个核上的运行进程的具体信息、以及每个核的使用记录。
2.本发明中,可以对基于虚拟机的多核处理器系统上的客户操作系统资源进行监控,具体表现为可以监视虚拟机中虚拟CPU的个数,监视虚拟机上客户操作系统中的进程信息,以及控制虚拟机上客户操作系统中的进程。
附图说明
图1基于虚拟机的多核处理器资源监控体系结构
图2宿主机处理器资源采集模块工作原理
图3/proc伪文件系统结构图
图4进程描述符定位示意图
图5VMM信号传递示意图
具体实施方式
参考说明书附图1,本发明主要监控两部分内容:基于PROC伪文件系统以及在内核中加入宿主机处理器资源采集模块监控宿主机系统资源、通过在VMM中加入进程跟踪模块监控运行在虚拟机上的客户操作系统中的进程信息。
监控宿主机系统资源
如图2所示,编写宿主机处理器资源采集模块包括对多核处理器每个内核信息的读取函数,如读取CPU内核的运行队列。读取每个CPU内核的运行队列可以通过宏this_rq()和宏cpu_rq(n)来实现,宏this_rq()用来返回当前处理器的可执行队列的地址,宏cpu_rq(n)用来返回给定编号的处理器可执行队列的指针。由于/proc中已经保存了操作系统中各个进程的状态信息,为了减少信息传递量,在获取每个CPU内核的运行队列时只保存了运行队列上每个进程的PID,当监控程序需要某个进程的具体信息时可以根据PID到/proc下查询。
如图2所示,为了实现宿主机处理器资源采集模块与用户态监控程序的通信,本发明使用了软中断的方式实现宿主机处理器资源采集模块与用户态进程的通信。当宿主机处理器资源采集模块接收用户空间传递的数据时并没有使用常见的内核守护线程,而是通过一个软中断来调用一个指定的接收函数kernel_receive()来接收用户态的监控程序发送的查询命令,由该接收函数负责接收资源监控主模块发送的查询指令和资源监控主模块的进程描述符,宿主机处理器资源采集模块读取宿主机操作系统内核中每个CPU内核的本地运行队列,记录下运行队列上包括虚拟机VCPU在内的所有可执行进程的进程描述符,然后把这些信息传递给资源监控主模块。这样不仅可以保证数据的实时性接收,还避免了内核守护线程和其他的用户态进程竞争CPU资源,提高了效率。数据传输使用了Linux特有的netlink套接字,在通讯过程中,以双方进程的PID为通信依据,当通信的一端处于中断过程时,设其PID为0。对于用户进程,可使用标准的socket APIs,如socket(),bind(),sendmsg(),recvmsg()和close()方等法建立用户态进程与系统内核之间的全双工通讯通道;而对于宿主机处理器资源采集模块,则需要使用一些特殊的API创建并使用netlink socket。
在通过宿主机处理器资源采集模块收集多核处理器信息的同时,本发明还基于Linux下的/proc伪文件系统进行系统的其他资源信息的收集。如图3所示,可以通过查询proc下包含的loadavg、meminfo、stat、uptime、version文件,以及针对每个进程有以进程PID为名的文件夹获取宿主系统的其他系统信息,通过loadavg可以得到通过计算过去1分钟,5分钟,15分钟里运行队列中的平均任务数以及正在运行的任务数和总任务数;通过meminfo获取系统中空闲内存,已用物理内存和交换内存的总量以及内核使用的共享内存和缓冲区总量信息;通过stat获取CPU利用率,磁盘,内存页,内存对换,全部中断,接触开关及上次自举时间;通过uptime得到自从上次系统自举以来的秒数,及其中有多少秒处于空闲,这两个数字能够从宏观上得出CPU周期浪费的比例;通过version了解正在运行的内核版本信息;通过PID文件下的stat文件可以了解每个进程的相关信息如进程状态、进程名称等。所有收集到的资源信息都将传输给资源监控主模块,资源监控主模块将基于这些信息进行数据加工,形成友好的具体的数据展现给用户。
监控VMM上运行的客户操作系统中的资源
编写虚拟机进程跟踪模块,使其和宿主机上的虚拟机管理器协同工作,该模块根据从VMM(Virtual Machine Monitor)中根据截获的硬件访问信息和客户操作系统的进程管理信息,可以在系统运行时自动识别在客户操作系统中运行的进程,不需要对客户操作系统做任何修改或者安装任何软件,可以将VMM的监控粒度从系统级别提高到进程级别。这里提到的VMM可以是诸如KVM,Xen,或Lguest等现有技术中所熟知的虚拟机管理器。
当把hlt指令配置成陷入条件后,VMM就会利用客户操作系统执行idle进程时循环调用hlt指令的时间来估计客户操作系统的负载。当客户操作系统作进程切换时,进程调度器将访问特权寄存器CR3载入新进程的页表基地址,这样的动作会在支持Intel-VT技术的多核处理器环境下造成一个由非根环境到根环境的切换,即vmexit。VMM会利用这个切换时的陷入时机和所带硬件信息建立并维护一个客户操作系统进程踪迹表。这是一个名为GPTR的多维向量,其中包含两个信息,客户操作系统的进程页目录地址PPDA,和客户操作系统进程的名字或标识符PID。PPDA的值可以从多核处理器的特权寄存器CR3中获取,进程的PID可以从客户操作系统的进程描述结构task_struct中获得。
有了GPTR向量,就可以在运行时识别客户操作系统的运行进程。用被VMM捕获的客户操作系统当前进程的PPDA作为键值,在GPTR的PPDA记录向量里进行匹配查询,从返回的结果即可以识别客户操作系统中具体在实际运行的进程。值得注意的是,寻找客户操作系统进程描述结构的方法需要根据实际使用的操作系统而定。在Linux操作系统中,根据内核堆栈的编译选项,当前进程描述符号的索引和内核堆栈连续存放于2页或1页内,由于内核堆栈指针ESP在访问CR3产生的陷入也会被VMM获得,所以通过分析内核堆栈指针就可以定位进程描述结构在内存中的位置,从而解析出该进程描述结构中存储的相关信息,进而获得虚拟机上的客户操作系统的进程运行状态。虚拟机进程跟踪模块周期性的采集客户操作系统中的进程信息并将结果存到一个文本文件中,供资源监控主模块读取,优选的该文件是只有root用户才可访问的文本文件。具体过程见图4所示。
当客户操作系统为Linux且宿主机运行在支持Intel-VT的多核处理器上时,采用以下步骤完成客户操作系统进程的识别:①VMM捕获客户操作系统在做进程切换时,Intel-VT产生的由非根环境到根环境的切换,即vmexit;②VMM读取客户操作系统的内核堆栈指针ESP;③将ESP指向的地址和0xffffe000做与操作,得到当前进程描述结构的首地址;④分析当前进程描述结构,得到进程描述符PID;⑤将上一次读取的保存在特权寄存器CR3中的待运行进程的页表基地址和本次获得的当前进程的PID作为键值对,保存到GPTR多维向量中。
在控制客户操作系统中的进程时,虚拟机进程监控模块从VMM中模拟客户操作系统发送信号给目标进程,目标进程接收到该信号即可以进行对应的操作。在一般的过程中,每个信号的执行过程中信号执行分两个阶段,产生信号和传递信号。在产生信号阶段,用户或者程序利用系统调用sys_signal在目标进程的描述结构task_struct中设置涉及到信号的域,以表示信号已到。在传递信号阶段,内核会通过检查目标进程的描述符中涉及信号的域得知其是否有未处理信号,如果存在这样的未处理信号,则执行对应的信号处理程序。为了达到在VMM中控制客户操作系统中用户进程的目的,可以用VMM代替用户或者程序向目标进程产生信号。具体实现如下:
在VMM中执行第一步产生信号的过程,为客户操作系统的目标进程的描述符中和信号相关联的pending域中的SIGNAL标识置位,按照相应的信号的序号SIG_ID,通过以下语句完成置位:
set.sig[(SIG_ID-1)/32]|=1UL<<((SIG_ID-1)%32)
同时设置目标进程描述符中thread_info域中的TIF_SIGPENDING标识,内核会在恢复进程执行前检查该标志是否被设置,当其被设置时,内核会去处理该信号。
Figure A20081022723900102
由客户操作系统内核按原先方式执行第二步传递信号的过程,VMM不需要干预。只要客户操作系统的某个目标进程被调度到,内核通过检查该进程的描述符的上述域和标识的值来确定是否需要进行对应操作。其执行效果近似于用户或者程序在客户操作系统的shell下发送某个命令来对进程进行操作,只要该进程被调度到,对应的操作立即执行。(如图5所示)但是,从VMM中对客户操作系统中目标进程操作的前提是目标进程被调度。所以如果目标进程不被调度,比如在阻塞状态,那么该操作就不能立即被执行。这与客户操作系统中的shell命令有所不同的是直接键入shell命令能主动唤醒目标进程,而在VMM中有时可能无法立即唤醒客户操作系统的进程。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102272397A CN101403983B (zh) 2008-11-25 2008-11-25 基于虚拟机的多核处理器的资源监控方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102272397A CN101403983B (zh) 2008-11-25 2008-11-25 基于虚拟机的多核处理器的资源监控方法及系统

Publications (2)

Publication Number Publication Date
CN101403983A true CN101403983A (zh) 2009-04-08
CN101403983B CN101403983B (zh) 2010-10-13

Family

ID=40538008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102272397A Expired - Fee Related CN101403983B (zh) 2008-11-25 2008-11-25 基于虚拟机的多核处理器的资源监控方法及系统

Country Status (1)

Country Link
CN (1) CN101403983B (zh)

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854254A (zh) * 2010-05-10 2010-10-06 浪潮电子信息产业股份有限公司 一种监控服务器资源利用情况的方法
CN102063585A (zh) * 2010-10-29 2011-05-18 华南理工大学 一种基于Xen的安全的虚拟磁盘的访问控制方法
CN102314382A (zh) * 2010-07-06 2012-01-11 中兴通讯股份有限公司 一种紧急探查系统信息的方法及模块
CN101593134B (zh) * 2009-06-29 2012-05-30 北京航空航天大学 虚拟机cpu资源分配方法和装置
CN101661381B (zh) * 2009-09-08 2012-05-30 华南理工大学 一种基于Xen的数据共享与访问控制方法
CN102591765A (zh) * 2011-12-31 2012-07-18 珠海市君天电子科技有限公司 一种进程自动管理系统
CN102096603B (zh) * 2009-12-14 2013-01-02 中国移动通信集团公司 MapReduce系统中的作业分解控制方法及设备
CN102880064A (zh) * 2011-07-13 2013-01-16 库卡罗伯特有限公司 机器人控制装置
CN102891904A (zh) * 2012-09-07 2013-01-23 佳都新太科技股份有限公司 一种在集群系统里实现快速FailOver的方法
CN101561769B (zh) * 2009-05-25 2013-02-13 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
CN102957563A (zh) * 2011-08-16 2013-03-06 中国石油化工股份有限公司 Linux集群故障自动恢复方法和Linux集群故障自动恢复系统
CN101630272B (zh) * 2009-08-19 2013-03-27 用友软件股份有限公司 进程调度方法和系统
CN103019653A (zh) * 2012-11-27 2013-04-03 康佳集团股份有限公司 一种基于linux系统的内核消息分发方法
CN103440161A (zh) * 2013-08-15 2013-12-11 北京京东尚科信息技术有限公司 一种Java虚拟机内部对象监控方法、装置和系统
CN103544089A (zh) * 2013-10-13 2014-01-29 西安电子科技大学 基于Xen的操作系统识别方法
CN103593607A (zh) * 2013-11-26 2014-02-19 北京搜狐新媒体信息技术有限公司 宿主机与虚拟机文件系统隔离方法和装置
CN103620558A (zh) * 2013-05-21 2014-03-05 华为技术有限公司 实现物理资源和虚拟资源对应的方法和基础输入输出系统
CN103729254A (zh) * 2013-12-31 2014-04-16 国网山东省电力公司 一种虚拟服务器Virtual CPU资源监测及动态分配方法
CN103870297A (zh) * 2012-12-14 2014-06-18 北京华胜天成科技股份有限公司 云计算环境中虚拟机的性能数据采集系统和方法
CN104008030A (zh) * 2013-02-27 2014-08-27 腾讯科技(深圳)有限公司 内核性能测试的方法及装置
CN104881347A (zh) * 2015-05-26 2015-09-02 山东蚁巡网络科技有限公司 一种通用的虚拟化监控展示方法
CN105138388A (zh) * 2014-06-09 2015-12-09 腾讯科技(深圳)有限公司 虚拟机监控方法及装置
CN105159739A (zh) * 2015-08-24 2015-12-16 上海斐讯数据通信技术有限公司 一种linux保存应用程序编译信息的方法
CN105550040A (zh) * 2015-12-29 2016-05-04 四川中电启明星信息技术有限公司 基于kvm平台的虚拟机cpu资源预留算法
WO2016091140A1 (zh) * 2014-12-10 2016-06-16 中兴通讯股份有限公司 一种显示系统资源的方法及装置
WO2016173450A1 (zh) * 2015-04-28 2016-11-03 阿里巴巴集团控股有限公司 图形处理装置、资源服务装置、资源调度方法和装置
CN106209681A (zh) * 2016-06-28 2016-12-07 华为技术有限公司 一种队列管理方法和装置
CN103365702B (zh) * 2013-07-11 2017-02-08 中国科学院合肥物质科学研究院 IaaS云环境下轻量级虚拟机进程追踪系统和方法
CN106484598A (zh) * 2016-10-18 2017-03-08 珠海市魅族科技有限公司 一种终端内存的显示方法及显示装置
CN106528371A (zh) * 2016-10-26 2017-03-22 珠海市魅族科技有限公司 一种终端系统运行状态提醒方法及装置
CN107305487A (zh) * 2016-04-18 2017-10-31 北京万合鸿瑞科技有限公司 一种基于vmware虚拟化助手管理软件系统
CN107423110A (zh) * 2017-05-31 2017-12-01 郑州云海信息技术有限公司 一种基于libvirt的虚拟机实时监测方法及其装置
CN107918555A (zh) * 2017-11-23 2018-04-17 北京百度网讯科技有限公司 基于物理主机的用于处理数据的方法和装置
CN108399117A (zh) * 2018-02-28 2018-08-14 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN108874546A (zh) * 2018-06-26 2018-11-23 郑州云海信息技术有限公司 一种linux优化资源使用的系统及方法
WO2018214482A1 (zh) * 2017-05-24 2018-11-29 华为技术有限公司 一种虚拟机的监控方法和装置
CN110262875A (zh) * 2019-06-25 2019-09-20 苏州浪潮智能科技有限公司 基于补丁机制的Windows虚拟机与KVM宿主机的通信方法及系统
CN110462588A (zh) * 2017-04-01 2019-11-15 微软技术许可有限责任公司 虚拟机运行跟踪
CN111459687A (zh) * 2020-04-02 2020-07-28 北京明朝万达科技股份有限公司 一种监控宿主机向虚拟机传递文件的方法及系统
CN111831395A (zh) * 2020-07-09 2020-10-27 西安交通大学 一种行为监控分析方法与系统
CN111857237A (zh) * 2020-07-27 2020-10-30 山东超越数控电子股份有限公司 一种时钟同步方法、系统、设备以及介质
CN112269536A (zh) * 2020-10-16 2021-01-26 苏州浪潮智能科技有限公司 存储软件系统调优方法、装置及计算机可读存储介质
CN112639640A (zh) * 2018-09-05 2021-04-09 西门子股份公司 冗余热备控制系统、控制设备、冗余热备方法及计算机可读存储介质
US11994974B2 (en) 2016-10-20 2024-05-28 Microsoft Technology Licensing, Llc Recording a trace of code execution using reference bits in a processor cache
US12007873B2 (en) 2021-09-13 2024-06-11 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US8271976B2 (en) * 2004-06-30 2012-09-18 Microsoft Corporation Systems and methods for initializing multiple virtual processors within a single virtual machine

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561769B (zh) * 2009-05-25 2013-02-13 北京航空航天大学 一种基于多核平台虚拟机的进程迁移跟踪方法
CN101593134B (zh) * 2009-06-29 2012-05-30 北京航空航天大学 虚拟机cpu资源分配方法和装置
CN101630272B (zh) * 2009-08-19 2013-03-27 用友软件股份有限公司 进程调度方法和系统
CN101661381B (zh) * 2009-09-08 2012-05-30 华南理工大学 一种基于Xen的数据共享与访问控制方法
CN102096603B (zh) * 2009-12-14 2013-01-02 中国移动通信集团公司 MapReduce系统中的作业分解控制方法及设备
CN101854254A (zh) * 2010-05-10 2010-10-06 浪潮电子信息产业股份有限公司 一种监控服务器资源利用情况的方法
CN102314382A (zh) * 2010-07-06 2012-01-11 中兴通讯股份有限公司 一种紧急探查系统信息的方法及模块
CN102063585A (zh) * 2010-10-29 2011-05-18 华南理工大学 一种基于Xen的安全的虚拟磁盘的访问控制方法
US9114528B2 (en) 2011-07-13 2015-08-25 Kuka Roboter Gmbh Control system of a robot
CN102880064A (zh) * 2011-07-13 2013-01-16 库卡罗伯特有限公司 机器人控制装置
CN102957563A (zh) * 2011-08-16 2013-03-06 中国石油化工股份有限公司 Linux集群故障自动恢复方法和Linux集群故障自动恢复系统
CN102957563B (zh) * 2011-08-16 2016-07-06 中国石油化工股份有限公司 Linux集群故障自动恢复方法和Linux集群故障自动恢复系统
CN102591765A (zh) * 2011-12-31 2012-07-18 珠海市君天电子科技有限公司 一种进程自动管理系统
CN102891904A (zh) * 2012-09-07 2013-01-23 佳都新太科技股份有限公司 一种在集群系统里实现快速FailOver的方法
CN103019653A (zh) * 2012-11-27 2013-04-03 康佳集团股份有限公司 一种基于linux系统的内核消息分发方法
CN103019653B (zh) * 2012-11-27 2018-02-06 康佳集团股份有限公司 一种基于linux系统的内核消息分发方法
CN103870297A (zh) * 2012-12-14 2014-06-18 北京华胜天成科技股份有限公司 云计算环境中虚拟机的性能数据采集系统和方法
CN103870297B (zh) * 2012-12-14 2016-12-21 北京华胜天成科技股份有限公司 云计算环境中虚拟机的性能数据采集系统和方法
CN104008030A (zh) * 2013-02-27 2014-08-27 腾讯科技(深圳)有限公司 内核性能测试的方法及装置
WO2014186945A1 (zh) * 2013-05-21 2014-11-27 华为技术有限公司 实现物理资源和虚拟资源对应的方法和基础输入输出系统
CN103620558A (zh) * 2013-05-21 2014-03-05 华为技术有限公司 实现物理资源和虚拟资源对应的方法和基础输入输出系统
CN103365702B (zh) * 2013-07-11 2017-02-08 中国科学院合肥物质科学研究院 IaaS云环境下轻量级虚拟机进程追踪系统和方法
CN103440161A (zh) * 2013-08-15 2013-12-11 北京京东尚科信息技术有限公司 一种Java虚拟机内部对象监控方法、装置和系统
CN103544089B (zh) * 2013-10-13 2016-05-25 西安电子科技大学 基于Xen的操作系统识别方法
CN103544089A (zh) * 2013-10-13 2014-01-29 西安电子科技大学 基于Xen的操作系统识别方法
CN103593607A (zh) * 2013-11-26 2014-02-19 北京搜狐新媒体信息技术有限公司 宿主机与虚拟机文件系统隔离方法和装置
CN103593607B (zh) * 2013-11-26 2016-05-04 北京搜狐新媒体信息技术有限公司 宿主机与虚拟机文件系统隔离方法和装置
CN103729254A (zh) * 2013-12-31 2014-04-16 国网山东省电力公司 一种虚拟服务器Virtual CPU资源监测及动态分配方法
CN105138388B (zh) * 2014-06-09 2019-07-23 腾讯科技(深圳)有限公司 虚拟机监控方法及装置
CN105138388A (zh) * 2014-06-09 2015-12-09 腾讯科技(深圳)有限公司 虚拟机监控方法及装置
WO2016091140A1 (zh) * 2014-12-10 2016-06-16 中兴通讯股份有限公司 一种显示系统资源的方法及装置
WO2016173450A1 (zh) * 2015-04-28 2016-11-03 阿里巴巴集团控股有限公司 图形处理装置、资源服务装置、资源调度方法和装置
CN104881347A (zh) * 2015-05-26 2015-09-02 山东蚁巡网络科技有限公司 一种通用的虚拟化监控展示方法
CN105159739A (zh) * 2015-08-24 2015-12-16 上海斐讯数据通信技术有限公司 一种linux保存应用程序编译信息的方法
CN105550040B (zh) * 2015-12-29 2019-06-14 四川中电启明星信息技术有限公司 基于kvm平台的虚拟机cpu资源预留算法
CN105550040A (zh) * 2015-12-29 2016-05-04 四川中电启明星信息技术有限公司 基于kvm平台的虚拟机cpu资源预留算法
CN107305487A (zh) * 2016-04-18 2017-10-31 北京万合鸿瑞科技有限公司 一种基于vmware虚拟化助手管理软件系统
US10951551B2 (en) 2016-06-28 2021-03-16 Huawei Technologies Co., Ltd. Queue management method and apparatus
CN106209681A (zh) * 2016-06-28 2016-12-07 华为技术有限公司 一种队列管理方法和装置
CN106484598A (zh) * 2016-10-18 2017-03-08 珠海市魅族科技有限公司 一种终端内存的显示方法及显示装置
US11994974B2 (en) 2016-10-20 2024-05-28 Microsoft Technology Licensing, Llc Recording a trace of code execution using reference bits in a processor cache
CN106528371A (zh) * 2016-10-26 2017-03-22 珠海市魅族科技有限公司 一种终端系统运行状态提醒方法及装置
US11915028B2 (en) 2017-04-01 2024-02-27 Microsoft Technology Licensing, Llc Virtual machine execution tracing
CN110462588B (zh) * 2017-04-01 2023-09-05 微软技术许可有限责任公司 虚拟机运行跟踪
CN110462588A (zh) * 2017-04-01 2019-11-15 微软技术许可有限责任公司 虚拟机运行跟踪
WO2018214482A1 (zh) * 2017-05-24 2018-11-29 华为技术有限公司 一种虚拟机的监控方法和装置
CN107423110A (zh) * 2017-05-31 2017-12-01 郑州云海信息技术有限公司 一种基于libvirt的虚拟机实时监测方法及其装置
CN107918555A (zh) * 2017-11-23 2018-04-17 北京百度网讯科技有限公司 基于物理主机的用于处理数据的方法和装置
CN107918555B (zh) * 2017-11-23 2021-07-23 北京百度网讯科技有限公司 基于物理主机的用于处理数据的方法和装置
CN108399117A (zh) * 2018-02-28 2018-08-14 迈普通信技术股份有限公司 一种处理器占用率显示方法及装置
CN108874546A (zh) * 2018-06-26 2018-11-23 郑州云海信息技术有限公司 一种linux优化资源使用的系统及方法
CN112639640A (zh) * 2018-09-05 2021-04-09 西门子股份公司 冗余热备控制系统、控制设备、冗余热备方法及计算机可读存储介质
CN110262875A (zh) * 2019-06-25 2019-09-20 苏州浪潮智能科技有限公司 基于补丁机制的Windows虚拟机与KVM宿主机的通信方法及系统
CN110262875B (zh) * 2019-06-25 2021-04-27 苏州浪潮智能科技有限公司 基于补丁机制的Windows虚拟机与KVM宿主机的通信方法及系统
CN111459687A (zh) * 2020-04-02 2020-07-28 北京明朝万达科技股份有限公司 一种监控宿主机向虚拟机传递文件的方法及系统
CN111459687B (zh) * 2020-04-02 2023-06-16 北京明朝万达科技股份有限公司 一种监控宿主机向虚拟机传递文件的方法及系统
CN111831395A (zh) * 2020-07-09 2020-10-27 西安交通大学 一种行为监控分析方法与系统
CN111831395B (zh) * 2020-07-09 2024-01-09 西安交通大学 一种行为监控分析方法与系统
CN111857237B (zh) * 2020-07-27 2023-09-08 超越科技股份有限公司 一种时钟同步方法、系统、设备以及介质
CN111857237A (zh) * 2020-07-27 2020-10-30 山东超越数控电子股份有限公司 一种时钟同步方法、系统、设备以及介质
CN112269536A (zh) * 2020-10-16 2021-01-26 苏州浪潮智能科技有限公司 存储软件系统调优方法、装置及计算机可读存储介质
US12007873B2 (en) 2021-09-13 2024-06-11 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis

Also Published As

Publication number Publication date
CN101403983B (zh) 2010-10-13

Similar Documents

Publication Publication Date Title
CN101403983B (zh) 基于虚拟机的多核处理器的资源监控方法及系统
Ustiugov et al. Benchmarking, analysis, and optimization of serverless function snapshots
US10353725B2 (en) Request processing techniques
US11093270B2 (en) Fast-booting application image
Patel et al. Embedded hypervisor xvisor: A comparative analysis
CN101681269B (zh) 多虚拟化技术的自适应动态选择与应用
LiKamWa et al. Starfish: Efficient concurrency support for computer vision applications
US7516453B1 (en) Binary translator with precise exception synchronization mechanism
US10277477B2 (en) Load response performance counters
Saez et al. PMCTrack: Delivering performance monitoring counter support to the OS scheduler
US8972702B2 (en) Systems and methods for power management in a high performance computing (HPC) cluster
US20180341510A1 (en) Virtual processor scheduling via memory monitoring
Pellegrini et al. Autonomic state management for optimistic simulation platforms
US11579918B2 (en) Optimizing host CPU usage based on virtual machine guest OS power and performance management
CN102073535B (zh) 基于硬件计数器虚拟化的多虚拟机性能分析方法
Wang et al. Enabling cross-isa offloading for cots binaries
US20200267071A1 (en) Traffic footprint characterization
CN101848549B (zh) 无线传感器网络节点任务调度方法
Olivier et al. Hexo: Offloading hpc compute-intensive workloads on low-cost, low-power embedded systems
US20070288912A1 (en) Methods and apparatus to provide a managed runtime environment in a sequestered partition
CN114077379A (zh) 一种计算机设备、异常处理的方法以及中断处理的方法
KR20110050230A (ko) 가상화 시스템 및 그것의 명령어 실행 방법
CN101876918A (zh) 虚拟机客户操作系统同步任务感知方法
US8429218B2 (en) Process restart on a compute node
Heo et al. Implementing an application-specific instruction-set processor for system-level dynamic program analysis engines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101013

Termination date: 20131125