CN104657198B - Numa架构系统在虚拟机环境中的访存优化方法及系统 - Google Patents
Numa架构系统在虚拟机环境中的访存优化方法及系统 Download PDFInfo
- Publication number
- CN104657198B CN104657198B CN201510037275.7A CN201510037275A CN104657198B CN 104657198 B CN104657198 B CN 104657198B CN 201510037275 A CN201510037275 A CN 201510037275A CN 104657198 B CN104657198 B CN 104657198B
- Authority
- CN
- China
- Prior art keywords
- node
- virtual machine
- memory access
- pressure
- local
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims abstract description 259
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000005457 optimization Methods 0.000 title claims abstract description 25
- 238000012544 monitoring process Methods 0.000 claims abstract description 42
- 230000005012 migration Effects 0.000 claims abstract description 22
- 238000013508 migration Methods 0.000 claims abstract description 22
- 230000036961 partial effect Effects 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000003139 buffering effect Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 10
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 2
- 239000011800 void material Substances 0.000 claims description 2
- 230000003111 delayed effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000009897 systematic 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 LevelCache,LLC)、高速互联总线控制器(QPI)、内存控制器(IMC)、全局队列(GQ)等。处理器中还包括性能监视单元(Performance Monitoring Unit,PMU),用于监视处理器内的性能事件,而性能监视单元包括核内(Core)部分和非核(Uncore)部分,其中,核内部分性能监视单元用于监视处理器中的核内性能事件,如处理器忙事件,而非核部分性能监视单元用于监视处理器中的非核性能事件,如内存控制器性能事件等。节点的物理内存带宽压力可通过两个性能指标来表示,一是内存带宽的使用大小,二是访存的延迟大小。因此,可通过编程处理器的非核部分性能监视单元对各节点内存控制器性能事件进行监视,以检测各节点的物理内存带宽压力。基于该原理,步骤A可包括如下步骤:
步骤A1:在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况。
步骤A2:根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。其中的第一阈值及第二阈值可根据经验设置。
步骤B:当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系。节点中的访存包括本地访存和远端访存,当某一节点的本地访存压力过大或远端访存压力过大都可能导致该节点的物理内存带宽压力超出预设水平,因此,在调节节点带宽压力时,有必要根据该节点的本地访存压力与远端访存压力的大小采用不同的调节方案。本发明步骤B通过检测节点的全局队列缓冲压力的方式来判断该节点的本地访存压力与远端访存压力的大小关系,具体包括如下步骤:
步骤B1:当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为:
全局队列中本地读请求队列满的周期数;
全局队列中本地写请求队列满的周期数;
全局队列中远端请求队列满的周期数。
步骤B2:当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
步骤C:当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迁移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。当节点的远端访存压力大于本地访存压力时,表明需要对节点的远端访存压力进行调节,因此,可优先将非本地虚拟机的内存物理页迁移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迁移到其他内存有剩余空间的节点。如果节点的本地访存压力大于远端访存压力,表明需要对节点的本地访存压力进行调节。对节点的本地访存压力进行调节前需要确定需要被调度的虚拟机。分析处理器访内存的过程可知,处理器核心访问内存时先访问一级缓存(L1 cache)然后访问二级缓存(L2 cache)如果一级缓存及二级缓存都访问失效,则访问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 CN104657198A (zh) | 2015-05-27 |
CN104657198B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383791B (zh) * | 2016-09-23 | 2019-07-12 | 深圳职业技术学院 | 一种基于非统一内存访问架构的内存块组合方法及装置 |
US11093414B2 (en) * | 2016-09-28 | 2021-08-17 | Intel Corporation | Measuring per-node bandwidth within non-uniform memory access (NUMA) systems |
CN107145388B (zh) * | 2017-05-25 | 2020-10-30 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
CN107193648A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种基于numa架构的性能优化方法及系统 |
CN110502334A (zh) * | 2018-05-17 | 2019-11-26 | 上海交通大学 | 基于混合内存架构的带宽感知任务窃取方法、系统及芯片 |
CN112965885B (zh) * | 2019-12-12 | 2024-03-01 | 中科寒武纪科技股份有限公司 | 访存带宽的检测方法、装置、计算机设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955396A (zh) * | 2014-04-28 | 2014-07-30 | 浙江大学 | 一种基于共生系数平衡的虚拟机调度方法 |
CN104102460A (zh) * | 2014-07-23 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种基于云计算的内存管理方法及装置 |
CN104216784A (zh) * | 2014-08-25 | 2014-12-17 | 杭州华为数字技术有限公司 | 热点均衡控制方法及相关装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508638B (zh) * | 2011-09-27 | 2014-09-17 | 华为技术有限公司 | 用于非一致性内存访问的数据预取方法和装置 |
US9753831B2 (en) * | 2012-05-30 | 2017-09-05 | Red Hat Israel, Ltd. | Optimization of operating system and virtual machine monitor memory management |
-
2015
- 2015-01-24 CN CN201510037275.7A patent/CN104657198B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
---|
A flexible and dynamic page migration infrastructure based on hardware counters;Lorenzo-Castillo, J.A.等;《Springer Science+Business Media New York 2013》;20130124;第65卷(第2期);第930-948页 * |
虚拟化环境下的多核NUMA架构性能优化系统CNA;李玲玲;《万方数据 企业知识服务平台》;20140715;第1-73页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104657198A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657198B (zh) | Numa架构系统在虚拟机环境中的访存优化方法及系统 | |
Chen et al. | Dynamic voltage and frequency scaling for shared resources in multicore processor designs | |
Ozdal et al. | Energy efficient architecture for graph analytics accelerators | |
Ghose et al. | Improving memory scheduling via processor-side load criticality information | |
Liu et al. | Optimizing virtual machine consolidation performance on NUMA server architecture for cloud workloads | |
Awasthi et al. | Handling the problems and opportunities posed by multiple on-chip memory controllers | |
US10355966B2 (en) | Managing variations among nodes in parallel system frameworks | |
US8875142B2 (en) | Job scheduling on a multiprocessing system based on reliability and performance rankings of processors and weighted effect of detected errors | |
Chen et al. | In-network monitoring and control policy for DVFS of CMP networks-on-chip and last level caches | |
Kornaros et al. | A survey and taxonomy of on-chip monitoring of multicore systems-on-chip | |
US9916265B2 (en) | Traffic rate control for inter-class data migration in a multiclass memory system | |
US9244711B1 (en) | Virtual machine capacity planning | |
KR20170016365A (ko) | 레이턴시에 기반된 메모리 제어기 전력 관리 | |
CN106293881A (zh) | 一种基于非一致性i/o访问构架的性能监控器及其监控方法 | |
Goodman et al. | Pandia: Comprehensive contention-sensitive thread placement | |
CN113157043A (zh) | 基于强化学习的异构多核处理器动态电压调节方法及系统 | |
US10942850B2 (en) | Performance telemetry aided processing scheme | |
Abella et al. | RVC: A mechanism for time-analyzable real-time processors with faulty caches | |
Krzywaniak et al. | DEPO: A dynamic energy‐performance optimizer tool for automatic power capping for energy efficient high‐performance computing | |
Rajesh et al. | Apollo: An ML-assisted real-time storage resource observer | |
Lu et al. | RISO: Relaxed network-on-chip isolation for cloud processors | |
US11836525B2 (en) | Dynamic last level cache allocation for cloud real-time workloads | |
Raparti et al. | PARM: Power supply noise aware resource management for NoC based multicore systems in the dark silicon era | |
Ahmed et al. | Proactive auto-scaling of resources for stream processing engines in the cloud. | |
Awasthi et al. | Managing data placement in memory systems with multiple memory controllers |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171226 |