一种虚拟化场景下分配CPU资源的方法和装置.pdf

上传人:62****3 文档编号:4558230 上传时间:2018-10-20 格式:PDF 页数:20 大小:1.77MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410709207.6

申请日:

2014.11.28

公开号:

CN104461735A

公开日:

2015.03.25

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F9/50申请日:20141128|||公开

IPC分类号:

G06F9/50; G06F9/455

主分类号:

G06F9/50

申请人:

杭州华为数字技术有限公司

发明人:

王婷

地址:

310052浙江省杭州市滨江区滨兴路301号3幢A楼301室

优先权:

专利代理机构:

北京中博世达专利商标代理有限公司11274

代理人:

申健

PDF下载: PDF下载
内容摘要

本发明实施例提供了一种虚拟化场景下分配CPU资源的方法和装置,解决了虚拟化场景下多个物理CPU运行同一个I/O所导致的I/O性能降低的问题。该方法包括:当第一I/O需要运行时,主机选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,第一虚拟CPU用于处理虚拟机内与所述第一I/O相对应的线程;主机判断第一物理CPU和第一虚拟CPU是否存在绑定关系,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;若不存在,所述主机绑定所述第一物理CPU和所述第一虚拟CPU;所述主机配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。该方法适用于计算机技术领域。

权利要求书

权利要求书
1.  一种虚拟化场景下分配中央处理器CPU资源的方法,其特征在于,该方法包括:
当第一输入输出I/O需要运行时,主机选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程;
所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;
若不存在,所述主机绑定所述第一物理CPU和所述第一虚拟CPU;
所述主机配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。

2.  根据权利要求1所述的方法,其特征在于,所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系之后,该方法还包括:
所述主机判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU;
若所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系;
所述若不存在,绑定所述第一物理CPU和所述第一虚拟CPU具体包括:
若所述第一虚拟CPU和所述第二物理CPU不存在绑定关系,则绑定所述第一物理CPU所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一个非一致性内存访问NUMA节点内,则所述主机增加绑定所述第一物理CPU和所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,并绑定所述第一物理CPU和所述第一虚拟CPU。

3.  根据权利要求1或2所述的方法,其特征在于,所述主机选取第一物理CPU具体包括:
所述主机判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU;
若存在,所述主机根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;
若不存在,所述主机根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。

4.  根据权利要求3所述的方法,其特征在于,所述主机判断当前是否存在空闲物理CPU之前,该方法还包括:
所述主机判断在所述第一I/O之前,所述主机是否运行有第二I/O;
若是,所述主机判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘;
所述主机判断当前是否存在空闲物理CPU具体包括:
若在所述第一I/O之前,所述主机运行有第二I/O,且所述第一I/O和所述第二I/O访问的物理磁盘不是同一物理磁盘,所述主机判断是否存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU;
所述若存在,所述主机根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU具体包括:
若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU,则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU中选取利用率最低的物理CPU作为所述第一物理CPU。

5.  根据权利要求3或4所述的方法,其特征在于,所述主机根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU具体包括:
所述主机根据所述所有I/O的特征信息,判断每个物理CPU的I/O处理速度,其中,所述I/O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息,所述I/O访问的虚拟磁盘的空间大小信息以及所述I/O为读操作或写操作信息;
根据所述每个物理CPU的I/O处理速度,选择从当前状态变为空闲状态需要时间最短的物理CPU作为所述第一物理CPU。

6.  一种虚拟化场景下分配中央处理器CPU资源的装置,该装置包括:选取单元,第一判断单元,绑定单元和配置单元;
所述选取单元,用于当第一输入输出I/O需要运行时,选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程;
所述第一判断单元,用于判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;
所述绑定单元,用于绑定所述第一物理CPU和所述第一虚拟CPU;
所述配置单元,用于配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。

7.  根据权利要求6所述的装置,其特征在于,所述第一判断单元还用于:
判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU;
所述绑定单元还用于:若所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系;
若所述第一判断单元判断第一虚拟CPU和所述第一物理CPU不存在绑定关系,所述绑定单元具体用于:
若所述第一虚拟CPU和所述第二物理CPU不存在绑定关系,则绑定所述第一物理CPU所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一个非一致性内存访问NUMA节点内,则所述主机增加绑定所述第一物理CPU和所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,并绑定所述第一物理CPU和所述第一虚拟CPU。

8.  根据权利要求6或7所述的装置,其特征在于,所述装置还包 括:第二判断单元;
所述第二判断单元,用于判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU;
所述选取单元具体用于:根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;或者,
根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。

9.  根据权利要求8所述的装置,其特征在于,所述装置还包括:第三判断单元;
所述第三判断单元,用于判断在所述第一I/O之前,所述主机是否运行有第二I/O;
若是,所述第三判断单元还用于:判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘;
所述第二判断单元具体用于:若在所述第一I/O之前,所述主机运行有第二I/O,且所述第一I/O和所述第二I/O访问的物理磁盘不是同一物理磁盘,判断是否存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU;
所述选取单元具体用于:若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU,则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU中选取利用率最低的物理CPU作为所述第一物理CPU。

10.  根据权利要求8或9所述的装置,其特征在于,所述选取单元具体用于:
根据所述所有I/O的特征信息,判断每个物理CPU的I/O处理速度,其中,所述I/O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息,所述I/O访问的虚拟磁盘的空间大小信息以及所述I/O为读操作或写操作信息;
根据所述每个物理CPU的I/O处理速度,选择从当前状态变为空闲状态需要时间最短的物理CPU作为所述第一物理CPU。

说明书

说明书一种虚拟化场景下分配CPU资源的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟化场景下分配CPU资源的方法和装置。
背景技术
随着近年来多核系统、云计算等的广泛部署,虚拟化技术的优势日益明显。虚拟化技术不仅降低了信息技术(Information Technology,IT)成本,而且还增强了系统的安全性和可靠性,虚拟化技术可以将有限的固定资源根据不同需求进行重新规划以达到最大的利用率。
输入输出(Input/Output,I/O)虚拟化是虚拟化技术中的一种,当虚拟机内的一个应用程序开始运行时,该应用程序发起一个I/O流程,在整个I/O流程中,虚拟机通过与主机的交互访问主机内的物理磁盘。
完整的I/O流程需要运行多个线程,虚拟机内的I/O线程运行在虚拟机选取的虚拟中央处理器(Central Processing Unit,CPU)所对应的主机内的物理CPU上,主机的I/O线程运行在主机选取的物理CPU中,对于包含多个物理CPU的主机,如非一致性内存访问(Non Uniform Memory Access Architecture,NUMA)架构服务器,若虚拟机选取的虚拟CPU所对应的物理CPU和主机选取的物理CPU不是同一个物理CPU,则在I/O流程中就会产生物理CPU切换的开销,降低I/O的性能,若不同的物理CPU还处于不同的NUMA节点,由于跨NUMA节点内存访问速度较慢,也会降低I/O的性能。
发明内容
本发明的实施例提供一种虚拟化场景下分配CPU资源的方法和装置,解决了不同物理CPU对同一I/O的多个线程进行处理而导致的I/O性能降低的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种分配CPU资源的方法,该方法包括:
当第一I/O需要运行时,主机选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程;
所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;
若不存在,所述主机绑定所述第一物理CPU和所述第一虚拟CPU;
所述主机配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
在第一种可能的实施方式中,结合第一方面,所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系之后,该方法还包括:
所述主机判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU;
若所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系;
所述若不存在,绑定所述第一物理CPU和所述第一虚拟CPU具体包括:
若所述第一虚拟CPU和所述第二物理CPU不存在绑定关系,则绑定所述第一物理CPU所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一个非一致性内存访问NUMA节点内,则所述主机增加绑定所述第一物理CPU和所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,并绑定所述第一物理CPU和所述第一虚拟CPU。
在第二种可能的实施方式中,结合第一方面或第一种可能的实施 方式,所述主机选取第一物理CPU具体包括:
所述主机判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU;
若存在,所述主机根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;
若不存在,所述主机根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。
在第三种可能的实施方式中,结合第二种可能的实施方式,所述主机判断当前是否存在空闲物理CPU之前,该方法还包括:
所述主机判断在所述第一I/O之前,所述主机是否运行有第二I/O;
若是,所述主机判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘;
所述主机判断当前是否存在空闲物理CPU具体包括:
若在所述第一I/O之前,所述主机运行有第二I/O,且所述第一I/O和所述第二I/O访问的物理磁盘不是同一物理磁盘,所述主机判断是否存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU;
所述若存在,所述主机根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU具体包括:
若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU,则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU中选取利用率最低的物理CPU作为所述第一物理CPU。
在第四种可能的实施方式中,结合第二种可能的实施方式或第三种可能的实施方式,所述主机根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU具体包括:
所述主机根据所述所有I/O的特征信息,判断每个物理CPU的I/O处理速度,其中,所述I/O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息,所述I/O访问的虚拟磁盘的空间大小信息以及所述I/O为读操作或写操作信息;
根据所述每个物理CPU的I/O处理速度,选择从当前状态变为空闲状态需要时间最短的物理CPU作为所述第一物理CPU。
第二方面,本发明实施例提供了一种虚拟化场景下分配CPU资源的装置,该装置包括:选取单元,第一判断单元,绑定单元和配置单元;
所述选取单元,用于当第一I/O需要运行时,选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程;
所述第一判断单元,用于判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;
所述绑定单元,用于绑定所述第一物理CPU和所述第一虚拟CPU;
所述配置单元,用于配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
在第一种可能的实施方式中,结合第二方面,所述第一判断单元还用于:
判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU;
所述绑定单元还用于:若所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系;
若所述第一判断单元判断第一虚拟CPU和所述第一物理CPU不存在绑定关系,所述绑定单元具体用于:
若所述第一虚拟CPU和所述第二物理CPU不存在绑定关系,则绑定所述第一物理CPU所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一个非一致性内存访问NUMA节点内,则所述主机增加绑定所述第一物理CPU和所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关 系,并绑定所述第一物理CPU和所述第一虚拟CPU。
在第二种可能的实施方式中,结合第二方面或第一种可能的实施方式,所述装置还包括:第二判断单元;
所述第二判断单元,用于判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU;
所述选取单元具体用于:根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;或者,
根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。
在第三种可能的实施方式中,结合第二种可能的实施方式,所述装置还包括:第三判断单元;
所述第三判断单元,用于判断在所述第一I/O之前,所述主机是否运行有第二I/O;
若是,所述第三判断单元还用于:判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘;
所述第二判断单元具体用于:若在所述第一I/O之前,所述主机运行有第二I/O,且所述第一I/O和所述第二I/O访问的物理磁盘不是同一物理磁盘,判断是否存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU;
所述选取单元具体用于:若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU,则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU中选取利用率最低的物理CPU作为所述第一物理CPU。
在第四种可能的实施方式中,结合第二种可能的实施方式或第三种可能的实施方式,所述获取单元具体用于:
根据所述所有I/O的特征信息,判断每个物理CPU的I/O处理速度,其中,所述I/O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息,所述I/O访问的虚拟磁盘的空间大小信息以及所述I/O为读操作或写操作信息;
根据所述每个物理CPU的I/O处理速度,选择从当前状态变为空闲状态需要时间最短的物理CPU作为所述第一物理CPU。
本发明实施例提供了一种虚拟化场景下分配CPU资源的方法和 装置,当第一I/O需要运行时,主机通过预设的策略选择第一物理CPU,用于处理主机内与所述第一I/O相对应的线程,并将所述第一物理CPU和虚拟机选取的第一虚拟CPU相绑定,与所述第一虚拟CPU相绑定的物理CPU用于处理虚拟机内与所述第一I/O相对应的线程,从而使得所述虚拟机使用与所述第一虚拟CPU相绑定的第一物理CPU运行虚拟机内与所述第一I/O相对应的线程时,则所述第一I/O的全部线程由所述第一物理CPU运行,从而避免了第一I/O运行过程中存在物理CPU切换的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种虚拟化场景下分配CPU资源的方法流程图;
图2为另一种虚拟化场景下分配CPU资源的方法流程图;
图3为再一种虚拟化场景下分配CPU资源的方法流程图;
图4为一种虚拟化场景下分配CPU资源的装置示意图一;
图5为一种虚拟化场景下分配CPU资源的装置示意图二;
图6为一种虚拟化场景下分配CPU资源的装置示意图三;
图7为一种虚拟化场景下分配CPU资源的装置示意图四。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当虚拟机需要访问主机的磁盘时,虚拟机内部的应用程序发起I/O流程,整个I/O流程需要运行多个线程,具体的,包括虚拟机内部应用程序所在线程,虚拟机磁盘设备中断线程、虚拟机内的虚拟CPU线程等,这 些线程运行在虚拟机选取的虚拟CPU所对应的主机的物理CPU上,还包括主机I/O处理主线程,主机磁盘设备中断线程等,这些运行在主机选取的物理CPU上。
但是,所述虚拟机选取的虚拟CPU对应的主机的物理CPU和所述主机选取的物理CPU可能不是同一个物理CPU,举例来说,虚拟机选取的虚拟CPU对应的主机的物理CPU是主机内的物理CPU1,主机选取的物理CPU是物理CPU2,此时,整个I/O流程运行在物理CPU1和物理CPU2上,会造成物理CPU切换的开销,降低I/O性能。进一步的,若物理CPU1和物理CPU2位于不同的NUMA节点,还会存在跨NUMA节点内存访问的问题,由于在NUMA架构的服务器下,同一个NUMA节点内的物理CPU共享一个内存,而不同NUMA节点内的物理CPU访问其他NUMA节点的内存的速度要远低于访问本NUMA节点内存的速度,因此,跨NUMA节点内存访问还会进一步的降低I/O的性能。
为解决这一问题,本发明实施例提供了一种虚拟化场景下分配CPU资源的方法,结合图1,该方法包括:
101、当第一I/O需要运行时,主机选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程。
具体的,当虚拟机的应用程序下发第一I/O之前,主机可以获取到所述虚拟机下发第一I/O的消息。所述主机通过预设的策略,选择一个物理CPU,如选择一个当前较空闲的物理CPU作为第一物理CPU,并获取到虚拟机选取的第一虚拟CPU,其中,所属第一物理CPU是所述主机用于处理主机内的所述第一I/O所对应的线程的物理CPU,所述第一虚拟CPU所对应的物理CPU是所述虚拟机用于处理虚拟机内所述第一I/O所对应的线程的物理CPU。
102、所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU。
具体的,虚拟机内的一个虚拟CPU工作时,至少被分配有一个物理CPU的计算资源,当主机获取到所述第一物理CPU和所述第一虚拟CPU之后,判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系, 所述绑定关系是指所述第一虚拟CPU对应的物理CPU包含所述第一物理CPU,即所述主机将所述第一物理CPU的资源分配给所述第一虚拟CPU。
103、若不存在,所述主机绑定所述第一物理CPU和所述第一虚拟CPU。
若所述第一物理CPU和所述第一虚拟CPU不存在绑定关系,则说明主机没有分配第一物理CPU的计算资源给第一虚拟CPU,即用于处理所述虚拟机内的所述第一I/O所对应的线程的物理CPU不是所述第一物理CPU,此时,所述I/O流程一定存在物理CPU的切换,造成I/O性能的降低。
此时,所述主机绑定所述第一物理CPU和所述第一虚拟CPU,即所述主机将第一物理CPU的资源分配给所述第一虚拟CPU,所述主机内与所述第一I/O相对应的线程由所述第一物理CPU完成,所述虚拟机内与所述第一I/O相对应的线程由与所述第一虚拟CPU绑定的一个物理CPU完成,又由于所述第一虚拟CPU和所述第一物理CPU相绑定,则所述虚拟CPU使用所述第一物理CPU的资源完成所述虚拟机内与所述第一I/O相对应的线程时,则整个第一I/O流程中的所有线程都是所述第一物理CPU完成的,不存在物理CPU切换的问题。
基于此,在一定程度上避免了I/O流程中物理CPU的切换,提高了I/O性能。
104、所述主机配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
具体的,所述主机在绑定所述第一物理CPU和所述第一虚拟CPU之后,配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上,以使得所述主机内与所述I/O相对应的线程由所述第一物理CPU来运行,当所述虚拟机使用与所述第一虚拟CPU相绑定的第一物理CPU运行所述虚拟机内的与所述I/O相对应的线程时,则整个第一I/O流程中的所有线程都是所述第一物理CPU完成的,不存在物理CPU切换的问题。
本发明实施例提供了一种虚拟化场景下分配CPU资源的方法,在该方法中,当第一I/O需要运行时,主机通过预设的策略选择第一物理CPU用于处理主机内与所述第一I/O相对应的线程,并将所述第一物理CPU 和虚拟机选取的第一虚拟CPU相绑定,与所述第一虚拟CPU相绑定的物理CPU用于处理虚拟机内与所述第一I/O相对应的线程,从而使得所述虚拟机使用与所述第一虚拟CPU相绑定的第一物理CPU运行虚拟机内与所述第一I/O相对应的线程时,则所述第一I/O的全部线程由所述第一物理CPU运行,从而避免了第一I/O运行过程中存在物理CPU切换的问题
进一步的,为解决虚拟化场景下I/O过程中物理CPU的切换所带来的I/O性能降低的问题,结合图2,本发明实施例还提供了一种虚拟化场景下分配CPU资源的方法,该方法包括:
201、当第一I/O需要运行时,主机选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程。
202、所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU。
具体的,步骤201和步骤202的详细技术特征可参见上述步骤101和步骤102,本发明实施例对此不再赘述。
203、所述主机判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU。
所述第一物理CPU是所述主机选取的用于处理主机内的与所述第一I/O相对应的线程的物理CPU,若所述主机判断所述第一虚拟CPU和所述第一物理CPU不存在绑定关系,则所述主机判断所述第一虚拟CPU是否和主机内除所述第一物理CPU之外的其他物理CPU,即第二物理CPU存在绑定关系,若所述第一虚拟CPU和第二物理CPU存在绑定关系,说明主机已经分配了第二物理CPU的计算资源给所述第一虚拟CPU。
204、确定所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU的绑定关系。
具体的,分为如下六种情况进行讨论:
第一种情况,所述第一物理CPU和所述第一虚拟CPU存在绑定 关系,且所述第一虚拟CPU和所述第二物理CPU之间不存在绑定关系,则直接进入步骤205;
在这种情况下,所述第一虚拟CPU只和所述第一物理CPU存在绑定关系,则所述主机内和所述虚拟机内的与所述I/O所对应的线程都是由所述第一物理CPU运行的,不存在物理CPU切换的问题。
第二种情况,所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU都存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一NUMA节点内,则所述主机维持这种绑定关系,进入步骤205;
在这种情况下,所述第一虚拟CPU和位于同一个NUMA节点内的第一物理CPU和第二物理CPU相绑定,虽然存在物理CPU切换的问题,但由于第一物理CPU和第二物理CPU位于同一个NUAM节点内,因此不存在跨NUAM节点访问的问题,并且,两个物理CPU对虚拟机内所述第一I/O所对应的线程进行处理,当系统繁忙时,可以减小I/O线程的等待时间,提高处理速率。
第三种情况,所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU都存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述二物理CPU的绑定关系;
在这种情况下,由于跨NUMA节点访问对I/O的影响较大,因此,若第一虚拟CPU和所述第二物理CPU存在绑定关系,则取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,只保留所述第一虚拟CPU和所述第一物理CPU的绑定关系,则所述主机内和所述虚拟机内的与所述I/O所对应的线程都是由所述第一物理CPU运行的,不存在物理CPU切换的问题,从而提高了I/O性能。
第四种情况,所述第一虚拟CPU和所述第一物理CPU和所述第二物理CPU都不存在绑定关系,则所述主机绑定所述第一物理CPU和所述第一虚拟CPU,此时所述主机内和所述虚拟机内的与所述I/O所对应的线程都是由所述第一物理CPU运行的,不存在物理CPU切换的问题,从而提高了I/O性能
第五种情况,所述第一虚拟CPU和所述第一物理CPU不存在绑定关系,但和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一个NUMA节点内,则所述主机增加绑 定所述第一物理CPU和所述第一虚拟CPU;
在这种情况下,由于第一物理CPU和第二物理CPU位于同一个NUAM节点内,因此不存在跨NUAM节点访问的问题,并且,两个物理CPU对虚拟机内所述第一I/O所对应的线程进行处理,当系统繁忙时,可以减小I/O线程的等待时间,提高处理速率。
第六种情况,所述第一虚拟CPU和所述第一物理CPU不存在绑定关系,但和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,并绑定所述第一物理CPU和所述第一虚拟CPU;
在这种情况下,由于跨NUMA节点访问对I/O的性能影响较大,因此主机只绑定所述第一虚拟CPU和所述第一物理CPU,取消第一虚拟CPU和第二物理CPU的绑定关系,此时所述主机内和所述虚拟机内的与所述I/O所对应的线程都是由所述第一物理CPU运行的,不存在物理CPU切换的问题,从而提高了I/O性能。
205、所述主机配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
具体的,步骤205的详细技术特征可参见上述步骤104,本发明实施例对此不再赘述。
本发明实施例提供了一种虚拟化场景下分配CPU资源的方法,在该方法中,当第一I/O需要运行时,主机通过预设的策略选择第一物理CPU用于处理主机内与所述第一I/O相对应的线程,并根据所述第一虚拟CPU和所述第一物理CPU、所述主机内除所述第一物理CPU之外的第二物理CPU是否存在绑定关系,以及第一物理CPU和第二物理CPU是否处于同一NUMA节点确定绑定关系,使得与所述第一虚拟机CPU存在绑定关系的物理CPU只有所述第一物理CPU,或者使得与所述第一虚拟CPU存在绑定关系的两个物理CPU位于同一个NUMA节点内,从而避免了跨NUMA节点的访问所带来的I/O性能的降低。
本发明实施例还提供了一种虚拟化场景下分配CPU资源的方法,结合图3,该方法包括:
301、当第一I/O需要运行时,所述主机判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU。
为提高第一I/O的处理速度,所述主机选择一个当前较为空闲的物理CPU作为所述第一物理CPU,用于处理所述主机内与所述第一I/O相对应的线程,此时,所述主机判断当前是否存在空闲的物理CPU。
需要说明的是,所述主机在判断当前是否存在空闲物理CPU之前,还可以做如下判断:所述主机判断在所述第一I/O之前,所述主机是否运行有第二I/O;若是,所述主机判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘。
当所述主机在所述第一I/O下发之前,正在运行着第二I/O,且所述第二I/O与所述第一I/O访问的物理磁盘不是同一个物理磁盘,则此时所述第一I/O和所述第二I/O可以并行运行。若此时主机内除了运行所述第二I/O的物理CPU之外,还存在其他空闲物理CPU,则主机选取一个与运行所述第二I/O的物理CPU在不同NUMA节点且利用率最低的空闲物理CPU作为所述第一物理CPU。
这样,第二I/O和第一I/O可以同时运行,且由于运行第二I/O和第一I/O的物理CPU不在同一个NUMA节点内,则这两个物理CPU访问的NUMA节点内的存储有指令信息的内存不是同一个内存,从而提高了第一I/O和第二I/O的运行速度。
302、若存在,所述主机根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;若不存在,所述主机根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。
当所述第一I/O需要运行时,存在空闲的物理CPU,则所述主机在所述物理CPU中选取一个最空闲的物理CPU作为所述第一物理CPU,具体的,所述主机可以根据所述空闲的物理CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU。
当所述第一I/O需要运行时,若不存在空闲的物理CPU,即此时每个物理CPU在所述第一I/O运行之前都正在运行着其他I/O,则所述主机判断这些物理CPU中哪一个物理CPU会最快处于空闲状态,选择最快处于空闲状态的物理CPU作为所述第一物理CPU。
具体的,I/O的下发由虚拟机执行,在每个I/O下发之前,本发明实施中的虚拟机记录该I/O的特征信息,具体的,以所述第一I/O为例,所述第一I/O的特征信息可以包含所述第一I/O访问的虚拟磁盘的地址信息,所述第一I/O访问的虚拟磁盘的空间大小信息以及所述第一I/O为读操作或写操作信息,所述主机从所述虚拟机获取所述第一I/O的特征信息,并根据所述第一I/O的特征信息获取如下参数:
第一,访问地址系数,所述主机根据所述I/O访问虚拟磁盘的地址信息获得该虚拟磁盘的地址信息对应的物理磁盘的物理地址信息,并根据物理地址信息判断第一I/O访问的地址是连续的还是非连续的。举例来说,所述主机内的磁盘包含100个数据块存储空间,若所述第一I/O访问其中连续的几个数据块存储空间,如第1-5个数据块存储空间,则所述第一I/O访问的地址是连续的,访问速度相对较快,若所述第一I/O访问所述磁盘中的几个不连续的数据块存储空间,如访问所述磁盘的1、3、4、6、8个数据块存储空间,则所述第一I/O访问的地址是不连续的,访问速度相对较慢。
第二,数据块大小系数,即所述第一I/O访问的虚拟磁盘的数据块的大小信息。举例来说,以64K作为预设阈值,当第一I/O访问的数据块大于64K时,则主机判断所述第一I/O访问的数据块为大块,速度相对较慢,当第一I/O访问的数据块小于64K时,所述主机判断所述第一I/O访问的数据块为小块,访问速度相对较快。
第三,读写系数,即所述第一I/O是读操作还是写操作,若是读操作,则访问速度相对较快,若是写操作,则访问速度相对较慢。
则可以预设如下规则,CPU处理速度系数=访问地址系数+数据块大小系数+读写系数;
具体的,若访问的地址是连续的,则访问地址系数为0,若访问的地址是不连续的,则访问地址系数为1;若访问的数据块大于预设阈值,则数据块大小系数为1,若访问的数据块小于预设阈值,则数据块大小系数为0;若为读操作,则读写系数为0,若为写操作,则读写系数为1。
CPU处理速度系数越大,表示CPU的处理速度越慢,CPU处理速度系数越小,表示CPU的处理速度越快。
举例来说,主机内有两个物理CPU,分别为物理CPU1和物理CPU2,当第一I/O下发时,物理CPU1和物理CPU2分别正在运行第 二I/O和第三I/O,其中,第二I/O访问的物理磁盘的地址是连续的,访问主机的物理磁盘的5个数据块,其中3个数据块高于预设阈值,2个数据块低于预设阈值,第二I/O为读操作,则物理CPU1的处理速度系数=0+3+0=3;第三I/O访问的物理磁盘的地址是非连续的,访问主机的物理磁盘的6个数据块,其中5个数据块大于预设阈值,1个数据块小于预设阈值,第三I/0为写操作,则物理CPU2的处理速度系数=1+5+1=7。
基于此,物理CPU2的处理速度较慢,物理CPU1会较快处于空闲状态,则所述主机选择所述物理CPU1作为所述第一物理CPU。
具体的,所述I/O的特征信息还可以包含其他参数,本发明实施例对此不做限定。并且,任何基于本发明思想提出的判断物理CPU处理速度的方法,都在本发明保护范围之内。
需要说明的是,当同一类型的I/O,其I/O特征信息相同,主机计算获得的CPU处理速度系数相同,主机只计算并存储同一类型的一个I/O的特征信息计算得到的CPU处理速度系数即可,不必重复计算,从而减小了主机的计算量。
303、所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU。
304、若不存在,所述主机绑定所述第一物理CPU和所述第一虚拟CPU。
305、所述主机配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
具体的,步骤303-步骤305的详细技术特征可参见上述步骤102-104,本发明实施例对此不再赘述。
本发明实施例提供了一种虚拟化场景下分配CPU资源的方法,当第一I/O需要运行时,主机通过判断空闲物理CPU的利用率,以及非空闲物理CPU正在运行的I/O的特征信息,为所述第一I/O选择一个处理速度较快的物理CPU作为第一物理CPU,用于处理主机内与所述第一I/O相对应的线程,并且,主机将所述第一物理CPU和虚拟机选取的第一虚拟CPU相绑定,当所述虚拟机使用与所述第一虚拟CPU相绑定的第一物 理CPU处理所述虚拟机内与所述第一I/O相对应的线程时,则所述第一I/O的所有线程实际上是由所述第一CPU运行的,从而避免了I/O过程中由于物理CPU切换所带来的I/O性能的降低。
为解决虚拟化场景下I/O过程中物理CPU的切换所带来的I/O性能降低的问题,结合图4,本发明实施例还提供了一种虚拟化场景下分配CPU资源的装置,该装置包括:选取单元401,第一判断单元402,绑定单元403和配置单元404;
所述选取单元401,用于当第一I/O需要运行时,选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程;
所述第一判断单元402,用于判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;
所述绑定单元403,用于绑定所述第一物理CPU和所述第一虚拟CPU;
所述配置单元404,用于配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
可选的,所述第一判断单元402还用于:
判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU;
所述绑定单元403还用于:若所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系;
若所述第一判断单元判断第一虚拟CPU和所述第一物理CPU不存在绑定关系,所述绑定单元403具体用于:
若所述第一虚拟CPU和所述第二物理CPU不存在绑定关系,则绑定所述第一物理CPU所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所 述第一物理CPU和所述第二物理CPU位于同一个非一致性内存访问NUMA节点内,则所述主机增加绑定所述第一物理CPU和所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则所述主机取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,并绑定所述第一物理CPU和所述第一虚拟CPU。
可选的,结合图5,该装置还包括:第二判断单元405;
所述第二判断单元405,用于判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU;
所述选取单元401具体用于:根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;或者,
根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。
可选的,结合图6,该装置还包括:第三判断单元406;
所述第三判断单元406,用于判断在所述第一I/O之前,所述主机是否运行有第二I/O;
若是,所述第三判断单元还用于:判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘;
所述第二判断单元405具体用于:若在所述第一I/O之前,所述主机运行有第二I/O,且所述第一I/O和所述第二I/O访问的物理磁盘不是同一物理磁盘,判断是否存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU;
所述选取单元401具体用于:若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU,则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU中选取利用率最低的物理CPU作为所述第一物理CPU。
具体的,所述选取单元401用于:根据所述所有I/O的特征信息,判断每个物理CPU的I/O处理速度,其中,所述I/O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息,所述I/O访问的虚拟磁盘的空间大小信息以及所述I/O为读操作或写操作信息;
根据所述每个物理CPU的I/O处理速度,选择从当前状态变为空闲状态需要时间最短的物理CPU作为所述第一物理CPU。
本发明实施例提供了一种虚拟化场景下分配CPU资源的装置,当第一I/O需要运行时,该装置通过判断空闲物理CPU的利用率,以及非空闲物理CPU正在运行的I/O的特征信息,为所述第一I/O选择一个处理速度较快的物理CPU作为第一物理CPU,用于处理主机内与所述第一I/O相对应的线程,并且,该装置将所述第一物理CPU和虚拟机选取的第一虚拟CPU相绑定,当所述虚拟机选取与所述第一虚拟CPU相绑定的第一物理CPU处理所述虚拟机内与所述第一I/O相对应的线程时,则所述第一I/O的所有线程实际上是由所述第一CPU运行的,从而避免了I/O过程中由于物理CPU切换所带来的I/O性能的降低。
进一步的,为解决虚拟化场景下I/O过程中物理CPU的切换所带来的I/O性能降低的问题,结合图7,本发明实施例还提供了一种虚拟化场景下分配CPU资源的装置,该装置包括:处理器701、总线702和存储器703,其中,所述处理器701通过所述总线702获取所述存储器703中的指令,以用于:
当第一I/O需要运行时,选取第一物理CPU,并获得虚拟机选取的第一虚拟CPU,其中,所述第一虚拟CPU用于处理所述虚拟机内与所述第一I/O相对应的线程;
判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系,其中,所述绑定关系是指所述第一虚拟CPU所对应的物理CPU包含所述第一物理CPU;
若不存在,绑定所述第一物理CPU和所述第一虚拟CPU;
配置所述主机内的第一I/O所对应的线程运行在所述第一物理CPU上。
可选的,所述处理器701还用于:判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系,其中,所述第二物理CPU是所述主机内除所述第一物理CPU之外的任一物理CPU;
若所述第一虚拟CPU和所述第一物理CPU以及所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问NUMA节点内,则取消所述第一虚拟CPU和所述第二物理CPU的绑定关系;
若所述第一物理CPU和所述第一虚拟CPU不存在绑定关系,则 所述处理器701具体用于:
若所述第一虚拟CPU和所述第二物理CPU不存在绑定关系,则绑定所述第一物理CPU所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于同一个非一致性内存访问NUMA节点内,则增加绑定所述第一物理CPU和所述第一虚拟CPU;或者,
若所述第一虚拟CPU和所述第二物理CPU存在绑定关系,且所述第一物理CPU和所述第二物理CPU位于不同的NUMA节点内,则取消所述第一虚拟CPU和所述第二物理CPU的绑定关系,并绑定所述第一物理CPU和所述第一虚拟CPU。
可选的,所述处理器701还用于:判断当前是否存在空闲物理CPU,所述空闲物理CPU是指当前没有运行I/O的物理CPU;
若存在,根据所述空闲CPU的利用率,选取利用率最低的物理CPU作为所述第一物理CPU;
若不存在,根据从所述虚拟机预获得的所有I/O的特征信息,获取所述第一物理CPU。
可选的,所述处理器701还用于:判断在所述第一I/O之前,所述主机是否运行有第二I/O;
若是,判断所述第一I/O和所述第二I/O访问的物理磁盘是否是同一物理磁盘;
若在所述第一I/O之前,所述主机运行有第二I/O,且所述第一I/O和所述第二I/O访问的物理磁盘不是同一物理磁盘,判断是否存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU;
若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU,则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU中选取利用率最低的物理CPU作为所述第一物理CPU。
可选的,所述处理器701还用于:根据所述所有I/O的特征信息,判断每个物理CPU的I/O处理速度,其中,所述I/O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息,所述I/O访问的虚拟磁盘的空间大小信息以及所述I/O为读操作或写操作信息;
根据所述每个物理CPU的I/O处理速度,选择从当前状态变为空闲状态需要时间最短的物理CPU作为所述第一物理CPU。
本发明实施例提供了一种虚拟化场景下分配CPU资源的装置,当第一I/O需要运行时,该装置通过判断空闲物理CPU的利用率,以及非空闲物理CPU正在运行的I/O的特征信息,为所述第一I/O选择一个处理速度较快的物理CPU作为第一物理CPU,用于处理主机内与所述第一I/O相对应的线程,并且,该装置将所述第一物理CPU和虚拟机选取的第一虚拟CPU相绑定,当所述虚拟机选取与所述第一虚拟CPU相绑定的第一物理CPU处理所述虚拟机内与所述第一I/O相对应的线程时,则所述第一I/O的所有线程实际上是由所述第一CPU运行的,从而避免了I/O过程中由于物理CPU切换所带来的I/O性能的降低。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

一种虚拟化场景下分配CPU资源的方法和装置.pdf_第1页
第1页 / 共20页
一种虚拟化场景下分配CPU资源的方法和装置.pdf_第2页
第2页 / 共20页
一种虚拟化场景下分配CPU资源的方法和装置.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《一种虚拟化场景下分配CPU资源的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种虚拟化场景下分配CPU资源的方法和装置.pdf(20页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410709207.6 (22)申请日 2014.11.28 G06F 9/50(2006.01) G06F 9/455(2006.01) (71)申请人 杭州华为数字技术有限公司 地址 310052 浙江省杭州市滨江区滨兴路 301 号 3 幢 A 楼 301 室 (72)发明人 王婷 (74)专利代理机构 北京中博世达专利商标代理 有限公司 11274 代理人 申健 (54) 发明名称 一种虚拟化场景下分配 CPU 资源的方法和装 置 (57) 摘要 本发明实施例提供了一种虚拟化场景下分配 CPU 资源的方法和装置, 解决了虚拟。

2、化场景下多 个物理 CPU 运行同一个 I/O 所导致的 I/O 性能降 低的问题。该方法包括 : 当第一 I/O 需要运行时, 主机选取第一物理 CPU, 并获得虚拟机选取的第 一虚拟CPU, 第一虚拟CPU用于处理虚拟机内与所 述第一I/O相对应的线程 ; 主机判断第一物理CPU 和第一虚拟 CPU 是否存在绑定关系, 所述绑定关 系是指所述第一虚拟 CPU 所对应的物理 CPU 包含 所述第一物理 CPU ; 若不存在, 所述主机绑定所述 第一物理CPU和所述第一虚拟CPU ; 所述主机配置 所述主机内的第一 I/O 所对应的线程运行在所述 第一物理CPU上。 该方法适用于计算机技术领域。

3、。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书13页 附图3页 (10)申请公布号 CN 104461735 A (43)申请公布日 2015.03.25 CN 104461735 A 1/3 页 2 1. 一种虚拟化场景下分配中央处理器 CPU 资源的方法, 其特征在于, 该方法包括 : 当第一输入输出 I/O 需要运行时, 主机选取第一物理 CPU, 并获得虚拟机选取的第一虚 拟 CPU, 其中, 所述第一虚拟 CPU 用于处理所述虚拟机内与所述第一 I/O 相对应的线程 ; 所述主机判断所述第一物理CPU和所述第一虚拟CPU。

4、是否存在绑定关系, 其中, 所述绑 定关系是指所述第一虚拟 CPU 所对应的物理 CPU 包含所述第一物理 CPU ; 若不存在, 所述主机绑定所述第一物理 CPU 和所述第一虚拟 CPU ; 所述主机配置所述主机内的第一 I/O 所对应的线程运行在所述第一物理 CPU 上。 2.根据权利要求1所述的方法, 其特征在于, 所述主机判断所述第一物理CPU和所述第 一虚拟 CPU 是否存在绑定关系之后, 该方法还包括 : 所述主机判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系, 其中, 所述第二物 理 CPU 是所述主机内除所述第一物理 CPU 之外的任一物理 CPU ; 若所述第一虚拟 。

5、CPU 和所述第一物理 CPU 以及所述第二物理 CPU 存在绑定关系, 且所 述第一物理 CPU 和所述第二物理 CPU 位于不同的非一致性内存访问 NUMA 节点内, 则所述主 机取消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关系 ; 所述若不存在, 绑定所述第一物理 CPU 和所述第一虚拟 CPU 具体包括 : 若所述第一虚拟 CPU 和所述第二物理 CPU 不存在绑定关系, 则绑定所述第一物理 CPU 所述第一虚拟 CPU ; 或者, 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和所述 第二物理CPU位于同一个非一致性内存访问NUM。

6、A节点内, 则所述主机增加绑定所述第一物 理 CPU 和所述第一虚拟 CPU ; 或者, 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和所述 第二物理 CPU 位于不同的 NUMA 节点内, 则所述主机取消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关系, 并绑定所述第一物理 CPU 和所述第一虚拟 CPU。 3. 根据权利要求 1 或 2 所述的方法, 其特征在于, 所述主机选取第一物理 CPU 具体包 括 : 所述主机判断当前是否存在空闲物理CPU, 所述空闲物理CPU是指当前没有运行I/O的 物理 CPU ; 若存在, 所述主机根据所述。

7、空闲CPU的利用率, 选取利用率最低的物理CPU作为所述第 一物理 CPU ; 若不存在, 所述主机根据从所述虚拟机预获得的所有 I/O 的特征信息, 获取所述第一 物理 CPU。 4.根据权利要求3所述的方法, 其特征在于, 所述主机判断当前是否存在空闲物理CPU 之前, 该方法还包括 : 所述主机判断在所述第一 I/O 之前, 所述主机是否运行有第二 I/O ; 若是, 所述主机判断所述第一 I/O 和所述第二 I/O 访问的物理磁盘是否是同一物理磁 盘 ; 所述主机判断当前是否存在空闲物理 CPU 具体包括 : 若在所述第一 I/O 之前, 所述主机运行有第二 I/O, 且所述第一 I/。

8、O 和所述第二 I/O 访 问的物理磁盘不是同一物理磁盘, 所述主机判断是否存在与运行所述第二 I/O 的物理 CPU 权 利 要 求 书 CN 104461735 A 2 2/3 页 3 位于不同 NUMA 节点的空闲物理 CPU ; 所述若存在, 所述主机根据所述空闲CPU的利用率, 选取利用率最低的物理CPU作为所 述第一物理 CPU 具体包括 : 若存在与运行所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU, 则从与运 行所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU 中选取利用率最低的物理 CPU 作为所述第一物理 CPU。 。

9、5.根据权利要求3或4所述的方法, 其特征在于, 所述主机根据从所述虚拟机预获得的 所有 I/O 的特征信息, 获取所述第一物理 CPU 具体包括 : 所述主机根据所述所有 I/O 的特征信息, 判断每个物理 CPU 的 I/O 处理速度, 其中, 所 述 I/O 的特征信息至少包括所述 I/O 访问的虚拟磁盘的地址信息, 所述 I/O 访问的虚拟磁 盘的空间大小信息以及所述 I/O 为读操作或写操作信息 ; 根据所述每个物理 CPU 的 I/O 处理速度, 选择从当前状态变为空闲状态需要时间最短 的物理 CPU 作为所述第一物理 CPU。 6. 一种虚拟化场景下分配中央处理器 CPU 资源的。

10、装置, 该装置包括 : 选取单元, 第一判 断单元, 绑定单元和配置单元 ; 所述选取单元, 用于当第一输入输出 I/O 需要运行时, 选取第一物理 CPU, 并获得虚拟 机选取的第一虚拟 CPU, 其中, 所述第一虚拟 CPU 用于处理所述虚拟机内与所述第一 I/O 相 对应的线程 ; 所述第一判断单元, 用于判断所述第一物理 CPU 和所述第一虚拟 CPU 是否存在绑定关 系, 其中, 所述绑定关系是指所述第一虚拟 CPU 所对应的物理 CPU 包含所述第一物理 CPU ; 所述绑定单元, 用于绑定所述第一物理 CPU 和所述第一虚拟 CPU ; 所述配置单元, 用于配置所述主机内的第一 。

11、I/O 所对应的线程运行在所述第一物理 CPU 上。 7. 根据权利要求 6 所述的装置, 其特征在于, 所述第一判断单元还用于 : 判断所述第一虚拟 CPU 和第二物理 CPU 是否存在绑定关系, 其中, 所述第二物理 CPU 是 所述主机内除所述第一物理 CPU 之外的任一物理 CPU ; 所述绑定单元还用于 : 若所述第一虚拟 CPU 和所述第一物理 CPU 以及所述第二物理 CPU存在绑定关系, 且所述第一物理CPU和所述第二物理CPU位于不同的非一致性内存访问 NUMA 节点内, 则所述主机取消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关系 ; 若所述第一判断单元判断第一虚。

12、拟 CPU 和所述第一物理 CPU 不存在绑定关系, 所述绑 定单元具体用于 : 若所述第一虚拟 CPU 和所述第二物理 CPU 不存在绑定关系, 则绑定所述第一物理 CPU 所述第一虚拟 CPU ; 或者, 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和所述 第二物理CPU位于同一个非一致性内存访问NUMA节点内, 则所述主机增加绑定所述第一物 理 CPU 和所述第一虚拟 CPU ; 或者, 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和所述 第二物理 CPU 位于不同的 NUMA 节点内, 则所述主机取。

13、消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关系, 并绑定所述第一物理 CPU 和所述第一虚拟 CPU。 权 利 要 求 书 CN 104461735 A 3 3/3 页 4 8. 根据权利要求 6 或 7 所述的装置, 其特征在于, 所述装置还包括 : 第二判断单元 ; 所述第二判断单元, 用于判断当前是否存在空闲物理 CPU, 所述空闲物理 CPU 是指当前 没有运行 I/O 的物理 CPU ; 所述选取单元具体用于 : 根据所述空闲CPU的利用率, 选取利用率最低的物理CPU作为 所述第一物理 CPU ; 或者, 根据从所述虚拟机预获得的所有 I/O 的特征信息, 获取所述第一。

14、物理 CPU。 9. 根据权利要求 8 所述的装置, 其特征在于, 所述装置还包括 : 第三判断单元 ; 所述第三判断单元, 用于判断在所述第一 I/O 之前, 所述主机是否运行有第二 I/O ; 若是, 所述第三判断单元还用于 : 判断所述第一I/O和所述第二I/O访问的物理磁盘是 否是同一物理磁盘 ; 所述第二判断单元具体用于 : 若在所述第一 I/O 之前, 所述主机运行有第二 I/O, 且所 述第一 I/O 和所述第二 I/O 访问的物理磁盘不是同一物理磁盘, 判断是否存在与运行所述 第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU ; 所述选取单元具体用于 :。

15、 若存在与运行所述第二I/O的物理CPU位于不同NUMA节点的 空闲物理 CPU, 则从与运行所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU 中 选取利用率最低的物理 CPU 作为所述第一物理 CPU。 10. 根据权利要求 8 或 9 所述的装置, 其特征在于, 所述选取单元具体用于 : 根据所述所有 I/O 的特征信息, 判断每个物理 CPU 的 I/O 处理速度, 其中, 所述 I/O 的 特征信息至少包括所述 I/O 访问的虚拟磁盘的地址信息, 所述 I/O 访问的虚拟磁盘的空间 大小信息以及所述 I/O 为读操作或写操作信息 ; 根据所述每个物理 CPU。

16、 的 I/O 处理速度, 选择从当前状态变为空闲状态需要时间最短 的物理 CPU 作为所述第一物理 CPU。 权 利 要 求 书 CN 104461735 A 4 1/13 页 5 一种虚拟化场景下分配 CPU 资源的方法和装置 技术领域 0001 本发明涉及计算机技术领域, 尤其涉及一种虚拟化场景下分配 CPU 资源的方法和 装置。 背景技术 0002 随着近年来多核系统、 云计算等的广泛部署, 虚拟化技术的优势日益明显。 虚拟化 技术不仅降低了信息技术 (Information Technology, IT) 成本, 而且还增强了系统的安全 性和可靠性, 虚拟化技术可以将有限的固定资源根据。

17、不同需求进行重新规划以达到最大的 利用率。 0003 输入输出 (Input/Output, I/O) 虚拟化是虚拟化技术中的一种, 当虚拟机内的一 个应用程序开始运行时, 该应用程序发起一个 I/O 流程, 在整个 I/O 流程中, 虚拟机通过与 主机的交互访问主机内的物理磁盘。 0004 完整的 I/O 流程需要运行多个线程, 虚拟机内的 I/O 线程运行在虚拟机选取的虚 拟中央处理器 (Central Processing Unit, CPU) 所对应的主机内的物理 CPU 上, 主机的 I/ O 线程运行在主机选取的物理 CPU 中, 对于包含多个物理 CPU 的主机, 如非一致性内存。

18、访问 (Non Uniform Memory Access Architecture, NUMA)架构服务器, 若虚拟机选取的虚拟CPU 所对应的物理 CPU 和主机选取的物理 CPU 不是同一个物理 CPU, 则在 I/O 流程中就会产生 物理 CPU 切换的开销, 降低 I/O 的性能, 若不同的物理 CPU 还处于不同的 NUMA 节点, 由于跨 NUMA 节点内存访问速度较慢, 也会降低 I/O 的性能。 发明内容 0005 本发明的实施例提供一种虚拟化场景下分配 CPU 资源的方法和装置, 解决了不同 物理 CPU 对同一 I/O 的多个线程进行处理而导致的 I/O 性能降低的问题。。

19、 0006 为达到上述目的, 本发明的实施例采用如下技术方案 : 0007 第一方面, 本发明实施例提供了一种分配 CPU 资源的方法, 该方法包括 : 0008 当第一 I/O 需要运行时, 主机选取第一物理 CPU, 并获得虚拟机选取的第一虚拟 CPU, 其中, 所述第一虚拟 CPU 用于处理所述虚拟机内与所述第一 I/O 相对应的线程 ; 0009 所述主机判断所述第一物理CPU和所述第一虚拟CPU是否存在绑定关系, 其中, 所 述绑定关系是指所述第一虚拟 CPU 所对应的物理 CPU 包含所述第一物理 CPU ; 0010 若不存在, 所述主机绑定所述第一物理 CPU 和所述第一虚拟 。

20、CPU ; 0011 所述主机配置所述主机内的第一 I/O 所对应的线程运行在所述第一物理 CPU 上。 0012 在第一种可能的实施方式中, 结合第一方面, 所述主机判断所述第一物理 CPU 和 所述第一虚拟 CPU 是否存在绑定关系之后, 该方法还包括 : 0013 所述主机判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系, 其中, 所述第 二物理 CPU 是所述主机内除所述第一物理 CPU 之外的任一物理 CPU ; 0014 若所述第一虚拟 CPU 和所述第一物理 CPU 以及所述第二物理 CPU 存在绑定关系, 说 明 书 CN 104461735 A 5 2/13 页 6 且。

21、所述第一物理 CPU 和所述第二物理 CPU 位于不同的非一致性内存访问 NUMA 节点内, 则所 述主机取消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关系 ; 0015 所述若不存在, 绑定所述第一物理 CPU 和所述第一虚拟 CPU 具体包括 : 0016 若所述第一虚拟 CPU 和所述第二物理 CPU 不存在绑定关系, 则绑定所述第一物理 CPU 所述第一虚拟 CPU ; 或者, 0017 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和 所述第二物理CPU位于同一个非一致性内存访问NUMA节点内, 则所述主机增加绑定所述第 一物理 C。

22、PU 和所述第一虚拟 CPU ; 或者, 0018 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和 所述第二物理 CPU 位于不同的 NUMA 节点内, 则所述主机取消所述第一虚拟 CPU 和所述第二 物理 CPU 的绑定关系, 并绑定所述第一物理 CPU 和所述第一虚拟 CPU。 0019 在第二种可能的实施方式中, 结合第一方面或第一种可能的实施方式, 所述主机 选取第一物理 CPU 具体包括 : 0020 所述主机判断当前是否存在空闲物理 CPU, 所述空闲物理 CPU 是指当前没有运行 I/O 的物理 CPU ; 0021 若存在, 所述主机。

23、根据所述空闲CPU的利用率, 选取利用率最低的物理CPU作为所 述第一物理 CPU ; 0022 若不存在, 所述主机根据从所述虚拟机预获得的所有 I/O 的特征信息, 获取所述 第一物理 CPU。 0023 在第三种可能的实施方式中, 结合第二种可能的实施方式, 所述主机判断当前是 否存在空闲物理 CPU 之前, 该方法还包括 : 0024 所述主机判断在所述第一 I/O 之前, 所述主机是否运行有第二 I/O ; 0025 若是, 所述主机判断所述第一 I/O 和所述第二 I/O 访问的物理磁盘是否是同一物 理磁盘 ; 0026 所述主机判断当前是否存在空闲物理 CPU 具体包括 : 00。

24、27 若在所述第一 I/O 之前, 所述主机运行有第二 I/O, 且所述第一 I/O 和所述第二 I/ O 访问的物理磁盘不是同一物理磁盘, 所述主机判断是否存在与运行所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU ; 0028 所述若存在, 所述主机根据所述空闲CPU的利用率, 选取利用率最低的物理CPU作 为所述第一物理 CPU 具体包括 : 0029 若存在与运行所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU, 则从 与运行所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU 中选取利用率最低的 物理 C。

25、PU 作为所述第一物理 CPU。 0030 在第四种可能的实施方式中, 结合第二种可能的实施方式或第三种可能的实施方 式, 所述主机根据从所述虚拟机预获得的所有I/O的特征信息, 获取所述第一物理CPU具体 包括 : 0031 所述主机根据所述所有 I/O 的特征信息, 判断每个物理 CPU 的 I/O 处理速度, 其 中, 所述 I/O 的特征信息至少包括所述 I/O 访问的虚拟磁盘的地址信息, 所述 I/O 访问的虚 拟磁盘的空间大小信息以及所述 I/O 为读操作或写操作信息 ; 说 明 书 CN 104461735 A 6 3/13 页 7 0032 根据所述每个物理 CPU 的 I/O。

26、 处理速度, 选择从当前状态变为空闲状态需要时间 最短的物理 CPU 作为所述第一物理 CPU。 0033 第二方面, 本发明实施例提供了一种虚拟化场景下分配 CPU 资源的装置, 该装置 包括 : 选取单元, 第一判断单元, 绑定单元和配置单元 ; 0034 所述选取单元, 用于当第一 I/O 需要运行时, 选取第一物理 CPU, 并获得虚拟机选 取的第一虚拟 CPU, 其中, 所述第一虚拟 CPU 用于处理所述虚拟机内与所述第一 I/O 相对应 的线程 ; 0035 所述第一判断单元, 用于判断所述第一物理 CPU 和所述第一虚拟 CPU 是否存在绑 定关系, 其中, 所述绑定关系是指所述。

27、第一虚拟 CPU 所对应的物理 CPU 包含所述第一物理 CPU ; 0036 所述绑定单元, 用于绑定所述第一物理 CPU 和所述第一虚拟 CPU ; 0037 所述配置单元, 用于配置所述主机内的第一 I/O 所对应的线程运行在所述第一物 理 CPU 上。 0038 在第一种可能的实施方式中, 结合第二方面, 所述第一判断单元还用于 : 0039 判断所述第一虚拟 CPU 和第二物理 CPU 是否存在绑定关系, 其中, 所述第二物理 CPU 是所述主机内除所述第一物理 CPU 之外的任一物理 CPU ; 0040 所述绑定单元还用于 : 若所述第一虚拟 CPU 和所述第一物理 CPU 以及。

28、所述第二物 理 CPU 存在绑定关系, 且所述第一物理 CPU 和所述第二物理 CPU 位于不同的非一致性内存 访问 NUMA 节点内, 则所述主机取消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关系 ; 0041 若所述第一判断单元判断第一虚拟 CPU 和所述第一物理 CPU 不存在绑定关系, 所 述绑定单元具体用于 : 0042 若所述第一虚拟 CPU 和所述第二物理 CPU 不存在绑定关系, 则绑定所述第一物理 CPU 所述第一虚拟 CPU ; 或者, 0043 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和 所述第二物理CPU位于同一。

29、个非一致性内存访问NUMA节点内, 则所述主机增加绑定所述第 一物理 CPU 和所述第一虚拟 CPU ; 或者, 0044 若所述第一虚拟 CPU 和所述第二物理 CPU 存在绑定关系, 且所述第一物理 CPU 和 所述第二物理 CPU 位于不同的 NUMA 节点内, 则所述主机取消所述第一虚拟 CPU 和所述第二 物理 CPU 的绑定关系, 并绑定所述第一物理 CPU 和所述第一虚拟 CPU。 0045 在第二种可能的实施方式中, 结合第二方面或第一种可能的实施方式, 所述装置 还包括 : 第二判断单元 ; 0046 所述第二判断单元, 用于判断当前是否存在空闲物理 CPU, 所述空闲物理 。

30、CPU 是指 当前没有运行 I/O 的物理 CPU ; 0047 所述选取单元具体用于 : 根据所述空闲 CPU 的利用率, 选取利用率最低的物理 CPU 作为所述第一物理 CPU ; 或者, 0048 根据从所述虚拟机预获得的所有 I/O 的特征信息, 获取所述第一物理 CPU。 0049 在第三种可能的实施方式中, 结合第二种可能的实施方式, 所述装置还包括 : 第三 判断单元 ; 0050 所述第三判断单元, 用于判断在所述第一 I/O 之前, 所述主机是否运行有第二 I/ 说 明 书 CN 104461735 A 7 4/13 页 8 O ; 0051 若是, 所述第三判断单元还用于 。

31、: 判断所述第一I/O和所述第二I/O访问的物理磁 盘是否是同一物理磁盘 ; 0052 所述第二判断单元具体用于 : 若在所述第一 I/O 之前, 所述主机运行有第二 I/O, 且所述第一 I/O 和所述第二 I/O 访问的物理磁盘不是同一物理磁盘, 判断是否存在与运行 所述第二 I/O 的物理 CPU 位于不同 NUMA 节点的空闲物理 CPU ; 0053 所述选取单元具体用于 : 若存在与运行所述第二I/O的物理CPU位于不同NUMA节 点的空闲物理CPU, 则从与运行所述第二I/O的物理CPU位于不同NUMA节点的空闲物理CPU 中选取利用率最低的物理 CPU 作为所述第一物理 CPU。

32、。 0054 在第四种可能的实施方式中, 结合第二种可能的实施方式或第三种可能的实施方 式, 所述获取单元具体用于 : 0055 根据所述所有 I/O 的特征信息, 判断每个物理 CPU 的 I/O 处理速度, 其中, 所述 I/ O的特征信息至少包括所述I/O访问的虚拟磁盘的地址信息, 所述I/O访问的虚拟磁盘的空 间大小信息以及所述 I/O 为读操作或写操作信息 ; 0056 根据所述每个物理 CPU 的 I/O 处理速度, 选择从当前状态变为空闲状态需要时间 最短的物理 CPU 作为所述第一物理 CPU。 0057 本发明实施例提供了一种虚拟化场景下分配 CPU 资源的方法和装置, 当第。

33、一 I/O 需要运行时, 主机通过预设的策略选择第一物理 CPU, 用于处理主机内与所述第一 I/O 相对 应的线程, 并将所述第一物理 CPU 和虚拟机选取的第一虚拟 CPU 相绑定, 与所述第一虚拟 CPU相绑定的物理CPU用于处理虚拟机内与所述第一I/O相对应的线程, 从而使得所述虚拟 机使用与所述第一虚拟 CPU 相绑定的第一物理 CPU 运行虚拟机内与所述第一 I/O 相对应的 线程时, 则所述第一 I/O 的全部线程由所述第一物理 CPU 运行, 从而避免了第一 I/O 运行过 程中存在物理 CPU 切换的问题。 附图说明 0058 为了更清楚地说明本发明实施例或现有技术中的技术方。

34、案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。 0059 图 1 为一种虚拟化场景下分配 CPU 资源的方法流程图 ; 0060 图 2 为另一种虚拟化场景下分配 CPU 资源的方法流程图 ; 0061 图 3 为再一种虚拟化场景下分配 CPU 资源的方法流程图 ; 0062 图 4 为一种虚拟化场景下分配 CPU 资源的装置示意图一 ; 0063 图 5 为一种虚拟化场景下分配 CPU 资源的装置示意图二 ; 00。

35、64 图 6 为一种虚拟化场景下分配 CPU 资源的装置示意图三 ; 0065 图 7 为一种虚拟化场景下分配 CPU 资源的装置示意图四。 具体实施方式 0066 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 说 明 书 CN 104461735 A 8 5/13 页 9 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。 0067 当虚拟机需要访问主机的磁盘时, 虚拟机内部的应用程序发起 I/O 流程, 整个。

36、 I/O 流程需要运行多个线程, 具体的, 包括虚拟机内部应用程序所在线程, 虚拟机磁盘设备中断 线程、 虚拟机内的虚拟CPU线程等, 这些线程运行在虚拟机选取的虚拟CPU所对应的主机的 物理 CPU 上, 还包括主机 I/O 处理主线程, 主机磁盘设备中断线程等, 这些运行在主机选取 的物理 CPU 上。 0068 但是, 所述虚拟机选取的虚拟 CPU 对应的主机的物理 CPU 和所述主机选取的物理 CPU 可能不是同一个物理 CPU, 举例来说, 虚拟机选取的虚拟 CPU 对应的主机的物理 CPU 是 主机内的物理CPU1, 主机选取的物理CPU是物理CPU2, 此时, 整个I/O流程运行。

37、在物理CPU1 和物理 CPU2 上, 会造成物理 CPU 切换的开销, 降低 I/O 性能。进一步的, 若物理 CPU1 和物 理 CPU2 位于不同的 NUMA 节点, 还会存在跨 NUMA 节点内存访问的问题, 由于在 NUMA 架构的 服务器下, 同一个 NUMA 节点内的物理 CPU 共享一个内存, 而不同 NUMA 节点内的物理 CPU 访 问其他 NUMA 节点的内存的速度要远低于访问本 NUMA 节点内存的速度, 因此, 跨 NUMA 节点 内存访问还会进一步的降低 I/O 的性能。 0069 为解决这一问题, 本发明实施例提供了一种虚拟化场景下分配 CPU 资源的方法, 结合。

38、图 1, 该方法包括 : 0070 101、 当第一 I/O 需要运行时, 主机选取第一物理 CPU, 并获得虚拟机选取的第一虚 拟 CPU, 其中, 所述第一虚拟 CPU 用于处理所述虚拟机内与所述第一 I/O 相对应的线程。 0071 具体的, 当虚拟机的应用程序下发第一 I/O 之前, 主机可以获取到所述虚拟机下 发第一 I/O 的消息。所述主机通过预设的策略, 选择一个物理 CPU, 如选择一个当前较空闲 的物理 CPU 作为第一物理 CPU, 并获取到虚拟机选取的第一虚拟 CPU, 其中, 所属第一物理 CPU 是所述主机用于处理主机内的所述第一 I/O 所对应的线程的物理 CPU,。

39、 所述第一虚拟 CPU 所对应的物理 CPU 是所述虚拟机用于处理虚拟机内所述第一 I/O 所对应的线程的物理 CPU。 0072 102、 所述主机判断所述第一物理 CPU 和所述第一虚拟 CPU 是否存在绑定关系, 其 中, 所述绑定关系是指所述第一虚拟 CPU 所对应的物理 CPU 包含所述第一物理 CPU。 0073 具体的, 虚拟机内的一个虚拟 CPU 工作时, 至少被分配有一个物理 CPU 的计算资 源, 当主机获取到所述第一物理 CPU 和所述第一虚拟 CPU 之后, 判断所述第一物理 CPU 和所 述第一虚拟 CPU 是否存在绑定关系, 所述绑定关系是指所述第一虚拟 CPU 对。

40、应的物理 CPU 包含所述第一物理 CPU, 即所述主机将所述第一物理 CPU 的资源分配给所述第一虚拟 CPU。 0074 103、 若不存在, 所述主机绑定所述第一物理 CPU 和所述第一虚拟 CPU。 0075 若所述第一物理 CPU 和所述第一虚拟 CPU 不存在绑定关系, 则说明主机没有分配 第一物理CPU的计算资源给第一虚拟CPU, 即用于处理所述虚拟机内的所述第一I/O所对应 的线程的物理CPU不是所述第一物理CPU, 此时, 所述I/O流程一定存在物理CPU的切换, 造 成 I/O 性能的降低。 0076 此时, 所述主机绑定所述第一物理 CPU 和所述第一虚拟 CPU, 即所。

41、述主机将第一物 理 CPU 的资源分配给所述第一虚拟 CPU, 所述主机内与所述第一 I/O 相对应的线程由所述 说 明 书 CN 104461735 A 9 6/13 页 10 第一物理 CPU 完成, 所述虚拟机内与所述第一 I/O 相对应的线程由与所述第一虚拟 CPU 绑 定的一个物理 CPU 完成, 又由于所述第一虚拟 CPU 和所述第一物理 CPU 相绑定, 则所述虚拟 CPU使用所述第一物理CPU的资源完成所述虚拟机内与所述第一I/O相对应的线程时, 则整 个第一 I/O 流程中的所有线程都是所述第一物理 CPU 完成的, 不存在物理 CPU 切换的问题。 0077 基于此, 在一。

42、定程度上避免了 I/O 流程中物理 CPU 的切换, 提高了 I/O 性能。 0078 104、 所述主机配置所述主机内的第一 I/O 所对应的线程运行在所述第一物理 CPU 上。 0079 具体的, 所述主机在绑定所述第一物理CPU和所述第一虚拟CPU之后, 配置所述主 机内的第一 I/O 所对应的线程运行在所述第一物理 CPU 上, 以使得所述主机内与所述 I/O 相对应的线程由所述第一物理 CPU 来运行, 当所述虚拟机使用与所述第一虚拟 CPU 相绑定 的第一物理 CPU 运行所述虚拟机内的与所述 I/O 相对应的线程时, 则整个第一 I/O 流程中 的所有线程都是所述第一物理 CPU。

43、 完成的, 不存在物理 CPU 切换的问题。 0080 本发明实施例提供了一种虚拟化场景下分配 CPU 资源的方法, 在该方法中, 当第 一 I/O 需要运行时, 主机通过预设的策略选择第一物理 CPU 用于处理主机内与所述第一 I/ O 相对应的线程, 并将所述第一物理 CPU 和虚拟机选取的第一虚拟 CPU 相绑定, 与所述第一 虚拟 CPU 相绑定的物理 CPU 用于处理虚拟机内与所述第一 I/O 相对应的线程, 从而使得所 述虚拟机使用与所述第一虚拟 CPU 相绑定的第一物理 CPU 运行虚拟机内与所述第一 I/O 相 对应的线程时, 则所述第一 I/O 的全部线程由所述第一物理 CP。

44、U 运行, 从而避免了第一 I/O 运行过程中存在物理 CPU 切换的问题 0081 进一步的, 为解决虚拟化场景下 I/O 过程中物理 CPU 的切换所带来的 I/O 性能降 低的问题, 结合图 2, 本发明实施例还提供了一种虚拟化场景下分配 CPU 资源的方法, 该方 法包括 : 0082 201、 当第一 I/O 需要运行时, 主机选取第一物理 CPU, 并获得虚拟机选取的第一虚 拟 CPU, 其中, 所述第一虚拟 CPU 用于处理所述虚拟机内与所述第一 I/O 相对应的线程。 0083 202、 所述主机判断所述第一物理 CPU 和所述第一虚拟 CPU 是否存在绑定关系, 其 中, 所。

45、述绑定关系是指所述第一虚拟 CPU 所对应的物理 CPU 包含所述第一物理 CPU。 0084 具体的, 步骤 201 和步骤 202 的详细技术特征可参见上述步骤 101 和步骤 102, 本 发明实施例对此不再赘述。 0085 203、 所述主机判断所述第一虚拟CPU和第二物理CPU是否存在绑定关系, 其中, 所 述第二物理 CPU 是所述主机内除所述第一物理 CPU 之外的任一物理 CPU。 0086 所述第一物理CPU是所述主机选取的用于处理主机内的与所述第一I/O相对应的 线程的物理 CPU, 若所述主机判断所述第一虚拟 CPU 和所述第一物理 CPU 不存在绑定关系, 则所述主机判。

46、断所述第一虚拟CPU是否和主机内除所述第一物理CPU之外的其他物理CPU, 即第二物理 CPU 存在绑定关系, 若所述第一虚拟 CPU 和第二物理 CPU 存在绑定关系, 说明主 机已经分配了第二物理 CPU 的计算资源给所述第一虚拟 CPU。 0087 204、 确定所述第一虚拟 CPU 和所述第一物理 CPU 以及所述第二物理 CPU 的绑定关 系。 0088 具体的, 分为如下六种情况进行讨论 : 0089 第一种情况, 所述第一物理CPU和所述第一虚拟CPU存在绑定关系, 且所述第一虚 说 明 书 CN 104461735 A 10 7/13 页 11 拟 CPU 和所述第二物理 CP。

47、U 之间不存在绑定关系, 则直接进入步骤 205 ; 0090 在这种情况下, 所述第一虚拟CPU只和所述第一物理CPU存在绑定关系, 则所述主 机内和所述虚拟机内的与所述 I/O 所对应的线程都是由所述第一物理 CPU 运行的, 不存在 物理 CPU 切换的问题。 0091 第二种情况, 所述第一虚拟 CPU 和所述第一物理 CPU 以及所述第二物理 CPU 都存 在绑定关系, 且所述第一物理 CPU 和所述第二物理 CPU 位于同一 NUMA 节点内, 则所述主机 维持这种绑定关系, 进入步骤 205 ; 0092 在这种情况下, 所述第一虚拟 CPU 和位于同一个 NUMA 节点内的第一。

48、物理 CPU 和第 二物理 CPU 相绑定, 虽然存在物理 CPU 切换的问题, 但由于第一物理 CPU 和第二物理 CPU 位 于同一个 NUAM 节点内, 因此不存在跨 NUAM 节点访问的问题, 并且, 两个物理 CPU 对虚拟机 内所述第一 I/O 所对应的线程进行处理, 当系统繁忙时, 可以减小 I/O 线程的等待时间, 提 高处理速率。 0093 第三种情况, 所述第一虚拟 CPU 和所述第一物理 CPU 以及所述第二物理 CPU 都存 在绑定关系, 且所述第一物理 CPU 和所述第二物理 CPU 位于不同的 NUMA 节点内, 则所述主 机取消所述第一虚拟 CPU 和所述二物理 。

49、CPU 的绑定关系 ; 0094 在这种情况下, 由于跨 NUMA 节点访问对 I/O 的影响较大, 因此, 若第一虚拟 CPU 和 所述第二物理 CPU 存在绑定关系, 则取消所述第一虚拟 CPU 和所述第二物理 CPU 的绑定关 系, 只保留所述第一虚拟CPU和所述第一物理CPU的绑定关系, 则所述主机内和所述虚拟机 内的与所述 I/O 所对应的线程都是由所述第一物理 CPU 运行的, 不存在物理 CPU 切换的问 题, 从而提高了 I/O 性能。 0095 第四种情况, 所述第一虚拟 CPU 和所述第一物理 CPU 和所述第二物理 CPU 都不存 在绑定关系, 则所述主机绑定所述第一物理 CPU 和所述第一虚拟 CPU, 此时所述主机内和所 述虚拟机内的与所述 I/O 所对应的线程都是由所述第一物理 CPU 运行的, 不存在物理 CPU 切换的问题, 从而提高了 I/O 性能 0096。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1