CN106648866A - 一种基于kvm平台满足任务时限要求的资源调度方法 - Google Patents
一种基于kvm平台满足任务时限要求的资源调度方法 Download PDFInfo
- Publication number
- CN106648866A CN106648866A CN201611170331.5A CN201611170331A CN106648866A CN 106648866 A CN106648866 A CN 106648866A CN 201611170331 A CN201611170331 A CN 201611170331A CN 106648866 A CN106648866 A CN 106648866A
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- host
- physical machine
- undercapacity
- 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
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/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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5044—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 considering hardware capabilities
-
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于KVM平台满足任务时限要求的资源调度方法,包括如下步骤:步骤一,在物理机集群中搭建KVM平台,并获取用户层提交的虚拟机任务的到达时间和时限;步骤二,按照如下公式计算出n台虚拟机的任务性能损失比,步骤三,通过步骤二中n台虚拟机的性能损失比计算出虚拟机性能损失比折线图;步骤四,通过步骤一获得的任务到达时间和时限、步骤三中获得的虚拟机性能损失比折线图,结合任务密集型预测出任务资源需求量等步骤,该发明利用虚拟机分类及虚拟机动态迁移技术,将多租户的虚拟机请求聚合调度到更少的物理机上,提高了数据中心资源的利用效率和能效。
Description
技术领域
本发明涉及云计算中基于多租户的虚拟化技术领域,特别是一种基于KVM平台满足任务时限要求的资源调度方法。
背景技术
近年来云计算飞速发展,通过虚拟化技术复用物理资源成为云服务节约成本的必然选择。然而,在多租户共享物理机的背景下,由于冯诺依曼体系结构下物理资源(如CPU、总线等)隔离不清,造成任务之间的资源竞争以及任务运行时间的不确定性等问题非常突出。
通过对多任务之间资源竞争行为的评测,可获取任务运行时间随资源竞争的剧烈程度而变化的情况。然而,给定任务的到达时间和时限要求,通过预测并分配完成任务所需的最低真实资源量,来提高云计算基础设施利用效率的成果尚未出现。目前,现有研究主要在Xen环境下对于资源竞争行为进行评测。但是,相对于难于配置和使用的Xen,KVM作为特殊的应用程序,可以充分享受Linux内核的所有功能,不必自己实现物理资源的管理和调度算法,更适用于多任务之间资源竞争行为的评测。
资源调度方面,由于用户需求的实时动态变化很难准确预测使得业界普遍采用近似优化的调度算法。借鉴Gambosi等[1]提出的A1算法中虚拟机分类及初调度的方法,同时考虑到任务时限要求这一特殊背景,提出了新的算法调度多任务,以实现最小化数据中心的能耗。
发明内容
为克服现有技术的不足,本发明提供一种基于KVM平台满足任务时限要求的资源调度方法,该发明利用虚拟机分类及虚拟机动态迁移技术,将多租户的虚拟机请求聚合调度到更少的物理机上,提高了数据中心资源的利用效率和能效。
为了解决现有技术中存在技术问题,本发明采用如下技术方案:
一种基于KVM平台满足任务时限要求的资源调度方法,包括如下步骤:
步骤一,在物理机集群中搭建KVM平台,并获取用户层提交的虚拟机任务的到达时间和时限;
步骤二,按照如下公式计算出n台虚拟机的任务性能损失比,
其中,PDn表示n台虚拟机的性能损失比;(n=1,2,3,...)一台虚拟机独占一台服务器的情况下,虚拟机完成任务所需的时间用rt1表示,n台虚拟机共享一台服务器的情况下,各虚拟机完成任务所需时间的最大值用rtn表示;
步骤三,通过步骤二中n台虚拟机的性能损失比计算出虚拟机性能损失比折线图;
步骤四,通过步骤一获得的任务到达时间和时限、步骤三中获得的虚拟机性能损失比折线图,结合任务密集型预测出任务资源需求量
TR=<cpu,mem,memBus,net>
其中cpu、mem、memBus、net分别表示任务对CPU资源、内存资源、内存总线资源以及网络带宽资源的需求量,且归一化到[0,1]区间;
步骤五,对步骤四中预测出的任务资源需求量按照如下公式计算虚拟机完成任务所需的最大资源需求量,并称作瓶颈资源量;
size=max{cpu,mem,memBus,net}
步骤六,通过初调度算法将虚拟机分配到物理机集群中;虚拟机执行任务,将运行结果反馈给用户层后,退出物理机集群;
步骤七,通过重调度算法调度物理机集群中剩余的虚拟机。
所述步骤四中不同密集型任务资源需求量的预测方法的步骤为:
步骤一,通过任务到达时间a、任务时限d,根据虚拟机性能损失比折线图,计算区间[tx,tx+1]使得d-a∈[tx,tx+1],其中,tx、tx+1分别表示x、x+1台虚拟机共享一台服务器,且同时开始执行任务的情况下,各物理机完成任务所需时间的最大值;
步骤二,不同密集型任务的资源需求量TR按照如下方法计算;其中,Vcpu、Vmem分别表示在物理机上新建一台虚拟机所需分配的最少CPU资源、内存资源,且归一化到[0,1]区间;
对于CPU密集型任务,mem=Vmem、memBus=1/x、net=0;
对于内存密集型任务,cpu=Vcpu、,memBus=1/x、net=0;
对于网络密集型任务,cpu=Vcpu、mem=Vmem、memBus=1/x、net=1/x。
所述步骤六中初调度算法的步骤为:
步骤一,对虚拟机进行分类,采用B、L、S、T分别表示瓶颈资源量为(2/3,1]、(1/2,2/3]、(1/3,1/2]、(0,1/3]的虚拟机;
步骤二,将虚拟机按照类型分配到不同的物理机,空闲资源大于1/3的物理机称作非满载物理机;否则,称作满载物理机,其中,当前待分配的虚拟机用VM表示,其步骤为:
2-1)若VM是B:独占一台物理机,形成满载物理机;
2-2)若VM是S:如果物理机集群中存在一台非满载的S-PM,则将新的S迁入该S-PM形成满载的SS-PM;否则,新的S独占一台物理机,形成非满载的S-PM;其中,S-PM表示只含有一个S的物理机,SS-PM表示含有两个S的物理机;
2-3)若VM是L:先独占一台物理机,形成非满载L-PM,如果物理机集群中存在非满载的T-PM,则将其中的T移入此L-PM,直至形成满载的LT-PM;若T全部被迁出,关闭该空闲T-PM,其中,L-PM表示只含有一个L的物理机,T-PM表示含有若干个T的物理机,LT-PM表示含有一个L和若干个T的物理机;
2-4)若VM是T:优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入非满载的T-PM,从而尽可能形成满载的T-PM;最后选择独占一台物理机,形成非满载的T-PM,其中,LLT-PM表示L-PM或LT-PM。
所述步骤七中重调度算法的步骤为:
步骤一,当前完成任务的虚拟机用VM表示,VM原来所在的物理机称作宿主机;
步骤二,若VM是B:宿主机变为空闲,关闭宿主机;
步骤三,若VM是L:宿主机变为非满载的T-PM,迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机;
步骤四,若VM是S:若宿主机上没有S,关闭宿主机;反之,宿主机上还有一个S;如果物理机集群中存在除宿主机以外的S-PM,则将该S-PM的S迁入宿主机并关闭该S-PM;
步骤五,若VM是T且宿主机变为非满载的,则宿主机原来为LT-PM或T-PM;
5-1)若宿主机变为LT-PM且物理机集群中存在非满载的T-PM,则将T-PM中的T迁入宿主机,直至形成满载的LT-PM;若该T-PM变为空闲,则关闭该T-PM;
5-2)若宿主机变为T-PM,尽可能迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机。
本发明有益效果:
第一,本发明实现KVM平台下节能且高效的资源调度,并按时完成租户提交的任务。
第二,本发明提出了基于可重复性任务的资源调度方法,发现了任务时限与任务实际所需资源量之间的转换方法,并利用虚拟化技术支持数据中心的节能。同时,实现在满足任务时间限制的前提下最小化数据中心的能耗。
附图说明
图1为本发明流程图;
图2为初调度算法的示意图;
图3为重调度算法的示意图;
图4为某CPU密集型任务的性能损失比折线图;
图5为某内存密集型任务的性能损失比折线图;
图6为某网络密集型任务的性能损失比折线图;
具体实施方式
下面结合附图对本发明做出详细地说明:
如图1所示,一种基于KVM平台满足任务时限要求的资源调度方法,包括如下步骤:
步骤一110,在物理机集群中搭建KVM平台,并获取用户层提交的虚拟机任务的到达时间和时限;
步骤二120,按照如下公式计算出n台虚拟机的任务性能损失比,
其中,PDn表示n台虚拟机的性能损失比,(n=1,2,3,...);一台虚拟机独占一台物理机的情况下,虚拟机完成任务所需的时间用rt1表示,n台虚拟机共享一台物理机,且同时开始执行任务的情况下,各虚拟机完成任务所需时间的最大值用rtn表示;
步骤三130,通过步骤二120中n台虚拟机的性能损失比计算出虚拟机性能损失比折线图;
步骤四140,通过步骤一110获得的任务到达时间和时限、步骤三130中获得的虚拟机性能损失比折线图,结合任务密集型预测出任务资源需求量
TR=<cpu,mem,memBus,net>
其中cpu、mem、memBus、net分别表示任务对CPU资源、内存资源、内存总线资源以及网络带宽资源的需求量,且归一化到[0,1]区间;所述步骤四140中不同密集型任务资源需求量的预测方法的步骤为:
步骤一,通过任务到达时间a、任务时限d,根据虚拟机性能损失比折线图,计算区间[tx,tx+1]使得d-a∈[tx,tx+1],其中,tx、tx+1分别表示x、x+1台虚拟机共享一台物理机,且同时开始执行任务的情况下,各物理机完成任务所需时间的最大值;
步骤二,不同密集型任务的资源需求量TR按照如下方法计算;其中,Vcpu、Vmem分别表示在物理机上新建一台虚拟机所需分配的最少CPU资源、内存资源,且归一化到[0,1]区间;
对于CPU密集型任务,mem=Vmem、memBus=1/x、net=0;
对于内存密集型任务,cpu=Vcpu、memBus=1/x、net=0;
对于网络密集型任务,cpu=Vcpu、mem=Vmem、memBus=1/x、net=1/x。
步骤五150,对步骤四140中预测出的任务资源需求量按照如下公式计算虚拟机完成任务所需的最大资源需求量,并称作瓶颈资源量;
size=max{cpu,mem,memBus,net}
步骤六160,通过初调度算法将虚拟机分配到物理机集群中;虚拟机执行任务,将运行结果反馈给用户层后,退出物理机集群;所述步骤六160中初调度算法的步骤为:
步骤一,对虚拟机进行分类,采用B、L、S、T分别表示瓶颈资源量为(2/3,1]、(1/2,2/3]、(1/3,1/2]、(0,1/3]的虚拟机;
步骤二,将虚拟机按照类型分配到不同的物理机,空闲资源大于1/3的物理机称作非满载物理机;否则,称作满载物理机,其中,当前待分配的虚拟机用VM表示,其步骤为:
2-5)若VM是B:独占一台物理机,形成满载物理机;
2-6)若VM是S:如果物理机集群中存在一台非满载的S-PM,则将新的S迁入该S-PM形成满载的SS-PM;否则,新的S独占一台物理机,形成非满载的S-PM;其中,S-PM表示只含有一个S的物理机,SS-PM表示含有两个S的物理机;
2-7)若VM是L:先独占一台物理机,形成非满载L-PM,如果物理机集群中存在非满载的T-PM,则将其中的T移入此L-PM,直至形成满载的LT-PM;若T全部被迁出,关闭该空闲T-PM,其中,L-PM表示只含有一个L的物理机,T-PM表示含有若干个T的物理机,LT-PM表示含有一个L和若干个T的物理机;
2-8)若VM是T:优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入非满载的T-PM,从而尽可能形成满载的T-PM;最后选择独占一台物理机,形成非满载的T-PM,其中,LLT-PM表示L-PM或LT-PM。
步骤七170,通过重调度算法调度物理机集群中剩余的虚拟机。所述步骤七170中重调度算法的步骤为:
步骤一,当前完成任务的虚拟机用VM表示,VM原来所在的物理机称作宿主机;
步骤二,若VM是B:宿主机变为空闲,关闭宿主机;
步骤三,若VM是L:宿主机变为非满载的T-PM,迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机;
步骤四,若VM是S:若宿主机上没有S,关闭宿主机;反之,宿主机上还有一个S;如果物理机集群中存在除宿主机以外的S-PM,则将该S-PM的S迁入宿主机并关闭该S-PM;
步骤五,若VM是T且宿主机变为非满载的,则宿主机原来为LT-PM或T-PM;
5-1)若宿主机变为LT-PM且物理机集群中存在非满载的T-PM,则将T-PM中的T迁入宿主机,直至形成满载的LT-PM;若该T-PM变为空闲,则关闭该T-PM;
5-2)若宿主机变为T-PM,尽可能迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机。
其中,本发明的高效调度方法由资源预测模块、任务初调度模块及任务重调度模块三个部分组成。
1、资源预测模块
资源预测模块需要通过实验绘制任务的性能干扰损失比折线图,从而计算任务时限在折线图中所对应的最大可同时运行的虚拟机数量,即可转化为任务的瓶颈资源量。具体步骤如下:
1)在一台物理机上搭建KVM架构。虚拟机的配置弹性可变,每台虚拟机至少需要的CPU资源和内存资源分别用Vcpu、Vmem表示,其中,Vcpu、Vmem归一化到[0,1]区间内。
2)n台封装相同任务的虚拟机共享一台物理机并同时开始执行任务,记录每台虚拟机完成任务所需的时间,并保留其中时间的最大值。
3)改变虚拟机的数量,进行重复实验,并记录实验数据。
4)计算虚拟机的性能损失比:其中,PDn表示n台虚拟机的性能损失比,(n=1,2,3,...);一台虚拟机独占一台物理机的情况下,虚拟机完成任务所需的时间用rt1表示,n台虚拟机共享一台服务器,且同时开始执行任务的情况下,各虚拟机完成任务所需时间的最大值用rtn表示。
5)绘制该任务对应的性能损失比与虚拟机数量的折线图。
6)造成虚拟机性能损失变化的主要原因:当物理机的资源供给量无法满足多台虚拟机的资源需求量时,多个虚拟机轮流使用共享资源,致使任务之间的性能干扰加重,从而导致其运行时间延长。任务性能损失比折线图的变化趋势由任务的密集型(CPU、内存或者网络)决定,其变化情况以及变化的具体原因如下。
6-1)对于CPU密集型任务,若虚拟机的vCPU需求总量不超过物理机的physical CPU(pCPU)总量时,资源需求得到满足使得虚拟机的运行时间缓慢增长;反之,虚拟机轮流使用CPU时间片,任务运行时间显著增加。
6-2)对于内存密集型任务,由于内存的访问需要经过带宽固定的内存访问总线,当内存访问量随虚拟机数量线性增长时,虚拟机的运行时间亦线性增长。
6-3)对于网络密集型任务,每台虚拟机利用KVM平台的Single Root I/OVirtualization(SR-IOV)技术都能通过一个独立通道连接到网络,实现独立的I/O功能。因此,固定的网络带宽导致性能损失比曲线线性增长。
7)已知任务的到达时间a、任务时限d,根据虚拟机性能损失比折线图,计算区间[tx,tx+1]使得d-a∈[tx,tx+1],其中,tx、tx+1分别表示x、x+1台虚拟机共享一台物理机且同时开始执行任务的情况下,各物理机完成任务所需时间的最大值。
8)根据任务的密集型预测任务资源需求量TR=<cpu,mem,memBus,net>,其中,cpu、mem、memBus、net分别表示任务对CPU资源、内存资源、内存总线资源以及网络带宽资源的需求量,且归一化到[0,1]区间。具体方法如下。
8-1)对于CPU密集型任务,mem=Vmem、memBus=1/x、net=0。
8-2)对于内存密集型任务,cpu=Vcpu、memBus=1/x、net=0。
8-3)对于网络密集型任务,cpu=Vcpu、mem=Vmem、memBus=1/x、net=1/x。
9)按照下公式计算虚拟机完成任务所需的最大资源需求量,并称作瓶颈资源;size=max{cpu,mem,memBus,net}。
另外,本发明中还包括调度系统的架构设计,本调度系统分为宿主层、用户层和调度器三个部分。宿主层包括硬件和宿主操作系统。用户层提供给用户一个裸的虚拟机用于封装任务,一般一台虚拟机只运行一个任务;调度器接收用户提交的封装有任务的虚拟机以及任务的时限要求,通过资源预测模块得到任务的瓶颈资源需求,从而在任务初调度模块为虚拟机分配物理机,并将任务的运行结果反馈给用户,以及由于任务完成释放资源造成宿主机资源利用率变化时,在任务重调度模块在决定需要动态迁移的虚拟机。
2、任务初调度模块
任务初调度模块采用Gambosi等提出的A1箱算法,将任务封装到虚拟机中,并在物理机集群中寻找满足虚拟机瓶颈资源需求量的物理机。具体步骤如下:步骤一,对虚拟机进行分类,采用B、L、S、T分别表示瓶颈资源量为(2/3,1]、(1/2,2/3]、(1/3,1/2]、(0,1/3]的虚拟机;
步骤二,将虚拟机按照类型分配到不同的物理机,空闲资源大于1/3的物理机称作非满载物理机;否则,称作满载物理机,其中,当前待分配的虚拟机用VM表示,其步骤为:
2-1)若VM是B:独占一台物理机,形成满载物理机;
2-2)若VM是S:如果物理机集群中存在一台非满载的S-PM,则将新的S迁入该S-PM形成满载的SS-PM;否则,新的S单独占用一台物理机,形成非满载的S-PM;其中,S-PM表示只含有一个S的物理机,SS-PM表示含有两个S的物理机;
2-3)若VM是L:先独占一台物理机,形成非满载L-PM,如果物理机集群中存在非满载的T-PM,则将其中的T移入此L-PM,直至形成满载的LT-PM;若T全部被迁出,关闭该空闲T-PM,其中,L-PM表示只含有一个L的物理机,T-PM表示含有若干个T的物理机,LT-PM表示含有一个L和若干个T的物理机;
2-4)若VM是T:优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入非满载的T-PM,从而尽可能形成满载的T-PM;最后选择独占一台物理机,形成非满载的T-PM,其中,LLT-PM表示L-PM或LT-PM。
如图2所示,初调度算法的工作模式如下:
B型虚拟机到达,独占一台物理机形成满载物理机,并放入满载区。
L型虚拟机到达,独占一台物理机形成非满载L-PM。在非满载区寻找T-PM,如果存在T-PM,迁移后会形成一台尽可能满载的LT-PM以及一台尽可能空闲的T-PM。LT-PM满载则放入满载区;反之,放入非满载区。T-PM空闲则关闭;反之,放回非满载区。其中,L-PM表示只含有一个L的物理机,T-PM表示含有若干个T的物理机,LT-PM表示含有一个L和若干个T的物理机。
S型虚拟机到达,独占一台物理机形成非满载S-PM。在非满载区寻找另一台非满载的S-PM,如果不存在S-PM,将新的S-PM放入非满载区;否则,迁移后,形成一台满载的SS-PM以及一台空闲物理机。SS-PM放入满载区,空闲物理机关闭。其中,S-PM表示只含有一个S的物理机,SS-PM表示含有两个S的物理机。
T型虚拟机到达,进入[341]。
在非满载区寻找LT-PM,如果存在LT-PM,迁移后会形成一台尽可能满载的LT-PM。LT-PM满载则放入满载区;反之,放入非满载区。如果不存在LT-PM,进入[342]。
在非满载区寻找T-PM用于初调度。如果存在T-PM,迁移后会形成一台尽可能满载的T-PM。T-PM满载则放入满载区;反之,放入非满载区。如果不存在T-PM,进入[343]。
T型虚拟机到达后,独占一台物理机形成非满载物理机,并放入非满载区。
3、任务重调度模块
任务完成后会释放占有的资源,导致物理机的资源利用率降低。重调度模块利用动态迁移技术合并适量物理机以节约数据中心的能耗。所述重调度算法的步骤为:
步骤一,当前完成任务的虚拟机用VM表示,VM原来所在的物理机称作宿主机;步骤二,若VM是B:宿主机变为空闲,关闭宿主机;
步骤三,若VM是L:宿主机变为非满载的T-PM,迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机;
步骤四,若VM是S:若宿主机上没有S,关闭宿主机;反之,宿主机上还有一个S;如果物理机集群中存在除宿主机以外的S-PM,则将该S-PM的S迁入宿主机并关闭该S-PM;
步骤五,若VM是T且宿主机变为非满载的,则宿主机原来为LT-PM或T-PM;
5-1)若宿主机变为LT-PM且物理机集群中存在非满载的T-PM,则将T-PM中的T迁入宿主机,直至形成满载的LT-PM;若该T-PM变为空闲,则关闭该T-PM;
5-2)若宿主机变为T-PM,尽可能迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机。
如图3所示,重调度算法的工作模式如下:
SS-PM中的S型虚拟机完成任务,输出运行结果,退出SS-PM。SS-PM变为S-PM。在非满载区寻找另一台非满载的S-PM,如果不存在S-PM,宿主机放入非满载区;否则,存在S-PM,迁移后,形成一台满载的SS-PM以及一台空闲物理机。SS-PM放入满载区,空闲物理机关闭。
LT-PM中的T型虚拟机完成任务,输出运行结果,退出LT-PM。若LT-PM非满载,在非满载区寻找T-PM,如果不存在T-PM,宿主机放入非满载区;否则,存在T-PM,迁移后会形成一台尽可能满载的LT-PM以及一台尽可能空闲的T-PM。LT-PM满载则放入满载区;反之,放入非满载区。T-PM空闲则关闭;反之,放回非满载区。
LT-PM中的L型虚拟机完成任务,输出运行结果,退出宿LT-TM。LT-PM变为T-PM,进入[431]:
在非满载区寻找LT-PM,如果存在LT-PM,迁移后会形成一台尽可能满载的LT-PM以及一台尽可能空闲的T-PM。LT-PM满载则放入满载区;反之,放入非满载区。T-PM空闲则关闭;反之,放入非满载区。如果不存在LT-PM,进入[432]。
在非满载区寻找另一台T-PM,如果存在T-PM,迁移后会形成一台尽可能满载的T-PM以及一台尽可能空闲的T-PM。T-PM满载则放入满载区;T-PM非满载则放入非满载区;T-PM空闲则关闭。如果不存在T-PM,宿主机放入非满载区。
T-PM中的T型虚拟机完成任务,输出运行结果,退出T-PM。T-PM变为空闲则关闭物理机;否则,若T-PM满载,放回满载区,若T-PM非满载,进入[441]:
在非满载区寻找LT-PM,如果存在LT-PM,迁移后会形成一台尽可能满载的LT-PM以及一台尽可能空闲的T-PM。LT-PM满载则放入满载区;反之,放入非满载区。T-PM空闲则关闭;反之,放入非满载区。如果不存在LT-PM,进入[442]。
在非满载区寻找T-PM,如果存在T-PM,迁移后会形成一台尽可能满载的T-PM以及一台尽可能空闲的T-PM。T-PM满载则放入满载区;T-PM非满载则放入非满载区;T-PM空闲则关闭。如果不存在T-PM,宿主机放入非满载区。
B-PM中B型虚拟机完成任务,输出运行结果,退出B-TM。关闭B-PM。
S-PM中的S型虚拟机完成任务,输出运行结果,退出S-PM,关闭S-PM。
性能损失比折线图:
本发明需要在已知任务的性能损失比折线图的前提下,调度带时限的任务。图4、5、6是三种常见的性能损失比曲线。注意,调度算法可能将瓶颈资源量不同的虚拟机放在一台物理机上运行,从而降低虚拟机之间的性能干扰,使得任务的运行时间大大缩短。
上述实例仅用于说明本发明,其中各部件的结构、材料、连接方式都是可以有所变化的,凡是在本发明技术基础上进行的等同变换和改进,均不应该排除在本发明的保护范围之外。
Claims (4)
1.一种基于KVM平台满足任务时限要求的资源调度方法,其特征在于,包括如下步骤:
步骤一,在物理机集群中搭建KVM平台,并获取用户层提交的虚拟机任务的到达时间和时限;
步骤二,按照如下公式计算出n台虚拟机的任务性能损失比,
其中,PDn表示n台虚拟机的性能损失比,(n=1,2,3,...)一台虚拟机独占一台物理机的情况下,虚拟机完成任务所需的时间用rt1表示,n台虚拟机共享一台物理机,且同时开始执行任务的情况下,各虚拟机完成任务所需时间的最大值用rtn表示;
步骤三,通过步骤二中n台虚拟机的性能损失比计算出虚拟机性能损失比折线图;步骤四,通过步骤一获得的任务到达时间和时限、步骤三中获得的虚拟机性能损失比折线图,结合任务密集型预测出任务资源需求量
TR=<cpu,mem,memBus,net>
其中cpu、mem、memBus、net分别表示任务对CPU资源、内存资源、内存总线资源以及网络带宽资源的需求量,且归一化到[0,1]区间;
步骤五,对步骤四中预测出的任务资源需求量按照如下公式计算虚拟机完成任务所需的最大资源需求量,并称作瓶颈资源量;
size=max{cpu,mem,memBus,net}
步骤六,通过初调度算法将虚拟机分配到物理机集群中;虚拟机执行任务,将运行结果反馈给用户层后,退出物理机集群;
步骤七,通过重调度算法调度物理机集群中剩余的虚拟机。
2.根据权利要求1所述的一种基于KVM平台满足任务时限要求的资源调度方法,其特征在于,所述步骤四中不同密集型任务资源需求量的预测方法的步骤为:
步骤一,通过任务到达时间a、任务时限d,根据虚拟机性能损失比折线图,计算区间[tx,tx+1]使得d-a∈[tx,tx+1],其中,tx、tx+1分别表示x、x+1台虚拟机共享一台物理机,且同时开始执行任务的情况下,各物理机完成任务所需时间的最大值;
步骤二,不同密集型任务的资源需求量TR按照如下方法计算;其中,Vcpu、Vmem分别表示在物理机上新建一台虚拟机所需分配的最少CPU资源、内存资源,且归一化到[0,1]区间;
对于CPU密集型任务,mem=Vmem、memBus=1/x、net=0;
对于内存密集型任务,cpu=Vcpu、memBus=1/x、net=0;
对于网络密集型任务,cpu=Vcpu、mem=Vmem、memBus=1/x、net=1/x。
3.根据权利要求1所述的一种基于KVM平台满足任务时限要求的资源调度方法,其特征在于,所述步骤六中初调度算法的步骤为:
步骤一,对虚拟机进行分类,采用B、L、S、T分别表示瓶颈资源量为(2/3,1]、(1/2,2/3]、(1/3,1/2]、(0,1/3]的虚拟机;
步骤二,将虚拟机按照类型分配到不同的物理机,空闲资源大于1/3的物理机称作非满载物理机;否则,称作满载物理机,其中,当前待分配的虚拟机用VM表示,其步骤为:
2-1)若VM是B:独占一台物理机,形成满载物理机;
2-2)若VM是S:如果物理机集群中存在一台非满载的S-PM,则将新的S迁入该S-PM形成满载的SS-PM;否则,新的S独占一台物理机,形成非满载的S-PM;其中,S-PM表示只含有一个S的物理机,SS-PM表示含有两个S的物理机;
2-3)若VM是L:先独占一台物理机,形成非满载L-PM,如果物理机集群中存在非满载的T-PM,则将其中的T移入此L-PM,直至形成满载的LT-PM;若T全部被迁出,关闭该空闲T-PM,其中,L-PM表示只含有一个L的物理机,T-PM表示含有若干个T的物理机,LT-PM表示含有一个L和若干个T的物理机;
2-4)若VM是T:优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入非满载的T-PM,从而尽可能形成满载的T-PM;最后选择独占一台物理机,形成非满载的T-PM,其中,LLT-PM表示L-PM或LT-PM。
4.根据权利要求1所述的一种基于KVM平台满足任务时限要求的资源调度方法,其特征在于,所述步骤七中重调度算法的步骤为:
步骤一,当前完成任务的虚拟机用VM表示,VM原来所在的物理机称作宿主机;
步骤二,若VM是B:宿主机变为空闲,关闭宿主机;
步骤三,若VM是L:宿主机变为非满载的T-PM,迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机;
步骤四,若VM是S:若宿主机上没有S,关闭宿主机;反之,宿主机上还有一个S;如果物理机集群中存在除宿主机以外的S-PM,则将该S-PM的S迁入宿主机并关闭该S-PM;
步骤五,若VM是T且宿主机变为非满载的,则宿主机原来为LT-PM或T-PM;
5-1)若宿主机变为LT-PM且物理机集群中存在非满载的T-PM,则将T-PM中的T迁入宿主机,直至形成满载的LT-PM;若该T-PM变为空闲,则关闭该T-PM;
5-2)若宿主机变为T-PM,尽可能迁出其中的T,从而尽可能使宿主机空闲,T优先选择迁入非满载的LLT-PM,从而尽可能形成满载的LT-PM;其次选择迁入除宿主机以外的非满载的T-PM,从而尽可能形成满载的T-PM;若宿主机上剩余的T全部迁出,关闭宿主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611170331.5A CN106648866B (zh) | 2016-12-16 | 2016-12-16 | 一种基于kvm平台满足任务时限要求的资源调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611170331.5A CN106648866B (zh) | 2016-12-16 | 2016-12-16 | 一种基于kvm平台满足任务时限要求的资源调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106648866A true CN106648866A (zh) | 2017-05-10 |
CN106648866B CN106648866B (zh) | 2020-12-11 |
Family
ID=58823276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611170331.5A Active CN106648866B (zh) | 2016-12-16 | 2016-12-16 | 一种基于kvm平台满足任务时限要求的资源调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106648866B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888715A (zh) * | 2019-12-12 | 2020-03-17 | 深圳齐杉科技有限公司 | 一种虚拟化计算方法 |
CN111580966A (zh) * | 2020-04-30 | 2020-08-25 | 西安石油大学 | 一种基于内存利用率的云任务调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236582A (zh) * | 2011-07-15 | 2011-11-09 | 浙江大学 | 虚拟化集群负载在多台物理机中均衡分配的方法 |
CN102609295A (zh) * | 2011-10-18 | 2012-07-25 | 华中科技大学 | 虚拟机作业动态调度系统 |
US20150095910A1 (en) * | 2013-09-29 | 2015-04-02 | International Business Machines Corporation | Data assignment for physical machine |
-
2016
- 2016-12-16 CN CN201611170331.5A patent/CN106648866B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236582A (zh) * | 2011-07-15 | 2011-11-09 | 浙江大学 | 虚拟化集群负载在多台物理机中均衡分配的方法 |
CN102609295A (zh) * | 2011-10-18 | 2012-07-25 | 华中科技大学 | 虚拟机作业动态调度系统 |
US20150095910A1 (en) * | 2013-09-29 | 2015-04-02 | International Business Machines Corporation | Data assignment for physical machine |
Non-Patent Citations (2)
Title |
---|
K. T. RAGHAVENDRA: ""Virtual Cpu Scheduling Techniques for Kernel Based Virtual Machine (Kvm)"", 《2013 IEEE INTERNATIONAL CONFERENCE ON CLOUD COMPUTING IN EMERGING MARKETS (CCEM)》 * |
黄煜: "KVM虚拟机CPU虚拟化的研究与调度策略的优化", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888715A (zh) * | 2019-12-12 | 2020-03-17 | 深圳齐杉科技有限公司 | 一种虚拟化计算方法 |
CN110888715B (zh) * | 2019-12-12 | 2021-02-02 | 深圳齐杉科技有限公司 | 一种虚拟化计算方法 |
CN111580966A (zh) * | 2020-04-30 | 2020-08-25 | 西安石油大学 | 一种基于内存利用率的云任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106648866B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
Zhang et al. | Dynamic heterogeneity-aware resource provisioning in the cloud | |
CN103955398B (zh) | 一种基于处理器性能监控的虚拟机共生调度方法 | |
CN106502792A (zh) | 一种面向不同类型负载的多租户资源优化调度方法 | |
CN109144710A (zh) | 资源调度方法、装置及计算机可读存储介质 | |
CN101488098A (zh) | 基于虚拟计算技术的多核计算资源管理系统 | |
CN103425536B (zh) | 一种面向分布式系统性能测试的测试资源管理方法 | |
CN103677990B (zh) | 虚拟机实时任务的调度方法、装置和虚拟机 | |
US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN103701886A (zh) | 一种云计算环境下的服务及资源分层调度方法 | |
CN110262897B (zh) | 一种基于负载预测的Hadoop计算任务初始分配方法 | |
CN105740059B (zh) | 一种面向可分割任务的粒子群调度方法 | |
CN113505084B (zh) | 基于访存和性能建模的内存资源动态调控方法及系统 | |
Zhou et al. | Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments | |
CN110362411B (zh) | 一种基于Xen系统的CPU资源调度方法 | |
CN110502334A (zh) | 基于混合内存架构的带宽感知任务窃取方法、系统及芯片 | |
CN105487927B (zh) | 一种资源管理方法及装置 | |
CN106648866A (zh) | 一种基于kvm平台满足任务时限要求的资源调度方法 | |
Rathinaraja et al. | Dynamic ranking-based MapReduce job scheduler to exploit heterogeneous performance in a virtualized environment | |
CN105045667A (zh) | 一种用于虚拟机vCPU调度的资源池管理方法 | |
Ghazali et al. | A classification of Hadoop job schedulers based on performance optimization approaches | |
CN116820784B (zh) | 一种面向推理任务QoS的GPU实时调度方法及系统 | |
CN107423114A (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
Shih et al. | Fairness scheduler for virtual machines on heterogonous multi-core platforms |
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 |