CN105045667B - 一种用于虚拟机vCPU调度的资源池管理方法 - Google Patents

一种用于虚拟机vCPU调度的资源池管理方法 Download PDF

Info

Publication number
CN105045667B
CN105045667B CN201510408804.XA CN201510408804A CN105045667B CN 105045667 B CN105045667 B CN 105045667B CN 201510408804 A CN201510408804 A CN 201510408804A CN 105045667 B CN105045667 B CN 105045667B
Authority
CN
China
Prior art keywords
type
resource
network responsive
responsive type
network
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.)
Active
Application number
CN201510408804.XA
Other languages
English (en)
Other versions
CN105045667A (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201510408804.XA priority Critical patent/CN105045667B/zh
Publication of CN105045667A publication Critical patent/CN105045667A/zh
Application granted granted Critical
Publication of CN105045667B publication Critical patent/CN105045667B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种用于虚拟机vCPU调度的资源池管理方法,包括:1)根据当前统计分析周期内各个VM的数据传输延迟的波动程度,将各个VM识别为网络敏感型VM和非网络敏感型VM;2)根据各个VM在所述步骤1)被识别的类型,当前统计分析周期内的各个VM实际所占的CPU负载值,以及各个VM当前被分得的物理计算资源,将物理计算资源分配至网络敏感型VM资源分池和非网络敏感型VM资源分池;3)将网络敏感型VM分配至网络敏感型VM资源分池中进行调度,将非网络敏感型VM分配至非网络敏感型VM资源分池中进行调度。本发明可以大大提高执行网络敏感型任务VM的网络性能,同时也使得两种类型的VM都能够较为公平的共享物理资源。

Description

一种用于虚拟机vCPU调度的资源池管理方法
技术领域
本发明涉及云计算的虚拟化技术领域,具体地说,本发明涉及一种用于虚拟机vCPU调度的资源池管理方法。
背景技术
近年来,云计算技术获得产业界、学术界的广泛关注。国内外的很多电信运营商、信息技术服务公司都搭建了自己的公共云计算平台和私有云计算平台,从而为用户提供相关基于云计算的应用服务。虚拟化技术是云计算技术的基础,应用硬件资源虚拟化技术可以在一台物理服务器上虚拟出多台虚拟机。这些虚拟机(VM)既共享底层的硬件计算资源,同时又互相隔离。其中,以Xen、KVM为代表的典型虚拟化技术得到业界广泛应用。
各类虚拟化技术中,通常都是通过将物理CPU资源进行调度,将其分配给各个VM的vCPU(虚拟化CPU),从而实现计算资源的虚拟化共享。下文中以Xen技术为例进行说明。
为实现计算资源的虚拟化共享,基于Xen的VM管理程序会给相应VM分配vCPU,vCPU是Xen为VM提供的虚拟CPU。只有当VM的vCPU被调度到物理CPU上时,VM才能运行。也就是说,运行在VM上的操作系统是通过其分配的vCPU的调度来共享所有物理CPU资源的。在基于Xen平台的vCPU默认的调度策略中,每一个物理CPU都有一个与其对应的vCPU调度队列,vCPU任务在队列中排队等待调度。
在实际运行过程中,基于云计算的应用既有网络通信方面的任务也有数据处理、检索和查找等基本的计算任务,从而使得CPU具有同时处理计算型任务和网络型任务的双重功能。目前,基于Xen的云计算平台采用的vCPU调度方法主要是Credit Scheduler算法,即所有VM对应的vCPU公平地排队竞争物理CPU资源。然而,由于CPU同时具备处理计算型任务和网络型任务的双重功能,这就导致时间片存在两种形式的竞争,一方面,两种任务同时参与CPU时间片的竞争;另一方面,不同VM对应的不同任务参与CPU时间片的竞争。上述两种情况均带来了vCPU队列调度的资源竞争问题,往往导致VM的网络性能大幅下降。
虽然现有技术中还存在BOOST机制,能够将VM调度队列中某个VM(例如执行网络型任务的VM)的事件通知给Xen中的VM调度器,VM调度器给予该VM临时的BOOST优先级,并使之抢占物理CPU立即运行。但是,在宿主机物理CPU负载较高的情况下会存在多个VM将竞争CPU调度时间片,对于运行网络型任务的VM来说,即便利用BOOST机制来暂时提升其优先级,仍然会存在较大的通信时延,进而造成较为严重的吞吐量降低及抖动大大增加等情况。另一方面,如果频繁地为网络通信事件使用BOOST机制,也会大大降低其它计算任务使用虚拟计算资源的公平性。
因此,当前迫切需要一种在公平性原则的基础下,能够提高虚拟化环境的网络性能进而提高用户体验的解决方案。
发明内容
本发明的任务是提供一种能够在公平性原则的基础下,提高虚拟化环境的网络性能的解决方案。
根据本发明的一个方面,提供了一种用于虚拟机vCPU调度的资源池管理方法,其特征在于,包括下列步骤:
1)根据当前统计分析周期内各个VM的数据传输延迟的波动程度,将各个VM识别为网络敏感型VM和非网络敏感型VM;
2)根据各个VM在所述步骤1)被识别的类型,当前统计分析周期内的各个VM实际所占的CPU负载值,以及各个VM当前被分得的物理计算资源,将物理计算资源分配至网络敏感型VM资源分池和非网络敏感型VM资源分池;
3)将网络敏感型VM分配至网络敏感型VM资源分池中进行调度,将非网络敏感型VM分配至非网络敏感型VM资源分池中进行调度,进入下一个统计分析周期,将所述下一个统计分析周期作为新的当前统计分析周期,重新执行步骤1)。
其中,所述步骤1)包括下列子步骤:
11)对于每个VM,在当前统计分析周期内,以一定采样间隔采集该VM的数据传输延迟的样本值;
12)根据每个VM在当前统计分析周期内的数据传输延迟的算数平均值以及各个样本值,得出当前统计分析周期内各个VM的数据传输延迟的波动程度;
13)将波动程度大于预先设置的波动阈值的VM识别为网络敏感型VM,将波动程度不大于预先设置的波动阈值的VM识别为非网络敏感型VM。
其中,所述步骤12)包括下列子步骤:
121)计算每个VM在当前统计分析周期内的数据传输延迟的算数平均值其中li为第i个采样周期的数据传输延迟的样本值,i为采样周期的序号,M为一个统计分析周期所包含的采样周期个数;
122)计算该VM在T周期内数据传输延迟的平均波动率所述数据传输延迟的波动程度用所述平均波动率λ表征。
其中,所述步骤11)还包括:对于每个VM,在当前统计分析周期内,以一定采样间隔采集该VM的数据流量;
所述步骤1)还包括子步骤:
14)对于步骤13)所识别的网络敏感型VM,判断该VM在当前统计分析周期内的平均流量是否超过预设的流量阈值,如果判断为否,则将该VM的类型改为非网络敏感型VM,如果判断为是,则该VM的类型仍保持为网络敏感型VM。
其中,所述步骤2)包括下列子步骤:
21)根据各个VM当前实际所占的CPU负载值和当前被分得的物理计算资源,将各个VM识别为计算资源饥饿型VM和非计算资源饥饿型VM;
22)对于每个非计算资源饥饿型VM,根据该非计算资源饥饿型VM是网络敏感型VM还是非网络敏感型VM,将该非计算资源饥饿型VM当前实际所占的CPU负载值对应的物理计算资源分配至网络敏感型VM资源分池或者非网络敏感型VM资源分池。
其中,所述步骤2)还包括下列子步骤:
23)计算所有非计算资源饥饿型VM当前实际所占的CPU负载值之和,将减去所述CPU负载值之和后的剩余的物理计算资源作为所有计算资源饥饿型VM的待分配物理计算资源总数;
24)基于步骤23)得出的所述所有计算资源饥饿型VM的待分配物理计算资源总数,以及各个计算资源饥饿型VM是网络敏感型VM还是非网络敏感型VM,将相应的物理计算资源分配至网络敏感型VM资源分池或者非网络敏感型VM资源分池。
其中,所述步骤21)中,所述当前被分得的物理计算资源根据Weight权重数得出,所述Weight权重数基于预置的调度算法得出。
其中,所述步骤24)中,每个计算资源饥饿型VM所对应的待分配物理计算资源根据它的Weight权重数和所述所有计算资源饥饿型VM的待分配物理计算资源总数得出。
其中,所述步骤2)中,所述物理计算资源为物理CPU核的个数。
其中,所述步骤2)还包括子步骤:
25)当分配至网络敏感型VM资源分池和非网络敏感型VM资源分池的物理CPU核的个数不是整数时,向下取整,并将剩余的1个物理CPU核以一定概率分配至网络敏感型VM资源分池或者非网络敏感型VM资源分池。
其中,所述步骤25)中,所述一定概率根据向下取整前的分配至网络敏感型VM资源分池和非网络敏感型VM资源分池的物理CPU核的个数的小数部分的数值得出。
其中,所述步骤3)还包括:在进行调度时,所述网络敏感型VM计算资源池的CPU时间片调整周期小于非网络敏感型VM计算资源池的CPU时间片调整周期。
其中,所述步骤3)还包括:在完成调度后,进入下一个统计分析周期,将所述下一个统计分析周期作为新的当前统计分析周期,重新执行步骤1)。
与现有技术相比,本发明具有下列技术效果:
1、本发明可以大大提高执行网络敏感型任务VM的网络性能,同时也使得两种类型的VM都能够较为公平的共享物理资源。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1示出了一个典型的基于Xen技术的虚拟化服务器硬件平台的示例;
图2示出了本发明一个实施例中虚拟机网络敏感性能监测与分析的子流程示意图;
图3示出了本发明一个实施例中对处于计算资源饥饿型VM进行识别的子流程示意图;
图4示出了基于传统虚拟机资源池的vCPU调度的计算资源分配状态的示意图;
图5示出了基于本发明一个实施例的虚拟机资源池管理方法进行vCPU调度的计算资源分配状态的示意图。
具体实施方式
针对前文所提及的虚拟机网络性能下降的问题,发明人提出了通过动态识别网络敏感型VM并基于识别结果对计算资源进行动态分池管理的方案,在基本保持公平性原则的基础上,基于动态分池管理技术对虚拟机vCPU资源进行灵活调度,从而提高虚拟机的网络性能。下面结合附图和实施例对本发明进行详细描述。
根据本发明的一个实施例,提供了一种用于提高网络性能的虚拟机计算资源动态分池管理方法,该计算资源动态分池管理方法通过对VM网络敏感型以及计算资源需求情况的统计和分析,确定两种不同类型VM的资源分配方案。同时,通过对各类型VM的CPU资源需求量进行计算,将网络敏感型VM和非网络敏感型VM分别放置两个计算资源池进行调度,从而大幅提高虚拟机网络性能,同时也保证分池操作的计算资源公平性。
下面以现有主流虚拟化Hypervisor技术Xen及其平台系统系统为例,对本实施例做详细描述。图1示出了一个典型的基于Xen技术的虚拟化服务器硬件平台的示例,该平台中共部署了6台虚拟机(VM),这些虚拟机通过Xen平台特权域Domain0中提供的虚拟交换机相连,由Domain0负责各个VM与外界的网络的数据交换,所有VM预先分的的Weight值均相同。同时,由Xen提供的vCPU调度器(默认为credit scheduler)进行vCPU资源的管理,共享使用物理CPU资源。图中共有8个物理CPU核(下文中有时将物理CPU核称为物理CPU),其中CPU7和CPU8预先分配给了特权域Domain0。在进行调度时,Xen默认的Credit调度器依据Weight值为每个虚拟机分配其Credit,并且,Credit调度器为每一个物理CPU维护一个vCPU队列,并以固定的30ms为一个调度周期,以10ms为周期对vCPU的Credit值进行更新并调整vCPU队列顺序。在调度周期的末尾,Credit调度器生成新的调度决策并执行调度。当调度发生时,Credit调度器从等待调度的vCPU队列队首选择下一个被调度的vCPU。然后将当前运行的vCPU换下并减小其Credit。
本实施例的用于提高网络性能的虚拟机计算资源动态分池管理方法包括下列步骤:
步骤一、进行虚拟机网络敏感性能(Network Sensitive VMs)监测与分析。
由于多个VM共享服务器资源,而不同的VM上运行的任务亦不同,所以网络性能差异比较大。因此首先要对各个VM的网络性能进行周期性的监测和统计分析。图2示出了虚拟机网络敏感性能监测与分析的子流程示意图,具体包括如下子步骤:
步骤1:利用Xen平台的Domain0域(特权域)提供的工具,以采样周期t对当前VM的网络性能进行采样监测,在一个例子中,t=10ms。详细记录当前每个VM的流量η、传输速率γ(即VM每秒传输的数据量)、延迟l。延迟l通过计算往返时延(RTT)来表征。测量采用从Domain0域向各个VM发送探测包(ping包)的方法实现,这样可以避免产生网络时延干扰。
步骤2:以Tm=M*t为一个统计分析周期,将所监测的数据记录按照类别取平均值,并将结果记录在VM性能分析列表当中。其中,M为一个统计分析周期所包含的采样周期个数,它可以根据系统资源实际情况赋值,本实施例中,M默认值为10。
步骤3:在每一个统计分析周期,对于每一个VM,统计其RTT相对其平均值的波动情况并识别出网络敏感型VM。在一个例子中,统计其RTT相对其平均值的波动情况并识别出网络敏感型VM的方法包括下列子步骤:
1)对于每一个VM,计算该VM在T周期内RTT的算术平均值其中li为以采样周期t为间隔测量的样本值;
2)计算该VM在T周期内RTT的平均波动率
3)将所有对应λ>ψh的VM按照从高到低进行排列,ψh为RTT波动阈值,大于该RTT波动阈值视为波动比较强烈,将相应VM判定为网络敏感(Network Sensitive)型VM,存入网络敏感型VM列表;在一个例子中,ψh=2。
4)对比VM性能分析列表当中的T周期内VM的流量平均值ηa,将对应平均流量值ηa<ηh的VM从网络敏感型VM列表中去除,最终列表中的VM即为待优化的网络敏感型VM。其中ηh为流量阈值,在一个例子中rh=50kB,记录最终确认的所有网络敏感型VM的ID及非网络敏感型VM的ID。表1示出了该网络敏感性VM列表的结构以及某个统计分析周期中所记录的数据。
表1
VM ID Network Sensitive Type Λ
1 ns 1.2
2 ns 0.85
3 ns 0.92
4 s 2.54
5 s 3.78
6 s 12.3
其中VM ID为事先对各个VM进行的分组编号,Network Sensitive Type为表征是否网络敏感型的指示标识符,当该VM为网络敏感型时,该值为“s”,反之为“ns”,Λ为该VM在测量周期内的平均波动率值λ。
需说明的是,上述进行虚拟机网络敏感性能(Network Sensitive VMs)监测与分析方法中,各个子步骤的实现方式并不是唯一的,在本发明另外的实施例中,进行虚拟机网络敏感性能(Network Sensitive VMs)监测与分析时,只要能够根据各个VM的数据传输延迟的波动程度区分出网络敏感型VM和非网络敏感型VM即可。
步骤二、进行虚拟机当前计算负载(computing load)情况监测与分析。
通常情况下,每个物理主机服务器的CPU由多个VM共同竞争使用,不同的计算任务量决定了VM使用计算负载量的多少。虚拟机网络管理程序以vCPU形式给每个VM分配物理CPU资源,VM当前的任务量大于其已分配资源时,该VM就会呈现出计算资源不够用的“计算资源饥饿”状态,本实施例中称为计算资源饥饿型VM。图3示出了对处于计算资源饥饿型VM进行识别的子流程示意图,具体包括下列子步骤:
步骤1:利用Xen平台提供的工具或者接口函数测量出当前时刻各个VM实际所占的CPU负载值(即CPU load值),CPU负载值通常以VM所占单个物理CPU的倍数来表示,记作Li,i为VM编号(i=1....N),N表示当前服务器物理主机系统中共运行的VM数目。
步骤2:按照每个VM分配的vCPU情况(Xen默认的分配方式是以Weight值来表示每个虚拟机可以获得物理CPU数的权重),计算各个VM满载的时候应分得的物理CPU个数,记作PVi。计算方法如下,将当前物理服务器中的所有物理CPU数记作C,当前待统计VM被分得的Weight权重数为Wi,则此时PVi为按照服务器上所有VM分得的Weight权重数Wi的比例计算得到的物理CPU个数,即有
步骤3:对于每个VM,比较Li和PVi的大小关系,判定该VM是否为计算资源饥饿型虚拟机。当Li≤PVi时,说明该VM没有消耗完分配给它的CPU计算资源,即当前时刻该VM为非计算资源饥饿型虚拟机;反之,若Li>PVi时,则当前时刻该VM为计算资源饥饿型VM;
步骤4:将判定所得的计算资源饥饿型VM放入VM计算负载分析结果列表中,记录所有计算资源饥饿型VM对应ID。并以步骤一当中相同的统计分析周期Tm重复上述判定操作,同时更新虚拟机计算负载分析结果列表。表2示出了虚拟机计算负载分析结果列表的结构以及某个统计分析周期中所记录的数据。
表2
VM ID Computing Load Type Li
1 nh 0.25
2 nh 0.2
3 nh 0.65
4 h 1.4
5 h 1.8
6 h 1.7
其中VM ID为事先对各个VM进行的分组编号,和步骤一中的网络敏感型VM列表编号一致。Computing Load Type为表征是否为计算资源饥饿型VM(本文中有时简称为Hunger型VM)的指示标识符,当该VM为Hunger型时,该值为“h”,反之为“nh”,Li为该VM(编号为i的VM)在测量时刻的实际占用物理CPU的数量。
需说明的是,上述进行虚拟机当前计算负载(computing load)情况监测与分析方法中,各个子步骤的实现方式并不是唯一的,在本发明的另外的实施例中,在进行虚拟机当前计算负载(computing load)情况监测与分析时,只要能够按一定方式区分出计算资源饥饿型VM和非计算资源饥饿型VM即可。
步骤三、进行VM计算资源统计与分配
本步骤中,基于步骤一和步骤二的分析结果,进一步计算各种类型的VM所需的CPU资源,包括下列子步骤:
步骤1:利用Xen提供的工具,将所有物理CPU初始化两个分池,即网络敏感型VM计算资源分池和非网络敏感型VM计算资源分池。系统运行的初始状态下,网络敏感型VM计算资源分池中的VM数量为零,且分得的物理CPU数也置为零。
步骤2:从步骤一中的VM性能分析列表以及步骤二中的虚拟机计算负载分析结果列表中选取属于Network Sensitive型的VM,包括Network Sensitive型且Hunger型(SH型),数量为Nsh;Network Sensitive型且非Hunger型(SNH型),数量为Nsnh,该部分VM组成待调整网络敏感型VM组,数量为Ns,即Ns=Nsh+Nsnh,该部分VM对应的vCPU后续将放置在网络敏感型VM计算资源分池中。
相应地,其余两种类型虚拟机对应为非Network Sensitive型且Hunger型(NSH型),数量为Nnsh;非Network Sensitive型且非Hunger型,(NSNH型),数量为Nnsnh。这两种类型VM组成另一组待调整非网络敏感型VM组,数量为Nns,该部分VM对应的vCPU后续将放置在非网络敏感型VM计算资源分池中。显然有Nns=Nnsh+Nnsnh。表3示出了根据表1和表2所记录的统计分析结果所得出的各个VM所属的类型。
表3
VM ID Type
1 nsnh
2 nsnh
3 nsnh
4 sh
5 sh
6 sh
步骤3:利用步骤二中统计出的非Hunger型VM所占的CPU数量(包括SNH型所占CPU数量Csnh和NSNH型所占的CPU总数量Cnsnh),计算出所有非Hunger型VM所占CPU的数量Cnh算法如下:
Cnh=Csnh+Cnsnh
其中,Lk为每个SNH型VM对应占用的实际物理CPU数量,Lr为每个NSNH型VM对应占用的实际物理CPU数量。
在表1至3所示的统计分析周期的例子中,
该例子中,由于本实施例中的非Hunger型VM同时也是非网络敏感型VM,因此,所有非网络敏感型VM占用的物理CPU数量与非Hunger型VM一致,约为1.1个。
步骤4:余下物理CPU数量即为Hunger型VM应分得的CPU数量,计算方法为
Ch=C-Cnh
在表1至3所示的统计分析周期的例子中,所有Hunger型VM所占的物理CPU数Ch=C-Cnh=6-1.1=4.9。由于本实施例中不存在非Network Sensitive型且Hunger型VM(NSH型),因此,所有网络敏感型VM所占用的CPU数量Cs=Ch=4.9。需说明的是,在表1至3所示的统计分析周期中,由于Hunger型与Sensitive型VM完全一致,因此此时不需要再具体计算每个Hunger型VM所占的CPU数量值。
然而,在一般化的情况下,Hunger型与Sensitive型VM可能不完全一致,也就是说,Hunger型VM中可能既有网络敏感型VM,又有非网络敏感型VM,此时就需要进一步计算各个Hunger型VM所占的CPU数量值,即执行下面的步骤5。
步骤5:利用上述步骤2的统计结果计算各个Hunger型VM应分得的物理CPU值其中j代表各个VM在Hunger型VM集合中的编号。依据当前Hunger型VM分得的Weight值来按照比例确定(各个VM的Weight值可以基于调度算法得出),其中为当前Hunger型VM的Weight值,计算方法如下:
其中Nh=Nsh+Nnsh为当前统计周期内所有Hunger型VM数量。
在然后根据每种类型的VM对应的ID来分别计算出SH型VM应该所需的物理CPU数量Csh和NSH型VM应该所需的物理CPU数量Cnsh,计算方法如下:
其中Ch=Csh+Csh分别为中对应计算出的SH型VM和NSH型VM所应分配的物理CPU数量。p代表Hunger型且Sensitive型(SH型)的VM集合中的VM编号,q代表Hunger型且非Sensitive型(NSH型)的VM集合中的VM编号。
步骤四、VM计算资源动态分池调度
完成了各种类型VM所需的CPU资源计算和分配以后,立刻进行资源的分池调度,将网络敏感型VM和非网络敏感型VM对应的CPU资源分隔成两个资源池(Pool)进行分开调度,不同的资源池内设置不同的CPU时间片调整周期(Slice Time),VM计算资源动态分池调度具体包括如下子步骤:
步骤1:按照步骤三计算的结果,利用Xen平台提供的功能命令分别向网络敏感性VM资源分池中分配Cs个物理CPU,同时将网络敏感型VM对应的vCPU分配到该池进行调度,其中Cs=|Csh+Csnh|为所有网络敏感型VM所需要物理CPU数的计算值,然后向下取整。
同时,向非网络敏感型VM资源分池中分配Cns个物理CPU,将非网络敏感型VM对应的vCPU分配到该池进行调度,其中Cns=|Cnsh+Cnsnh|为所有非网络敏感型VM所需要物理CPU数的计算值,然后向下取整。
需要说明的是,由于初始分配时网络敏感型VM资源分池CPU数量为零,所有物理CPU都在非网络敏感型VM资源分池中,因此第一次分配的时候相当于从总CPU中分出一部分CPU资源至网络敏感型VM资源分池,以后每个分池分配周期对两个分池同时进行更新调整。
在表1至3所示的统计分析周期的例子中,利用Xen平台提供的功能命令(xlcpupool-numa-split)分别向网络敏感型VM资源分池中分配4个CPU,向非网络敏感型VM计算资源分池中分配1个CPU。同时将网络敏感型VM(VM4、VM5、VM6)对应的vCPU分配到网络敏感型VM资源分池进行调度;将非网络敏感型VM(VM1、VM2、VM3)对应的vCPU分配到非网络敏感型VM资源分池进行调度。
步骤2:由于Xen的分池操作只能针对整数个物理CPU,因此上述步骤2中进行了取整操作,实际情况下计算出来的Cns和Cs很可能不是整数,其小数部分之和约为1。为了有效利用资源,采用随机数取概率的方式进行余下的这一个CPU的分配。
1)假设Cns取整之前的小数部分为δ(保留一位小数),Cs取整之前的小数部分为η。分别计算此时从属于Cns和Cs的余数分配百分比λns和λs。其中,
2)设定一个随机数程序,其中随机数数目为10*δ+10*η,每次进行一次随机数的生成,以概率λns将余下的1个物理CPU分配给非网络敏感型计算资源池,以概率λs将余下的1个物理CPU分配给非网络敏感型计算资源池。
利用随机数程序,随机生成1~10中的一个数值,当随机数为1~9中的任意一个数值时,将余下的1个CPU分配给网络敏感型VM计算资源分池,这样余下的1个CPU分配给网络敏感型VM的分配概率λs为90%,;当随机数值为10时,将余下的1个CPU分配给非网络敏感型VM计算资源分池,本实施例中将余下的vCPU分配给网络敏感型VM计算资源池,这样余下的1个CPU分配给非网络敏感型VM的分配概率λns为10%。图5示出了对于表1至3所示的统计分析周期,基于本发明一个实施例的虚拟机资源池管理方法进行vCPU调度的计算资源分配状态的示意图。作为对比,图4示出了在不使用本发明的动态分池管理技术时,对于表1至3所示的统计分析周期,采用基于传统虚拟机资源池的vCPU调度的计算资源分配状态的示意图。
上述表1至3所示的统计分析周期中,VM的类型只有nsnh和sh两种,这实际上是一种特例。为了更好地理解本发明的实质,下面再给出另一统计分析周期的示例,其中,表4示出了另一个统计分析周期的网络敏感性VM列表。
表4
VM ID Network Sensitive Type λ
1 ns 1.8
2 ns 0.85
3 s 2.92
4 ns 0.54
5 ns 1.78
6 s 12.3
表5示出了另一个统计分析周期中的虚拟机计算负载分析结果列表。
表5
VM ID 实际占用CPU数量 应分得CPU数量
1 1.28 1
2 0.65 1
3 0.92 1
4 0.45 1
5 0.77 1
6 1.93 1
表6示出了另一个统计分析周期中的各个VM所属的类型。
表6
VM ID Type
1 nsh
2 nsnh
3 snh
4 nsnh
5 nsnh
6 sh
可以看出,在表4至6所示的另一个统计分析周期的示例中,VM的类型包括了全部四种,即NSNH、NSH、SNH和SH型。
基于步骤1,计算非计算资源饥饿型VM(包括VM2、VM3、VM4、VM5)所占的CPU数量Cnh,基于非计算资源饥饿型VM实际所占的CPU数量之和即可求出Cnh的数值2.8,然后再计算剩余的可分配CPU就是计算资源饥饿型VM所占的CPU数量,该数量Ch=C-Cnh=6-2.8=3.2。计算资源饥饿型VM包括VM1和VM6,剩余的3.2个CPU由这两个VM根据各自的Weight值分配,假设VM1和VM6的Weight值均为1,则它们各自占用1.6个CPU。这样,所有VM占用的CPU数量均已得出,其结果如表7所示。
表7
VM ID Type CPU数
1 nsh 1.6
2 nsnh 0.65
3 snh 0.92
4 nsnh 0.45
5 nsnh 0.77
6 sh 1.6
再根据它们各自的类型,即可得出所有网络敏感型VM(VM3和VM6)所需要物理CPU数约为2.5,向下取整为2。所有非网络敏感型VM(VM1、VM2、VM4和VM5)所需要物理CPU数约为3.5,向下取整为3。这样将2个物理CPU分配至网络敏感型VM计算资源池,将3个物理CPU分配至非网络敏感型VM计算资源池。剩余1个物理CPU则以50%的概率分配至网络敏感型VM计算资源池,以另50%的概率分配至非网络敏感型VM计算资源池。
步骤3:将网络敏感型VM计算资源池的CPU时间片调整周期(Slice Time)进行重新设定(例如可将网络敏感型VM计算资源池的CPU时间片调整周期设置为10ms,当然,这个CPU时间片调整周期也可以根据VM任务的实际执行情况进行调整),非敏感型VM计算资源池的CPU时间片调整周期仍然保持为30ms(30ms为Xen规定的缺省设置)。
重复上述步骤一至四,以Tm为分池调度周期对两个计算资源分池进行实时地动态更新和调整,即可在保证公平性的前提下,实现网络型能的提升。
实验表明,使用本发明提供的技术方案后虚拟机网络性能得到大大提高,平均吞吐量提高了40%,平均网络时延降低了45%。
最后,上述的实施例仅用来说明本发明,它不应该理解为是对本发明的保护范围进行任何限制。而且,本领域的技术人员可以明白,在不脱离上述实施例精神和原理下,对上述实施例所进行的各种等效变化、变型以及在文中没有描述的各种改进均在本专利的保护范围之内。

Claims (13)

1.一种用于虚拟机vCPU调度的资源池管理方法,其特征在于,包括下列步骤:
1)根据当前统计分析周期内各个VM的数据传输延迟的波动程度,将各个VM识别为网络敏感型VM和非网络敏感型VM;
2)根据各个VM在所述步骤1)被识别的类型,当前统计分析周期内的各个VM实际所占的CPU负载值,以及各个VM当前被分得的物理计算资源,将物理计算资源分配至网络敏感型VM资源分池和非网络敏感型VM资源分池;
3)将网络敏感型VM分配至网络敏感型VM资源分池中进行调度,将非网络敏感型VM分配至非网络敏感型VM资源分池中进行调度。
2.根据权利要求1所述的资源池管理方法,其特征在于,所述步骤1)包括下列子步骤:
11)对于每个VM,在当前统计分析周期内,以一定采样间隔采集该VM的数据传输延迟的样本值;
12)根据每个VM在当前统计分析周期内的数据传输延迟的算数平均值以及各个样本值,得出当前统计分析周期内各个VM的数据传输延迟的波动程度;
13)将波动程度大于预先设置的波动阈值的VM识别为网络敏感型VM,将波动程度不大于预先设置的波动阈值的VM识别为非网络敏感型VM。
3.根据权利要求2所述的资源池管理方法,其特征在于,所述步骤12)包括下列子步骤:
121)计算每个VM在当前统计分析周期内的数据传输延迟的算数平均值其中li为第i个采样周期的数据传输延迟的样本值,i为采样周期的序号,M为一个统计分析周期所包含的采样周期个数;
122)计算该VM在T周期内数据传输延迟的平均波动率所述数据传输延迟的波动程度用所述平均波动率λ表征。
4.根据权利要求2所述的资源池管理方法,其特征在于,所述步骤11)还包括:对于每个VM,在当前统计分析周期内,以一定采样间隔采集该VM的数据流量;
所述步骤1)还包括子步骤:
14)对于步骤13)所识别的网络敏感型VM,判断该VM在当前统计分析周期内的平均流量是否超过预设的流量阈值,如果判断为否,则将该VM的类型改为非网络敏感型VM,如果判断为是,则该VM的类型仍保持为网络敏感型VM。
5.根据权利要求1所述的资源池管理方法,其特征在于,所述步骤2)包括下列子步骤:
21)根据各个VM当前实际所占的CPU负载值和当前被分得的物理计算资源,将各个VM识别为计算资源饥饿型VM和非计算资源饥饿型VM;
22)对于每个非计算资源饥饿型VM,根据该非计算资源饥饿型VM是网络敏感型VM还是非网络敏感型VM,将该非计算资源饥饿型VM当前实际所占的CPU负载值对应的物理计算资源分配至网络敏感型VM资源分池或者非网络敏感型VM资源分池。
6.根据权利要求5所述的资源池管理方法,其特征在于,所述步骤2)还包括下列子步骤:
23)计算所有非计算资源饥饿型VM当前实际所占的CPU负载值之和,将减去所述CPU负载值之和后的剩余的物理计算资源作为所有计算资源饥饿型VM的待分配物理计算资源总数;
24)基于步骤23)得出的所述所有计算资源饥饿型VM的待分配物理计算资源总数,以及各个计算资源饥饿型VM是网络敏感型VM还是非网络敏感型VM,将相应的物理计算资源分配至网络敏感型VM资源分池或者非网络敏感型VM资源分池。
7.根据权利要求6所述的资源池管理方法,其特征在于,所述步骤21)中,所述当前被分得的物理计算资源根据Weight权重数得出,所述Weight权重数基于预置的调度算法得出。
8.根据权利要求7所述的资源池管理方法,其特征在于,所述步骤24)中,每个计算资源饥饿型VM所对应的待分配物理计算资源根据它的Weight权重数和所述所有计算资源饥饿型VM的待分配物理计算资源总数得出。
9.根据权利要求8所述的资源池管理方法,其特征在于,所述步骤2)中,所述物理计算资源为物理CPU核的个数。
10.根据权利要求9所述的资源池管理方法,其特征在于,所述步骤2)还包括子步骤:
25)当分配至网络敏感型VM资源分池和非网络敏感型VM资源分池的物理CPU核的个数不是整数时,向下取整,并将剩余的1个物理CPU核以一定概率分配至网络敏感型VM资源分池或者非网络敏感型VM资源分池。
11.根据权利要求10所述的资源池管理方法,其特征在于,所述步骤25)中,所述一定概率根据向下取整前的分配至网络敏感型VM资源分池和非网络敏感型VM资源分池的物理CPU核的个数的小数部分的数值得出。
12.根据权利要求1至10中任意一项所述的资源池管理方法,其特征在于,所述步骤3)还包括:在进行调度时,所述网络敏感型VM计算资源池的CPU时间片调整周期小于非网络敏感型VM计算资源池的CPU时间片调整周期。
13.根据权利要求1至10中任意一项所述的资源池管理方法,其特征在于,所述步骤3)还包括:在完成调度后,进入下一个统计分析周期,将所述下一个统计分析周期作为新的当前统计分析周期,重新执行步骤1)。
CN201510408804.XA 2015-07-13 2015-07-13 一种用于虚拟机vCPU调度的资源池管理方法 Active CN105045667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510408804.XA CN105045667B (zh) 2015-07-13 2015-07-13 一种用于虚拟机vCPU调度的资源池管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510408804.XA CN105045667B (zh) 2015-07-13 2015-07-13 一种用于虚拟机vCPU调度的资源池管理方法

Publications (2)

Publication Number Publication Date
CN105045667A CN105045667A (zh) 2015-11-11
CN105045667B true CN105045667B (zh) 2018-11-30

Family

ID=54452231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510408804.XA Active CN105045667B (zh) 2015-07-13 2015-07-13 一种用于虚拟机vCPU调度的资源池管理方法

Country Status (1)

Country Link
CN (1) CN105045667B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203394B (zh) * 2017-04-18 2021-01-01 中国科学院计算技术研究所 一种高安全docker容器批量部署方法及装置
CN110336823B (zh) * 2019-07-09 2021-12-03 深圳市网心科技有限公司 基于rtt的任务分配方法、电子设备、系统及介质
US11556371B2 (en) 2020-03-24 2023-01-17 Red Hat, Inc. Hypervisor task execution management for virtual machines
CN112152938B (zh) * 2020-08-19 2022-11-22 鹏城实验室 一种云虚拟环境中往返时延的确定方法
CN113901141B (zh) * 2021-10-11 2022-08-05 京信数据科技有限公司 一种分布式数据同步方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014073949A1 (en) * 2012-11-12 2014-05-15 Mimos Berhad A system and method for virtual machine reservation for delay sensitive service applications
CN103870332A (zh) * 2012-12-13 2014-06-18 中国电信股份有限公司 虚拟机处理器资源的调整方法、装置与虚拟机系统
CN104184813A (zh) * 2014-08-20 2014-12-03 杭州华为数字技术有限公司 虚拟机的负载均衡方法和相关设备及集群系统
CN104503838A (zh) * 2014-11-23 2015-04-08 华中科技大学 一种虚拟cpu调度方法
CN104598298A (zh) * 2015-02-04 2015-05-06 上海交通大学 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014073949A1 (en) * 2012-11-12 2014-05-15 Mimos Berhad A system and method for virtual machine reservation for delay sensitive service applications
CN103870332A (zh) * 2012-12-13 2014-06-18 中国电信股份有限公司 虚拟机处理器资源的调整方法、装置与虚拟机系统
CN104184813A (zh) * 2014-08-20 2014-12-03 杭州华为数字技术有限公司 虚拟机的负载均衡方法和相关设备及集群系统
CN104503838A (zh) * 2014-11-23 2015-04-08 华中科技大学 一种虚拟cpu调度方法
CN104598298A (zh) * 2015-02-04 2015-05-06 上海交通大学 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法

Also Published As

Publication number Publication date
CN105045667A (zh) 2015-11-11

Similar Documents

Publication Publication Date Title
CN105045667B (zh) 一种用于虚拟机vCPU调度的资源池管理方法
US8510747B2 (en) Method and device for implementing load balance of data center resources
CN102279771B (zh) 一种虚拟化环境中自适应按需资源分配的方法及系统
US8782671B2 (en) Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
US20190303203A1 (en) Adaptive computing resource allocation approach for virtual network functions
Prekas et al. Energy proportionality and workload consolidation for latency-critical applications
Bhadani et al. Performance evaluation of web servers using central load balancing policy over virtual machines on cloud
US10798018B2 (en) Method for operating a virtual network infrastructure
US20190215243A1 (en) Methods and systems for controller-based datacenter network sharing
Dhari et al. An efficient load balancing scheme for cloud computing
US20140282503A1 (en) Weight-based collocation management
WO2011031459A2 (en) A method and apparatus for data center automation
US10630600B2 (en) Adaptive network input-output control in virtual environments
CN104598298A (zh) 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法
US10733022B2 (en) Method of managing dedicated processing resources, server system and computer program product
Pattanaik et al. Performance study of some dynamic load balancing algorithms in cloud computing environment
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
Jang et al. An efficient virtual CPU scheduling in cloud computing
CN103106112A (zh) 一种基于最高负载的进行负载均衡调度的方法及设备
Tan et al. DMVL: An I/O bandwidth dynamic allocation method for virtual networks
CN110865871A (zh) 基于资源合理化应用的虚拟化集群资源调度方法
Huh et al. Providing fair-share scheduling on multicore computing systems via progress balancing
CN110865872B (zh) 基于资源合理化应用的虚拟化集群资源调度系统
Kuchumov et al. Fair resource allocation for running HPC workloads simultaneously
To et al. Measurement based fair queuing for allocating bandwidth to virtual machines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant