首页> 中国专利> 消除热点资源竞争的方法和装置

消除热点资源竞争的方法和装置

摘要

本发明公开了一种消除热点资源竞争的方法和装置,属于计算机技术领域。方法包括:确定系统中每个节点的节点压力,并根据每个节点的节点压力得到系统节点压力的相对标准差;根据系统节点压力的相对标准差判断系统中是否存在满足调度条件的节点;若系统中存在满足调度条件的节点,则在满足调度条件的节点上确定需要调度的虚拟处理核心,并对需要调度的虚拟处理核心进行调度。本发明通过对满足调度条件的节点上的需要调度的虚拟处理核心进行调度,从而消除了满足调度条件的节点上的虚拟机之间的资源竞争,且无需额外的着色及分析操作,即可消除热点资源竞争,因此,提高了灵活性,降低了资源消耗。

著录项

  • 公开/公告号CN104951369A

    专利类型发明专利

  • 公开/公告日2015-09-30

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201410124399.4

  • 发明设计人 陈文智;程雨夏;王总辉;李代超;

    申请日2014-03-28

  • 分类号

  • 代理机构北京三高永信知识产权代理有限责任公司;

  • 代理人黄厚刚

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 11:23:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-05

    授权

    授权

  • 2015-11-04

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20140328

    实质审查的生效

  • 2015-09-30

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,特别涉及一种消除热点资源竞争的方法和装 置。

背景技术

随着多核技术、虚拟化技术和云计算技术的不断成熟,多核处理器被广泛 地应用于云计算环境。在云计算环境下,服务器普遍采用多核处理器、非一致 内存访问的系统架构。在这种系统架构下,每台服务器上拥有多个节点,每个 节点上拥有多个虚拟处理核心且这些个虚拟处理核心共享最后一级缓存等资源。 由于同一节点上的不同虚拟处理核心共享相同的资源,当任务运行在不同的虚 拟处理核心上时,各个虚拟处理核心将竞争共享资源,该共享资源即为热点资 源。由于热点资源不仅影响不同程序的性能,而且影响整个系统的性能。因此, 为了提高系统的性能,如何消除热点资源竞争,成为本领域技术人员较为关注 的问题。

相关技术在消除热点资源竞争时,采用如下两种方式:

方式一:首先为每个虚拟处理核心分配对应的缓存区域,并根据每个虚拟 处理核心上运行的程序将为每个虚拟处理核心分配的缓存区域划分成不同的行 且每一行对应不同的程序,然后将每个程序和对应的缓存行着以相同的颜色, 当不同的虚拟处理核心从内存读取数据之后,根据不同的虚拟处理核心读取的 数据对应的程序将读取到的数据存储到对应的缓存行中,从而避免了不同的虚 拟处理核心之间及同一虚拟处理核心的不同程序之间的资源竞争,达到了消除 热点资源竞争的目的。

方式二:首先将适合一起运行的虚拟处理核心调度到同一个节点上,然后 分析每个节点上的虚拟处理核心的性能信息,当某一虚拟处理核心与同一节点 上的其他虚拟处理核心竞争资源导致其他虚拟处理核心的性能下降时,则将该 虚拟处理核心复制到新的服务器上进行细粒度性能特征分析,得到该虚拟处理 核心的最新性能信息,进而根据得到的该虚拟处理核心的最新性能信息采用测 试程序模拟将该虚拟处理核心调度到目的服务器上之后该虚拟处理核心对其他 虚拟处理核心产生的影响,若影响较小,则可将该虚拟处理核心调度到目的服 务器上,若影响较大,则需重新启动一台服务器,进而将该虚拟处理核心调度 到新的服务器上,从而消除了被调度的虚拟处理核心所在的节点上的各个虚拟 处理核心之间的热点资源竞争。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

由于方式一将每个虚拟处理核心的不同程序分配对应的缓存行,而当某个 虚拟处理核心上的某一程序发生变化时,该程序的缓存使用情况也相应的发生 变化,分配给该程序的缓存区域也将发生相应的变化,而此时方式一就不能很 好地适应这种变化,导致相关技术在消除热点资源竞争的灵活性较差。

由于方式二需要将对同一节点上的其他虚拟核心的性能产生影响的虚拟处 理核心复制到新的服务器上进行细粒度的行为特征分析,且需要将该虚拟处理 核心调度到其他服务器上,导致相关技术在消除热点资源竞争时的资源消耗较 大。

发明内容

为了解决现有技术的问题,本发明实施例提供了一种消除热点资源竞争的 方法和装置。所述技术方案如下:

第一方面,提供了一种消除热点资源竞争的方法,所述方法包括:

确定系统中每个节点的节点压力,并根据所述每个节点的节点压力得到系 统节点压力的相对标准差;

根据所述系统节点压力的相对标准差判断系统中是否存在满足调度条件的 节点;

若系统中存在满足调度条件的节点,则在满足调度条件的节点上确定需要 调度的虚拟处理核心,并对需要调度的虚拟处理核心进行调度。

结合第一方面,在第一方面的第一种可能的实现方式中,所述确定系统中 每个节点的节点压力,包括:

获取系统中每个节点的虚拟处理核心运行时的硬件行为信息;

根据获取到的每个节点的虚拟处理核心运行时的硬件行为信息确定每个节 点上的节点压力。

结合第一方面,在第一方面的第二种可能的实现方式中,所述根据所述系 统节点压力的相对标准差判断系统中是否存在满足调度条件的节点,包括:

获取系统中每个节点的中央处理器CPU的负载值,并根据所述每个节点的 CPU的负载值确定系统的CPU负载值的相对标准差;

将所述系统中节点压力的相对标准差与系统的CPU负载值的相对标准差进 行比较;

若所述系统中节点压力的相对标准差大于系统的CPU负载值的相对标准 差,则判断系统中存在满足调度条件的节点。

结合第一方面,在第一方面的第三种可能的实现方式中,所述在满足调度 条件的节点上确定需要调度的虚拟处理核心,包括:

在满足调度条件的节点上查找每千条指令失配次数MPKI值最大和最小的 虚拟处理核心;

判断所述MPKI值最大的虚拟处理核心的是否为内存非本地的虚拟处理核 心;

若所述MPKI值最大的虚拟处理核心是内存非本地的虚拟处理核心,则将 所述MPKI值最大的虚拟处理核心确定为需要调度的虚拟处理核心;

若所述MPKI值最大的虚拟处理核心不是内存非本地虚拟处理核心,则将 所述MPKI值最小的虚拟处理核心确定为需要调度的虚拟处理核心。

结合第一方面,在第一方面的第四种可能的实现方式中,所述对需要调度 的虚拟处理核心进行调度,包括:

在每个节点的节点压力中查找节点压力值最小的节点,并将节点压力最小 的节点作为目的节点

将目的节点上的CPU总负载与满足调度条件的节点上的CPU的总负载进行 比较;

根据比较结果对需要调度的虚拟处理核心进行调度。

结合第一方面,在第一方面的第五种可能的实现方式中,所述根据比较结 果对需要调度的虚拟处理核心进行调度,包括:

若目的节点上的CPU总负载小于满足调度条件的节点上的CPU的总负载, 则将所述需要调度的虚拟处理核心调度到目的节点上负载最小的处理核心上;

若目的节点上的CPU总负载大于等于满足调度条件的节点上的CPU的总负 载,则将目的节点上的内存非本地的虚拟处理核心中MPKI值最小的虚拟处理 核心与所述需要调度的虚拟处理核心位置调换。

第二方面,提供了一种消除热点资源竞争的装置,所述装置包括:

第一确定模块,用于确定系统中每个节点的节点压力,并根据所述每个节 点的节点压力得到系统节点压力的相对标准差;

判断模块,用于根据所述系统节点压力的相对标准差判断系统中是否存在 满足调度条件的节点;

第二确定模块,用于当系统中存在满足调度条件的节点时,在满足调度条 件的节点上确定需要调度的虚拟处理核心;

调度模块,用于对需要调度的虚拟处理核心进行调度。

结合第二方面,在第二方面的第一种可能的实现方式中,所述第一确定模 块,包括:

获取单元,用于获取系统中每个节点的虚拟处理核心运行时的硬件行为信 息;

确定单元,用于根据获取到的每个节点的虚拟处理核心运行时的硬件行为 信息确定每个节点上的节点压力。

结合第二方面,在第二方面的第二种可能的实现方式中,所述判断模块, 包括:

获取单元,用于获取系统中每个节点的中央处理器CPU的负载值,并

确定单元,用于根据所述每个节点的CPU的负载值得到系统的CPU负载值 的相对标准差;

比较单元,用于将所述系统中节点压力的相对标准差与系统的CPU负载值 的相对标准差进行比较;

判断单元,用于当所述系统中节点压力的相对标准差大于系统的CPU负载 值的相对标准差时,判断系统中存在满足调度条件的节点。

结合第二方面,在第二方面的第三种可能的实现方式中,所述第二确定模 块,包括:

查找单元,用于在满足调度条件的节点上查找每千条指令失配次数MPKI 值最大和最小的虚拟处理核心;

判断单元,用于判断所述MPKI值最大的虚拟处理核心的是否为内存非本 地的虚拟处理核心;

第一确定单元,用于当所述MPKI值最大的虚拟处理核心是内存非本地的 虚拟处理核心时,将所述MPKI值最大的虚拟处理核心确定为需要调度的虚拟 处理核心;

第二确定单元,用于当所述MPKI值最大的虚拟处理核心不是内存非本地 虚拟处理核心时,将所述MPKI值最小的虚拟处理核心确定为需要调度的虚拟 处理核心。

结合第二方面,在第二方面的第四种可能的实现方式中,所述调度模块, 包括:

查找单元,用于在每个节点的节点压力中查找节点压力值最小的节点,并 将节点压力最小的节点作为目的节点

比较单元,用于将目的节点上的CPU总负载与满足调度条件的节点上的 CPU的总负载进行比较;

调度单元,用于根据比较结果对需要调度的虚拟处理核心进行调度。

结合第二方面,在第二方面的第五种可能的实现方式中,所述调度单元, 包括:

比较子单元,用于将目的节点上的CPU总负载与满足调度条件的节点上的 CPU的总负载进行比较;

调度子单元,用于当目的节点上的CPU总负载小于满足调度条件的节点上 的CPU的总负载时,将所述需要调度的虚拟处理核心调度到目的节点上负载最 小的处理核心上;

调换子单元,用于当目的节点上的CPU总负载大于等于满足调度条件的节 点上的CPU的总负载时,将目的节点上的内存非本地的虚拟处理核心中MPKI 值最小的虚拟处理核心与所述需要调度的虚拟处理核心的位置调换。

本发明实施例提供的技术方案带来的有益效果是:

通过根据系统中每个节点的节点压力得到系统节点压力的相对标准差,进 而根据系统节点压力的相对标准差判断存在满足调度条件的节点之后,对满足 调度条件的节点上确定的需要调度的虚拟处理核心进行调度,从而消除了满足 调度条件的节点上的虚拟处理核心之间的资源竞争,且无需额外的着色及分析 操作,即可消除热点资源竞争,因此,提高了消除热点资源竞争的灵活性,降 低了资源消耗。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的虚拟化环境下共享缓存感知的虚拟处理核心调 度系统架构图;

图2是本发明实施例一提供的一种消除热点资源竞争的方法流程图;

图3是本发明实施例二提供的一种消除热点资源竞争的方法流程图;

图4是本发明实施例三提供的一种消除热点资源竞争的装置结构示意图;

图5是本发明实施例三提供的第一确定模块的结构示意图;

图6是本发明实施例三提供的判断模块的结构示意图;

图7是本发明实施例三提供的第二确定模块的结构示意图;

图8是本发明实施例三提供的调度模块的结构示意图;

图9是本发明实施例三提供的调节单元的结构示意图;

图10是本发明实施例提供的服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。

实施例一

本实施例提供的消除热点资源竞争的方法所适用的实施环境为虚拟化环境 下,主要采用的架构为虚拟化环境下共享缓存感知的虚拟处理核心的系统架构。 图1为虚拟化环境下共享缓存感知的虚拟处理核心调度系统架构图。如图1所 示,底层硬件为由多核处理器组成的多核NUMA(Non-Uniform Memory Access, 非一致内存访问)的结构,每个多核处理器上有多个虚拟处理核心,这些多个 虚拟处理核心共享最后一级缓存。各个多核处理器之间通过高速互联协议连接。 系统中有多个内存节点,处理器可以访问任意的内存节点上的数据,访问延迟 有所不同。处理器访问本地缓存节点延迟小于访问远端内存节点的延迟。在物 理硬件之上,运行虚拟机管理软件,虚拟机管理软件负责管理CPU、内存、I/O 等设备的虚拟化。本发明实施例在虚拟管理软件层实现共享缓存热点消除的虚 拟处理核心的调度。其中,虚拟管理软件主要包括在线性能信息采集器、共享 缓存感知调度决策器和虚拟CPU调度器组成。在虚拟机管理软件层之上,运行 着多台虚拟机。

结合上述实施环境,本发明实施例提供了一种消除热点资源竞争的方法, 参见图2,本实施例提供的方法流程包括:

201:确定系统中每个节点的节点压力,并根据每个节点的节点压力得到系 统节点压力的相对标准差。

作为一种可选的实施例,确定系统中每个节点的节点压力,包括:

获取系统中每个节点的虚拟处理核心运行时的硬件行为信息;

根据获取到的每个节点的虚拟处理核心运行时的硬件行为信息确定每个节 点上的节点压力。

202:根据系统节点压力的相对标准差判断系统中是否存在满足调度条件的 节点。

作为一种可选的实施例,根据系统节点压力的相对标准差判断系统中是否 存在满足调度条件的节点,包括:

获取系统中每个节点的CPU(Central Processing Unit,中央处理器)的负载 值,并根据每个节点的CPU的负载值确定系统的CPU负载值的相对标准差;

将系统中节点压力的相对标准差与系统的CPU负载值的相对标准差进行比 较;

若系统中节点压力的相对标准差大于系统的CPU负载值的相对标准差,则 判断系统中存在满足调度条件的节点。

203:若系统中存在满足调度条件的节点,则在满足调度条件的节点上确定 需要调度的虚拟处理核心,并对需要调度的虚拟处理核心进行调度。

作为一种可选的实施例,在满足调度条件的节点上确定需要调度的虚拟处 理核心,包括:

在满足调度条件的节点上查找MPKI(Misses Per Kilo Instructions,每千条 指令失配次数)值最大和最小的虚拟处理核心;

判断MPKI值最大的虚拟处理核心的是否为内存非本地的虚拟处理核心;

若MPKI值最大的虚拟处理核心是内存非本地的虚拟处理核心,则将MPKI 值最大的虚拟处理核心确定为需要调度的虚拟处理核心;

若MPKI值最大的虚拟处理核心不是内存非本地虚拟处理核心,则将MPKI 值最小的虚拟处理核心确定为需要调度的虚拟处理核心。

作为一种可选的实施例,对需要调度的虚拟处理核心进行调度,包括:

在每个节点的节点压力中查找节点压力值最小的节点,并将节点压力最小 的节点作为目的节点

将目的节点上的CPU总负载与满足调度条件的节点上的CPU的总负载进行 比较;

根据比较结果对需要调度的虚拟处理核心进行调度。

作为一种可选的实施例,根据比较结果对需要调度的虚拟处理核心进行调 度,包括:

若目的节点上的CPU总负载小于满足调度条件的节点上的CPU的总负载, 则将需要调度的虚拟处理核心调度到目的节点上负载最小的处理核心上;

若目的节点上的CPU总负载大于等于满足调度条件的节点上的CPU的总负 载,则将目的节点上的内存非本地的虚拟处理核心中MPKI值最小的虚拟处理 核心与需要调度的虚拟处理核心位置调换。

本发明实施例提供的方法,通过根据系统中每个节点的节点压力得到系统 节点压力的相对标准差,进而根据系统节点压力的相对标准差判断存在满足调 度条件的节点之后,对满足调度条件的节点上确定的需要调度的虚拟处理核心 进行调度,从而消除了满足调度条件的节点上的虚拟处理核心之间的资源竞争, 且无需额外的着色及分析操作,即消除热点资源竞争,因此,提高了消除热点 资源竞争的灵活性,降低了资源消耗。

实施例二

本发明实施例提供了一种消除热点资源竞争的方法,为了便于理解,现结 合上述实施例一的内容,对本发明实施例提供的消除热点资源竞争的方法进行 详细地解释说明。参见图3,本实施例提供的方法流程包括:

301:确定系统中每个节点的节点压力,并根据每个节点的节点压力得到系 统节点压力的相对标准差。

其中,节点压力表示在非一致缓存的架构下节点当前的共享缓存资源的使 用情况、内存宽带使用情况以及CPU负载情况等。节点压力越大,说明节点上 的虚拟机的虚拟处理核心之间资源的竞争压力越大,对虚拟机的性能影响也较 大;节点压力越小,说明节点上的虚拟机的虚拟处理核心之间资源的竞争压力 越小,对虚拟机的性能影响也较小。

由于节点压力能够表征节点上虚拟处理核心对资源的竞争情况,因此,为 了消除热点资源竞争,提高节点上虚拟机的性能,需要先确定系统中每个节点 的节点压力。关于确定系统中每个节点的节点压力的方式,包括但不限于采用 如下方式:

第一步,获取系统中每个节点的虚拟处理核心运行时的硬件行为信息;

针对第一步,系统中每个节点的虚拟处理核心运行时的硬件信息,包括但 不限于LMR(LLC Miss Rate,共享缓存失配率)、MBU(Memory Bandwidth Usage, 内存宽带使用率)、MPKI(Misses Per Kilo Instructions,每千条指令的缓存失配数)、 CPU使用率等。关于获取系统中每个节点的虚拟处理核心运行时的硬件行为信 息的方式,包括但不限于采用处理器的PMU(Performance Monitoring Unit,硬 件信息监控单元)在线采集虚拟处理核心运行时的硬件行为信息。

第二步,根据获取到的每个节点的虚拟处理核心运行时的硬件行为信息确 定每个节点上的节点压力。

针对第二步,基于硬件信息监控单元采集到的硬件行为信息,为了更为准 确地反映每个节点上的资源竞争情况,可根据采集到的硬件行为信息中的共享 缓存使用率、内存宽带的使用率以及CPU负载使用率这三个维度的信息确定能 够体现综合负载的节点压力。具体地,根据上述三个维度的信息确定节点压力 时,可采用降维的方法。具体实施时,可采用如下公式:

NP=1/[(1-LMR)*(1-MBU)*(1-CPU)]

其中,NP为节点压力值,LMR为该节点上的共享缓存失配率,MBU为该 节点上的内存宽带使用情况,CPU为该节点上的CPU使用率。

进一步地,计算了系统中每个节点压力值之后,可根据每个节点的节点压 力得到系统节点压力的相对标准差。

具体地,根据每个节点的节点压力得到系统节点压力的相对标准差时,包 括但不限于采用采用如下公式计算:

RSD(NP)=SD(NP)NP

SD(NP)=Σi=1n(NPi-NP)2n-1

NP=1nΣi=1nNPi

其中,RSD(NP)为系统节点压力的相对标准差,为系统中节点压力的平 均值,SD(NP)为系统中节点压力的标准差,n为系统中节点的个数。

对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释 说明。

例如,系统中有6个节点,分别为节点1、节点2、节点3、节点4、节点5 和节点6,若节点1的节点压力值为2,节点2的节点压力值为4,节点3的节 点压力值为5,节点4的节点压力值为6,节点5的节点压力值为8,节点6的 节点压力值为5,则系统中节点压力的平均值因此,RSD(NP)=2/5=0.4,即系统节点压力的相对标准 差为0.4。

302:根据系统节点压力的相对标准差判断系统中是否存在满足调度条件的 节点,若存在,则执行步骤303。

系统节点压力的相对标准差可以判断系统中各个节点的压力是否均衡,当 系统中节点压力出现不均衡的现象时,说明节点上的各个虚拟处理核心之间存 在资源竞争,导致节点上的各个虚拟处理核心的性能较差,此时需要对节点上 的虚拟处理核心进行调度,以使系统中节点压力均衡;当系统中节点压力均衡 时,说明节点上各个虚拟处理核心之间资源竞争较小,此时节点上的各个虚拟 处理核心的性能较佳,此时无需对节点上的虚拟处理核心进行调度。可见,根 据节点压力的相对标准差可以判断系统中是否存在满足调度条件的节点。具体 地,根据系统节点压力的相对标准差判断系统中是否存在满足调度条件的节点, 包括但不限于采用如下步骤:

第一步,获取系统中每个节点的中央处理器CPU的负载值,并根据每个节 点的CPU的负载值确定系统的CPU负载值的相对标准差;

针对第一步,关于获取系统中每个节点的CPU的负载值的方式,包括但不 限于采用硬件信息监控单元获取每个节点的CPU的负载值。在根据每个节点的 CPU负载值确定系统的CPU的负载值的相对标准差的方式,包括但不限于采用 特定的算法进行计算。具体实施时,可采用如下公式进行计算:

RSD(CPU)=SD(CPU)CPU

SD(CPU)=Σi=1n(CPUi-CPU)2n-1CPU=1nΣi=1nCPUi

其中,RSD(CPU)为系统的CPU的负载值的相对标准差,为系统中 CPU的负载值的平均值,SD(CPU)为系统中CPU的负载值的标准差,n为系统 中的节点数。

对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释 说明。

例如,系统中有4个节点,分别为节点1、节点2、节点3和节点4。若节 点1的CPU的负载值为10,节点2的CPU的负载值为15,节点3的CPU的负 载值为20,节点4的CPU的负载值为15,则根据上述公式系统中CPU的负载 值的平均值CPU=1nΣi=1nCPUi=15,SD(SPU)=Σi=1n(CPUi-CPU)2n-1=3/50=0.25,因此, 即系统的CPU的负载值的相对标准差为0.02。

第二步,将系统中节点压力的相对标准差与系统的CPU负载值的相对标准 差进行比较,若系统中节点压力的相对标准差大于系统的CPU负载值的相对标 准差,则判断系统中存在满足调度条件的节点。

需要说明的是,若系统中节点压力的相对标准值小于系统的CPU负载值, 说明此时系统的性能较佳,无需进行调度操作,此时系统可自适应调整进入休 眠状态休眠预设时间,并在达到休眠达到预设时间之后进入下一个调度周期。 其中,预设时间可以是1秒、2秒、3秒等,本实施例不对预设时间作具体的限 定。

303:在满足调度条件的节点上确定需要调度的虚拟处理核心。

虽然上述步骤302中已经判断出系统中存在满足调度条件的节点,但由于 需要调度的节点上有多个虚拟处理核心,而本实施例提供的方法在每轮调度决 策时最大调度一个虚拟处理核心,因此,为了通过对满足调度条件的节点上的 虚拟处理核心进行调度,消除满足调度条件的节点上的虚拟处理核心之间的资 源竞争,本实施例提供的方法在判断系统中存在满足调度条件的节点之后,还 需在满足调度条件的节点上确定需要调度的虚拟处理核心。

具体地,在满足调度条件的节点上确定需要调度的虚拟处理核心,包括但 不限于采用如下方式进行确定:

第一步,在满足调度条件的节点上查找MPKI值最大和最小的虚拟处理核 心;

针对第一步,由于上述步骤301中在虚拟处理核心运行时,硬件信息监控 单元已经采集到了每个节点的MPKI,因此,本步骤在上述步骤301的基础上将 根据上述步骤301中采集到的每个节点的各个虚拟处理核心的MPKI值查找 MPKI值最大和最小的虚拟处理核心。具体地,若满足调度条件的节点上有4个 虚拟处理核心,分别为虚拟处理核心a、虚拟处理核心b、虚拟处理核心c和虚 拟处理核心d。硬件信息监控单元采集到虚拟处理核心a的MPKI值为3,虚拟 处理核心b的MPKI值为1,虚拟处理核心c的MPKI值为4,虚拟处理核心d 的MPKI值为7。由于虚拟处理核心b的MPKI值小,则确定虚拟处理核心b为 满足调度条件的节点上MPKI值最小的虚拟处理核心;由于虚拟处理核心d的 MPKI值大,则确定虚拟处理核心d为满足调度条件的节点上MPKI值最大的虚 拟处理核心。

第二步,判断MPKI值最大的虚拟处理核心的是否为内存非本地的虚拟处 理核心;

其中,内存非本地的虚拟处理核心为虚拟处理核心的内存在本地节点上的 占用率小于预设阈值的虚拟处理核心。其中,预设阈值可以是20%、30%、50% 等,本实施例不对预设阈值作具体的限定。具体实施时,预设阈值的选取可采 用如下方式:若系统中节点的个数为n个,则可将预设阈值选取为1/n。例如, 若系统中节点的个数为5个,则预设阈值可以选取为1/5;若系统中节点的个数 为10个,则预设阈值可以选取为1/10。

关于判断MPKI值最大的虚拟处理核心是否为内存非本地的虚拟处理核心 的方式,本实施例不作具体的限定,包括但不限于:首先获取MPKI值最大的 虚拟处理核心的内存,并获取MPKI值最大的虚拟处理核心在本地的内存,然 后将获取到的MPKI值最大的虚拟处理核心在本地的内存与获取到的MPKI值 最大的虚拟处理核心的内存作比,得到一个比值,进而将该比值与预设阈值进 行比较,从而判断MPKI值最大的虚拟处理核心是否为内存非本地的虚拟处理 核心。

其中,获取MPKI值最大的虚拟处理核心的内存的方式,包括但不限于获 取MPKI值最大的虚拟处理核心的属性信息,并在MPKI值最大的虚拟处理核 心的属性信息中提取MPKI值最大的虚拟处理核心的内存信息,进而将在MPKI 值最大的虚拟处理核心的属性信息中提取的内存信息作为获取到的MPKI值最 大的虚拟处理核心的内存。获取MPKI值最大的虚拟处理核心在本地的内存的 方式,包括但不限于在该虚拟机运行时采用硬件信息监控单元获取本地的内存。

第三步,根据判断结果在满足调度条件的节点上确定需要调度的虚拟处理 核心。

针对第三步,在判断MPKI值最大的虚拟处理核心是否为内存非本地的虚 拟处理核心时,判断结果有两种,分别为MPKI值最大的虚拟处理核心是内存 非本地的虚拟处理核心,MPKI值最大的虚拟处理核心不是内存非本地的虚拟处 理核心,针对这两种不同的情况在满足调度条件的节点上确定需要调度的虚拟 处理核心也是不同的。下面将针对这两种不同的情况分别进行介绍。

第一种情况:若MPKI值最大的虚拟处理核心是内存非本地的虚拟处理核 心,则将MPKI值最大的虚拟处理核心确定为需要调度的虚拟处理核心;

针对第一种情况,若MPKI值最大的虚拟处理核心是内存非本地的虚拟处 理核心,说明该虚拟处理核心本地内存的访问量较小,该虚拟机主要访问非本 地内存,因此,可将MPKI值最大的虚拟处理核心确定为需要调度的虚拟处理 核心。

第二种情况:若MPKI值最大的虚拟处理核心不是内存非本地虚拟处理核 心,则将MPKI值最小的虚拟处理核心确定为需要调度的虚拟处理核心。

针对第二种情况,若MPKI值最大的虚拟处理核心不是内存非本地虚拟处 理核心,说明该虚拟处理核心本地内存的访问量较大,此时为了消除满足调度 条件的节点上的虚拟处理核心对资源的竞争,可将MPKI值最小的虚拟处理核 心确定为需要调度的虚拟处理核心。

304:对需要调度的虚拟处理核心进行调度。

为了消除满足调度条件的节点上的资源竞争,提高满足调度条件的节点上 的各个虚拟处理核心的性能,在满足调度条件的节点上确定需要调度的虚拟处 理核心之后,将对需要调度的虚拟处理核心进行调度。具体地,对需要调度的 虚拟处理核心进行调度,包括但不限于采用如下步骤:

第一步,在每个节点的节点压力中查找节点压力值最小的节点,并将节点 压力最小的节点作为目的节点;

由于系统中节点的节点压力值越小,说明该节点上的虚拟处理核心之间的 资源竞争相对于系统中的其他节点的虚拟处理核心之间的资源竞争较小,因此, 为了消除满足调度条件的节点上的资源竞争,同时保证在对需要调度的虚拟处 理核心进行调度之后,系统的整体性能较佳,本实施例提供的方法可将满足调 度条件的节点上需要调度的虚拟处理核心调度到节点压力值最小的节点上。而 在将满足调度条件的虚拟处理核心调度到节点压力值最小的节点上之前,需要 先确定节点压力值最小的节点。而上述步骤301中已经得到了每个节点的节点 压力,因此,在确定节点压力值最小的节点时,可在每个节点压力中查找节点 压力值最小的节点,并将节点压力值最小的节点作为目的节点。

第二步,将目的节点上的CPU总负载与满足调度条件的节点上的CPU的总 负载进行比较;

由于目的节点上CPU的总负载对需要调度的虚拟处理核心的调度方式有影 响,因此,为了确定将需要调度的虚拟处理核心调度到目的节点上的调度方式, 可通过将目的节点上的CPU总负载与满足调度条件的节点上的CPU总负载进 行比较来确定。

第三步,根据比较结果对需要调度的虚拟处理核心进行调度。

在将目的节点上的CPU总负载与满足调度条件的节点上的CPU总负载进 行比较时,比较结果包括但不限于:目的节点的CPU总负载小于满足调度条件 的节点上的CPU的总负载以及目的节点上的CPU总负载大于等于满足调度条件 的节点上的CPU的总负载两种情况。针对两种情况下面将分别进行介绍:

第一种情况:若目的节点的CPU总负载小于满足调度条件的节点的CPU的 总负载,则将需要调度的虚拟处理核心调度到目的节点上负载最小的处理核心 上;

对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释 说明。

例如,若目的节点的CPU总负载为10,满足调度条件的节点上的CPU的 总负载为20,由于目的节点的CPU总负载小于满足调度条件的CPU的总负载, 则可将需要调度的虚拟处理核心调度到目的节点上的负载最小的处理核心上。

第二种情况:若目的节点上的CPU总负载大于等于满足调度条件的节点上 的CPU的总负载,则将目的节点上的内存非本地的虚拟处理核心中MPKI值最 小的虚拟处理核心与需要调度的虚拟处理核心位置调换。

对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释 说明。

例如,若目的节点的CPU总负载为15,满足调度条件的节点上的CPU的 总负载为12,由于目的节点的CPU总负载大于满足调度条件的CPU的总负载, 此时需要在目的节点上查找虚拟处理核心中内存非本地的虚拟处理核心,并在 查找到的内存非本地的虚拟处理核心中确定MPKI值最小的虚拟处理核心,进 而将目的节点上的内存非本地的虚拟处理核心中MPKI值最小的虚拟处理核心 与需要调度的虚拟处理核心位置调换;若目的节点的CPU总负载为13,满足调 度条件的节点上的CPU的总负载为13,由于目的节点的CPU总负载等于满足 调度条件的CPU的总负载,此时需要在目的节点上查找虚拟处理核心中内存非 本地的虚拟处理核心,并在查找到的内存非本地的虚拟处理核心中确定MPKI 值最小的虚拟处理核心,进而将目的节点上的内存非本地的虚拟处理核心中 MPKI值最小的虚拟处理核心与需要调度的虚拟处理核心位置调换。

本发明实施例提供的方法,通过根据系统中每个节点的节点压力得到系统 节点压力的相对标准差,进而根据系统节点压力的相对标准差判断存在满足调 度条件的节点之后,对满足调度条件的节点上确定的需要调度的虚拟处理核心 进行调度,从而消除了满足调度条件的节点上的虚拟处理核心之间的资源竞争, 且无需额外的着色及分析操作,即可消除热点资源竞争,因此,提高了消除热 点资源竞争的灵活性,降低了资源消耗。

实施例三

参见图4,本发明实施例提供了一种消除热点资源竞争的装置,该装置包括:

第一确定模块401,用于确定系统中每个节点的节点压力,并根据每个节点 的节点压力得到系统节点压力的相对标准差;

判断模块402,用于根据系统节点压力的相对标准差判断系统中是否存在满 足调度条件的节点;

第二确定模块403,用于当系统中存在满足调度条件的节点时,在满足调度 条件的节点上确定需要调度的虚拟处理核心;

调度模块404,用于对需要调度的虚拟处理核心进行调度。

参见图5,第一确定模块401,包括:

获取单元4011,用于获取系统中每个节点的虚拟处理核心运行时的硬件行 为信息;

确定单元4012,用于根据获取到的每个节点的虚拟处理核心运行时的硬件 行为信息确定每个节点上的节点压力。

参见图6,判断模块402,包括:

获取单元4021,用于获取系统中每个节点的中央处理器CPU的负载值,并

确定单元4022,用于根据每个节点的CPU的负载值得到系统的CPU负载 值的相对标准差;

比较单元4023,用于将系统中节点压力的相对标准差与系统的CPU负载值 的相对标准差进行比较;

判断单元4024,用于当系统中节点压力的相对标准差大于系统的CPU负 载值的相对标准差时,判断系统中存在满足调度条件的节点。

参见图7,第二确定模块403,包括:

查找单元4031,用于在满足调度条件的节点上查找每千条指令失配次数 MPKI值最大和最小的虚拟处理核心;

判断单元4032,用于判断MPKI值最大的虚拟处理核心的是否为内存非本 地的虚拟处理核心;

第一确定单元4033,用于当MPKI值最大的虚拟处理核心是内存非本地的 虚拟处理核心时,将MPKI值最大的虚拟处理核心确定为需要调度的虚拟处理 核心;

第二确定单元4034,用于当MPKI值最大的虚拟处理核心不是内存非本地 虚拟处理核心时,将MPKI值最小的虚拟处理核心确定为需要调度的虚拟处理 核心。

参见图8,调度模块404,包括:

查找单元4041,用于在每个节点的节点压力中查找节点压力值最小的节点, 并将节点压力最小的节点作为目的节点

比较单元4042,用于将目的节点上的CPU总负载与满足调度条件的节点上 的CPU的总负载进行比较;

调度单元4043,用于根据比较结果对需要调度的虚拟处理核心进行调度。

参见图9,调度单元4043,包括:

比较子单元40431,用于将目的节点上的CPU总负载与满足调度条件的节 点上的CPU的总负载进行比较;

调度子单元40432,用于当目的节点上的CPU总负载小于满足调度条件的 节点上的CPU的总负载时,将需要调度的虚拟处理核心调度到目的节点上负载 最小的处理核心上;

调换子单元40433,用于当目的节点上的CPU总负载大于等于满足调度条 件的节点上的CPU的总负载时,将目的节点上的内存非本地的虚拟处理核心中 MPKI值最小的虚拟处理核心与需要调度的虚拟处理核心的位置调换。

综上,本发明实施例提供的装置,通过根据系统中每个节点的节点压力得 到系统节点压力的相对标准差,进而根据系统节点压力的相对标准差判断存在 满足调度条件的节点之后,对满足调度条件的节点上确定的需要调度的虚拟处 理核心进行调度,从而消除了满足调度条件的节点上的虚拟处理核心之间的资 源竞争,且无需额外的着色及分析操作,即可消除热点资源竞争,因此,提高 了消除热点资源竞争的灵活性,降低了资源消耗。

实施例四

参见图10,本发明实施例提供了一种消除热点资源竞争的服务器,该服务 器包括存储器1001和处理器1002;

其中,

存储器1001,用于存储处理器1002执行的指令;

具体地,

处理器1002,用于确定系统中每个节点的节点压力,并根据每个节点的节 点压力得到系统节点压力的相对标准差;

处理器2002,还用于根据系统节点压力的相对标准差判断系统中是否存在 满足调度条件的节点;

处理器1002,还用于当系统中存在满足调度条件的节点时,在满足调度条 件的节点上确定需要调度的虚拟处理核心;

处理器1002,还用于对需要调度的虚拟处理核心进行调度。

作为一种可选的实施例,处理器1002,还用于获取系统中每个节点的虚拟 处理核心运行时的硬件行为信息;根据获取到的每个节点的虚拟处理核心运行 时的硬件行为信息确定每个节点上的节点压力。

作为一种可选的实施例,处理器1002,还用于获取系统中每个节点的中央 处理器CPU的负载值,并根据每个节点的CPU的负载值确定系统的CPU负载 值的相对标准差;将系统中节点压力的相对标准差与系统的CPU负载值的相对 标准差进行比较;当系统中节点压力的相对标准差大于系统的CPU负载值的相 对标准差时,判断系统中存在满足调度条件的节点。

作为一种可选的实施例,处理器1002,还用于在满足调度条件的节点上查 找每千条指令失配次数MPKI值最大和最小的虚拟处理核心;判断MPKI值最 大的虚拟处理核心的是否为内存非本地的虚拟处理核心;当MPKI值最大的虚 拟处理核心是内存非本地的虚拟处理核心时,将MPKI值最大的虚拟处理核心 确定为需要调度的虚拟处理核心;当MPKI值最大的虚拟处理核心不是内存非 本地虚拟处理核心时,将MPKI值最小的虚拟处理核心确定为需要调度的虚拟 处理核心。

作为一种可选的实施例,处理器1002,用于在每个节点的节点压力中查找 节点压力值最小的节点,并将节点压力最小的节点作为目的节点;将目的节点 上的CPU总负载与满足调度条件的节点上的CPU的总负载进行比较;根据比较 结果对需要调度的虚拟处理核心进行调度。

作为一种可选的实施例,处理器1002,还用于当目的节点上的CPU总负载 小于满足调度条件的节点上的CPU的总负载时,将需要调度的虚拟处理核心调 度到目的节点上负载最小的处理核心上;当目的节点上的CPU总负载大于等于 满足调度条件的节点上的CPU的总负载时,将目的节点上的内存非本地的虚拟 处理核心中MPKI值最小的虚拟处理核心与需要调度的虚拟处理核心位置调换。

本发明实施例提供的服务器,通过根据系统中每个节点的节点压力得到系 统节点压力的相对标准差,进而根据系统节点压力的相对标准差判断存在满足 调度条件的节点之后,对满足调度条件的节点上确定的需要调度的虚拟处理核 心进行调度,从而消除了满足调度条件的节点上的虚拟处理核心之间的资源竞 争,且无需额外的着色及分析操作,即可消除热点资源竞争,因此,提高了消 除热点资源竞争的灵活性,降低了资源消耗。

需要说明的是:上述实施例提供的消除热点资源竞争的装置在消除热点资 源竞争时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据 需要而将上述功能分配由不同的功能模块完成,即将消除热点资源竞争的装置 的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另 外,上述实施例提供的消除热点资源竞争的装置与消除热点资源竞争的方法实 施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过 硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种 计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘 等。

以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神 和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号