一种面向numa架构的虚拟cpu调度优化方法

文档序号:8528073阅读:1271来源:国知局
一种面向numa架构的虚拟cpu调度优化方法
【技术领域】
[0001] 本发明属于虚拟化领域,更具体地,涉及在基于NUMA架构的虚拟化环境下如何优 化虚拟CPU(VCPU)调度来提高访存密集型应用程序的性能。
【背景技术】
[0002] 随着多核架构的发展,处理器的核数目不断增加,传统UMA架构的单个内存访问 控制器竞争越来越严重,于是NUMA架构应运而生。基于NUMA架构的服务器包含多个NUMA 节点(简称节点),每个节点拥有多个物理CPU(简称CPU)、独立的内存块和内存访问控制 器。对于某个CPU或者内存块,我们称其所在的节点为本地节点,其他节点为远端节点。各 节点之间通过互连总线来传输数据,所以CPU访问本地节点内存要比远端节点内存快很 多。由于NUMA架构下每个节点有自己独立的内存访问控制器,该架构能够很好地缓解内存 访问控制器竞争,同时具有良好的可扩展性。
[0003] 然而,在基于NUMA架构的虚拟化环境下,访存密集型应用程序的性能无法得到保 障。一方面,NUMA架构下存在许多性能影响因素:远端内存访问延迟和共享资源(共享缓 存、内存访问控制器和互连总线)竞争。另一方面,由于虚拟化层带来的语义隔阂,虚拟机 监控器不能直接获取运行在虚拟机里面的应用程序的特征。同时,为了保证通用性,VCPU 调度的负载均衡机制不考虑应用程序的访存特征,从而会导致严重的共享资源竞争和远端 内存访问延迟开销。特别地,每个CPU维护一个运行队列,该队列将所有运行在该CPU上的 VCPU按照其优先级大小链接起来。现有虚拟化环境下的资源调度方法都没有通过VCPU调 度来精确地优化共享资源和远端内存访问开销;另外,一些相关研宄在操作系统或应用程 序层面进行性能优化,但需要虚拟机监控器将底层的NUMA架构信息暴露给虚拟机,这样会 破坏虚拟化层的透明性,从而无法满足需求。
[0004] 针对NUMA架构的优化主要有两种方法:页迀移和VCPU调度。一方面,虚拟化环境 下的页迀移机制开销很大;另一方面,合理的VCPU调度不仅能够有效地减少远端内存访问 次数和缓解共享资源竞争,提高访存密集型应用程序的性能,还可以维持虚拟化层的透明 性。因此,本发明试图探寻一种NUMA架构感知的VCPU调度优化方法,依据程序的访存特征 来指导VCPU的调度,在不破坏虚拟化层透明性的前提下,减少远端内存访问次数和缓解共 享资源竞争,从而提升访存密集型应用程序的性能。

【发明内容】

[0005] 本发明针对访存密集型应用程序在基于NUMA架构的虚拟化环境下的性能问题, 提出了一种面向NUMA架构的VCPU调度优化方法。该方法根据程序的访存特征来指导VCPU 的调度,在维持虚拟化层透明性的前提下,通过减少远端内存访问次数和缓解共享资源竞 争来保证访存密集型应用程序的性能。
[0006] 为了实现上述目的,本发明提供面向NUMA架构的VCPU调度优化方法,包括: [0007] (1)访存特征分析步骤:通过采集和分析访存信息,计算每个VCPU的访存特征,即 内存块位置和VCPU类型。
[0008] (2)VCPU周期性划分步骤:在每个采样周期结束时,根据每个VCPU的内存块位置 和类型,在将访存密集型VCPU平均分配到不同节点的基础上,保证最大限度的本地内存访 问;非访存密集型VCPU不作处理。
[0009] (3)NUMA感知的负载均衡步骤:当某个CPU将进入空闲状态时,它会触发负载均衡 步骤,优先从本地节点上窃取一个共享缓存(LLC)需求小的VCPU来运行。
[0010] 上述面向NUMA架构的VCPU调度优化方法具有以下效果和优点:
[0011] (1)本发明通过优化VCPU调度机制来减少远端内存访问次数和缓解共享资源竞 争,在维持虚拟化层透明性的前提下,能够有效地提高访存密集型应用程序的性能。
[0012] (2)本发明仅仅需要对VCPU的调度机制做出修改,不需要修改客户机操作系统。 因此,整体成本低,而且部署大规模的虚拟机和维护系统都很方便。
[0013] (3)本发明采用动态的访存信息分析和VCPU调度方法来优化系统性能,主要的额 外开销在于访存信息的采集和VCPU的周期性划分。一方面,任意时刻,每个CPU上至多执 行一个访存信息采集操作;另一方面,VCPU划分机制在总的系统运行时间里面占据比例很 小。因此,当系统中节点数目增多,或者VCPU数目增加时,本发明仍然能够自动调节,正常 工作,具有很高的可扩展性。
【附图说明】
[0014] 图1是基于NUMA架构的虚拟化环境下的应用环境图;
[0015] 图2是本发明具体的功能模块图;
[0016] 图3是本发明方法中VCPU周期性划分模块的细化流程图;
[0017] 图4是本发明方法中NUMA感知的负载均衡模块的细化流程图。
【具体实施方式】
[0018] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实例对本 发明作进一步的详细说明。
[0019] 如图1所示,NUMA架构下,每个节点拥有独立的内存块、内存访问控制器和共享缓 存,节点之间通过互连总线进行数据的传输。在虚拟化环境下,位于底层硬件和上层客户机 操作系统之间的虚拟机监控器(VMM)是虚拟化技术的核心。VMM负责底层硬件资源的分配 和管理,能够支持多个独立的虚拟机在同一台物理机上运行。每个虚拟机拥有自己的VCPU, 用来运行虚拟机中的应用程序。特别地,VMM中的VCPU调度器负责VCPU到CPU的映射。
[0020] 本发明通过修改虚拟机监控器中的VCPU调度方法,来提升访存密集型应用程序 的性能
[0021] 如图2所示,本发明的主要功能步骤如下:
[0022] (1)访存特征分析步骤:在虚拟机运行期间,为每个VCPU统计硬件性能计数器信 息。其中,硬件性能计数器位于处理器中,用于监控处理器的性能。这里通过读取硬件性能 技术器来获取的信息包括:指令执行条数、LLC访问次数和访问每个节点上的内存页的次 数。然后根据这些信息计算每个VCPU的访存特征,即内存块位置和VCPU类型。
[0023] (2) VCPU周期性划分步骤:在每个采样周期结束时,根据每个VCP
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1