CN112579257A - 一种虚拟中央处理器核心的调度方法、装置及相关设备 - Google Patents
一种虚拟中央处理器核心的调度方法、装置及相关设备 Download PDFInfo
- Publication number
- CN112579257A CN112579257A CN202011466124.0A CN202011466124A CN112579257A CN 112579257 A CN112579257 A CN 112579257A CN 202011466124 A CN202011466124 A CN 202011466124A CN 112579257 A CN112579257 A CN 112579257A
- Authority
- CN
- China
- Prior art keywords
- virtual central
- virtual machine
- central processor
- virtual
- processing unit
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 238000012545 processing Methods 0.000 title claims abstract description 104
- 230000008569 process Effects 0.000 claims abstract description 66
- 230000008859 change Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 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
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000001824 photoionisation detection Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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
-
- 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
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请公开了一种虚拟中央处理器核心的调度方法,包括采集当前虚拟机中待统计的各运行进程的上下文切换次数;采集所述当前虚拟机的虚拟中央处理器核心占用率;根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量;将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定;该虚拟中央处理器核心的调度方法可以在不增加额外成本的前提下,对VCPU核心进行合理高效的调度,同时还可有效避免业务中断,提高用户体验。本申请还公开了一种虚拟中央处理器核心的调度装置、设备以及计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及虚拟机技术领域,特别涉及一种虚拟中央处理器核心的调度方法,还涉及一种虚拟中央处理器核心的调度装置、设备以及计算机可读存储介质。
背景技术
云计算的高速发展带来了多核处理器的广泛应用,多核虚拟处理器在保证较低能耗的前提下能显著提高多线程应用的运行性能。然而,在桌面云领域,尽管具备多个VCPU核心(Virtual Central Processing Unit,虚拟中央处理器核心)的虚拟桌面主机能够在一定程度上提升交互式办公应用及高端并行应用的用户体验,但是由于虚拟化技术的局限性,引入了额外的资源与延迟开销,当虚拟机内部运行大量的多线程应用时,虚拟机CPU核心(Central Processing Unit,中央处理器核心)数越多,虚拟桌面的性能体验越差。
在相关技术中,多采用由管理员关闭虚拟机并手动减少虚拟机核心数的方法解决上述性能问题,但人工手动调整的方式过于低效,且虚拟机的关闭会造成正常业务的中断;也会采用增加服务器将部分虚拟机迁移出去的方法,以减少虚拟机对物理服务器的资源竞争,但该种实现方式却大大增加了硬件成本。
因此,如何在不增加额外成本的前提下,对VCPU核心进行合理高效的调度,避免业务中断是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种虚拟中央处理器核心的调度方法,该虚拟中央处理器核心的调度方法可以在不增加额外成本的前提下,对VCPU核心进行合理高效的调度,同时还可有效避免业务中断,提高用户体验;本申请的另一目的是提供一种虚拟中央处理器核心的调度装置、网络设备以及计算机可读存储介质,也具有上述有益效果。
第一方面,本申请提供了一种虚拟中央处理器核心的调度方法,包括:
采集当前虚拟机中待统计的各运行进程的上下文切换次数;
采集所述当前虚拟机的虚拟中央处理器核心占用率;
根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量;
将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
优选的,所述采集当前虚拟机中待统计的各运行进程的上下文切换次数,包括:
从所述当前虚拟机中扫描获得进程标识符;
对所述进程标识符对应的运行进程进行信息采集,获得所述上下文切换次数。
优选的,所述采集当前虚拟机中待统计的各运行进程的上下文切换次数,包括:
采集待统计的各所述运行进程在预设时长内的上下文切换次数。
优选的,所述采集所述当前虚拟机的虚拟中央处理器核心占用率,包括:
采集所述当前虚拟机在所述预设时长内的虚拟中央处理器核心占用率。
优选的,所述根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量,包括:
根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率计算获得所述当前虚拟机的虚拟中央处理器核心亲和性;
根据所述虚拟中央处理器核心亲和性确定所述虚拟中央处理器核心的需求数量。
优选的,所述将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定,包括:
调用应用程序编程接口将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
优选的,在所述采集所述当前虚拟机的虚拟中央处理器核心占用率的步骤之后,所述虚拟中央处理器核心的调度方法还包括:
根据所述虚拟中央处理器核心占用率计算获得虚拟中央处理器核心占用率的变化率;
当所述虚拟中央处理器核心占用率的变化率超出预设数值时,将所述当前虚拟机与初始默认数量的虚拟中央处理器核心进行绑定;
相应地,所述根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量,包括:
当所述虚拟中央处理器核心占用率的变化率未超出所述预设数值时,根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量。
第二方面,本申请还公开了一种虚拟中央处理器核心的调度装置,包括:
第一采集模块,用于采集当前虚拟机中待统计的各运行进程的上下文切换次数;
第二采集模块,用于采集所述当前虚拟机的虚拟中央处理器核心占用率;
计算模块,用于根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量;
绑定模块,用于将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
第三方面,本申请还公开了一种虚拟中央处理器核心的调度设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上所述的任一种虚拟中央处理器核心的调度方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种虚拟中央处理器核心的调度方法的步骤。
本申请所提供的一种虚拟中央处理器核心的调度方法,包括采集当前虚拟机中待统计的各运行进程的上下文切换次数;采集所述当前虚拟机的虚拟中央处理器核心占用率;根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量;将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
可见,本申请所提供的虚拟中央处理器核心的调度方法,对于虚拟机中的待统计的各运行进程进行上下文切换次数的采集,对虚拟机进行虚拟中央处理器核心占用率的采集,由此,通过采集上下文切换次数和虚拟中央处理器核心占用率这两个指标确定当前虚拟机所需要的虚拟中央处理器核心的数量,进而将当前虚拟机与对应数量的虚拟中央处理器核心进行绑定,实现虚拟中央处理器核心的自动化调度,该种实现方式无需人工手动操作,大大提高了虚拟中央处理器核心的调度效率,且由于该虚拟中央处理器核心的调度过程无需关闭虚拟机即可实现,可以有效避免业务中断的问题,进一步提高了用户体验;此外,该种实现方式无需增加物理服务器进行虚拟机的转移,故无额外成本的增加。
本申请所提供的一种虚拟中央处理器核心的调度装置、设备以及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请所提供的一种虚拟中央处理器核心的调度方法的流程示意图;
图2为本申请所提供的一种KVM虚拟化平台的架构图;
图3为本申请所提供的另一种虚拟中央处理器核心的调度方法的流程示意图;
图4为本申请所提供的一种虚拟中央处理器核心的调度装置的结构示意图;
图5为本申请所提供的一种虚拟中央处理器核心的调度设备的结构示意图。
具体实施方式
本申请的核心是提供一种虚拟中央处理器核心的调度方法,该虚拟中央处理器核心的调度方法可以在不增加额外成本的前提下,对VCPU核心进行合理高效的调度,同时还可有效避免业务中断,提高用户体验;本申请的另一核心是提供一种虚拟中央处理器核心的调度装置、设备以及计算机可读存储介质,也具有上述有益效果。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在相关技术中,多采用由管理员关闭虚拟机并手动减少虚拟机核心数的方法解决上述性能问题,但人工手动调整的方式过于低效,且虚拟机的关闭会造成正常业务的中断;也会采用增加服务器将部分虚拟机迁移出去的方法,以减少虚拟机对物理服务器的资源竞争,但该种实现方式却大大增加了硬件成本。
因此,为解决上述技术问题,本申请提供了一种虚拟中央处理器核心的调度方法,对于虚拟机中的待统计的各运行进程进行上下文切换次数的采集,对虚拟机进行虚拟中央处理器核心占用率的采集,由此,通过采集上下文切换次数和虚拟中央处理器核心占用率这两个指标确定当前虚拟机所需要的虚拟中央处理器核心的数量,进而将当前虚拟机与对应数量的虚拟中央处理器核心进行绑定,实现虚拟中央处理器核心的自动化调度,该种实现方式无需人工手动操作,大大提高了虚拟中央处理器核心的调度效率,且由于该虚拟中央处理器核心的调度过程无需关闭虚拟机即可实现,可以有效避免业务中断的问题,进一步提高了用户体验;此外,该种实现方式无需增加物理服务器进行虚拟机的转移,故无额外成本的增加。
请参考图1,图1为本申请所提供的一种虚拟中央处理器核心的调度方法的流程示意图,该虚拟中央处理器核心的调度方法可包括:
S101:采集当前虚拟机中待统计的各运行进程的上下文切换次数;
S102:采集当前虚拟机的虚拟中央处理器核心占用率;
以上步骤旨在实现信息采集,采集信息具体可包括当前虚拟机中待统计的各运行进程的上下文切换次数和当前虚拟机的虚拟中央处理器核心占用率(VCPU占用率),其中,运行进程是指当前虚拟机中处于运行状态的进程,其数量并不唯一,一般为多个;上下文切换次数和VCPU占用率为实现VCPU自动化调度的两个指标,属于虚拟机的负载特征。在具体实现过程中,可基于接收到的调度指令响应上述信息采集操作,即在接收到调度指令时,根据该调度指令采集当前虚拟机中待统计的各运行进程的上下文切换次数和当前虚拟机的VCPU占用率,其中,上下文切换是指VCPU中从一个进程或线程切换到另一个进程或线程,运行进程的上下文切换次数则为其中所包含的所有线程的上下文切换次数之和。
需要说明的是,为尽可能对虚拟机中上下文切换次数进行统计,需要采集该虚拟机中各个进程的上下文切换次数,然而,当虚拟机中运行的进程数量较多时,采集各个进程的上下文切换次数,可能会造成额外的计算负担,因此可以仅仅对大部分进程(比如,采集上下文切换次数的进程数量大于预设数量)的上下文切换次数进行采集,从而在一定程度上减轻计算负担。因此,本申请并不局限于采集虚拟机中每个进程的上下文切换次数。
需要说明的是,上述调度指令的获取方式并不影响本技术方案的实施,可以由用户根据实际需求由前端设备直接输入,也可以是按照预设响应条件自动触发,例如,可以按照预设时间周期自动触发该调度指令,当然,预设时间周期的具体取值同样不唯一,由技术人员根据实际需求进行设置即可,本申请对此同样不做限定。
作为一种优选实施例,上述采集当前虚拟机中待统计的各运行进程的上下文切换次数,可以包括:从当前虚拟机中扫描获得进程标识符;对进程标识符对应的运行进程进行信息采集,获得上下文切换次数。
本优选实施例提供了一种上下文切换次数的采集方法。具体的,可以对当前虚拟机中的所有运行进程进行扫描,获得对应的标识符,即上述进程标识符(PID,ProcessIdentification),进一步,则可以根据各PID依次采集对应运行进程的上下文切换次数。
作为一种优选实施例,上述采集当前虚拟机中待统计的各运行进程的上下文切换次数,可以包括:采集待统计的各运行进程在预设时长内的上下文切换次数。
作为一种优选实施例,上述采集当前虚拟机的虚拟中央处理器核心占用率,可以包括:采集当前虚拟机在预设时长内的虚拟中央处理器核心占用率。
具体的,可以设定上下文切换次数和VCPU占用率的采集时长,即上述预设时长,进而根据运行进程在该预设时长内的上下文切换次数和VCPU占用率实现VCPU调度。可以理解的是,该预设时长即为单位时长,其具体取值并不唯一,根据实际情况进行设置即可,例如,可以为1秒、1分钟或1小时等,本申请对此不做限定。
S103:根据待统计的各上下文切换次数和虚拟中央处理器核心占用率确定当前虚拟机对于虚拟中央处理器核心的需求数量;
本步骤旨在实现VCPU需求数量的确定,该VCPU需求数量即为当前虚拟机所需的VCPU的数量,可以根据上述各上下文切换次数和VCPU占用率确定。其中,VCPU需求数量的计算方式并不唯一,可以按照历史经验或根据预先设定的计算规则实现,比如,可以预设训练一神经网络模型实现需求数量的确定,具体本领域技术人员可根据实际应用场景确定。
作为一种优选实施例,上述根据各上下文切换次数和虚拟中央处理器核心占用率确定当前虚拟机对于虚拟中央处理器核心的需求数量,可以包括:根据待统计的各上下文切换次数和虚拟中央处理器核心占用率计算获得当前虚拟机的虚拟中央处理器核心亲和性;根据虚拟中央处理器核心亲和性确定虚拟中央处理器核心的需求数量。此外,还可以基于各个上下文切换次数计算获得当前虚拟机的上下文切换总次数,基于上下文切换总次数和VCPU占用率确定VCPU需求数量。
本优选实施例提供了一种VCPU需求数量的确定方法。具体的,由于虚拟机中运行进程的数量并不唯一,一般为多个,因此,可以先根据上述各上下文切换次数计算获得当前虚拟机的上下文切换总次数,即计算各上下文切换次数的总加和;进一步,根据该上下文切换总次数和VCPU占用率计算获得当前虚拟机的VCPU亲和性,该VCPU亲和性是指在多核环境下虚拟机可以运行的VCPU的范围;进一步,根据该VCPU亲和性即可确定VCPU的需求数量。例如,当VCPU亲和性为1111时,可确定VCPU需求数量为4;当VCPU亲和性为1100时,可确定VCPU需求数量为2。
S104:将当前虚拟机与需求数量的虚拟中央处理器核心进行绑定。
本步骤旨在实现当前虚拟机与VCPU的绑定,在确定VCPU的需求数量后,将当前虚拟机与上述需求数量的VCPU进行绑定即可,由此,实现了VCPU基于虚拟机进程负载特征的自动调度,避免了人工手动操作,有效提高了VCPU调度效率。一般来说,上下文切换次数越多,VCPU占用率越少,对应的VCPU需求数量越少,也即会将当前虚拟机绑定到越少的VCPU上。
作为一种优选实施例,上述将当前虚拟机与需求数量的虚拟中央处理器核心进行绑定,可以包括:调用应用程序编程接口将当前虚拟机与需求数量的虚拟中央处理器核心进行绑定。
本优选实施例提供了一种当前虚拟机与VCPU的绑定方法,即通过应用程序编程接口(API,Application Program Interface)实现,直接调用该API接口将当前虚拟机与需求数量的VCPU进行绑定即可,API接口具有较高的传输速率以及较高的安全性。
作为一种优选实施例,在步骤S102之后,该虚拟中央处理器核心的调度方法还可以包括:根据虚拟中央处理器核心占用率计算获得虚拟中央处理器核心占用率的变化率;当虚拟中央处理器核心占用率的变化率超出预设数值时,将当前虚拟机与初始默认数量的虚拟中央处理器核心进行绑定;相应的,上述步骤S103可以包括:当虚拟中央处理器核心占用率的变化率未超出预设数值时,根据待统计的各上下文切换次数和虚拟中央处理器核心占用率确定当前虚拟机对于虚拟中央处理器核心的需求数量。
本优选实施例所提供的虚拟中央处理器核心的调度方法可以实现恢复默认配置功能,以便在虚拟机内部负载变化过大导致性能不佳时,可一键恢复至初始默认状态。具体的,可以对当前虚拟机的VCPU占用率进行实时监测,进而计算获得当前虚拟机的虚拟中央处理器核心占用率的变化率,一旦发现该变化率超出预设数值,即可将当前虚拟机与初始默认数量的VCPU进行绑定;当然,在变化率不超出上述预设数值时,则继续步骤S103即可。其中,上述初始默认数量同样可根据VCPU亲和性初始默认值确定,一般情况下,虚拟机的VCPU亲和性初始默认值均为1111,也即VCPU的初始默认数量为4,默认每个虚拟机均可与4个VCPU进行绑定。
可以理解的是,上述预设数值、初始默认数量以及VCPU亲和性初始默认值的具体取值均不影响本技术方案的实施,都可由技术人员根据实际情况进行设定,本申请对此不做限定。
可见,本申请所提供的虚拟中央处理器核心的调度方法,对于虚拟机中的待统计的各运行进程进行上下文切换次数的采集,对虚拟机进行虚拟中央处理器核心占用率的采集,由此,通过采集上下文切换次数和虚拟中央处理器核心占用率这两个指标确定当前虚拟机所需要的虚拟中央处理器核心的数量,进而将当前虚拟机与对应数量的虚拟中央处理器核心进行绑定,实现虚拟中央处理器核心的自动化调度,该种实现方式无需人工手动操作,大大提高了虚拟中央处理器核心的调度效率,且由于该虚拟中央处理器核心的调度过程无需关闭虚拟机即可实现,可以有效避免业务中断的问题,进一步提高了用户体验;此外,该种实现方式无需增加物理服务器进行虚拟机的转移,故无额外成本的增加。
本申请实施例提供了另一种虚拟中央处理器核心的调度方法。
首先,请参考图2,图2为本申请所提供的一种KVM(Kernel-based VirtualMachine,虚拟机)虚拟化平台的架构图,KVM虚拟化平台中的每台虚拟机均包括负载特征感知模块,亲和性计算模块以及重置恢复模块,并通过CFS(Completely Fair Scheduler,完全公平排程器)调度器实现VCPU调度。其中,负载特征感知模块用于采集虚拟机内部的负载特征,包括单位时间内各运行进程的上下文切换次数和虚拟机的VCPU占用率;亲和性计算模块用于根据各上下文切换次数和VCPU占用率计算获得对应虚拟机的VCPU亲和性;重置恢复模块用于在虚拟机内部负载变化过大时恢复自身默认配置。
进一步,基于以上KVM虚拟化平台,请参考图3,图3为本申请所提供的另一种虚拟中央处理器核心的调度方法的流程示意图,该虚拟中央处理器核心的调度方法的具体实现流程包括:
1、负载特征采集:
(1)扫描当前虚拟机内部所有正在运行的进程,并获取对应的PID;
(2)根据PID依次采集每个运行进程的上下文切换次数;
(3)实时采集当前虚拟机的VCPU占用率;
2、VCPU调度:
(1)根据各运行进程在单位时间内的上下文切换次数与VCPU占用率计算获得当前虚拟机的VCPU亲和性;
(2)调用***API进行虚拟机VCPU亲和性的调整,根据该虚拟机VCPU亲和性确定其对于VCPU的需求数量,并将该虚拟机与对应数量的VCPU进行绑定;
3、VCPU重置:
实时监测当前虚拟机内部的负载变化情况,即实时监测当前虚拟机的VCPU占用率,当整体VCPU占用率的变化超过20%时,重置该虚拟机的VCPU亲和性,恢复默认配置,也即将该虚拟机与默认数量的VCPU进行绑定。
可见,本申请实施例所提供的虚拟中央处理器核心的调度方法,对于虚拟机中的待统计的各运行进程进行上下文切换次数的采集,对虚拟机进行虚拟中央处理器核心占用率的采集,由此,通过采集上下文切换次数和虚拟中央处理器核心占用率这两个指标确定当前虚拟机所需要的虚拟中央处理器核心的数量,进而将当前虚拟机与对应数量的虚拟中央处理器核心进行绑定,实现虚拟中央处理器核心的自动化调度,该种实现方式无需人工手动操作,大大提高了虚拟中央处理器核心的调度效率,且由于该虚拟中央处理器核心的调度过程无需关闭虚拟机即可实现,可以有效避免业务中断的问题,进一步提高了用户体验;此外,该种实现方式无需增加物理服务器进行虚拟机的转移,故无额外成本的增加。
为解决上述技术问题,本申请还提供了一种虚拟中央处理器核心的调度装置,请参考图4,图4为本申请所提供的一种虚拟中央处理器核心的调度装置的结构示意图,该虚拟中央处理器核心的调度装置可包括:
第一采集模块10,用于采集当前虚拟机中待统计的各运行进程的上下文切换次数;
第二采集模块20,用于采集当前虚拟机的虚拟中央处理器核心占用率;
计算模块30,用于根据待统计的各上下文切换次数和虚拟中央处理器核心占用率确定当前虚拟机对于虚拟中央处理器核心的需求数量;
绑定模块40,用于将当前虚拟机与需求数量的虚拟中央处理器核心进行绑定。
可见,本申请实施例所提供的虚拟中央处理器核心的调度装置,对于虚拟机中的待统计的各运行进程进行上下文切换次数的采集,对虚拟机进行虚拟中央处理器核心占用率的采集,由此,通过采集上下文切换次数和虚拟中央处理器核心占用率这两个指标确定当前虚拟机所需要的虚拟中央处理器核心的数量,进而将当前虚拟机与对应数量的虚拟中央处理器核心进行绑定,实现虚拟中央处理器核心的自动化调度,该种实现方式无需人工手动操作,大大提高了虚拟中央处理器核心的调度效率,且由于该虚拟中央处理器核心的调度过程无需关闭虚拟机即可实现,可以有效避免业务中断的问题,进一步提高了用户体验;此外,该种实现方式无需增加物理服务器进行虚拟机的转移,故无额外成本的增加。
作为一种优选实施例,上述第一采集模块10可具体用于从当前虚拟机中扫描获得进程标识符;对进程标识符对应的运行进程进行信息采集,获得上下文切换次数。
作为一种优选实施例,上述第一采集模块10可具体用于采集待统计的各运行进程在预设时长内的上下文切换次数。
作为一种优选实施例,上述第二采集模块20可具体用于采集当前虚拟机在预设时长内的虚拟中央处理器核心占用率。
作为一种优选实施例,上述计算模块30可具体用于根据待统计的各上下文切换次数和虚拟中央处理器核心占用率计算获得当前虚拟机的虚拟中央处理器核心亲和性;根据虚拟中央处理器核心亲和性确定虚拟中央处理器核心的需求数量。
作为一种优选实施例,上述绑定模块40可具体用于调用应用程序编程接口将当前虚拟机与需求数量的虚拟中央处理器核心进行绑定。
作为一种优选实施例,该虚拟中央处理器核心的调度装置还可包括重置模块,用于在上述采集当前虚拟机的虚拟中央处理器核心占用率的步骤之后,根据虚拟中央处理器核心占用率计算获得虚拟中央处理器核心占用率的变化率;当虚拟中央处理器核心占用率的变化率超出预设数值时,将当前虚拟机与初始默认数量的虚拟中央处理器核心进行绑定;相应的,上述计算模块可具体用于当虚拟中央处理器核心占用率的变化率未超出预设数值时,根据待统计的各上下文切换次数和虚拟中央处理器核心占用率确定当前虚拟机对于虚拟中央处理器核心的需求数量。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述技术问题,本申请还提供了一种网络设备,请参考图5,图5为本申请所提供的一种虚拟中央处理器核心的调度设备的结构示意图,该虚拟中央处理器核心的调度设备可包括:
存储器100,用于存储计算机程序;
处理器200,用于执行计算机程序时可实现如上述任意一种虚拟中央处理器核心的调度方法的步骤。
对于本申请提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种虚拟中央处理器核心的调度方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
Claims (10)
1.一种虚拟中央处理器核心的调度方法,其特征在于,所述方法包括:
采集当前虚拟机中待统计的各运行进程的上下文切换次数;
采集所述当前虚拟机的虚拟中央处理器核心占用率;
根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量;
将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
2.根据权利要求1所述的方法,其特征在于,所述采集当前虚拟机中待统计的各运行进程的上下文切换次数,包括:
从所述当前虚拟机中扫描获得进程标识符;
对所述进程标识符对应的运行进程进行信息采集,获得所述上下文切换次数。
3.根据权利要求1所述的方法,其特征在于,所述采集当前虚拟机中待统计的各运行进程的上下文切换次数,包括:
采集待统计的各所述运行进程在预设时长内的上下文切换次数。
4.根据权利要求3所述的方法,其特征在于,所述采集所述当前虚拟机的虚拟中央处理器核心占用率,包括:
采集所述当前虚拟机在所述预设时长内的虚拟中央处理器核心占用率。
5.根据权利要求1所述的方法,其特征在于,所述根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量,包括:
根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率计算获得所述当前虚拟机的虚拟中央处理器核心亲和性;
根据所述虚拟中央处理器核心亲和性确定所述虚拟中央处理器核心的需求数量。
6.根据权利要求1所述的方法,其特征在于,所述将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定,包括:
调用应用程序编程接口将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
7.根据权利要求1至6任意一项所述的方法,其特征在于,在所述采集所述当前虚拟机的虚拟中央处理器核心占用率的步骤之后,还包括:
根据所述虚拟中央处理器核心占用率计算获得虚拟中央处理器核心占用率的变化率;
当所述虚拟中央处理器核心占用率的变化率超出预设数值时,将所述当前虚拟机与初始默认数量的虚拟中央处理器核心进行绑定;
相应地,所述根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量,包括:
当所述虚拟中央处理器核心占用率的变化率未超出所述预设数值时,根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量。
8.一种虚拟中央处理器核心的调度装置,其特征在于,所述装置包括:
第一采集模块,用于采集当前虚拟机中待统计的各运行进程的上下文切换次数;
第二采集模块,用于采集所述当前虚拟机的虚拟中央处理器核心占用率;
计算模块,用于根据待统计的各所述上下文切换次数和所述虚拟中央处理器核心占用率确定所述当前虚拟机对于虚拟中央处理器核心的需求数量;
绑定模块,用于将所述当前虚拟机与所述需求数量的虚拟中央处理器核心进行绑定。
9.一种虚拟中央处理器核心的调度设备,其特征在于,所述设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的虚拟中央处理器核心的调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如权利要求1至7任一项所述的虚拟中央处理器核心的调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011466124.0A CN112579257B (zh) | 2020-12-14 | 2020-12-14 | 一种虚拟中央处理器核心的调度方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011466124.0A CN112579257B (zh) | 2020-12-14 | 2020-12-14 | 一种虚拟中央处理器核心的调度方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579257A true CN112579257A (zh) | 2021-03-30 |
CN112579257B CN112579257B (zh) | 2024-02-23 |
Family
ID=75132232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011466124.0A Active CN112579257B (zh) | 2020-12-14 | 2020-12-14 | 一种虚拟中央处理器核心的调度方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579257B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238832A (zh) * | 2021-05-20 | 2021-08-10 | 元心信息科技集团有限公司 | 虚拟处理器的调度方法、装置、设备及计算机存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012834A (zh) * | 2010-12-20 | 2011-04-13 | 复旦大学 | 基于用户空闲进程的提高虚拟机性能与可伸缩性的方法 |
CN103729254A (zh) * | 2013-12-31 | 2014-04-16 | 国网山东省电力公司 | 一种虚拟服务器Virtual CPU资源监测及动态分配方法 |
US20140137108A1 (en) * | 2012-11-14 | 2014-05-15 | Red Hat Israel, Ltd. | Dynamic processor unplug in virtualized computer systems |
US20140331222A1 (en) * | 2013-05-03 | 2014-11-06 | Vmware, Inc. | Dynamic virtual machine sizing |
US20180365078A1 (en) * | 2017-06-16 | 2018-12-20 | Fujitsu Limited | Information processing apparatus and information processing method |
US20190377612A1 (en) * | 2017-02-20 | 2019-12-12 | Huawei Technologies Co., Ltd. | VCPU Thread Scheduling Method and Apparatus |
CN110673928A (zh) * | 2019-09-29 | 2020-01-10 | 天津卓朗科技发展有限公司 | 线程绑定方法、装置、存储介质及服务器 |
-
2020
- 2020-12-14 CN CN202011466124.0A patent/CN112579257B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012834A (zh) * | 2010-12-20 | 2011-04-13 | 复旦大学 | 基于用户空闲进程的提高虚拟机性能与可伸缩性的方法 |
US20140137108A1 (en) * | 2012-11-14 | 2014-05-15 | Red Hat Israel, Ltd. | Dynamic processor unplug in virtualized computer systems |
US20140331222A1 (en) * | 2013-05-03 | 2014-11-06 | Vmware, Inc. | Dynamic virtual machine sizing |
CN103729254A (zh) * | 2013-12-31 | 2014-04-16 | 国网山东省电力公司 | 一种虚拟服务器Virtual CPU资源监测及动态分配方法 |
US20190377612A1 (en) * | 2017-02-20 | 2019-12-12 | Huawei Technologies Co., Ltd. | VCPU Thread Scheduling Method and Apparatus |
US20180365078A1 (en) * | 2017-06-16 | 2018-12-20 | Fujitsu Limited | Information processing apparatus and information processing method |
CN110673928A (zh) * | 2019-09-29 | 2020-01-10 | 天津卓朗科技发展有限公司 | 线程绑定方法、装置、存储介质及服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238832A (zh) * | 2021-05-20 | 2021-08-10 | 元心信息科技集团有限公司 | 虚拟处理器的调度方法、装置、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112579257B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162865B (zh) | 服务器的调度方法、装置和服务器 | |
US9218203B2 (en) | Packet scheduling in a multiprocessor system using inter-core switchover policy | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN106557369B (zh) | 一种多线程的管理方法及*** | |
WO2021159638A1 (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN110119307B (zh) | 数据处理请求的处理方法、装置、存储介质及电子装置 | |
CN105022668B (zh) | 一种作业调度方法及*** | |
CN106528318B (zh) | 线程死循环检测方法和装置 | |
CN113590337B (zh) | 一种云环境下自动调整云主机配置的方法及装置 | |
WO2021253851A1 (zh) | 一种集群分布式资源调度方法、装置、设备及存储介质 | |
CN115543577A (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN113660173A (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
CN112579257B (zh) | 一种虚拟中央处理器核心的调度方法、装置及相关设备 | |
CN110221917B (zh) | 用于分配流式数据的方法及装置 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN110837415A (zh) | 一种基于risc-v多核处理器的线程调度方法和装置 | |
CN117519905A (zh) | 一种基于迁移成本和资源均衡的虚拟机选择方法 | |
CN111949494A (zh) | 一种任务调控方法、装置及相关设备 | |
CN112783713A (zh) | 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质 | |
CN110502495A (zh) | 一种应用服务器的日志收集方法及装置 | |
CN116048762A (zh) | 基于历史数据分析的计算机资源调度*** | |
CN113032098B (zh) | 一种虚拟机调度方法、装置、设备及可读存储介质 | |
CN111158896A (zh) | 一种分布式进程调度方法及*** | |
CN115309520A (zh) | 任务迁移方法、装置、电子设备及存储介质 | |
CN112506622A (zh) | 面向云手机的gpu计算性能的预测方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |