CN104657198A - Numa架构***在虚拟机环境中的访存优化方法及*** - Google Patents
Numa架构***在虚拟机环境中的访存优化方法及*** Download PDFInfo
- Publication number
- CN104657198A CN104657198A CN201510037275.7A CN201510037275A CN104657198A CN 104657198 A CN104657198 A CN 104657198A CN 201510037275 A CN201510037275 A CN 201510037275A CN 104657198 A CN104657198 A CN 104657198A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- node
- local
- memory access
- pressure
- 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
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012544 monitoring process Methods 0.000 claims abstract description 22
- 230000005012 migration Effects 0.000 claims description 22
- 238000013508 migration Methods 0.000 claims description 22
- 230000036961 partial effect Effects 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种NUMA架构***在虚拟机环境中的访存优化方法及***。该方法包括如下步骤:在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平;当某节点的物理内存带宽压力超出预设水平时,检测此节点的全局队列缓冲压力,并据此判断此节点的本地访存压力与远端访存压力的大小关系;当节点的远端访存压力大于本地访存压力时,将节点中的非本地虚拟机的内存物理页迁移到其他节点;当节点的本地访存压力大于远端访存压力时,检测第一预设时间内节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。
Description
技术领域
本发明涉及虚拟机调度技术领域,尤其涉及一种NUMA架构***在虚拟机环境中的访存优化方法及***。
背景技术
随着云计算和大数据的兴起,NUMA(Non-Uniform Memory Access,非一致内存访问)***平台已经成为云计算和云存储的主要基础设施,NUMA架构将逐渐成为高性能计算的主流架构。同时,由于虚拟机的高度隔离性(虚拟机与底层的物理机器均实现隔离)、易于让用户接受(与用户所习惯使用的普通机器看起来一致)、支持不同的操作***和应用程序、低风险和易于维护等特性,使得虚拟机无论是在个人PC还是在商业服务器被使用得都非常广泛,虚拟机技术已经成为云计算中的一个关键技术。然而,NUMA架构特性对整个***的性能影响非常严重,尤其是在虚拟机环境中的影响更为明显。如果运行在NUMA架构上的虚拟机得到适当的管理和调度,比如在虚拟机环境下对NUMA***进行访存优化,***性能将得到大幅提高。然而,正因为虚拟机的高度隔离性,运行在虚拟机上的客户操作***无法正确获取底层硬件信息,使得大部分的性能剖析工具在虚拟机中无法正确运行,给虚拟机环境下NUMA访存优化带来了极大的困难。
发明内容
本发明所要解决的技术问题是,提供一种NUMA架构***在虚拟机环境中的访存优化方法及***,以实现在虚拟机环境下对NUMA***进行访存优化。本发明是这样实现的:
NUMA架构***在虚拟机环境中的访存优化方法,所述NUMA架构***包括若干通过高速互联网络连接在一起的节点;包括如下步骤:
步骤A:在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平;
步骤B:当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系;
步骤C:当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。
进一步地,所述步骤A包括如下步骤:
步骤A1:在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况;
步骤A2:根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
进一步地,所述步骤B包括如下步骤:
步骤B1:当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为:
全局队列中本地读请求队列满的周期数;
全局队列中本地写请求队列满的周期数;
全局队列中远端请求队列满的周期数;
步骤B2:当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
进一步地,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数的步骤包括:
在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件,并统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数;
将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数;
根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数。
进一步地,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点的方法为:优先将所述非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迁移到其他内存有剩余空间的节点。
进一步地,将所述本地虚拟机调度到其他节点的方法为:将该本地虚拟机调度到带宽使用率最小的节点上。
NUMA架构***在虚拟机环境中的访存优化***,所述NUMA架构***包括若干通过高速互联网络连接在一起的节点;包括:
节点带宽压力检测模块,用于在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平;
节点全局队列缓冲压力检测模块,用于当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系;
虚拟机调度模块,用于当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。
进一步地,所述节点带宽压力检测模块包括:
内存控制器性能事件监视模块,用于在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况;
节点带宽压力判断模块,用于根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
进一步地,所述节点全局队列缓冲压力检测模块包括:
节点全局队列性能事件监视模块,用于当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为:
全局队列中本地读请求队列满的周期数;
全局队列中本地写请求队列满的周期数;
全局队列中远端请求队列满的周期数;
访存压力大小判断模块,用于当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
进一步地,所述虚拟机调度模块包括:
二级缓存失效事件监视模块,用于在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件;
虚拟CPU失效次数统计模块,用于统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数;
虚拟机确定模块,用于根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机确定为需要被调度的虚拟机。
进一步地,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点时,所述虚拟机调度模块优先将所述非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机随机调度到其他内存有剩余空间的节点。
进一步地,将所述本地虚拟机调度到其他节点时,所述虚拟机调度模块将该本地虚拟机调度到带宽使用率最小的节点上。
与现有技术相比,本发明在虚拟机环境下利用可编程的处理器的非核部分性能监视单元检测NUMA架构***中每一节点的物理内存带宽压力,并据此对带宽压力超出预设水平的节点进行虚拟机调度以调节该节点的物理内存带宽压力,不需要通过客户操作***获取底层硬件信息,无需在虚拟机中运行性能剖析工具,使虚拟机环境下的NUMA访存优化更为容易实现。
附图说明
图1:本发明实施例提供的NUMA架构***在虚拟机环境中的访存优化方法流程示意图;
图2:本发明实施例提供的NUMA架构***在虚拟机环境中的访存优化***结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
如图1所示,本发明NUMA架构***在虚拟机环境中的访存优化方法包括如下步骤:
步骤A:在虚拟机(VMM)环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平。本发明依据Intel公司,将处理器分为核内子***(核内部分)和非核子***(非核部分)两部分,其中核内子***包括处理器中的指令执行部件,其中有算术逻辑单元(Arithmetic and Logic Unit,ALU)、浮点运算单元(Floating Point Unit,FPU),一级缓存(L1 cache)和二级缓存(L2 cache),非核部分子***包括最后一级缓存(Last Level Cache,LLC)、高速互联总线控制器(QPI)、内存控制器(IMC)、全局队列(GQ)等。处理器中还包括性能监视单元(Performance Monitoring Unit,PMU),用于监视处理器内的性能事件,而性能监视单元包括核内(Core)部分和非核(Uncore)部分,其中,核内部分性能监视单元用于监视处理器中的核内性能事件,如处理器忙事件,而非核部分性能监视单元用于监视处理器中的非核性能事件,如内存控制器性能事件等。节点的物理内存带宽压力可通过两个性能指标来表示,一是内存带宽的使用大小,二是访存的延迟大小。因此,可通过编程处理器的非核部分性能监视单元对各节点内存控制器性能事件进行监视,以检测各节点的物理内存带宽压力。基于该原理,步骤A可包括如下步骤:
步骤A1:在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况。
步骤A2:根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。其中的第一阈值及第二阈值可根据经验设置。
步骤B:当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系。节点中的访存包括本地访存和远端访存,当某一节点的本地访存压力过大或远端访存压力过大都可能导致该节点的物理内存带宽压力超出预设水平,因此,在调节节点带宽压力时,有必要根据该节点的本地访存压力与远端访存压力的大小采用不同的调节方案。本发明步骤B通过检测节点的全局队列缓冲压力的方式来判断该节点的本地访存压力与远端访存压力的大小关系,具体包括如下步骤:
步骤B1:当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为:
全局队列中本地读请求队列满的周期数;
全局队列中本地写请求队列满的周期数;
全局队列中远端请求队列满的周期数。
步骤B2:当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
步骤C:当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。当节点的远端访存压力大于本地访存压力时,表明需要对节点的远端访存压力进行调节,因此,可优先将非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迁移到其他内存有剩余空间的节点。如果节点的本地访存压力大于远端访存压力,表明需要对节点的本地访存压力进行调节。对节点的本地访存压力进行调节前需要确定需要被调度的虚拟机。分析处理器访内存的过程可知,处理器核心访问内存时先访问一级缓存(L1 cache)然后访问二级缓存(L2cache)如果一级缓存及二级缓存都访问失效,则访问LLC,如果LLC也访问失效才会去访问内存,虽然LLC和IMC属于非核部分,但一级缓存及二级缓存属于核内部分,我们可以通过监控核内二级缓存失效情况,大致判断出某一处理器核访问内存的情况。基于该原理,可采用如下方法确定需要被调度的虚拟机:
在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件,并统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数。统计时,可为该节点中的每一物理CPU建立一个元素个数为NUMA***虚拟CPU总数的数组,各元素用于分别表示各虚拟CPU在该物理CPU上导致的二级缓存失效次数,各元素的初始值为0。然后,在虚拟机环境中通过可编程核内性能监视单元监视该节点的每个物理CPU的二级缓存失效事件。监视过程中,当某物理CPU发生虚拟CPU调度时,首先判断新调度到该物理CPU的虚拟CPU是否是原来运行在该物理CPU上的虚拟CPU,如果是,则继续监视,如果不是,表明有新的虚拟CPU调度到该物理CPU上,需要统计该新的虚拟CPU在该物理CPU上导致的二级缓存失效次数,并将统计的次数累加到该物理CPU的数组中的相应元素中,然后将该核内性能监视单元计数器清零,重新继续监视并计数。经过第一预设时间后,统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数。然后根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,导致二级缓存失效次数最少的本地虚拟机就为需要被调度的虚拟机。确定了需要被调度的虚拟机后,可将该虚拟机调度到带宽使用率最小的节点上,减轻当前节点的带宽压力。
如图2所示,本发明还提供了一种NUMA架构***在虚拟机环境中的访存优化***,NUMA架构***包括若干通过高速互联网络连接在一起的节点,该访存优化***包括节点带宽压力检测模块1、节点全局队列缓冲压力检测模块2及虚拟机调度模块3。其中:
节点带宽压力检测模块1用于在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平。节点全局队列缓冲压力检测模块2用于当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系。虚拟机调度模块3用于当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。将所述节点中的非本地虚拟机的内存物理页迁移到其他节点时,虚拟机调度模块3优先将所述非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迁移到其他内存有剩余空间的节点。将导致二级缓存失效次数最少的本地虚拟机调度到其他节点时,虚拟机调度模块3将该本地虚拟机调度到带宽使用率最小的节点上。
节点带宽压力检测模块1可包括内存控制器性能事件监视模块及节点带宽压力判断模块,其中:
内存控制器性能事件监视模块用于在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况。节点带宽压力判断模块用于根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
节点全局队列缓冲压力检测模块2可包括节点全局队列性能事件监视模块及访存压力大小判断模块。其中:
节点全局队列性能事件监视模块用于当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为全局队列中本地读请求队列满的周期数、全局队列中本地写请求队列满的周期数、全局队列中远端请求队列满的周期数。访存压力大小判断模块用于当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
虚拟机调度模块3可包括二级缓存失效事件监视模块、虚拟CPU失效次数统计模块及虚拟机确定模块。其中,二级缓存失效事件监视模块用于在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件。虚拟CPU失效次数统计模块用于统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数。虚拟机确定模块用于根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机确定为需要被调度的虚拟机。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.NUMA架构***在虚拟机环境中的访存优化方法,所述NUMA架构***包括若干通过高速互联网络连接在一起的节点;其特征在于,包括如下步骤:
步骤A:在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平;
步骤B:当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系;
步骤C:当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。
2.如权利要求1所述的NUMA架构***在虚拟机环境中的访存优化方法,其特征在于,所述步骤A包括如下步骤:
步骤A1:在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况;
步骤A2:根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
3.如权利要求1所述的NUMA架构***在虚拟机环境中的访存优化方法,其特征在于,所述步骤B包括如下步骤:
步骤B1:当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为:
全局队列中本地读请求队列满的周期数;
全局队列中本地写请求队列满的周期数;
全局队列中远端请求队列满的周期数;
步骤B2:当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
4.如权利要求1所述的NUMA架构***在虚拟机环境中的访存优化方法,其特征在于,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数的步骤包括:
在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件;
统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数;
根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数。
5.如权利要求1所述的NUMA架构***在虚拟机环境中的访存优化方法,其特征在于,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点的方法为:优先将所述非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迁移到其他内存有剩余空间的节点。
6.如权利要求1所述的NUMA架构***在虚拟机环境中的访存优化方法,其特征在于,将导致二级缓存失效次数最少的本地虚拟机调度到其他节点的方法为:将该本地虚拟机调度到带宽使用率最小的节点上。
7.NUMA架构***在虚拟机环境中的访存优化***,所述NUMA架构***包括若干通过高速互联网络连接在一起的节点;其特征在于,包括:
节点带宽压力检测模块,用于在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构***中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平;
节点全局队列缓冲压力检测模块,用于当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系;
虚拟机调度模块,用于当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。
8.如权利要求7所述的NUMA架构***在虚拟机环境中的访存优化***,其特征在于,所述节点带宽压力检测模块包括:
内存控制器性能事件监视模块,用于在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况;
节点带宽压力判断模块,用于根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
9.如权利要求7所述的NUMA架构***在虚拟机环境中的访存优化***,其特征在于,所述节点全局队列缓冲压力检测模块包括:
节点全局队列性能事件监视模块,用于当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为:
全局队列中本地读请求队列满的周期数;
全局队列中本地写请求队列满的周期数;
全局队列中远端请求队列满的周期数;
访存压力大小判断模块,用于当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
10.如权利要求7所述的NUMA架构***在虚拟机环境中的访存优化***,其特征在于,所述虚拟机调度模块包括:
二级缓存失效事件监视模块,用于在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件;
虚拟CPU失效次数统计模块,用于统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数;
虚拟机确定模块,用于根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机确定为需要被调度的虚拟机。
11.如权利要求7所述的NUMA架构***在虚拟机环境中的访存优化***,其特征在于,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点时,所述虚拟机调度模块优先将所述非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迁移到其他内存有剩余空间的节点。
12.如权利要求7所述的NUMA架构***在虚拟机环境中的访存优化***,其特征在于,将导致二级缓存失效次数最少的本地虚拟机调度到其他节点时,所述虚拟机调度模块将该本地虚拟机调度到带宽使用率最小的节点上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510037275.7A CN104657198B (zh) | 2015-01-24 | 2015-01-24 | Numa架构***在虚拟机环境中的访存优化方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510037275.7A CN104657198B (zh) | 2015-01-24 | 2015-01-24 | Numa架构***在虚拟机环境中的访存优化方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657198A true CN104657198A (zh) | 2015-05-27 |
CN104657198B CN104657198B (zh) | 2017-12-26 |
Family
ID=53248374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510037275.7A Expired - Fee Related CN104657198B (zh) | 2015-01-24 | 2015-01-24 | Numa架构***在虚拟机环境中的访存优化方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657198B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383791A (zh) * | 2016-09-23 | 2017-02-08 | 深圳职业技术学院 | 一种基于非统一内存访问架构的内存块组合方法及装置 |
CN107145388A (zh) * | 2017-05-25 | 2017-09-08 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及*** |
CN107193648A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种基于numa架构的性能优化方法及*** |
CN110419030A (zh) * | 2016-09-28 | 2019-11-05 | 英特尔公司 | 测量非均匀存储器访问(numa)***内按节点的带宽 |
CN110502334A (zh) * | 2018-05-17 | 2019-11-26 | 上海交通大学 | 基于混合内存架构的带宽感知任务窃取方法、***及芯片 |
CN112965885A (zh) * | 2019-12-12 | 2021-06-15 | 中科寒武纪科技股份有限公司 | 访存带宽的检测方法、装置、计算机设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013044829A1 (zh) * | 2011-09-27 | 2013-04-04 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
US20130326109A1 (en) * | 2012-05-30 | 2013-12-05 | Avi Kivity | Dynamic optimization of operating system and virtual machine monitor memory management |
CN103955396A (zh) * | 2014-04-28 | 2014-07-30 | 浙江大学 | 一种基于共生系数平衡的虚拟机调度方法 |
CN104102460A (zh) * | 2014-07-23 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种基于云计算的内存管理方法及装置 |
CN104216784A (zh) * | 2014-08-25 | 2014-12-17 | 杭州华为数字技术有限公司 | 热点均衡控制方法及相关装置 |
-
2015
- 2015-01-24 CN CN201510037275.7A patent/CN104657198B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013044829A1 (zh) * | 2011-09-27 | 2013-04-04 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
US20130326109A1 (en) * | 2012-05-30 | 2013-12-05 | Avi Kivity | Dynamic optimization of operating system and virtual machine monitor memory management |
CN103955396A (zh) * | 2014-04-28 | 2014-07-30 | 浙江大学 | 一种基于共生系数平衡的虚拟机调度方法 |
CN104102460A (zh) * | 2014-07-23 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种基于云计算的内存管理方法及装置 |
CN104216784A (zh) * | 2014-08-25 | 2014-12-17 | 杭州华为数字技术有限公司 | 热点均衡控制方法及相关装置 |
Non-Patent Citations (2)
Title |
---|
LORENZO-CASTILLO, J.A.等: "A flexible and dynamic page migration infrastructure based on hardware counters", 《SPRINGER SCIENCE+BUSINESS MEDIA NEW YORK 2013》 * |
李玲玲: "虚拟化环境下的多核NUMA架构性能优化***CNA", 《万方数据 企业知识服务平台》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383791A (zh) * | 2016-09-23 | 2017-02-08 | 深圳职业技术学院 | 一种基于非统一内存访问架构的内存块组合方法及装置 |
CN106383791B (zh) * | 2016-09-23 | 2019-07-12 | 深圳职业技术学院 | 一种基于非统一内存访问架构的内存块组合方法及装置 |
CN110419030A (zh) * | 2016-09-28 | 2019-11-05 | 英特尔公司 | 测量非均匀存储器访问(numa)***内按节点的带宽 |
CN110419030B (zh) * | 2016-09-28 | 2024-04-19 | 英特尔公司 | 测量非均匀存储器访问(numa)***内按节点的带宽 |
CN107145388A (zh) * | 2017-05-25 | 2017-09-08 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及*** |
CN107193648A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种基于numa架构的性能优化方法及*** |
CN107145388B (zh) * | 2017-05-25 | 2020-10-30 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及*** |
CN110502334A (zh) * | 2018-05-17 | 2019-11-26 | 上海交通大学 | 基于混合内存架构的带宽感知任务窃取方法、***及芯片 |
CN112965885A (zh) * | 2019-12-12 | 2021-06-15 | 中科寒武纪科技股份有限公司 | 访存带宽的检测方法、装置、计算机设备及可读存储介质 |
CN112965885B (zh) * | 2019-12-12 | 2024-03-01 | 中科寒武纪科技股份有限公司 | 访存带宽的检测方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104657198B (zh) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ozdal et al. | Energy efficient architecture for graph analytics accelerators | |
US10355966B2 (en) | Managing variations among nodes in parallel system frameworks | |
Subramanian et al. | MISE: Providing performance predictability and improving fairness in shared main memory systems | |
CN104657198A (zh) | Numa架构***在虚拟机环境中的访存优化方法及*** | |
EP3087503B1 (en) | Cloud compute scheduling using a heuristic contention model | |
US10747640B2 (en) | Techniques for managing a distributed computing environment using event digests | |
US8533719B2 (en) | Cache-aware thread scheduling in multi-threaded systems | |
Yang et al. | Design adaptive task allocation scheduler to improve MapReduce performance in heterogeneous clouds | |
Sridharan et al. | Holistic run-time parallelism management for time and energy efficiency | |
US8484495B2 (en) | Power management in a multi-processor computer system | |
US20120011401A1 (en) | Dynamically modeling and selecting a checkpoint scheme based upon an application workload | |
Wang et al. | Data placement and task scheduling optimization for data intensive scientific workflow in multiple data centers environment | |
CN106293881A (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
Su et al. | Critical path-based thread placement for numa systems | |
Zhan et al. | CARB: A C-state power management arbiter for latency-critical workloads | |
Padoin et al. | Saving energy by exploiting residual imbalances on iterative applications | |
Oh et al. | Enabling consolidation and scaling down to provide power management for cloud computing | |
Gottschlag et al. | Automatic core specialization for AVX-512 applications | |
Karakonstantis et al. | An energy-efficient and error-resilient server ecosystem exceeding conservative scaling limits | |
US8862786B2 (en) | Program execution with improved power efficiency | |
Liu et al. | Hardware support for accurate per-task energy metering in multicore systems | |
HoseinyFarahabady et al. | Data-intensive workload consolidation in serverless (Lambda/FaaS) platforms | |
Qian et al. | Energy-efficient I/O thread schedulers for NVMe SSDs on NUMA | |
Blagodurov et al. | Towards the contention aware scheduling in HPC cluster environment | |
Padoin et al. | Exploration of load balancing thresholds to save energy on iterative applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171226 |
|
CF01 | Termination of patent right due to non-payment of annual fee |