Numa架构系统在虚拟机环境中的访存优化方法及系统的制作方法_3

文档序号:8339445阅读:来源:国知局
二级缓存失效情况,大致判断出某一处理器核访问内存的情况。基于该原理,可采用如下方法确定需要被调度的虚拟机:
[0057]在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件,并统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数。统计时,可为该节点中的每一物理CPU建立一个元素个数为NUMA系统虚拟CPU总数的数组,各元素用于分别表示各虚拟CPU在该物理CPU上导致的二级缓存失效次数,各元素的初始值为O。然后,在虚拟机环境中通过可编程核内性能监视单元监视该节点的每个物理CPU的二级缓存失效事件。监视过程中,当某物理CPU发生虚拟CPU调度时,首先判断新调度到该物理CPU的虚拟CPU是否是原来运行在该物理CPU上的虚拟CPU,如果是,则继续监视,如果不是,表明有新的虚拟CPU调度到该物理CPU上,需要统计该新的虚拟CPU在该物理CPU上导致的二级缓存失效次数,并将统计的次数累加到该物理CPU的数组中的相应元素中,然后将该核内性能监视单元计数器清零,重新继续监视并计数。经过第一预设时间后,统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数。然后根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,导致二级缓存失效次数最少的本地虚拟机就为需要被调度的虚拟机。确定了需要被调度的虚拟机后,可将该虚拟机调度到带宽使用率最小的节点上,减轻当前节点的带宽压力。
[0058]如图2所示,本发明还提供了一种NUMA架构系统在虚拟机环境中的访存优化系统,NUMA架构系统包括若干通过高速互联网络连接在一起的节点,该访存优化系统包括节点带宽压力检测模块1、节点全局队列缓冲压力检测模块2及虚拟机调度模块3。其中:
[0059]节点带宽压力检测模块I用于在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构系统中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平。节点全局队列缓冲压力检测模块2用于当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系。虚拟机调度模块3用于当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迀移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。将所述节点中的非本地虚拟机的内存物理页迀移到其他节点时,虚拟机调度模块3优先将所述非本地虚拟机的内存物理页迀移到该虚拟机所在的本地节点,如果该虚拟机所在的本地节点内存不足,则将该非本地虚拟机的内存物理页随机迀移到其他内存有剩余空间的节点。将导致二级缓存失效次数最少的本地虚拟机调度到其他节点时,虚拟机调度模块3将该本地虚拟机调度到带宽使用率最小的节点上。
[0060]节点带宽压力检测模块I可包括内存控制器性能事件监视模块及节点带宽压力判断模块,其中:
[0061]内存控制器性能事件监视模块用于在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况。节点带宽压力判断模块用于根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
[0062]节点全局队列缓冲压力检测模块2可包括节点全局队列性能事件监视模块及访存压力大小判断模块。其中:
[0063]节点全局队列性能事件监视模块用于当某节点的物理内存带宽压力超出预设水平时,在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视第二预设时间内该节点全局队列中的三个缓冲队列满的周期数;所述三个缓冲队列满的周期数分别为全局队列中本地读请求队列满的周期数、全局队列中本地写请求队列满的周期数、全局队列中远端请求队列满的周期数。访存压力大小判断模块用于当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和大于全局队列中远端请求队列满的周期数时,判定所述节点的本地访存压力大于远端访存压力;当第二预设时间内全局队列中本地读请求队列满的周期数与全局队列中本地写请求队列满的周期数之和小于全局队列中远端请求队列满的周期数时,判定所述节点的远端访存压力大于本地访存压力。
[0064]虚拟机调度模块3可包括二级缓存失效事件监视模块、虚拟CPU失效次数统计模块及虚拟机确定模块。其中,二级缓存失效事件监视模块用于在虚拟机管理器层通过编程处理器的核内部分性能监视单元监视所述节点的每一物理CPU的二级缓存失效事件。虚拟CPU失效次数统计模块用于统计第一预设时间内所述节点的每一物理CPU上由每一虚拟CPU导致的二级缓存失效次数,并将第一预设时间内每一虚拟CPU在各物理CPU上导致的二级缓存失效次数分别汇总,得到第一预设时间内所述节点中的每一虚拟CPU导致的二级缓存失效次数总数。虚拟机确定模块用于根据虚拟CPU与本地虚拟机的隶属关系确定第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机确定为需要被调度的虚拟机。
[0065]以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.NUMA架构系统在虚拟机环境中的访存优化方法,所述NUMA架构系统包括若干通过高速互联网络连接在一起的节点;其特征在于,包括如下步骤: 步骤A:在虚拟机环境下通过编程处理器的非核部分性能监视单元实时检测NUMA架构系统中每一节点的物理内存带宽压力,并判断各节点的物理内存带宽压力是否超出预设水平; 步骤B:当某节点的物理内存带宽压力超出预设水平时,检测所述节点的全局队列缓冲压力,并据此判断所述节点的本地访存压力与远端访存压力的大小关系; 步骤C:当所述节点的远端访存压力大于本地访存压力时,将所述节点中的非本地虚拟机的内存物理页迀移到其他节点;当所述节点的本地访存压力大于远端访存压力时,检测第一预设时间内所述节点中各本地虚拟机导致二级缓存失效的次数,并将导致二级缓存失效次数最少的本地虚拟机调度到其他节点。
2.如权利要求1所述的NUMA架构系统在虚拟机环境中的访存优化方法,其特征在于,所述步骤A包括如下步骤: 步骤Al:在虚拟机环境下利用可编程的处理器的非核部分性能监视单元监视每一节点的内存控制器性能事件,据此获取每一节点内存控制器的带宽使用情况及访存延迟情况; 步骤A2:根据所述节点内存控制器的带宽使用情况及访存延迟情况判断各节点的物理内存带宽压力是否超出预设水平;如果所述节点内存控制器的带宽使用率超出预设的第一阈值,且该节点内存控制器的访存延迟超出预设的第二阈值,则判定所述节点的物理内存带宽压力超出预设水平,否则判定所述节点的物理内存带宽压力未超出预设水平。
3.如
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1