CN116880962A - 确定虚拟机管理器延迟信息的方法、装置、设备及车辆 - Google Patents
确定虚拟机管理器延迟信息的方法、装置、设备及车辆 Download PDFInfo
- Publication number
- CN116880962A CN116880962A CN202310960276.3A CN202310960276A CN116880962A CN 116880962 A CN116880962 A CN 116880962A CN 202310960276 A CN202310960276 A CN 202310960276A CN 116880962 A CN116880962 A CN 116880962A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- machine manager
- determining
- time
- memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 141
- 230000015654 memory Effects 0.000 claims abstract description 125
- 230000008569 process Effects 0.000 claims abstract description 93
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 239000002184 metal Substances 0.000 claims description 7
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005291 magnetic effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种确定虚拟机管理器延迟信息的方法、装置、设备及车辆,上述确定虚拟机管理器延迟信息的方法包括:监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程;根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息。诸如:进行物理内存分配的延迟信息、进行物理CPU资源调度的延迟信息等,能够实现对type1型或其他类型的虚拟机管理器的资源调度性能统计,有助于满足在虚拟机中直观呈现虚拟机管理器的资源调度过程对虚拟机的影响这一精细化需求。
Description
技术领域
本公开涉及计算机虚拟化技术领域,尤其涉及一种确定虚拟机管理器延迟信息的方法、装置、设备及车辆。
背景技术
虚拟化技术是指将硬件物理资源进行逻辑划分并通过资源调度实现物理资源的有效利用。虚拟化技术可广泛应用于数据中心、云计算、网络安全和智能汽车等领域。
相关技术中,利用虚拟机管理器(VMM)来进行虚拟机的管理和资源调度。例如可以通过在计算机系统中部署Type 1型虚拟机管理器或Type 2型虚拟机管理器,实现对虚拟机的管理和对物理资源的调度。Type1型虚拟机管理器可以直接安装在裸机系统或物理主机上,不需要先安装可用的操作系统,便能够将自身部署在服务器上。Type 2型虚拟机管理器首先需要安装可用的操作系统,然后基于操作系统将自身部署在服务器上,不能直接安装在裸机系统或物理主机上。
发明人在研发中发现:虚拟机管理器作为支撑虚拟机运行的资源调度者,其运行状态对于虚拟机而言非常重要,然而相关技术中针对在裸机系统或物理主机上的部署Type1型虚拟机管理器而言,缺乏虚拟机管理器的资源调度性能统计,导致无法满足在虚拟机中直观呈现虚拟机管理器的资源调度过程对虚拟机的影响这一精细化需求。相较于Type 2型虚拟机管理器而言,Type1型虚拟机管理器没有操作系统作为依托,实现难度较大。
发明内容
为克服相关技术中存在的问题,本公开实施例提供一种确定虚拟机管理器延迟信息的方法、装置、设备及车辆。
根据本公开实施例的第一方面,提供一种确定虚拟机管理器延迟信息的方法。上述方法包括:监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程;根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息。
在一些实施例中,上述分配过程包括:上述虚拟机管理器为第一虚拟机分配物理内存资源对应的内存访问分配过程。根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息,包括:根据上述内存访问分配过程,确定构建内存映射关系的耗时信息;上述内存映射关系为上述物理内存资源中物理地址与上述第一虚拟机的虚拟机物理地址之间的映射关系;将上述耗时信息确定为上述虚拟机管理器对上述第一虚拟机产生的内存访问延迟信息。
在一些实施例中,根据上述内存访问分配过程,确定构建内存映射关系的耗时信息,包括:在上述第一虚拟机的用户态进程进行内存访问而触发异常的状态下,上述虚拟机管理器执行虚拟地址访问异常处理流程;记录上述虚拟机管理器开始执行虚拟地址访问异常处理流程的起始时间;记录上述虚拟机管理器在上述虚拟地址访问异常处理流程中构建完成上述内存映射关系的结束时间;计算上述结束时间与上述起始时间的时间差,上述时间差作为上述耗时信息。
在一些实施例中,上述分配过程包括:上述虚拟机管理器为第二虚拟机调度物理CPU资源对应的CPU调度过程;根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息,包括:根据上述CPU调度过程,确定上述第二虚拟机的虚拟CPU进入到调度队列与上述虚拟CPU被上述虚拟机管理器选中执行之间的时间间隔;根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息。
在一些实施例中,根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息,包括:将上述时间间隔确定为上述调度延迟信息;或者,统计上述虚拟CPU从等待状态切换为执行状态对应的上下文切换时间,将上述上下文切换时间与上述时间间隔的加和确定为上述调度延迟时间。
在一些实施例中,上述虚拟机管理器为在裸机上运行的type1型虚拟机管理器。上述方法还包括:创建共享内存空间,上述共享内存空间与每个虚拟机所对应,用于在上述虚拟机管理器和对应的虚拟机之间传递信息;将上述延迟信息存储于上述共享内存空间,上述延迟信息由上述虚拟机进行读取和展示。
根据本公开实施例的第二方面,提供一种确定虚拟机管理器延迟信息的装置。上述装置包括:监测模块和延迟确定模块。上述监测模块用于监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程。上述延迟确定模块用于根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;上述处理器,用于从上述存储器中读取上述可执行指令,并执行上述可执行指令以实现本公开第一方面所提供的确定虚拟机管理器延迟信息的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现本公开第一方面所提供的确定虚拟机管理器延迟信息的方法。
根据本公开实施例的第五方面,提供一种车辆,存储有一组指令集,上述指令集被上述车辆执行,以实现本公开第一方面所提供的确定虚拟机管理器延迟信息的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过对虚拟机管理器的分配过程进行监测,该分配过程可以涵盖虚拟机管理器为一个或多个虚拟机分配物理CPU、物理内存、网络或硬盘等至少一类资源,通过对分配过程的监测,能够得到虚拟机管理器在执行分配过程中的耗时,通过根据监测到的执行分配过程的耗时可以精细化计算得到进行某种资源分配的延迟信息,诸如:进行物理内存分配的延迟信息、进行物理CPU资源调度的延迟信息等,实现对虚拟机管理器的资源调度性能统计,有助于满足在虚拟机中直观呈现虚拟机管理器的资源调度过程对虚拟机的影响这一精细化需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的确定虚拟机管理器延迟信息的方法的流程图。
图2是根据一示例性实施例示出的确定虚拟机管理器延迟信息的方法的实施过程示意图。
图3是根据一示例性实施例示出的步骤S120中确定内存访问延迟信息的实施流程图。
图4是根据一示例性实施例示出的步骤S120中确定调度延迟信息的实施流程图。
图5是根据另一示例性实施例示出的确定虚拟机管理器延迟信息的方法的流程图。
图6是根据一示例性实施例示出的确定虚拟机管理器延迟信息的装置的框图。
图7是根据一示例性实施例示出的车辆的框图。
图8是根据一示例性实施例示出的电子设备的框图。
具体实施方式
下面将结合附图详细地对示例性实施例进行描述说明。
应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。
应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。
应当指出,本公开中所用术语“一个”、“多个”、“至少一个”的修饰是示意性而非限制性的。除非在上下文另有明确指出,否则应该理解为“一个或多个”。
应当指出,本公开中所用术语“和/或”,用于描述关联对象之间的关联关系,一般表示至少存在三种关联关系。例如,A和/或B,至少可以表示:单独存在A,同时存在A和B,单独存在B这三种关联关系。
应当指出,本公开的方法实施例中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。除非特别说明,本公开的范围不受相关实施例中步骤的描述顺序限制。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
技术用语说明
虚拟机(Virtual Machine),是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机(也称物理计算机)中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。
虚拟机管理器(VMM),虚拟机管理器用于对虚拟机的运行资源进行调度,包括内存管理、进行不同优先级的虚拟机的线程调度处理。
虚拟化抽象逻辑层(virtiogvic)是半虚拟化管理程序(hypervisor)中位于设备之上的抽象层。虚拟化抽象逻辑层分为四层,包括前端guest中各种驱动程序模块,后端Hypervisor上的处理程序模块,中间用于前后端通信的virtio层和virtio-ring层,virtio这一层实现的是虚拟队列接口,作为前后端通信的桥梁。
Type1型虚拟机管理器:也称裸机虚拟机管理器,与底层物理资源进行交互,完全取代传统的操作系统。虚拟机管理器是用于协调虚拟机的软件层,它充当虚拟机与底层物理硬件之间的接口,确保每个虚拟机都有权访问它执行任务所需的物理资源。
Type 2型虚拟机管理器:该类型的虚拟机管理器是需要依托于操作系统进行部署的,首先需要安装可用的操作系统,然后基于操作系统将自身部署在服务器上,不能直接安装在裸机系统或物理主机上。
示例性方法
图1是根据一示例性实施例示出的确定虚拟机管理器延迟信息的方法的流程图。
参照图1所示,本公开实施例提供的确定虚拟机管理器延迟信息的方法,包括以下步骤:S110和S120。
上述方法可以由部署有虚拟机和虚拟机管理器的电子设备执行。该电子设备包括但不限于是:计算机、车辆(例如为智能汽车)、手机、智能手表、智能手环、提供云服务的服务端等。
本实施例提供的方法可以应用于Type1型虚拟机管理器,能解决在Type1型虚拟机管理器缺乏资源调度性能统计的问题,以满足在虚拟机中直观呈现虚拟机管理器的资源调度过程对虚拟机的影响这一精细化需求。
可以理解的是,尽管本公开实施例提供的方案是为了解决Type1型虚拟机管理器存在的问题,不表示本公开实施例提供的方案仅局限于应用于这种类型的虚拟机管理器。实际上,也可以将本公开实施例提供的方法应用于其他类型的虚拟机管理器,例如作为一种可行的方式可以应用至Type2型虚拟机管理器。
在步骤S110,监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程。
图2是根据一示例性实施例示出的确定虚拟机管理器延迟信息的方法的实施过程示意图。
参照图2所示,硬件资源包含但不限于是:物理CPU(例如图2示例的cpu0、cpu1、cpu2和cpu3)、内存(memory)等。
在图2中示意了3个虚拟机,分别表示为虚拟机VM0、虚拟机VM1和虚拟机VM2;还示意了虚拟CPU(vcpu),vcpu是虚拟机在创建时所配置的运算资源,虚拟机管理器如何调度vcpu,取决于虚拟机数量以及虚拟机配置的vcpu的情况。vcpu与物理核的分配关系可以是预先定义为绑定好的,也可以是根据实际使用情况而动态变化的。
在图2中以每个虚拟机上配置有两个虚拟cpu为例,虚拟机VM0配置的两个vcpu分别表示为vcpu0和vcpu1,虚拟机VM1配置的两个vcpu分别表示为vcpu2和vcpu3,虚拟机VM2配置的两个vcpu分别表示为vcpu4和vcpu5。这些虚拟CPU相当于虚拟机对应的系统中的运算处理器,例如作为虚拟机中的cpu0和cpu1(实际上为虚拟CPU),这些vcpu上可以运行一个或多个线程,这些线程用于虚拟机的任务处理。
在一些实施例中,在虚拟机所需的vcpu总数少于物理CPU的核数(包括超线程内核)的情况下,虚拟机管理器为vcpu分配的资源不超过一个物理CPU核。
在一些实施例中,虚拟机所需要的vcpu核大于物理CPU核数的情况下,虚拟机管理器可以按照时间片轮流调度一遍,如果还有剩余的CPU资源,就调度给所需要的vcpu。例如在图2示例的情形下,只有4个物理核,所需的vcpu一共有6个,分别为vcpu0~vcpu5,那么按照时间片均匀划分,每个vcpu会获取一个物理核66.7%(2/3)的资源。在实际使用中,可能会存在一些vcpu在划分的时间片内提前执行完任务,或者有的vcpu在所划分的时间片内运行相应线程时被更高优先级的线程(其他vcpu的线程或者当前vcpu的其他线程)所抢占,则虚拟机管理器会动态调度各个vcpu的资源分配。
在步骤S110中,通过对虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程中进行监测,能够动态捕获虚拟机管理器在执行硬件资源分配过程的耗时。
在步骤S120中,根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息。
在包含步骤S110~S120的实施例中,通过对虚拟机管理器的分配过程进行监测,该分配过程可以涵盖虚拟机管理器为一个或多个虚拟机分配物理CPU、物理内存、网络或硬盘等至少一类资源,通过对分配过程的监测,能够得到虚拟机管理器在执行分配过程中的耗时,通过根据监测到的执行分配过程的耗时可以精细化计算得到进行某种资源分配的延迟信息,诸如:进行物理内存分配的延迟信息、进行物理CPU资源调度的延迟信息等,实现对虚拟机管理器的资源调度性能统计,有助于满足在虚拟机中直观呈现虚拟机管理器的资源调度过程对虚拟机的影响这一精细化需求。
在一些实施例中,上述虚拟机管理器为在裸机上运行的type1型虚拟机管理器。
上述确定虚拟机管理器延时信息的方法除了包括上述步骤S110和S120之外,还包括:创建共享内存空间,上述共享内存空间与每个虚拟机所对应,用于在上述虚拟机管理器和对应的虚拟机之间传递信息;将上述延迟信息存储于上述共享内存空间,上述延迟信息由上述虚拟机进行读取和展示。
例如参照图2所示,虚拟机VM0的共享内存空间为shm0,虚拟机VM1的共享内存空间为shm1,虚拟机VM2的共享内存空间为shm2,虚拟机管理器VMM得到的延迟信息通过上述共享内存空间传递给对应的虚拟机。
在一些实施例中,虚拟机会定期去访问共享存空间中的数据;由于统计时段内延迟信息对应的数据可能较多,可以选取统计时段内的延迟信息的最大值、平均值或中位数等进行展示,以精炼化显示效果,突出重点延迟信息进行展示;同时在虚拟机从共享内存空间读取数据进行展示并备份数据后,为了节约共享内存空间的内存,还可以清理掉共享内存空间中的对应数据。
图3是根据一示例性实施例示出的步骤S120中确定内存访问延迟信息的实施流程图。
在一些实施例中,上述分配过程包括:上述虚拟机管理器为第一虚拟机分配物理内存资源对应的内存访问分配过程。
参照图3所示,上述步骤S120中,根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息,包括以下步骤:S310和S320。
在步骤S310,根据上述内存访问分配过程,确定构建内存映射关系的耗时信息;上述内存映射关系为上述物理内存资源中物理地址与上述第一虚拟机的虚拟机物理地址之间的映射关系。
对于虚拟机而言,也像物理机一样,存在逻辑地址和物理地址。参照图2所示,虚拟机的物理地址并不是真正的物理地址,而是由虚拟机管理器提供的一个虚拟的中间物理地址(IPA),该中间物理地址对于虚拟机而言,作为虚拟机物理内存(GPA);对于物理机而言,该中间物理地址作为物理机的虚拟内存(HVA)。
在虚拟机管理器进行内存访问分配的过程中,虚拟机从虚拟内存(GVA)访问自己的物理地址(GPA)会触发异常,并由虚拟机管理器构建虚拟机物理地址(GPA)与物理内存资源的物理地址(HPA)之间的映射关系。
在一些实施例中,上述步骤S310中,根据上述内存访问分配过程,确定构建内存映射关系的耗时信息,包括:在上述第一虚拟机的用户态进程进行内存访问而触发异常的状态下,上述虚拟机管理器执行虚拟地址访问异常处理流程;记录上述虚拟机管理器开始执行虚拟地址访问异常处理流程的起始时间;记录上述虚拟机管理器在上述虚拟地址访问异常处理流程中构建完成上述内存映射关系的结束时间;计算上述结束时间与上述起始时间的时间差,上述时间差作为上述耗时信息。
例如,虚拟机管理器执行的虚拟地址访问异常处理流程对应可以采用异常处理函数表示,例如为EL2异常处理函数。在操作系统里,处理器运行模式通常分成两种:一种是特权模式,另外一种是非特权模式。操作系统内核运行在特权模式,能够访问系统的所有资源;而应用程序运行在非特权模式,对于系统的某些资源是不能访问的(访问受限)。以ARM64的CPU架构为例,该架构支持虚拟化扩展以及安全模式的扩展,例如支持4种异常等级:EL0~EL2,EL0为非特权模式,用于运行应用程序;EL1为特权模式,用于运行操作系统内核;EL2用于运行虚拟化管理程序;EL3用于运行安全的管理程序。
在一些实施例中,将虚拟机管理器开始执行虚拟地址访问异常流程的起始时间表示为t11,构建完成内存映射关系的结束时间表示为t12,则结束时间t12减去起始时间t11得到的时间差就是耗时信息。
在步骤S320,将上述耗时信息确定为上述虚拟机管理器对上述第一虚拟机产生的内存访问延迟信息。
在包含步骤S310~S320的实施例中,在虚拟机访问自己的物理地址空间(GPA)时,实际上虚拟机物理地址空间是虚拟机管理器VMM提供的一块虚拟的中间物理地址(IPA),被虚拟机作为自己的物理地址。实际上这个中间物理地址并没有真正的映射物理地址,通过触发异常的方式在虚拟机管理器中建立相应的映射关系,从而使虚拟机正当访问虚拟机物理内存,因此会在内存访问时导致一定的延迟,这一延迟的主要来源是构建内存映射关系所产生的时间,因此通过对构建内存映射关系的耗时信息进行监测和统计,便能得到内存访问延迟信息。
图4是根据一示例性实施例示出的步骤S120中确定调度延迟信息的实施流程图。
在一些实施例中,上述分配过程包括:上述虚拟机管理器为第二虚拟机调度物理CPU资源对应的CPU调度过程。
第二虚拟机和第一虚拟机可以是相同的虚拟机或不同的虚拟机。
参照图4所示,上述步骤S120中,根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息,包括以下步骤:S410和S420。
在步骤S410,根据上述CPU调度过程,确定上述第二虚拟机的虚拟CPU进入到调度队列与上述虚拟CPU被上述虚拟机管理器选中执行之间的时间间隔。
在一些实施例中,将第二虚拟机的每个虚拟CPU(vcpu)进入到调度队列的时刻表示为t21,每个虚拟CPU被虚拟机管理器选中执行调度的时刻表示为t22,可以通过监测得到每个虚拟CPU进入到调度队列的时刻t21和被选中执行调度的时刻t22,计算每个虚拟CPU的t21和t22的差值作为上述时间间隔。其中,监测得到t21和t22的具体方式可以是:对调度队列中的进程出入时间进行监测;vcpu在虚拟机管理器中是以进程的形式存在,当vcpu被添加到物理cpu的就绪队列(作为调度队列的一种示例)中,记录添加的时刻为t21,此时vcpu等待被调度,等到虚拟机管理器基于调度器或调度模块选中该vcpu开始执行调度,记录选中开始执行调度的时刻为t22。基于虚拟机管理器的统计模块,计算t22减去t21的差值作为时间间隔。时间可以是通过接口函数获取的系统时间。
在步骤S420,根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息。
在一些实施例中,上述步骤S420中,根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息,包括:将上述时间间隔确定为上述调度延迟信息。
在一些实施例中,调度延迟信息是针对第二虚拟机的一个或多个vcpu而言的,如果第二虚拟机的多个vcpu均存在调度延迟,则可以采用步骤S410中的方式计算得到多个vcpu在调度过程中产生的时间间隔,将多个vcpu的时间间隔采用统计的方式得到第二虚拟机的调度延迟信息;例如将多个vcpu的时间间隔的平均值、加权平均值、最大值或中位数等作为第二虚拟机整体的时间间隔,然后将该整体的时间间隔作为调度延迟信息。
或者,按照后面要描述的方式,再针对每个vcpu加入上下文切换时间,然后将多个vcpu的调度延迟信息的统计结果(多个vcpu的调度延迟信息的最大值、平均值、加权平均值或中位数等)作为第二虚拟机的调度延迟信息。上述加权平均值对应的权重可以是按照vcpu对应执行的任务重要程度、任务优先级程度等进行分配。
在其他实施例中,调度延迟信息也可以是呈现更细粒度的角度,按照第二虚拟机中每个vcpu进行调度延迟信息的统计和呈现,而不针对多个vcpu计算统计结果。
在另一些实施例中,考虑到进程或线程进行切换还需要耗费一定的时间,因此为了统计更为精准,上述步骤S420中,根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息,包括:统计上述虚拟CPU从等待状态切换为执行状态对应的上下文切换时间,将上述上下文切换时间与上述时间间隔的加和确定为上述调度延迟时间。
本实施例中,从一个进程或线程的执行暂停(或挂起)状态到另一个进程或线程开始执行状态之间需要完成上下文切换,即需要完成新地址空间的切换、寄存器相关信息的切换,包括vgic、timer寄存器等的切换所耗费的时间,这个时间可以通过统计上下文切换函数切换执行开始和切换完成时刻之间的时间差值得到。
例如,可以通过监测当前vcpu进程或线程开始执行上下文保存的第一时刻和当前vcpu切换成另一个抢占的目标进程或线程(例如更高优先级的vcpu进程或线程)的第二时刻,确定第一时刻与第二时刻之间的时间间隔作为上下文切换时间。例如以linux系统作为示例,上下文切换函数为context_switch,该上下文切换函数具有以下功能:保存当前vcpu进程或线程的上下文;更新页表和任务切换;加载目标进程或线程的上下文;切换到目标进程或线程执行。可以通过监测上下文切换函数被调用的时机作为第一时刻,上下文切换函数切换到目标进程的时机作为第二时刻。
进程是由内核来管理和调度的,进程的切换只能发生在内核态,因此进程的上下文不仅包括虚拟内存、栈、全局变量等用户空间的资源,还包括内核堆栈、寄存器等内核空间的状态。
线程的上下文切换分为两种情况,一种是前后两个线程属于不同进程,此时,因为资源不共享,所以线程的上下文切换过程就跟进程上下文切换是一样。另一种是前后两个线程属于同一个进程,此时,因为虚拟内存是共享的,所以在切换时,虚拟内存这些资源就保持不动,只需要切换线程的私有数据、寄存器等不共享的数据。
图5是根据另一示例性实施例示出的确定虚拟机管理器延迟信息的方法的流程图。
参照图5所示,在包含步骤S110、S410和S420的实施例中,上述方法还包括以下步骤:S510、S520和S530。
在步骤S510,在上述时间间隔大于设定阈值的情况下,针对上述时间间隔内的时段,确定上述调度队列中在上述虚拟CPU之前被选中执行调度的目标虚拟CPU。
在步骤S520,获取上述目标虚拟CPU的任务运行信息。
在步骤S530,将上述任务运行信息传递给上述目标虚拟CPU所在的目标虚拟机。
在本实施例中,针对调度延迟的情形,在t21和t22之间的时间间隔大于设定阈值的情况下,在t21~t22的时段内,在调度队列中存在优先被调度执行的目标vcpu,通过对目标vcpu的任务运行信息获取并可以通过上述共享内存空间来实现该任务运行信息向目标虚拟机的传递,这样一来在调度延迟超过一定程度的情况下会在引起较大程度调度延迟的目标vcpu对应的目标虚拟机上显示对应的任务运行信息和抢占状态,从而便于系统架构设计人员或者运维人员等进行相关任务调度优先级或者相关过程的优化,以提升虚拟机处理性能或资源利用率等。
示例性装置
图6是根据一示例性实施例示出的确定虚拟机管理器延迟信息的装置的框图。
参照图6所示,本公开实施例提供的确定虚拟机管理器延迟信息的装置600包括:监测模块610和延迟确定模块620。
上述监测模块610用于监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程。
上述延迟确定模块620用于根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息。
在一些实施例中,上述分配过程包括:上述虚拟机管理器为第一虚拟机分配物理内存资源对应的内存访问分配过程。根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息,包括:根据上述内存访问分配过程,确定构建内存映射关系的耗时信息;上述内存映射关系为上述物理内存资源中物理地址与上述第一虚拟机的虚拟机物理地址之间的映射关系;将上述耗时信息确定为上述虚拟机管理器对上述第一虚拟机产生的内存访问延迟信息。
在一些实施例中,根据上述内存访问分配过程,确定构建内存映射关系的耗时信息,包括:在上述第一虚拟机的用户态进程进行内存访问而触发异常的状态下,上述虚拟机管理器执行虚拟地址访问异常处理流程;记录上述虚拟机管理器开始执行虚拟地址访问异常处理流程的起始时间;记录上述虚拟机管理器在上述虚拟地址访问异常处理流程中构建完成上述内存映射关系的结束时间;计算上述结束时间与上述起始时间的时间差,上述时间差作为上述耗时信息。
在一些实施例中,上述分配过程包括:上述虚拟机管理器为第二虚拟机调度物理CPU资源对应的CPU调度过程;根据执行上述分配过程的耗时,确定上述虚拟机管理器针对上述至少一个虚拟机产生的延迟信息,包括:根据上述CPU调度过程,确定上述第二虚拟机的虚拟CPU进入到调度队列与上述虚拟CPU被上述虚拟机管理器选中执行之间的时间间隔;根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息。
在一些实施例中,根据上述时间间隔,确定上述虚拟机管理器对上述第二虚拟机产生的调度延迟信息,包括:将上述时间间隔确定为上述调度延迟信息;或者,统计上述虚拟CPU从等待状态切换为执行状态对应的上下文切换时间,将上述上下文切换时间与上述时间间隔的加和确定为上述调度延迟时间。
在一些实施例中,上述装置600还包括:创建模块。上述创建模块用于创建共享内存空间,上述共享内存空间与每个虚拟机所对应,用于在上述虚拟机管理器和对应的虚拟机之间传递信息;将上述延迟信息存储于上述共享内存空间,上述延迟信息由上述虚拟机进行读取和展示。
第一个实施例中的具体细节、有益效果以及更多的实施例等内容可以全部并入至本实施例,这里不再赘述。
示例性车辆
图7是根据一示例性实施例示出的车辆的框图。
参照图7所示,该车辆700可以是燃油车辆、混合动力车辆、电动车辆、燃料电池车辆或者其他类型的车辆。车辆700中部署有虚拟机和虚拟机管理器,还包括多个子系统,例如,驱动系统710、控制系统720、感知系统730、通信系统740、信息显示系统750以及计算处理系统760,计算处理系统750可以是基于虚拟机实现。车辆700还可以包括更多或更少的子系统,且各个子系统还可以包括多个部件,在此不一一赘述。
该驱动系统710,包括为车辆700提供动力运动的组件。例如,发动机、能量源、传动装置等。
该控制系统720,包括为车辆700提供控制的组件。例如,车辆控制、座舱设备控制、驾驶辅助控制等。
该感知系统730,包括为车辆700提供周边环境感知的组件。例如,车辆定位系统、激光传感器、语音传感器、超声波传感器、摄像设备等。
该通信系统740,包括为车辆700提供通信连接的组件。例如,移动通信网络(如,3G、4G、5G网络等)、WiFi、蓝牙、车联网等。
该信息显示系统750,包括为车辆700提供各种信息显示的组件。例如,车辆信息显示、导航信息显示、娱乐信息显示等。
该计算处理系统760,包括为车辆700提供数据计算和处理能力的组件。计算处理系统760可包括至少一个处理器761和存储器762。处理器761可以执行存储在存储器762中的指令。
处理器761可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGate Array,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。
存储器762可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本公开实施例中,存储器762中存储有一组指令集,处理器761可以执行该指令集,以实现上述示例性实施例中任一所述的确定虚拟机管理器延迟信息的方法的全部或部分步骤。
示例性电子设备
图8是根据一示例性实施例示出的电子设备的框图。
参照图8所示,该电子设备800可以是车辆控制器、车辆服务器(包括云服务器)、车载终端、车载计算机或者其他类型的电子设备。电子设备800,可包括至少一个处理器810和存储器820。处理器810可以执行存储在存储器820中的指令。处理器810通过数据总线与存储器820通信连接。除存储器820外,处理器810还可通过数据总线与输入设备830、输出设备840、通信设备850通信连接。
处理器810可以是任何常规的处理器,诸如商业可获得的CPU。处理器还可以包括诸如图像处理器(Graphic Process Unit,GPU),现场可编程门阵列(Field ProgrammableGate Array,FPGA)、片上系统(System on Chip,SOC)、专用集成芯片(ApplicationSpecific Integrated Circuit,ASIC)或它们的组合。
存储器820可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本公开实施例中,存储器820中存储有可执行指令,处理器810可以从所述存储器820中读取所述可执行指令,并执行所述指令以实现上述示例性实施例中任一所述的确定虚拟机管理器延迟信息的方法的全部或部分步骤。
示例性计算机可读存储介质
除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质。该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一方法中描述的全部或部分步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言以及脚本语言(例如Python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种确定虚拟机管理器延迟信息的方法,其特征在于,包括:
监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程;
根据执行所述分配过程的耗时,确定所述虚拟机管理器针对所述至少一个虚拟机产生的延迟信息。
2.根据权利要求1所述的方法,其特征在于,所述分配过程包括:所述虚拟机管理器为第一虚拟机分配物理内存资源对应的内存访问分配过程;
根据执行所述分配过程的耗时,确定所述虚拟机管理器针对所述至少一个虚拟机产生的延迟信息,包括:
根据所述内存访问分配过程,确定构建内存映射关系的耗时信息;所述内存映射关系为所述物理内存资源中物理地址与所述第一虚拟机的虚拟机物理地址之间的映射关系;
将所述耗时信息确定为所述虚拟机管理器对所述第一虚拟机产生的内存访问延迟信息。
3.根据权利要求2所述的方法,其特征在于,根据所述内存访问分配过程,确定构建内存映射关系的耗时信息,包括:
在所述第一虚拟机的用户态进程进行内存访问而触发异常的状态下,所述虚拟机管理器执行虚拟地址访问异常处理流程;
记录所述虚拟机管理器开始执行虚拟地址访问异常处理流程的起始时间;
记录所述虚拟机管理器在所述虚拟地址访问异常处理流程中构建完成所述内存映射关系的结束时间;
计算所述结束时间与所述起始时间的时间差,所述时间差作为所述耗时信息。
4.根据权利要求1所述的方法,其特征在于,所述分配过程包括:所述虚拟机管理器为第二虚拟机调度物理CPU资源对应的CPU调度过程;
根据执行所述分配过程的耗时,确定所述虚拟机管理器针对所述至少一个虚拟机产生的延迟信息,包括:
根据所述CPU调度过程,确定所述第二虚拟机的虚拟CPU进入到调度队列与所述虚拟CPU被所述虚拟机管理器选中执行之间的时间间隔;
根据所述时间间隔,确定所述虚拟机管理器对所述第二虚拟机产生的调度延迟信息。
5.根据权利要求4所述的方法,其特征在于,根据所述时间间隔,确定所述虚拟机管理器对所述第二虚拟机产生的调度延迟信息,包括:
将所述时间间隔确定为所述调度延迟信息;或者,
统计所述虚拟CPU从等待状态切换为执行状态对应的上下文切换时间,将所述上下文切换时间与所述时间间隔的加和确定为所述调度延迟时间。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述虚拟机管理器为在裸机上运行的type1型虚拟机管理器;
所述方法还包括:
创建共享内存空间,所述共享内存空间与每个虚拟机所对应,用于在所述虚拟机管理器和对应的虚拟机之间传递信息;
将所述延迟信息存储于所述共享内存空间,所述延迟信息由所述虚拟机进行读取和展示。
7.一种确定虚拟机管理器延迟信息的装置,其特征在于,包括:
监测模块,用于监测虚拟机管理器为至少一个虚拟机分配硬件资源的分配过程;
延迟确定模块,用于根据执行所述分配过程的耗时,确定所述虚拟机管理器针对所述至少一个虚拟机产生的延迟信息。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现所述权利要求1-6中任一所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时,以实现所述权利要求1-6中任一所述的方法。
10.一种车辆,其特征在于,存储有一组指令集,所述指令集被所述车辆执行,以实现所述权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310960276.3A CN116880962A (zh) | 2023-07-28 | 2023-07-28 | 确定虚拟机管理器延迟信息的方法、装置、设备及车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310960276.3A CN116880962A (zh) | 2023-07-28 | 2023-07-28 | 确定虚拟机管理器延迟信息的方法、装置、设备及车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116880962A true CN116880962A (zh) | 2023-10-13 |
Family
ID=88269825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310960276.3A Pending CN116880962A (zh) | 2023-07-28 | 2023-07-28 | 确定虚拟机管理器延迟信息的方法、装置、设备及车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116880962A (zh) |
-
2023
- 2023-07-28 CN CN202310960276.3A patent/CN116880962A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10073711B2 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
US20180121366A1 (en) | Read/write request processing method and apparatus | |
US9304794B2 (en) | Virtual machine control method and virtual machine system using prefetch information | |
US8966477B2 (en) | Combined virtual graphics device | |
US20090007112A1 (en) | Method for controlling a virtual machine and a virtual machine system | |
US11579908B2 (en) | Containerized workload scheduling | |
US10275558B2 (en) | Technologies for providing FPGA infrastructure-as-a-service computing capabilities | |
US10521257B2 (en) | Method, non-transitory computer readable recording medium, and apparatus for scheduling virtual machine monitor | |
US11579918B2 (en) | Optimizing host CPU usage based on virtual machine guest OS power and performance management | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US20170024231A1 (en) | Configuration of a computer system for real-time response from a virtual machine | |
CN111213127B (zh) | 用于直接分配的设备的虚拟化操作 | |
US20150058840A1 (en) | Sharing Resources Allocated to an Entitled Virtual Machine | |
EP3198406B1 (en) | Facilitation of guest application display from host operating system | |
CN116880962A (zh) | 确定虚拟机管理器延迟信息的方法、装置、设备及车辆 | |
US10810032B2 (en) | System and method for dynamic guest-controlled halt polling using a CPU governor | |
CN115564635A (zh) | 一种gpu资源调度方法、装置、电子设备及存储介质 | |
US10585736B2 (en) | Incremental dump with fast reboot | |
CN114327814A (zh) | 任务调度方法、虚拟机、物理主机和存储介质 | |
JP2022110522A (ja) | 車載コンピュータ、コンピュータ実行方法及びコンピュータプログラム | |
Jiang et al. | Towards Intelligent Automobile Cockpit via A New Container Architecture | |
US20230195481A1 (en) | Hybrid partitioning of virtualization on multiple core systems | |
CN117421094A (zh) | 虚拟机控制方法、装置、电子设备和存储介质 | |
CN117851051A (zh) | 在多虚拟机系统中共享硬件gpu的方法、装置和电子设备 | |
Groesbrink | Adaptive virtual machine scheduling and migration for embedded real-time systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |