CN104461735A - 一种虚拟化场景下分配cpu资源的方法和装置 - Google Patents

一种虚拟化场景下分配cpu资源的方法和装置 Download PDF

Info

Publication number
CN104461735A
CN104461735A CN201410709207.6A CN201410709207A CN104461735A CN 104461735 A CN104461735 A CN 104461735A CN 201410709207 A CN201410709207 A CN 201410709207A CN 104461735 A CN104461735 A CN 104461735A
Authority
CN
China
Prior art keywords
cpu
physical cpu
physical
virtual
main frame
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
Application number
CN201410709207.6A
Other languages
English (en)
Other versions
CN104461735B (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.)
Huawei Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
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 Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201410709207.6A priority Critical patent/CN104461735B/zh
Publication of CN104461735A publication Critical patent/CN104461735A/zh
Application granted granted Critical
Publication of CN104461735B publication Critical patent/CN104461735B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

一种虚拟化场景下分配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的主机,如非一致性内存访问(NonUniform 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、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

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。
CN201410709207.6A 2014-11-28 2014-11-28 一种虚拟化场景下分配cpu资源的方法和装置 Active CN104461735B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410709207.6A CN104461735B (zh) 2014-11-28 2014-11-28 一种虚拟化场景下分配cpu资源的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410709207.6A CN104461735B (zh) 2014-11-28 2014-11-28 一种虚拟化场景下分配cpu资源的方法和装置

Publications (2)

Publication Number Publication Date
CN104461735A true CN104461735A (zh) 2015-03-25
CN104461735B CN104461735B (zh) 2018-03-27

Family

ID=52907833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410709207.6A Active CN104461735B (zh) 2014-11-28 2014-11-28 一种虚拟化场景下分配cpu资源的方法和装置

Country Status (1)

Country Link
CN (1) CN104461735B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899097A (zh) * 2015-04-17 2015-09-09 杭州华三通信技术有限公司 线程分配数量计算方法以及装置
CN106230823A (zh) * 2016-08-01 2016-12-14 北京神州绿盟信息安全科技股份有限公司 一种流量统计方法及装置
CN106796530A (zh) * 2016-12-22 2017-05-31 深圳前海达闼云端智能科技有限公司 一种虚拟化方法、装置、及电子设备、计算机程序产品
CN106919457A (zh) * 2017-03-03 2017-07-04 郑州云海信息技术有限公司 一种InCloudSphere虚拟化系统的cpu性能优化方法
CN108701046A (zh) * 2015-12-23 2018-10-23 英特尔Ip公司 用于避免虚拟机之间的物理cpu争用的虚拟cpu合并
CN108701061A (zh) * 2016-02-25 2018-10-23 瑞典爱立信有限公司 互联硬件基础设施的资源控制
CN108874534A (zh) * 2018-04-18 2018-11-23 华为技术有限公司 一种pcpu资源的调度方法和装置
CN110673928A (zh) * 2019-09-29 2020-01-10 天津卓朗科技发展有限公司 线程绑定方法、装置、存储介质及服务器
CN111708631A (zh) * 2020-05-06 2020-09-25 深圳震有科技股份有限公司 基于多路服务器的数据处理方法、智能终端及存储介质
CN112579249A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 多cpu虚拟机的运行方法及装置、存储介质、计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976201A (zh) * 2010-10-22 2011-02-16 北京航空航天大学 基于cpu亲和力的虚拟cpu动态绑定方法
US20110302579A1 (en) * 2010-06-02 2011-12-08 Hitachi, Ltd. Virtual computer and cpu allocation method
CN103678003A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种实时性增强的虚拟cpu调度方法
CN104123171A (zh) * 2014-06-10 2014-10-29 浙江大学 基于numa架构的虚拟机迁移方法及系统
CN104166594A (zh) * 2014-08-19 2014-11-26 杭州华为数字技术有限公司 负载均衡控制方法及相关装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110302579A1 (en) * 2010-06-02 2011-12-08 Hitachi, Ltd. Virtual computer and cpu allocation method
CN101976201A (zh) * 2010-10-22 2011-02-16 北京航空航天大学 基于cpu亲和力的虚拟cpu动态绑定方法
CN103678003A (zh) * 2013-12-18 2014-03-26 华中科技大学 一种实时性增强的虚拟cpu调度方法
CN104123171A (zh) * 2014-06-10 2014-10-29 浙江大学 基于numa架构的虚拟机迁移方法及系统
CN104166594A (zh) * 2014-08-19 2014-11-26 杭州华为数字技术有限公司 负载均衡控制方法及相关装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899097A (zh) * 2015-04-17 2015-09-09 杭州华三通信技术有限公司 线程分配数量计算方法以及装置
CN108701046A (zh) * 2015-12-23 2018-10-23 英特尔Ip公司 用于避免虚拟机之间的物理cpu争用的虚拟cpu合并
CN108701061B (zh) * 2016-02-25 2022-02-18 瑞典爱立信有限公司 互联硬件基础设施的资源控制
CN108701061A (zh) * 2016-02-25 2018-10-23 瑞典爱立信有限公司 互联硬件基础设施的资源控制
CN106230823A (zh) * 2016-08-01 2016-12-14 北京神州绿盟信息安全科技股份有限公司 一种流量统计方法及装置
CN106796530B (zh) * 2016-12-22 2019-01-25 深圳前海达闼云端智能科技有限公司 一种虚拟化方法、装置、及电子设备、计算机程序产品
WO2018112855A1 (zh) * 2016-12-22 2018-06-28 深圳前海达闼云端智能科技有限公司 一种虚拟化方法、装置、及电子设备、计算机程序产品
CN106796530A (zh) * 2016-12-22 2017-05-31 深圳前海达闼云端智能科技有限公司 一种虚拟化方法、装置、及电子设备、计算机程序产品
CN106919457A (zh) * 2017-03-03 2017-07-04 郑州云海信息技术有限公司 一种InCloudSphere虚拟化系统的cpu性能优化方法
CN108874534A (zh) * 2018-04-18 2018-11-23 华为技术有限公司 一种pcpu资源的调度方法和装置
CN108874534B (zh) * 2018-04-18 2022-09-16 华为技术有限公司 一种pcpu资源的调度方法和装置
CN110673928A (zh) * 2019-09-29 2020-01-10 天津卓朗科技发展有限公司 线程绑定方法、装置、存储介质及服务器
CN110673928B (zh) * 2019-09-29 2021-12-14 天津卓朗科技发展有限公司 线程绑定方法、装置、存储介质及服务器
CN112579249A (zh) * 2019-09-30 2021-03-30 奇安信安全技术(珠海)有限公司 多cpu虚拟机的运行方法及装置、存储介质、计算机设备
CN111708631A (zh) * 2020-05-06 2020-09-25 深圳震有科技股份有限公司 基于多路服务器的数据处理方法、智能终端及存储介质
CN111708631B (zh) * 2020-05-06 2023-06-30 深圳震有科技股份有限公司 基于多路服务器的数据处理方法、智能终端及存储介质

Also Published As

Publication number Publication date
CN104461735B (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
CN104461735A (zh) 一种虚拟化场景下分配cpu资源的方法和装置
CN107526546B (zh) 一种Spark分布式计算数据处理方法及系统
CN102449607B (zh) 具有多个闪存封装的存储系统
US20160092109A1 (en) Performance of de-clustered disk array
US8996844B1 (en) Apparatus and method for accessing non-overlapping portions of memory according to respective orders of dimensions
CN104111897A (zh) 一种数据处理方法、装置及计算机系统
CN108228482B (zh) 用于管理存储系统中的缓存设备的方法和系统
CN102279712A (zh) 一种适用于互联网存储系统的存储控制方法、系统和装置
CN107368367B (zh) 资源分配的处理方法、装置及电子设备
CN101504594A (zh) 一种数据存储方法和装置
CN104346293A (zh) 混合内存的数据访问方法、模块、处理器及终端设备
CN104461698A (zh) 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统
CN102346682A (zh) 信息处理装置及信息处理方法
CN105988875B (zh) 一种运行进程的方法及装置
CN112513821A (zh) 用于scm应用的多实例2lm架构
CN103049328A (zh) 计算机系统中内存资源分配方法
CN107479950B (zh) 一种虚拟机调度方法、设备及系统
CN104104705A (zh) 分布式存储系统的接入方法和设备
US9069621B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
CN105701029A (zh) 一种异构存储优化方法及装置
CN110276454A (zh) 用于机器学习的系统和控制该系统的方法以及电子系统
US20220114086A1 (en) Techniques to expand system memory via use of available device memory
US20180292988A1 (en) System and method for data access in a multicore processing system to reduce accesses to external memory
US10684964B1 (en) System and method for reducing read latency in storage devices
US20170031628A1 (en) Method and device for communication between virtual machines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200424

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou

Patentee before: Huawei Technologies Co.,Ltd.