一种基于共享I/O虚拟化环境的vCPU调度方法

xiaoxiao2020-10-23  13

一种基于共享I/O虚拟化环境的vCPU调度方法
【技术领域】
[0001]本发明涉及云计算领域,具体地说,本发明涉及一种基于共享I/O虚拟化环境的vCPU调度方法。
【背景技术】
[0002]近年来,云计算技术的得到了快速的发展。Amazon、Google、阿里巴巴等公司都搭建了公有的云计算平台,来为用户提供公共的云计算服务。与此同时,作为搭建云计算平台的主要方式,虚拟化技术得到不断成熟和完善。云计算服务提供商通过虚拟化技术来对物理的资源进行虚拟化,从而实现资源的共享与隔离。对计算资源、网络资源和存储资源的虚拟化是构建云计算平台的基础。其中,对计算资源的虚拟化是核心。Hypervisor是实现计算资源虚拟化的主要方法,其具体实现包括:Xen,KVM, Hyper-v等。其中,Xen是主流的开源Hypervisor,被国内外云计算服务提供商广泛使用。
[0003]vCPU是虚拟化平台(例如Xen)为虚拟机提供的虚拟CPU。只有当虚拟机的vCPU被调度到物理CPU上时,虚拟机才能运行。vCPU调度是指Xen把从属于虚拟机的vCPU调度到物理CPU上进行运行的过程。每一个物理CPU核都有一个与其对应的vCPU调度队列,vCPU任务在队列中排队等待调度。另一方面,Xen系统属于一种共享I/O的虚拟化环境,图1示出了 Xen虚拟机的联网模型示意图,如图1所示,Xen系统中采用前后端分离的网络驱动模型来为虚拟机提供网络服务。这种模型下,虚拟机的网络设备驱动被分为前端驱动及后端驱动两部分。前端驱动位于虚拟机内部,后端驱动位于Domain O (零域)内。前、后端设备驱动通过共享I/O环的方式交换控制信息,通过共享数据缓冲区(即共享内存)交换实际收发的数据,通过共享内存中的事件通道交换异步事件消息。后端驱动对应的虚拟接口设备通过虚拟网桥与物理网络设备相连接,为虚拟机提供与物理网络的连通性。另外,图1中xenbrO表示Domain O内的虚拟网桥设备,ethO表示Domain O内的物理网络设备接口,vif表示虚拟机虚拟网络设备的后端设备,NIC表示物理网卡设备,vm表示虚拟机,request表示前端驱动的接收或者发送请求,response表示后端驱动对接收或者发送请求的响应。
[0004]在这种结构下,虚拟机对网络相关任务的处理需要通过其vCPU的运行来执行,而现有的Xen的vCPU调度方案并不能保证每个虚拟机vCPU在任何时间都在运行,这往往会导致具有时间敏感性的网络相关任务不能得到及时处理。特别地,在宿主机物理CPU负载较高的情况下,vCPU调度不当会使得虚拟机出现较为严重的吞吐量降低及非正常延迟等网络性能降低的情况。
[0005]另一方面,为了优化资源配置、节省运营成本,云计算服务提供商在运营数据中心时会不时地调整虚拟机在数据中心内的分布。例如,将分布较分散的虚拟机迀移至虚拟机较密集的宿主机服务器上,并将空出的服务器休眠以节省电力。这种情况也会促使宿主机物理CPU负载升高,从而加剧VCPU调度对虚拟机网络性能的负面影响。
[0006]因此,当前迫切需要一种能够改善基于共享I/O的虚拟化环境下的虚拟机网络性能的解决方案。

【发明内容】

[0007]本发明的任务是提供一种能够克服上述现有技术缺陷的vCPU调度解决方案。
[0008]本发明提供了一种基于共享I/O虚拟化环境的vCPU调度方法,包括下列步骤:
[0009]a)根据实时监测的共享I/O请求环特征,识别出排队敏感型虚拟机;排队敏感型虚拟机是指在所有虚拟机中更易于因网络相关任务不能得到及时处理而造成阻塞现象的虚拟机;
[0010]b)提高步骤a)所识别出的排队敏感型虚拟机的vCPU调度优先级,以优先为排队敏感型虚拟机分配计算资源。
[0011]其中,所述步骤a)中,所述排队敏感型虚拟机包括数据接收方向上的排队敏感型虚拟机。
[0012]其中,所述步骤a)中,根据虚拟机的I/O请求环溢出频率识别数据接收方向上的排队敏感型虚拟机。
[0013]其中,所述步骤a)中,根据虚拟机的I/O请求队列过载频率识别数据接收方向上的排队敏感型虚拟机。
[0014]其中,所述步骤a)中,根据虚拟机的I/O请求环溢出频率和I/O请求队列过载频率识别数据接收方向上的排队敏感型虚拟机。
[0015]其中,所述步骤a)中,识别数据接收方向上的排队敏感型虚拟机的过程包括下列子步骤:
[0016]al)监测虚拟机的I/O请求环特征数据;
[0017]a2)根据I/O请求环特征数据统计I/O请求环溢出频率和I/O请求队列过载频率;
[0018]a3)当I/O请求环溢出频率和I/O请求队列过载频率中任意一项超出预设的阈值时,判断该虚拟机为数据接收方向上的排队敏感型虚拟机。
[0019]其中,所述步骤al)中,所述I/O请求环特征数据包括:当前接收数据包所需I/O请求个数,以及I/o请求环对应的共享内存当前剩余的I/O请求空间,所述步骤a2)中,根据当前接收数据包所需I/O请求个数以及I/O请求环对应的共享内存当前剩余的I/O请求空间,统计I/o请求环溢出频率。
[0020]其中,所述步骤al)中,所述I/O请求环特征数据还包括:当前I/O请求环内未被处理I/O请求队列的长度,所述步骤a2)中,根据当前I/O请求环内未被处理I/O请求队列的长度,统计I/O请求队列过载频率。
[0021]其中,所述步骤al)中,基于预设的监测周期监测虚拟机的I/O请求环特征数据;
[0022]所属步骤a2)中,基于预设的包含若干个监测周期的识别周期,统计该识别周期内虚拟机对应的I/o请求环溢出频率和I/O请求队列过载频率。
[0023]其中,所述步骤a)中,所述排队敏感型虚拟机包括数据发送方向上的排队敏感型虚拟机。
[0024]其中,所述步骤a)中,根据虚拟机的vCPU过载情况和I/O请求队列长度,识别数据发送方向上的排队敏感型虚拟机。
[0025]其中,所述步骤a)中,识别数据发送方向上的排队敏感型虚拟机的过程包括下列子步骤:
[0026]all)在每个监测周期内,判别该监测周期内vCPU是否过载,并得出该监测周期内的I/o请求队列长度特征;
[0027]al2)根据请求队列长度震荡特征识别数据发送方向上的排队敏感型虚拟机,所述请求队列长度震荡特征是:vCPU过载的监测周期内的I/O请求队列长度特征之和sum_rq_pattern与识别周期内CPU过载的监测周期个数count_cpu_ol的比值。
[0028]其中,所述识别数据发送方向上的排队敏感型虚拟机的过程还包括:在执行所述步骤al2)之前,根据识别周期内CPU过载的监测周期个数C0Unt_CpU_0l的大小,预先筛除非排队敏感型虚拟机。
[0029]其中,所述步骤al2)还包括:当所述请求队列长度震荡特征处于预设阈值附近的数值区间内时,判别当前虚拟机是排队敏感型虚拟机。
[0030]与现有技术相比,本发明具有下列技术效果:
[0031]本发明能够缓解因vCPU排队时间变长而导致的虚拟机网络性能下降,从而改善虚拟机的网络性能。
【附图说明】
[0032]以下,结合附图来详细说明本发明的实施例,其中:
[0033]图1不出了 Xen虚拟机的联网申旲型不意图;
[0034]图2示出了本发明一个实施例中的数据接收方向上的排队敏感型虚拟机识别方法的流程图;
[0035]图3示出了本发明一个实施例中的数据发送方向上的排队敏感型虚拟机识别方法的流程图;
[0036]图4示出了本发明中一个虚拟机网络敏感型识别及vCPU调度的场景图;
[0037]图5示出了在测试场景下基于本发明一个实施例中的某个虚拟机分别在空载、运行UDP流量及运行TCP流量时的I/O请求环特征相关数据。
【具体实施方式】
[0038]发明人对基于共享I/O的虚拟化环境下,吞吐量降低及非正常延迟等网络性能降低的情况进行了深入研宄。在共享I/o的虚拟化环境下,一方面,各虚拟机的虚拟I/O需要在共享I/o环中进行调度,以等待物理I/O资源分配给该虚拟1/0,另一方面,当物理I/O资源分配给该虚拟I/O时,还需要相应虚拟机的VCPU执行相应的I/O相关任务,如果此时VCPU并未被分配实际的物理计算资源,即该VCPU当前并不处于运行状态,那么具有时间敏感性的网络相关任务将不能得到及时处理,并且此时共享I/O环中还可能会出现阻塞,后续的虚拟I/o均排队等待物理I/O的分配,从 而造成虚拟化系统整体的网络性能下降。而另一方面,为了优化资源配置、节省运营成本,云计算服务提供商在运营数据中心时往往会不时地调整虚拟机在数据中心内的分布。例如,将分布较分散的虚拟机迀移至虚拟机较密集的宿主机服务器上,并将空出的服务器休眠以节省电力,这会促使宿主机物理CPU负载升高,从而加剧VCPU调度对虚拟机网络性能的负面影响。
[0039]基于上述分析,发明人提出了一种通过识别可能造成虚拟化系统网络性能下降的排队敏感型虚拟机,进而基于识别结果调整对该类虚拟机的vCPU调度方案,以保证这些虚拟机的网络相关任务能够及时获得处理,从而缓解共享I/o中的非正常的排队等待现象,进而提高虚拟化系统的吞吐量,避免虚拟化系统的非正常延迟。
[0040]下面结合附图和实施例对本发明做进一步的描述。
[0041]根据本发明的一个实施例,提供了一种基于上述排队敏感型虚拟机识别的vCPU调度方法,该调度方法包括下列步骤:
[0042]步骤a:首先根据实时监测的共享I/O请求环特征,分别识别出数据接收方向上和数据发送方向上的排队敏感型虚拟机。排队敏感型虚拟机就是Xen平台中那些容易因不能及时处理网络相关任务而导致整个系统阻塞的那类虚拟机。下文中,将结合附图和具体例子分别描述数据接收方向上和数据发送方向上的排队敏感型虚拟机的识别方法。
[0043]步骤b:通过改进Xen当前默认的Credit Scheduler来执行调度过程。本实施例中,提高排队敏感型虚拟机的vCPU的调度优先级,使这部分vCPU优先被排在队列的前端(现有的Credit Scheduler为每个物理CPU维护一个队列,待调度的vCPU被以FIFO的方式放置于队列内等待被调度)。这样,排队敏感型虚拟机的vCPU被更加频繁的调度,从而提高宿主机CPU负载较高时,虚拟机的网络性能。
[0044]图2示出了本发明一个实施例中,数据接收方向上的排队敏感型虚拟机识别方法的流程图,所述数据接收方向上的排队敏感型虚拟机识别方法具体包括下列步骤:
[0045]步骤110:在Xen虚拟机的驱动处设立监测点。本实施例中,在Xen虚拟机后端设备的驱动处设立监测点,这是一种较容易实现的解决方案。需要说明的是,在另一实施例中,也可以在Xen虚拟机的前端驱动处设立监测点,这样也可以对Xen虚拟化平台的请求环特性进行监测,但是由于前端驱动处于虚拟机操作系统内,所以该实施例中,还需要相应地修改Xen的共享I/O请求环机制,以确保前端设备监测点所检测到的信息能够被传递至后端设备。
[0046]步骤120:确定监测周期、识别周期、I/O请求环溢出判别阈值、请求队列过载临界值与请求队列过载判别阈值。其中,监测周期是指对请求环特性进行监测的基本周期,识别周期是指根据若干个监测周期所监测的请求环特性对排队敏感型虚拟机进行识别的周期。I/o请求环溢出是指当前正处理的数据包的总数据量超出I/O请求环所关联的共享内存的情况,请求队列过载是指请求队列的长度超出队列长度预设值(即请求队列过载临界值)的情况,这个队列长度预设值可以根据需要确定。
[0047]在一个例子中,在Domain O内虚拟机的后端设备驱动处设立监测点。设对I/O请求环特性进行监测的监测周期m_per1d为10ms,对虚拟机是否为排队敏感型进行判断的识别周期r_per1d为100ms,I/O请求环溢出判别阈值ro_thresh为0.2,请求队列过载临界值qo_limit为128,请求队列过载判别阈值qo_thresh为0.8。
[0048]步骤130:初始化监测计数器mc,置me = O。初始化I/O请求环溢出次数ro_count=0,初始化I/O请求队列过载出现次数qo_count = O。
[0049]步骤140:监测点按照监测周期定时获取并记录接收数据方向I/O请求环特征数据(有时也称为I/o请求环特征相关数据)。在一个优选实施例中,步骤140包括141至142这几个子步骤:
[0050]步骤141:监测点根据当前接收数据分组(即接收数据包)所需I/O请求个数与当前环内剩余I/o请求空间的关系确定I/O请求环溢出情况,并记录结果。若当前I/O请求环内剩余I/o请求空间不足以容纳当前接收数据分组所需I/O请求个数,则视为I/O请求环溢出,并置ro_count = ro_count+l。ro_count表示I/O请求环溢出的次数。
[0051]步骤142:监测点根据当前I/O请求环内未被处理I/O请求队列长度与请求队列过载临界值的关系确定请求队列过载情况,并记录结果。若当前请求队列长度大于qo_limit,则视为请求队列过载,并置qo_count = qo_count+l。qo_count表示请求队列过载的次数。需说明的是,本步骤中,所判别的是当前监测周期内,请求队列是否过载,qo_Count代表的是整个识别周期内发生请求队列过载的监测周期的个数。
[0052]完成步骤140后,继续执行步骤150。
[0053]步骤150:监测点对监测计数器me进行累加,即置me = mc+1。
[0054]步骤160:若监测计数器的值小于识别周期所含监测周期的个数r_per1d/m_per1d,则返回并重新执行步骤130。否则,执行步骤170。
[0055]步骤170:统计识别周期内监测周期发生I/O请求环溢出的概率。I/O请求环溢出的概率是指在一个识别周期内,单个监测周期发生溢出概率,例如,在一个识别周期内(10个监测周期),I/o请求环溢出共发生2次,则单个监测周期发生溢出概率为0.2。若所统计的监测周期发生I/O请求环溢出的概率超过I/O请求环溢出判别阈值lOjhresh,则将虚拟机识别为排队敏感型(图2中对应于步骤190),返回步骤130 ;否则,进一步执行步骤180。
[0056]步骤180:统计识别周期内监测周期发生请求队列过载的概率。若该概率超过请求队列过载判别阈值q0_threSh,则将虚拟机识别为排队敏感型(图2中对应于步骤190)。否则,则将虚拟机识别为非排队敏感型(图2中对应于步骤191)。返回步骤130。
[0057]数据接收方向排队敏感型虚拟机识别方法的叙述结束。
[0058]需要说明的是,上述步骤170和180的排队敏感型虚拟机判别规则满足任意一条,即可认为该虚拟机为排队敏感型虚拟机。在另一个实施例中,先执行步骤180,如识别周期内所统计的监测周期发生请求队列过载的概率超过请求队列过载判别阈值qojhresh,则直接将虚拟机识别为排队敏感型,否则执行步骤170,如果所统计的监测周期发生I/O请求环溢出的概率超过I/O请求环溢出判别阈值ro_thresh,则将虚拟机识别为排队敏感型,否则将虚拟机识别为非排队敏感型。
[0059]更进一步地,上述排队敏感型虚拟机的识别方案本质上是通过虚拟机的I/O请求环溢出频率和I/O请求队列过载频率识别数据接收方向上的排队敏感型虚拟机。前述实施例中,监测周期发生I/o请求环溢出的概率是I/O请求队列溢出频率的表征方式之一,识别周期内监测周期发生请求队列过载的概率则是I/o请求队列过载频率的表征方式之一。理论上说,单独依靠虚拟机的I/o请求环溢出频率或者I/O请求队列过载频率也可识别出一部分排队敏感型虚拟机,基于此的调度方案也具有一定的改善虚拟机的网络性能的效果。
[0060]另一方面,图3示出了本发明一个实施例中数据发送方向上的排队敏感型虚拟机识别方法的流程图,所述数据发送方向上的排队敏感型虚拟机识别方法包括下列步骤:
[0061]步骤210:在虚拟机的驱动处(例如后端设备的驱动处)设立监测点。
[0062]步骤220:确定监测周期、识别周期、CPU过载阈值与请求队列长度特征阈值。设对I/o请求环特性进行监测的监测周期m_per1d为10ms、对虚拟机是否为排队敏感型进行判断的识别周期r_per1d为100ms、CPU过载阈值为0.95、请求队列长度震荡特征区间为[0.4,0.6] O
[0063]步骤230:初始化监测计数器mc,置me = O。
[0064]步骤240:监测点按照监测周期定时获取并记录待观察虚拟机的vCPU负载情况。在具体实现上,可以由监测点通过Xen Hypervisor提供的API获得最近一个检测周期内待监测虚拟机的运行时间t。置cpu_load为t/m_per1d。
[0065]另一方面,监测点按照监测周期定时获取并记录发送数据方向I/O请求队列长度特征信息rq_pattern。在一个优选实施例中,监测点监测当前I/O请求环内未被处理I/O请求队列长度。若请求队列长度为0,则置请求队列长度特 征为0,即置rq_pattern为O ;否则,置请求队列长度特征为1,即置rcLpattern为I。记录监测结果,即记录监测周期及该周期内的rq_pattern取值。
[0066]步骤250:监测点累加监测计数器me。
[0067]步骤260:若me小于识别周期所含监测周期的个数,则返回步骤240,否则,执行步骤 270。
[0068]步骤270:统计识别周期内CPU负载大于CPU过载阈值的次数count_cpu_ol。若(PU过载的次数未超过识别周期内监测周期个数的一半,则将虚拟机识别为非排队敏感型(对应于图3中的步骤291)并返回步骤230 ;否则,继续执行步骤280。
[0069]步骤280:将CPU过载的检测周期内请求队列长度特征信息相加,根据请求队列长度特征信息之和sum_rq_pattern与识别周期内CPU过载的监测周期个数count_cpu_ol的比值判断是否为排队敏感型虚拟机,其中,如果请求队列长度特征信息之和与识别周期内CPU过载的监测周期个数的比值sum_rq_pattern/count_cpu_ol处于预设的请求队列长度特征区间之内,则将虚拟机识别为排队敏感型(对应于图3中的步骤290),否则,识别为非排队敏感型(对应于图3中的步骤291),并返回步骤230。
[0070]需要说明的是,步骤280中,采用了发明人所提出的一种通过请求队列长度震荡特征来识别是否为排队敏感型虚拟机的思想。此处请求队列长度震荡特征区间是一个以
0.5为中心的小范围区间。步骤270内求出的数值(即请求队列长度特征信息之和sum_rq_pattern与识别周期内CPU过载的监测周期个数count_cpu_ol的比值)越接近0.5,表示请求队列长度震荡越剧烈,进而认为对应虚拟机排队敏感性越明显。而过小或过大都不被认为是排队敏感型虚拟机。
[0071 ] 数据发送方向排队敏感型虚拟机识别方法的叙述结束。
[0072]在识别出排队敏感型虚拟机之后,使用该信息来对虚拟机的vCPU进行区分调度,使得排队敏感型虚拟机的VCPU被更加频繁的调度到物理CPU上运行,即可提高整个系统的网络性能。
[0073]本实施例的调度方案能够在宿主机CPU负载较高时显著提高虚拟机网络性能。图4示出了一个基于排队敏感型虚拟机识别的vCPU调度方法的实现场景,该场景中宿主机的零域内部署虚拟网桥并接入vmOl?vm06等虚拟机虚拟网络设备的后端设备,虚拟网桥再与Xen平台的物理网络硬件(例如网卡)连接,从而使vmOl?vm06等虚拟机通过Xen平台接入外界网络。在该场景下,使用前述实施例的基于排队敏感型虚拟机识别的调度方案,进行调度。图5示出了在测试场景下基于本发明一个实施例中的某个虚拟机分别在空载(idle)、运行UDP流量及运行TCP流量时的I/O请求环特征相关数据,I/O请求环特征相关数据包括:Domain ID (domid,Xen虚拟化系统中的每一个虚拟机都有一个Domain ID0Domain ID为O的Domain是个特权Domain ;ID非O的Domain也叫DomainU,即普通虚拟机),溢出次数(Overflow),请求队列长度(RQlen)等。在实际测试中,虚拟机系统的网络吞吐量平均提高31%,延迟下降27%。可以看出,该调度方案能够缓解因vCPU排队时间变长而导致的虚拟机网络性能下降,显著地改善虚拟机的网络性能。
[0074]最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
【主权项】
1.一种基于共享I/o虚拟化环境的VCPU调度方法,包括下列步骤: a)根据实时监测的共享I/O请求环特征,识别出排队敏感型虚拟机; b)提高步骤a)所识别出的排队敏感型虚拟机的vCPU调度优先级。2.根据权利要求1所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,所述排队敏感型虚拟机包括数据接收方向上的排队敏感型虚拟机。3.根据权利要求2所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,根据虚拟机的I/O请求环溢出频率识别数据接收方向上的排队敏感型虚拟机。4.根据权利要求2所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,根据虚拟机的I/O请求队列过载频率识别数据接收方向上的排队敏感型虚拟机。5.根据权利要求2所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,根据虚拟机的I/O请求环溢出频率和I/O请求队列过载频率识别数据接收方向上的排队敏感型虚拟机。6.根据权利要求5所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,识别数据接收方向上的排队敏感型虚拟机的过程包括下列子步骤: al)监测虚拟机的I/O请求环特征数据; a2)根据I/O请求环特征数据统计I/O请求环溢出频率和I/O请求队列过载频率; a3)当I/O请求环溢出频率和I/O请求队列过载频率中任意一项超出预设的阈值时,判断该虚拟机为数据接收方向上的排队敏感型虚拟机。7.根据权利要求6所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤al)中,所述I/O请求环特征数据包括:当前接收数据包所需I/O请求个数,以及I/O请求环对应的共享内存当前剩余的I/O请求空间,所述步骤a2)中,根据当前接收数据包所需I/O请求个数以及I/O请求环对应的共享内存当前剩余的I/O请求空间,统计I/O请求环溢出频率。8.根据权利要求6所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤al)中,所述I/O请求环特征数据还包括:当前I/O请求环内未被处理I/O请求队列的长度,所述步骤a2)中,根据当前I/O请求环内未被处理I/O请求队列的长度,统计I/O请求队列过载频率。9.根据权利要求6所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤al)中,基于预设的监测周期监测虚拟机的I/O请求环特征数据; 所属步骤a2)中,基于预设的包含若干个监测周期的识别周期,统计该识别周期内虚拟机对应的I/O请求环溢出频率和I/O请求队列过载频率。10.根据权利要求2所述的基于共享I/O虚拟化环境的VCPU调度方法,其特征在于,所述步骤a)中,所述排队敏感型虚拟机包括数据发送方向上的排队敏感型虚拟机。11.根据权利要求10所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,根据虚拟机的vCPU过载情况和I/O请求队列长度,识别数据发送方向上的排队敏感型虚拟机。12.根据权利要求11所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤a)中,识别数据发送方向上的排队敏感型虚拟机的过程包括下列子步骤: all)在每个监测周期内,判别该监测周期内vCPU是否过载,并得出该监测周期内的I/O请求队列长度特征; al2)根据请求队列长度震荡特征识别数据发送方向上的排队敏感型虚拟机,所述请求队列长度震荡特征是:vCPU过载的监测周期内的I/O请求队列长度特征之和sum_rq_pattern与识别周期内CPU过载的监测周期个数count_cpu_ol的比值。13.根据权利要求12所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述识别数据发送方向上的排队敏感型虚拟机的过程还包括:在执行所述步骤al2)之前,根据识别周期内CPU过载的监测周期个数c0unt_cpu_0l的大小,预先筛除非排队敏感型虚拟机。14.根据权利要求12所述的基于共享I/O虚拟化环境的vCPU调度方法,其特征在于,所述步骤al2)还包括:当所述请求队列长度震荡特征处于预设阈值附近的数值区间内时,判别当前虚拟机是排队敏感型虚拟机。
【专利摘要】本发明提供一种基于共享I/O虚拟化环境的vCPU调度方法,包括下列步骤:a)根据实时监测的共享I/O请求环特征,识别出排队敏感型虚拟机;b)提高步骤a)所识别出的排队敏感型虚拟机的vCPU调度优先级。本发明能够缓解因vCPU排队时间变长而导致的虚拟机网络性能下降,从而改善虚拟机的网络性能。
【IPC分类】G06F9/455, G06F9/50
【公开号】CN104899098
【申请号】CN201510233215
【发明人】秦晨翀, 王煜炜, 闫小龙, 刘敏, 刘 东
【申请人】中国科学院计算技术研究所
【公开日】2015年9月9日
【申请日】2015年5月8日

最新回复(0)