CN112783713A - 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 - Google Patents
一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112783713A CN112783713A CN201911086081.0A CN201911086081A CN112783713A CN 112783713 A CN112783713 A CN 112783713A CN 201911086081 A CN201911086081 A CN 201911086081A CN 112783713 A CN112783713 A CN 112783713A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- core
- core virtual
- thread
- stuck
- 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 62
- 238000012545 processing Methods 0.000 title claims abstract description 54
- 230000015654 memory Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005457 optimization Methods 0.000 claims description 11
- 239000000126 substance Substances 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000001824 photoionisation detection Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提出的多核虚拟机卡顿的处理方法、装置、电子设备和计算机存储介质中,获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。如此,可以根据多核虚拟机的关键性能指标与指定性能阈值的比较结果,可以快速、准确的识别所述多核是否处于卡顿状态。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种多核虚拟机卡顿的处理方法、装置、电子设备和计算机存储介质。
背景技术
传统的个人计算机(Personal Computer,PC)桌面部署方案造成了大量的计算机硬件资源浪费,同时大大增加了企业办公系统的管理与维护成本,随着云计算与虚拟化技术的高速发展,桌面云技术应运而生;桌面云技术中,所有的应用程序以及操作系统代码都运行在远程数据中心的虚拟服务器上,终端用户使用瘦客户端设备实现远程访问,瘦客户端设备仅具有用于图像渲染以及网络通信的基本处理能力,用来处理虚拟桌面的显示以及鼠标键盘操作,相比于传统的PC桌面,桌面云技术不仅减少了企业的维护和操作成本,也提高了计算机硬件资源的利用率;然而,现有桌面云技术在应用过程中仍存在问题,其中,虚拟机的频繁卡顿是影响桌面云技术应用的关键因素之一。
现有桌面云技术中,虚拟机的卡顿现象主要表现在虚拟桌面显示卡慢、鼠标键盘操作响应延迟高、窗口切换慢等方面,这对于使用桌面云进行日常办公的用户来说是难以接受的;随着多核虚拟机在桌面云技术中的广泛应用,多核虚拟化问题已经成为造成虚拟机卡顿现象的主要原因之一,多核虚拟化问题主要来源于现有虚拟化平台(KVM、XEN)的双层调度机制,这种双层调度机制导致在物理资源紧张的情况下,多个虚拟处理器之间存在较高的同步开销以及严重的物理资源竞争,最终导致了虚拟机的卡顿;随着桌面云部署规模的不断扩大,由于多核虚拟化造成的虚拟机的卡顿现象难以被及时检测。
发明内容
本申请实施例期望提供一种多核虚拟机卡顿的处理方法、装置、电子设备和计算机存储介质。
本申请实施例提供了一种多核虚拟机卡顿的处理方法,所述方法包括:
获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;
根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。
可选地,所述多核虚拟机的关键性能指标包括以下至少一种:所述多核虚拟机的核间中断次数、所述多核虚拟机的运行效率、所述多核虚拟机的处理器在每一时钟周期内执行指令的次数。
可选地,所述根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态,包括:
满足预设条件时,确定所述多核虚拟机处于卡顿状态;不满足预设条件时,确定所述多核虚拟机不处于卡顿状态;
所述预设条件包括以下至少之一:
所述多核虚拟机的核间中断次数大于或等于核间中断次数阈值;
所述多核虚拟机的运行效率小于或等于运行效率阈值;
所述多核虚拟机的处理器在每一时钟周期内执行指令的次数小于或等于处理器在每一时钟周期内执行指令次数阈值。
可选地,所述方法还包括:
所述多核虚拟机的核间中断次数小于或等于核间中断次数阈值且所述多核虚拟机的线程执行方式已被优化时,将所述多核虚拟机的线程执行方式还原为优化前的线程执行方式。
可选地,所述方法还包括:
在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化。
可选地,所述对所述多核虚拟机的线程执行方式进行优化,包括:
对所述多核虚拟机的至少一种关键线程的执行方式进行优化;所述关键线程包括以下至少一种:虚拟处理器线程、虚拟机主线程。
可选地,所述对所述多核虚拟机的至少一种关键线程的执行方式进行优化,包括:
调整所述至少一种关键线程的调度优先级;
和/或,当所述关键线程的数量大于1时,将各个关键线程绑定在不同的物理处理器上。
本申请实施例还提出了一种多核虚拟机卡顿的处理装置,所述装置包括:获取模块、处理模块,其中:
获取模块,用于获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;
处理模块,用于根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。
可选地,所述多核虚拟机的关键性能指标包括以下至少一种:所述多核虚拟机的核间中断次数、所述多核虚拟机的运行效率、所述多核虚拟机的处理器在每一时钟周期内执行指令的次数。
可选地,所述处理模块,用于满足预设条件时,确定所述多核虚拟机处于卡顿状态;不满足预设条件时,确定所述多核虚拟机不处于卡顿状态;
所述预设条件包括以下至少之一:所述多核虚拟机的核间中断次数大于或等于核间中断次数阈值;所述多核虚拟机的运行效率小于或等于运行效率阈值;
所述多核虚拟机的处理器在每一时钟周期内执行指令的次数小于或等于处理器在每一时钟周期内执行指令次数阈值。
可选地,所述处理模块,还用于所述多核虚拟机的核间中断次数小于或等于核间中断次数阈值且所述多核虚拟机的线程执行方式已被优化时,将所述多核虚拟机的线程执行方式还原为优化前的线程执行方式。
可选地,所述处理模块,还用于在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化。
可选地,所述处理模块,用于对所述多核虚拟机的至少一种关键线程的执行方式进行优化;所述关键线程包括以下至少一种:虚拟处理器线程、虚拟机主线程。
可选地,所述处理模块,用于调整所述至少一种关键线程的调度优先级;和/或,当所述关键线程的数量大于1时,将各个关键线程绑定在不同的物理处理器上。
本申请实施例还提出了一种电子设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行上述任意一种多核虚拟机卡顿的处理方法。
本申请实施例还提出了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种多核虚拟机卡顿的处理方法。
本申请实施例提出的多核虚拟机卡顿的处理方法、装置、电子设备和计算机存储介质中,获取多核虚拟机的关键性能指标,所述关键性能指标为能够反映所述多核虚拟机运行状态的指标,然后根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态,所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件,这样,可以快速、准确的识别所述多核是否处于卡顿状态。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种多核虚拟机卡顿的处理方法的流程示意图;
图2为本申请实施例提供的一种多核虚拟机关键性能指标采集的流程示意图;
图3为本申请实施例提供的一种多核虚拟机卡顿状态判断的流程示意图;
图4为本申请实施例提供的一种卡顿多核虚拟机优化的流程示意图;
图5为本申请实施例提供的一种多核虚拟机卡顿处理系统的总体结构示意图;
图6为本申请实施例提供的一种多核虚拟机卡顿的处理装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。
需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。
例如,本申请实施例提供的多核虚拟机卡顿的处理方法包含了一系列的步骤,但是本申请实施例提供的多核虚拟机卡顿的处理方法不限于所记载的步骤,同样地,本申请实施例提供的多核虚拟机卡顿的处理装置包括了一系列模块,但是本申请实施例提供的装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
本申请实施例可以应用于终端和服务器组成的计算机系统中,并可以与众多其它通用或专用计算系统环境或配置一起操作。这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等,服务器可以是服务器计算机系统小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本申请的一些实施例中,需要对多核虚拟机卡顿进行处理,在一个示例中,用户在使用桌面云的过程中,通过虚拟桌面显示、鼠标键盘操作响应延迟或窗口切换快慢等方式主观判断虚拟机是否出现卡顿现象,当用户判断虚拟机出现卡顿现象时,将卡顿现象反馈至系统管理员,然后,系统管理员将用户反馈的卡顿虚拟机手动迁移至其他空闲的服务器上,但是,在部署规模较大的桌面云环境下,用户反馈的方式效率较低,无法快速、准确地识别由于多核虚拟化导致的多核虚拟机卡顿的现象,另一方面,频繁地迁移卡顿的虚拟机会降低服务器的资源利用率,同时,由于需要系统管理员手动参与卡顿虚拟机的迁移过程,增加了桌面云系统的维护成本。
针对上述问题,在本申请的一些实施例中,提出了一种多核虚拟机卡顿的处理方法。
实施例一
图1是本申请实施例提供的一种多核虚拟机卡顿的处理方法的流程示意图,如图1所示,所述方法包括如下步骤:
S101:获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标。
在本步骤之前,示例性地,可以首先获取多核虚拟机的标识信息,然后,根据多核虚拟机的标识信息获取所述多核虚拟机的关键性能指标。
可选地,多核虚拟机的标识信息可以是表征多核虚拟机独有身份信息的信息,示例性地,多核虚拟机的标识信息可以是进程标识符(Process Identification,PID)。
对于本步骤的实现方式,示例性地,可以采集指定时间内多核虚拟机的关键性能指标。
在实际应用中,指定时间可以是根据实际需求设定的时间,还可以根据实际需求设定在指定时间内的采集频率,例如,可以设定指定时间为60s,每隔2s采集一次。
可选地,关键性能指标可以包括以下至少一种:多核虚拟机的核间中断次数、多核虚拟机的运行时间、多核虚拟机的工作线程间切换次数、多核虚拟机的处理器在每一时钟周期内执行指令的次数。
这里,多核虚拟机的核间中断次数为多核虚拟机的各个虚拟处理器之间相互发送中断的次数,多核虚拟机的工作线程间切换次数为多核虚拟机的各个子线程之间相互进行上下文切换的次数。
在实际应用中,关键性能指标可以通过性能分析工具进行采集,例如,性能分析工具可以是工作在Linux系统环境下的top、vmstat、mpstat或其他性能分析工具,还可以是工作在Windows系统、Android系统、Mac OS系统或其他系统环境下的性能分析工具。
可以看出,通过采集指定时间内多核虚拟机的关键性能指标,可以实现对于多核虚拟机运行状态的实时监控,同时,能够准确获取多核虚拟机的关键性能指标。
在一个具体的示例中,参见图2,为本申请实施例提供的一种多核虚拟机关键性能指标采集的流程示意图,其中,首先获取当前服务器上正在运行的一个多核虚拟机的PID,然后,设定需要采集多核虚拟机关键性能指标的时间以及采集频率,利用性能分析工具在设定的采集时间段内,采集该进程标识符对应的多核虚拟机的核间中断次数、运行时间以及工作线程间切换次数,最后,根据采集时间以及上述三项性能指标可以计算得到该多核虚拟机平均每秒产生的核间中断次数以及运行效率,其中,多核虚拟机的运行效率与该多核虚拟机的运行时间以及工作线程间切换次数有关,具体如式(1)所示:
虚拟机运行效率=虚拟机运行时间/虚拟机工作线程间切换次数(1)
S102:根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。
这里,所述指定性能阈值为能够反映所述多核虚拟机是否处于卡顿状态的阈值。
可选地,可以通过经验预估,或者通过之前数据分析累计结果,预设用于判断多核虚拟机是否处于卡顿状态的指定性能阈值。
对于本步骤的实现方式,示例性地,满足预设条件时,确定多核虚拟机处于卡顿状态;不满足预设条件时,确定多核虚拟机不处于卡顿状态;预设条件可以包括以下至少之一:多核虚拟机的核间中断次数大于或等于核间中断次数阈值;多核虚拟机的运行效率小于或等于运行效率阈值;多核虚拟机的处理器在每一时钟周期内执行指令的次数小于或等于处理器在每一时钟周期内执行指令次数阈值,这里,核间中断阈值、运行效率阈值、处理器在每一时钟周期内执行指令次数阈值均为指定性能阈值。
在第一个具体的示例中,当多核虚拟机的核间中断次数大于或等于核间中断次数阈值,且多核虚拟机的运行效率小于或等于运行效率阈值时,确定多核虚拟机满足预设条件,进而确定多核虚拟机处于卡顿状态;当多核虚拟机的核间中断次数小于核间中断次数阈值,或多核虚拟机的运行效率大于运行效率阈值时,确定多核虚拟机不满足预设条件,进而确定多核虚拟机不处于卡顿状态。
在第二个具体的示例中,当多核虚拟机的核间中断次数大于或等于核间中断次数阈值,确定多核虚拟机满足预设条件,进而确定多核虚拟机处于卡顿状态;当多核虚拟机的核间中断次数小于核间中断次数阈值时,确定多核虚拟机不满足预设条件,进而确定多核虚拟机不处于卡顿状态。
在第三个具体的示例中,当多核虚拟机的运行效率小于或等于运行效率阈值时,确定多核虚拟机满足预设条件,进而确定多核虚拟机处于卡顿状态;当多核虚拟机的运行效率大于运行效率阈值时,确定多核虚拟机不满足预设条件,进而确定多核虚拟机不处于卡顿状态。
在第四个具体的示例中,当多核虚拟机的处理器在每一时钟周期内执行指令的次数小于或等于处理器在每一时钟周期内执行指令次数阈值时,确定多核虚拟机满足预设条件,进而确定多核虚拟机处于卡顿状态;当多核虚拟机的处理器在每一时钟周期内执行指令的次数大于处理器在每一时钟周期内执行指令次数阈值时,确定多核虚拟机不满足预设条件,进而确定多核虚拟机不处于卡顿状态。
可以看出,通过多核虚拟机的关键性能指标与指定性能阈值的比较结果,可准确判断多核虚拟机是否处于卡顿状态,进一步地,用于与对应的指定性能阈值比较的多核虚拟机的关键性能指标越多,对于多核虚拟机卡顿状态检测的结果越准确。
进一步地,当多核虚拟机的核间中断次数小于或等于核间中断次数阈值且多核虚拟机的线程执行方式已被优化时,将多核虚拟机的线程执行方式还原为优化前的线程执行方式。
在实际应用中,可以通过多核虚拟机的关键线程的调度优先级判断多核虚拟机的线程执行方式是否已被优化,例如,虚拟机主线程正常执行时的调度优先级在10左右,而此时检测到某一个多核虚拟机的调度优先级为20,则说明该多核虚拟机调度优先级提高了,即确定该多核虚拟机的线程执行方式已被优化,另外,还可以通过多核虚拟机关键线程的绑定物理处理器的方式或其他方式判断多核虚拟机的线程执行方式是否被优化。
本申请实施例中,可以循环检测多核虚拟机的运行状态,当本次检测时发现某一个多核虚拟机不处于卡顿状态,且该多核虚拟机的线程执行方式已被优化时,说明该多核虚拟机在前一次检测时处于卡顿状态,但线程执行方式经过优化以后已经不处于卡顿状态,此时,可以将该多核虚拟机的线程执行方式还原为优化前的线程执行方式。
可以看出,通过上述方式,即保证了某一个线程执行方式已优化过的多核虚拟机在不卡顿的前提下,不会竞争其他多核虚拟机的资源,进而避免其他多核虚拟机出现卡顿。
在一个具体的示例中,参见图3,为本申请实施例提供的一种多核虚拟机卡顿状态判断的流程示意图,其中,预先设定阈值,例如,预先根据经验值设定多核虚拟机的核间中断次数阈值与运行效率阈值,在通过步骤S101所述方式得到某一个多核虚拟机的每秒核间中断次数与运行效率之后,首先将该多核虚拟机的每秒核间中断次数与预设的核间中断次数阈值比较,当该多核虚拟机的每秒核间中断次数小于或等于核间中断次数阈值时,则继续判断该多核虚拟机是否已被优化,当确定该多核虚拟机没有被优化时,则确定该多核虚拟机不处于卡顿状态,当确定该多核虚拟机已被优化时,将多核虚拟机的线程执行方式还原为优化前的线程执行方式,另一方面,当该多核虚拟机的每秒核间中断次数大于核间中断次数阈值时,则将该多核虚拟机的运行效率与运行效率阈值比较,当该多核虚拟机的运行效率大于运行效率阈值时,则确定该虚拟机不处于卡顿状态,当该多核虚拟机小于或等于运行效率阈值时,则确定该虚拟机处于卡顿状态。
可选地,可以在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化。
对于本步骤的实现方式,示例性地,在确定所述多核虚拟机处于卡顿状态之后,可以对多核虚拟机的至少一种关键线程的执行方式进行优化。
可选地,关键线程可以是多核虚拟机在运行过程中起到重要作用的线程,示例性地,关键线程可以是虚拟处理器线程、虚拟机主线程或多核虚拟机的其他线程。
在本步骤之前,示例性地,可以首先根据确定处于卡顿状态的多核虚拟机的标识信息,获取该多核虚拟机中的至少一种关键线程的标识信息,然后,根据至少一种关键线程的标识信息,对对应的关键线程的执行方式进行优化。
可选地,关键线程的标识信息可以是表征多核虚拟机或者多核虚拟机中的关键线程独有身份信息的信息,示例性地,关键线程的标识信息可以是PID。
对于对关键线程的执行方式进行优化的实现方式,示例性地,可以调整所述至少一种关键线程的调度优先级;和/或,将所述至少一种关键线程绑定在不同的物理处理器上。在第一个示例中,可以在至少一种关键线程不绑定在不同的物理处理器的情况下,调整至少一种关键线程的调度优先级;在第二个示例中,可以在不调整至少一种关键线程的调度优先级的情况下,将至少一种关键线程绑定在不同的物理处理器上;在第三个示例中,调整至少一种关键线程的调度优先级的同时,将至少一种关键线程绑定在不同的物理处理器上。
可以看出,通过调整所述至少一种关键线程的调度优先级;和/或,将所述至少一种关键线程绑定在不同的物理处理器上,即实现了快速、有效地对卡顿的多核虚拟机进行优化。
在一个具体的示例中,参见图4,为本申请实施例提供的一种卡顿多核虚拟机优化的流程示意图,可选地,处理器可以是CPU,其中,首先通过确定卡顿的多核虚拟机的PID获取该多核虚拟机的虚拟CPU线程的PID以及虚拟机主线程的PID,然后,根据该多核虚拟机的虚拟CPU线程的PID以及虚拟机主线程的PID,调整该卡顿多核虚拟机各线程调度优先级,例如,调整该卡顿多核虚拟机的虚拟CPU线程调度优先级以及虚拟机主线程的调度优先级,同时,将该卡顿多核虚拟机各线程分别绑定在不同物理CPU上,例如,将该卡顿多核虚拟机的虚拟CPU线程以及虚拟机主线程分别绑定在不同的物理CPU上。
在一个实际的应用场景中,参见图5,为本申请实施例提供的一种多核虚拟机卡顿处理系统的总体结构示意图,其中,服务器硬件层主要为多核虚拟机提供运行环境以及CPU、内存、I/O等物理资源,虚拟化平台层主要实现对于在服务器硬件层中运行的所有多核虚拟机的资源管理与调度,同时,为每一个多核虚拟机提供一套虚拟硬件环境,例如,虚拟CPU、虚拟内存以及虚拟I/O等,客户虚拟机层中的多核虚拟机1、多核虚拟机2以及多核虚拟机3为运行在服务器硬件层的多核虚拟机,首先,采集客户虚拟机层中的多核虚拟机1关键性能指标,然后根据获取的多核虚拟机1的关键性能指标,确定多核虚拟机1是否处于卡顿状态,在确定多核虚拟机1处于卡顿状态之后,通过虚拟化平台层的资源管理与调度,对所述多核虚拟机1的线程执行方式进行优化,进一步地,可以对客户虚拟机层中的每一个多核虚拟机的卡顿状态进行循环检测。
在实际应用中,步骤S101至步骤S102均可以由多核虚拟机卡顿的处理装置中的处理器等实现,上述处理器可以为特定用途集成电路(Application Specific IntegratedCircuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable LogicDevice,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的多核虚拟机卡顿的处理装置,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
本申请实施例提供了一种多核虚拟机卡顿的处理方法,获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件;所述指定性能阈值为能够反映所述多核虚拟机是否处于卡顿状态的阈值。如此,由于指定性能阈值是表征多核虚拟机是否处于卡顿状态的指标,进而根据多核虚拟机的关键性能指标与指定性能阈值的比较结果,可以快速、准确的识别所述多核是否处于卡顿状态。
实施例二
为了能够更加体现本申请的目的,在本申请实施例一的基础上,进行进一步的举例说明。
本申请实施例二提供了一种根据多核虚拟机的关键性能指标,确定多核虚拟机是否处于卡顿状态的具体实现的方法。
在一个具体的应用场景中,设定多核虚拟机关键性能的采集时间为60s,每隔2s采集一次,且根据之前的数据统计结果设定多核虚拟机的核间中断次数阈值为每秒200次,多核虚拟机的运行效率阈值为5%,首先获取当前服务器上正在运行的某一个多核虚拟机的PID,然后,根据该多核虚拟机的PID,通过Linux环境下的性能分析工具top,在60s的时间内采集对应多核虚拟机的核间中断次数,以及该多核虚拟机工作线程间切换次数。
在一个示例中,当在60s的指定时间内,采集得到的该多核虚拟机的核间中断次数为30000次,该多核虚拟机工作线程间切换次数为60000次,且虚拟机运行时间为30s时,此时,可以计算得到该多核虚拟机每秒产生的核间中断次数为500次,大于预设的多核虚拟机核间中断次数阈值,同时,根据式(1)可以得到该多核虚拟机的运行效率为0.05%,小于预设的运行效率阈值,此时即可以确定,该多核虚拟机处于卡顿状态。
在另一个示例中,当在60s的指定时间内采集得到该多核虚拟机的核间中断次数为6000次时,可以计算得到该多核虚拟机每秒产生的核间中断次数为100次,即,小于预设的多核虚拟机的核间中断阈值,此时,确定该多核虚拟机不处于卡顿状态,进一步地,通过性能分析工具检测到该多核虚拟机主线程的调度优先级为20,且正常情况下多核虚拟机主线程的调度优先级为10,即确定该多核虚拟机是已被优化过的多核虚拟机,此时,可以将该多核虚拟机主线程的调度优先级重新调整为10。
可以看出,通过多核虚拟机的关键性能指标与指定性能阈值的比较结果,可准确判断多核虚拟机是否处于卡顿状态。
实施例三
为了能够更加体现本申请的目的,在本申请实施例一的基础上,进行进一步的举例说明。
本申请实施例三提供了在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化的方法。
在一个具体的应用场景中,当前服务器中包含20个物理CPU,且在该服务器中运行的多核虚拟机有10个,所有多核虚拟机的线程调度优先级均为10,当确定其中一个多核虚拟机处于卡顿状态,且该多核虚拟机包含有两个虚拟CPU时,首先,通过根据该多核虚拟机的PID,获取该多核虚拟机中两个虚拟CPU各自的PID,以及该多核虚拟机主线程的PID,然后,根据该多核虚拟机中两个虚拟CPU各自的PID,以及该多核虚拟机主线程的PID,将该多核虚拟机中两个虚拟CPU对应线程以及该多核虚拟机主线程的调度优先级均调整至20,即,调整之后,该多核虚拟机中两个虚拟CPU对应线程以及该多核虚拟机主线程的调度优先级高于当前服务器中其他多核虚拟机的线程调度优先级,同时,将该多核虚拟机中两个虚拟CPU对应线程以及该多核虚拟机主线程分别绑定在当前服务器3个不同的物理CPU上,如此,即实现了对所述多核虚拟机的线程执行方式的优化。
可以看出,通过调整所述至少一种关键线程的调度优先级;和/或,将所述至少一种关键线程绑定在不同的物理处理器上,即实现了快速、有效地对卡顿的多核虚拟机进行优化。
实施例四
针对本申请实施例一的一种多核虚拟机卡顿的处理方法,本申请实施例四还提供了一种多核虚拟机卡顿的处理装置。
图6为本申请实施例提供的一种多核虚拟机卡顿的处理装置的结构示意图,如图所示,该装置包括:获取模块600和处理模块601,其中:
获取模块600,用于获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;
处理模块601,用于根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。
在一实施方式中,所述多核虚拟机的关键性能指标包括以下至少一种:所述多核虚拟机的核间中断次数、所述多核虚拟机的运行效率、所述多核虚拟机的处理器在每一时钟周期内执行指令的次数。
在一实施方式中,所述处理模块601,用于满足预设条件时,确定所述多核虚拟机处于卡顿状态;不满足预设条件时,确定所述多核虚拟机不处于卡顿状态;
所述预设条件包括以下至少之一:所述多核虚拟机的核间中断次数大于或等于核间中断次数阈值;所述多核虚拟机的运行效率小于或等于运行效率阈值;
所述多核虚拟机的处理器在每一时钟周期内执行指令的次数小于或等于处理器在每一时钟周期内执行指令次数阈值。
在一实施方式中,所述处理模块601,还用于所述多核虚拟机的核间中断次数小于或等于核间中断次数阈值且所述多核虚拟机的线程执行方式已被优化时,将所述多核虚拟机的线程执行方式还原为优化前的线程执行方式。
在一实施方式中,所述处理模块601,还用于在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化。
在一实施方式中,所述处理模块601,用于对所述多核虚拟机的至少一种关键线程的执行方式进行优化;所述关键线程包括以下至少一种:虚拟处理器线程、虚拟机主线程。
在一实施方式中,所述处理模块601,用于调整所述至少一种关键线程的调度优先级;和/或,当所述关键线程的数量大于1时,将各个关键线程绑定在不同的物理处理器上。
在实际应用中,所述获取模块600和处理模块601均可由位于多核虚拟机卡顿的处理装置中的处理器实现,该处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种多核虚拟机卡顿的处理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种调节声音强度的方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种多核虚拟机卡顿的处理方法。
基于前述实施例相同的技术构思,参见图7,其示出了本申请实施例提供的一种电子设备70,可以包括:存储器71和处理器72;其中,
所述存储器71,用于存储计算机程序和数据;
所述处理器72,用于执行所述存储器中存储的计算机程序,以实现前述实施例的任意一种多核虚拟机卡顿的处理方法。
在实际应用中,上述存储器71可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器72提供指令和数据。
上述处理器72可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述
本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。
Claims (11)
1.一种多核虚拟机卡顿的处理方法,其特征在于,所述方法包括:
获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;
根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。
2.根据权利要求1所述的方法,其特征在于,所述多核虚拟机的关键性能指标包括以下至少一种:所述多核虚拟机的核间中断次数、所述多核虚拟机的运行效率、所述多核虚拟机的处理器在每一时钟周期内执行指令的次数。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态,包括:
满足预设条件时,确定所述多核虚拟机处于卡顿状态;不满足预设条件时,确定所述多核虚拟机不处于卡顿状态;
所述预设条件包括以下至少之一:
所述多核虚拟机的核间中断次数大于或等于核间中断次数阈值;
所述多核虚拟机的运行效率小于或等于运行效率阈值;
所述多核虚拟机的处理器在每一时钟周期内执行指令的次数小于或等于处理器在每一时钟周期内执行指令次数阈值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述多核虚拟机的核间中断次数小于或等于核间中断次数阈值且所述多核虚拟机的线程执行方式已被优化时,将所述多核虚拟机的线程执行方式还原为优化前的线程执行方式。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化。
6.根据权利要求5所述的方法,其特征在于,所述对所述多核虚拟机的线程执行方式进行优化,包括:
对所述多核虚拟机的至少一种关键线程的执行方式进行优化;所述关键线程包括以下至少一种:虚拟处理器线程、虚拟机主线程。
7.根据权利要求6所述方法,其特征在于,所述对所述多核虚拟机的至少一种关键线程的执行方式进行优化,包括:
调整所述至少一种关键线程的调度优先级;
和/或,当所述关键线程的数量大于1时,将各个关键线程绑定在不同的物理处理器上。
8.一种多核虚拟机卡顿的处理装置,其特征在于,所述装置包括:获取模块、处理模块,其中:
获取模块,用于获取多核虚拟机的关键性能指标;所述关键性能指标为能够反映所述多核虚拟机运行状态的指标;
处理模块,用于根据所述多核虚拟机的关键性能指标是否满足预设条件,确定所述多核虚拟机是否处于卡顿状态;所述预设条件为将所述关键性能指标与指定性能阈值进行比较的条件。
9.根据权利要求8所述的装置,其特征在于,所述处理模块,还用于:
在确定所述多核虚拟机处于卡顿状态之后,对所述多核虚拟机的线程执行方式进行优化。
10.一种电子设备,其特征在于,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述的方法。
11.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911086081.0A CN112783713A (zh) | 2019-11-08 | 2019-11-08 | 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911086081.0A CN112783713A (zh) | 2019-11-08 | 2019-11-08 | 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112783713A true CN112783713A (zh) | 2021-05-11 |
Family
ID=75748229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911086081.0A Pending CN112783713A (zh) | 2019-11-08 | 2019-11-08 | 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783713A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385214A (zh) * | 2022-03-23 | 2022-04-22 | 深圳市牛商网络股份有限公司 | 网站更新方法、装置、设备及存储介质 |
WO2023035662A1 (zh) * | 2021-09-13 | 2023-03-16 | 中兴通讯股份有限公司 | 云桌面运行的方法、服务器、终端 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理系统 |
US20110145616A1 (en) * | 2009-12-16 | 2011-06-16 | Bohuslav Rychlik | System and method for controlling central processing unit power in a virtualized system |
CN102693162A (zh) * | 2011-12-29 | 2012-09-26 | 中国科学技术大学苏州研究院 | 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法 |
CN106990998A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 虚拟机监控方法及装置 |
CN108156054A (zh) * | 2017-12-26 | 2018-06-12 | 合肥中科云巢科技有限公司 | 云桌面性能的测试方法及装置 |
CN108804225A (zh) * | 2018-05-24 | 2018-11-13 | 新华三云计算技术有限公司 | 一种虚拟机负载调控方法和装置 |
CN110069377A (zh) * | 2018-01-22 | 2019-07-30 | 中兴通讯股份有限公司 | 一种多核处理器的监测方法、终端及计算机存储介质 |
-
2019
- 2019-11-08 CN CN201911086081.0A patent/CN112783713A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488098A (zh) * | 2009-02-13 | 2009-07-22 | 华中科技大学 | 基于虚拟计算技术的多核计算资源管理系统 |
US20110145616A1 (en) * | 2009-12-16 | 2011-06-16 | Bohuslav Rychlik | System and method for controlling central processing unit power in a virtualized system |
CN102693162A (zh) * | 2011-12-29 | 2012-09-26 | 中国科学技术大学苏州研究院 | 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法 |
CN106990998A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 虚拟机监控方法及装置 |
CN108156054A (zh) * | 2017-12-26 | 2018-06-12 | 合肥中科云巢科技有限公司 | 云桌面性能的测试方法及装置 |
CN110069377A (zh) * | 2018-01-22 | 2019-07-30 | 中兴通讯股份有限公司 | 一种多核处理器的监测方法、终端及计算机存储介质 |
CN108804225A (zh) * | 2018-05-24 | 2018-11-13 | 新华三云计算技术有限公司 | 一种虚拟机负载调控方法和装置 |
Non-Patent Citations (3)
Title |
---|
LIMINGYANG119: "Fusion Access虚拟机卡顿问题处理", 《HTTPS://SUPPORT.HUAWEI.COM/ENTERPRISE/EN/KNOWLEDGE/EKB1100039701》 * |
QWERT: "Fusion Access桌面云虚拟机运行卡慢", 《HTTPS://FORUM.HUAWEI.COM/ENTERPRISE/ZH/THREAD-379755.HTML》 * |
马汝辉: "基于多核的虚拟化技术研究", 《中国优秀博硕士学位论文全文数据库(博士) (信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023035662A1 (zh) * | 2021-09-13 | 2023-03-16 | 中兴通讯股份有限公司 | 云桌面运行的方法、服务器、终端 |
CN114385214A (zh) * | 2022-03-23 | 2022-04-22 | 深圳市牛商网络股份有限公司 | 网站更新方法、装置、设备及存储介质 |
CN114385214B (zh) * | 2022-03-23 | 2022-06-21 | 深圳市牛商网络股份有限公司 | 网站更新方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11689471B2 (en) | Cloud compute scheduling using a heuristic contention model | |
Reiss et al. | Towards understanding heterogeneous clouds at scale: Google trace analysis | |
AU2014309371B2 (en) | Virtual hadoop manager | |
Hedayati et al. | {Multi-Queue} Fair Queuing | |
US7844853B2 (en) | Methods and apparatus for restoring a node state | |
Li et al. | An optimization of virtual machine selection and placement by using memory content similarity for server consolidation in cloud | |
Xu et al. | Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters | |
US20150312167A1 (en) | Maximizing server utilization within a datacenter | |
CN106293881B (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
US11822454B2 (en) | Mitigating slow instances in large-scale streaming pipelines | |
Armstrong et al. | Scheduling many-task workloads on supercomputers: Dealing with trailing tasks | |
CN112783713A (zh) | 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 | |
Takeda et al. | A rank-based vm consolidation method for power saving in datacenters | |
Jia et al. | Effectively Mitigating {I/O} Inactivity in {vCPU} Scheduling | |
Liu et al. | High-responsive scheduling with MapReduce performance prediction on hadoop YARN | |
Hu et al. | Hope: enabling efficient service orchestration in software-defined data centers | |
Liu et al. | Scheduling Parallel Jobs Using Migration and Consolidation in the Cloud. | |
CN103955422B (zh) | 一种虚拟化环境中共存应用i/o性能干扰的分析方法及其系统 | |
Blagodurov et al. | Towards the contention aware scheduling in hpc cluster environment | |
AT&T | ||
CN112579257A (zh) | 一种虚拟中央处理器核心的调度方法、装置及相关设备 | |
Yan et al. | Workload interleaving with performance guarantees in data centers | |
Cheng et al. | SLA-aware and green resource management of IaaS clouds | |
van Leeuwen | The energy efficiency and system performance of virtual machines | |
CN107608765B (zh) | 一种虚拟机迁移方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210511 |