《一种虚拟化场景下分配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。