CN107577517B - 一种面向NUMA内存架构的细粒度vCPU调度方法及系统 - Google Patents

一种面向NUMA内存架构的细粒度vCPU调度方法及系统 Download PDF

Info

Publication number
CN107577517B
CN107577517B CN201710725962.7A CN201710725962A CN107577517B CN 107577517 B CN107577517 B CN 107577517B CN 201710725962 A CN201710725962 A CN 201710725962A CN 107577517 B CN107577517 B CN 107577517B
Authority
CN
China
Prior art keywords
vcpu
client process
node
scheduling
real
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.)
Active
Application number
CN201710725962.7A
Other languages
English (en)
Other versions
CN107577517A (zh
Inventor
吴松
金海�
甘清甜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201710725962.7A priority Critical patent/CN107577517B/zh
Publication of CN107577517A publication Critical patent/CN107577517A/zh
Application granted granted Critical
Publication of CN107577517B publication Critical patent/CN107577517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种面向NUMA内存架构的细粒度vCPU调度方法及系统,包括:在vCPU执行过程中,通过检测vCPU的内部状态来识别vCPU中运行的具体客户机进程;获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为客户机进程对各个NUMA节点的访存计数;根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点;根据客户机进程的真实亲缘节点和当前vCPU周期内的亲缘节点统计结果比较决定是否更新该客户机进程的真实亲缘节点;根据客户机进程的真实亲缘节点决定vCPU的调度决策。本发明根据vCPU中实际运行的客户机进程的访存特征来指导vCPU的调度,准确性较高。

Description

一种面向NUMA内存架构的细粒度vCPU调度方法及系统
技术领域
本发明属于虚拟化技术下的虚拟处理器(virtual CPU,vCPU)调度优化领域,更具体地,涉及一种面向非一致性内存访问(Non-Uniformed Memory Access,NUMA)架构的细粒度vCPU调度方法及系统。
背景技术
云计算与虚拟化技术已经成为当今计算机应用中不可或缺的基础技术。越来越多的应用将服务部署在云计算平台上。而云计算数据中心中,采用NUMA架构的服务器越来越成为主流,这使针对NUMA架构而优化的虚拟化技术尤为重要。
由于NUMA架构的特点,vCPU访问的内存存在本地内存和远端内存之分,访问远端内存存在更大的开销。这使得基于NUMA架构的系统存在着远端内存访问延迟、L3级缓存(Last-Level Cache,LLC)竞争、内存控制器竞争和内联通道竞争的问题。这些因素会为虚拟机中运行的访存密集型应用程序带来严重的性能影响。
为了解决虚拟化系统在NUMA架构下的性能问题,目前有一些调度办理办法被提出。主流的方式是,通过采样观测虚拟机vCPU在一段执行时间内的行为,来分析归纳vCPU的行为特征,并以此特征来指导vCPU的调度决策。由于虚拟化系统的特性,一个vCPU内实际运行的客户机进程是时刻在变化的,vCPU本身的特征也随着其上执行的客户机进程的切换而变化,主流办法中采用的长周期采样分析的办法过于粗放,无法准确获取vCPU的特征,导致分析获取到的vCPU特征与真实结果会存在很大的偏差,从而无法做出准确的vCPU调度决策。
目前,虚拟化技术已经越来越被广泛应用,并承载了大量的互联网应用服务。NUMA架构也已经成为主流的多处理器架构的选择。针对NUMA架构的虚拟化技术优化对提高系统的运行性能、节省云计算数据中心的成本开销有着重要意义。目前各个主流虚拟机管理器采用的办法依然有较大的提升空间。如何更精细地管理虚拟机的vCPU和内存的拓扑关系,是一个重要的改进方向。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有vCPU调度时分析获取到的vCPU特征与真实结果会存在很大的偏差,从而无法做出准确的vCPU调度决策的技术问题。
为实现上述目的,一方面,本发明提供一种面向NUMA内存架构的细粒度vCPU调度方法,包括:在vCPU执行过程中,通过检测vCPU的内部状态来识别vCPU中运行的具体客户机进程,所述vCPU的内部状态用于指示在其上运行的客户机进程;获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为客户机进程对各个NUMA节点的访存计数;根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点,所述亲缘节点为客户机进程访问最密集的NUMA节点;根据客户机进程的真实亲缘节点和当前vCPU周期内的亲缘节点统计结果比较决定是否更新该客户机进程的真实亲缘节点;根据客户机进程的真实亲缘节点决定vCPU的调度决策,在判断是否需要迁移vCPU时,检查vCPU上运行的客户机进程的真实亲缘节点是否与目标NUMA节点吻合。
本发明根据vCPU中实际运行的客户机进程的访存特征来指导vCPU的调度,比现有根据vCPU在过去一段时间内的访存特征来调度vCPU的技术方法具有更好的准确性。
可选地,在统计得到客户机进程上一调度周期的亲缘节点后,寻找该客户机进程对应的缓存记录,并当连续3次出现匹配到的缓存记录中的进程真实访存亲缘节点与当前周期计算到的客户机进程的亲缘节点不一致时,将对应缓存记录的真实亲缘节点更新为当前周期统计到的该客户机进程的亲缘节点,否则不做修改,缓存记录中的客户机进程的真实亲缘节点被作为指导vCPU调度的真实指标,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点。
可选地,使用最近最少使用(Least recently used,LRU)缓存淘汰算法,热点进程在每次被查询到的时候被移动到最近最少使用队列头部,而非热点进程会被逐步移动到队尾并被淘汰。
本发明根据系统中少部分热点客户机进程占用了大部分CPU运行时间的特点,进程访存特征缓存模块只缓存系统中的热点进程的访存信息,用少量的存储开销满足大部分搜索命中需求。
可选地,在新的执行周期下,当有物理CPU出现空闲时,确定该空闲物理CPU所在的NUMA节点;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则将该vCPU迁移到所述空闲物理CPU上等待调度执行;若确定非本地NUMA节点的CPU中不存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则执行虚拟机管理器默认的负载均衡策略,选取一个vCPU迁移到所述空闲物理CPU上等待调度执行。
可选地,所述细粒度vCPU调度方法以vCPU中运行的客户机进程的访存信息为依据,根据vCPU中运行的具体客户机进程的真实亲缘节点来决定vCPU的调度。
在新的执行周期下,根据所述vCPU当时运行的客户机进程的真实亲缘节点将其迁移至亲缘节点对应的NUMA节点上的空闲物理CPU上等待调度执行。
另一方面,本发明提供了一种面向NUMA内存架构的细粒度vCPU调度系统,包括:进程访存特征采集单元,用于通过检测vCPU的内部状态来识别vCPU中运行的具体客户机进程,所述vCPU的内部状态用于指示在其上运行的客户机进程,以及获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为客户机进程对各个NUMA节点的访存计数;以及根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点,所述亲缘节点为客户机进程访问最密集的NUMA节点;进程特征信息缓存单元,用于缓存客户机进程的真实亲缘节点,根据客户机进程的真实亲缘节点和当前vCPU周期内的亲缘节点统计结果比较决定是否更新该客户机进程的真实亲缘节点;由于缓存队列空间有限,通过缓存淘汰策略将最常运行的客户机进程的纪录缓存在队列中,不常运行的客户机纪录则被逐渐淘汰移除,所述最常运行的客户机进程为热点客户机进程;基于客户机进程特征的vCPU调度单元,用于根据客户机进程的真实亲缘节点决定vCPU的调度决策,在判断是否需要迁移vCPU时,检查vCPU上运行的客户机进程的真实亲缘节点是否与目标NUMA节点吻合。
例如,基于客户机进程特征的vCPU调度单元在有物理CPU出现空闲时,根据vCPU中当时运行的具体客户机进程的真实亲缘节点,选择空闲的,并且vCPU中运行的客户机进程的真实亲缘节点为空闲CPU所在NUMA节点的vCPU迁移至空闲物理CPU上等待调度执行。
可选地,所述进程特征信息缓存单元,用于在统计得到客户机进程上一调度周期的亲缘节点后,寻找该客户机进程对应的缓存记录,并当连续3次出现匹配到的缓存记录中的进程真实访存亲缘节点与当前周期计算到的客户机进程的亲缘节点不一致时,将对应缓存记录的真实亲缘节点更新为当前周期统计到的该客户机进程的亲缘节点,否则不做修改,缓存记录中的客户机进程的真实亲缘节点被作为指导vCPU调度的真实指标,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点。
可选地,所述进程特征信息缓存单元,用于使用最近最少使用缓存淘汰算法,热点进程在每次被查询到的时候被移动到最近最少使用队列头部,而非热点进程会被逐步移动到队尾并被淘汰。
可选地,所述基于客户机进程特征的vCPU调度单元,用于在新的执行周期下,当有物理CPU出现空闲时,确定该空闲物理CPU所在的NUMA节点;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则将该vCPU迁移到所述空闲物理CPU上等待调度执行;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则执行虚拟机管理器默认的负载均衡策略,选取一个vCPU迁移到所述空闲物理CPU上等待调度执行。
可选地,所述细粒度vCPU调度系统以vCPU中运行的客户机进程的访存信息为依据,根据vCPU中运行的具体客户机进程的真实亲缘节点来决定vCPU的调度。
具体地,真实访存信息为进程信息缓存单元中所缓存的真实亲缘节点。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1、本发明与现有的其他同类方法相比,采用了更加细粒度的访存信息获取方法,从而能够获取到vCPU中运行的具体客户机进程的访存特征。
2、本发明根据vCPU中实际运行的进程的特征来指导vCPU的调度,比现有根据vCPU在过去一段时间内的访存特征来调度vCPU的技术方法具有更好的准确性。
3、本发明使用的进程访存特征信息缓存方法能够在满足大部分准确性需求的同时,节省存储的空间开销和查找的时间开销。
附图说明
图1为本发明实施例提供的一种面向NUMA内存架构的细粒度vCPU调度方法流程示意图;
图2为本发明实施例提供的面向NUMA内存架构的细粒度vCPU调度系统示意图;
图3为本发明实施例提供的另一种面向NUMA内存架构的细粒度vCPU调度方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1为本发明实施例提供的一种面向NUMA内存架构的细粒度vCPU调度方法流程示意图,如图1所示,包括步骤101至步骤105。
S101,在vCPU执行过程中,通过检测vCPU的内部状态来识别vCPU中运行的具体客户机进程,所述vCPU的内部状态用于指示在其上运行的客户机进程。
S102,获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为客户机进程对各个NUMA节点的访存计数。
S103,根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点,所述亲缘节点为客户机进程访问最密集的NUMA节点。
S104,根据客户机进程的真实亲缘节点和当前vCPU周期内的亲缘节点统计结果比较决定是否更新该客户机进程的真实亲缘节点。
S105,根据客户机进程的真实亲缘节点决定vCPU的调度决策,在判断是否需要迁移vCPU时,检查vCPU上运行的客户机进程的真实亲缘节点是否与目标NUMA节点吻合。
可选地,确定热点客户机进程在各个历史执行周期内的亲缘节点,包括:使用最近最少使用缓存淘汰算法,热点进程在每次被查询到的时候被移动到最近最少使用队列头部,而非热点进程会被逐步移动到队尾并被淘汰。
本发明根据系统中少部分热点客户机进程占用了大部分CPU运行时间的特点,进程访存特征缓存模块只缓存系统中的热点进程的访存信息,用少量的存储开销满足大部分搜索命中需求。
可选地,在统计得到客户机进程上一调度周期的亲缘节点后,寻找该客户机进程对应的缓存记录,并当连续3次出现匹配到的缓存记录中的进程真实访存亲缘节点与当前周期计算到的客户机进程的亲缘节点不一致时,将对应缓存记录的真实亲缘节点更新为当前周期统计到的该客户机进程的亲缘节点,否则不做修改,缓存记录中的客户机进程的真实亲缘节点被作为指导vCPU调度的真实指标,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点。
可选地,在新的执行周期下,当有物理CPU出现空闲时,确定该空闲物理CPU所在的NUMA节点;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则将该vCPU迁移到所述空闲物理CPU上等待调度执行;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则执行虚拟机管理器默认的负载均衡策略,选取一个vCPU迁移到所述空闲物理CPU上等待调度执行。
可选地,所述细粒度vCPU调度方法以vCPU中运行的客户机进程的访存信息为依据,根据vCPU中运行的具体客户机进程的真实亲缘节点来决定vCPU的调度。
图2为本发明实施例提供的面向NUMA内存架构的细粒度vCPU调度系统示意图,如图2所示,核心部分包括:进程访存特征采集单元、进程特征缓存单元以及基于客户机进程特征的vCPU调度单元。
进程访存特征采集单元,用于从硬件性能监控单元(Performance MonitorUnits,PMU)上获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为vCPU对各个NUMA节点的访存计数;以及根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点,所述亲缘节点为客户机进程访问最密集的NUMA节点;进程特征信息缓存单元,用于缓存热点客户机进程在各个历史执行周期内的亲缘节点,所述热点客户机进程为通过LRU缓存淘汰算法保留在缓存队列中的客户机进程;基于客户机进程特征的vCPU调度单元,用于根据客户机进程在各个历史vCPU执行周期内的亲缘节点和当前vCPU周期内的亲缘节点统计结果比较决定出客户机进程当前的真实亲缘节点,以及在新的执行周期下,根据所述vCPU中运行的客户机进程的真实亲缘节点将其迁移至空闲物理CPU上等待调度执行。
可选地,进程特征信息缓存单元,用于使用最近最少使用(LRU)缓存淘汰算法,热点进程在每次被查询到的时候被移动到最近最少使用队列头部,而非热点进程会被自动后移,逐步移动到队尾并被淘汰。
可选地,基于进程特征的vCPU调度单元,用于在统计得到客户机进程上一调度周期的亲缘节点后,寻找该客户机进程对应的缓存记录,并当连续3次出现匹配到的缓存记录中的进程真实访存亲缘节点与当前周期计算到的客户机进程的亲缘节点不一致时,将对应缓存记录的真实亲缘节点更新为当前周期统计到的该客户机进程的亲缘节点,否则不做修改,缓存记录中的客户机进程的真实亲缘节点被作为指导vCPU调度的真实指标,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点。
可选地,所述基于客户机进程特征的vCPU调度单元,用于在新的执行周期下,当有物理CPU出现空闲时,确定该空闲物理CPU所在的NUMA节点;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则将该vCPU迁移到所述空闲物理CPU上等待调度执行;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则执行虚拟机管理器默认的负载均衡策略,选取一个vCPU迁移到所述空闲物理CPU上等待调度执行。
可选地,细粒度vCPU调度系统以vCPU中运行的客户机进程的访存信息为依据,根据vCPU中运行的具体客户机进程的真实亲缘节点来决定vCPU的调度。
本发明提供了一种面向NUMA架构优化的vCPU调度方法。图1、图2描述了本方法的几个组成部分在整个系统中的关系和作用。
图3为本发明实施例提供的另一种面向NUMA内存架构的细粒度vCPU调度方法流程示意图,如图3所示,完整的vCPU调度策略具体包括如下几个步骤:
(1)在每个vCPU执行周期结束时,识别当前vCPU的CR3寄存器值。每个vCPU的CR3寄存器值与vCPU内运行的客户机进程为一一对应关系,因此可以使用该CR3寄存器值来唯一代表vCPU内运行的客户机进程。
(2)进程访存特征采集单元在每个vCPU的执行期间收集每个vCPU执行周期内所运行的客户机进程的访存特征。具体的,该单元会在vCPU的一个调度周期结束时,从硬件PMU单元获取到截至目前该vCPU对每个NUMA节点i的访存次数Refi,并于上一个vCPU周期结束时获取到的累计访存计数Refprevi相减,得到本周期内对全部N个NUMA节点的各个节点i的访存次数Ci(0≤i<N)。然后对每个vCPU而言,比较Ci(0≤i<N)找出其中最大的一个值,将对应的NUMA节点j设置为该vCPU内此时运行的客户机进程的亲缘节点。
(3)在获取到每个vCPU执行周期结束时运行的客户机进程的亲缘节点后,搜索客户机进程缓存LRU队列,找到与该进程对应的所在vCPU中CR3寄存器值和虚拟机ID所匹配的纪录,并对比缓存纪录中的进程真实亲缘节点和本执行周期内统计得到的亲缘节点j是否一致。如果不一致,则将纪录中的一个pincout计数变量的值减1,并在当pincout的值减至0时,将纪录中的真实亲缘节点更新为统计到的结果;如果相同,则将pincout变量的计数值设置为3;如果未找到与该vCPU的CR3寄存器值和虚拟机ID匹配的纪录,则根据该vCPU的CR3寄存器值、虚拟机ID和客户机进程对应的亲缘节点创建一个新的纪录。
(4)将搜索匹配到的纪录,或者新创建的纪录,移动到进程访存特征信息LRU缓存队列的头部。检查LRU队列长度,当LRU缓存队列的长度超出限定值时,删除淘汰队列尾部的一个记录。
(5)当某一个物理CPU出现空闲的时候,调度器会先在其他NUMA节点的非空闲物理CPU的运行队列中,按顺序选择第一个可迁移、并且当时vCPU内运行的客户机进程的真实亲缘节点为当前NUMA节点的空闲vCPU。如果找到符合条件的vCPU,则将其迁移到空闲的物理CPU上等待调度执行;然后结束整个过程;如果未找到符合条件的vCPU,则跳转至步骤(6)。
(6)如果步骤(5)中未能在其他NUMA节点的CPU运行队列中找到一个可迁移、且当时vCPU内运行的客户机进程的真实亲缘节点为当前NUMA节点的空闲vCPU时,则执行默认的负载均衡策略,来选取一个合适的vCPU,作为当前空闲物理CPU的下一个待调度vCPU。至此整个流程结束。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种面向NUMA内存架构的细粒度vCPU调度方法,其特征在于,包括:
在vCPU执行过程中,通过检测vCPU的内部状态来识别vCPU中运行的具体客户机进程,所述vCPU的内部状态用于指示在其上运行的客户机进程;
获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为客户机进程对各个NUMA节点的访存计数;
根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点,所述亲缘节点为客户机进程访问最密集的NUMA节点;
根据客户机进程的真实亲缘节点和当前vCPU周期内的亲缘节点统计结果比较决定是否更新该客户机进程的真实亲缘节点;
根据客户机进程的真实亲缘节点决定vCPU的调度决策,在判断是否需要迁移vCPU时,检查vCPU上运行的客户机进程的真实亲缘节点是否与目标NUMA节点吻合。
2.如权利要求1所述的细粒度vCPU调度方法,其特征在于,在统计得到客户机进程上一调度周期的亲缘节点后,寻找该客户机进程对应的缓存记录,并当连续3次出现匹配到的缓存记录中的进程真实访存亲缘节点与当前周期计算到的客户机进程的亲缘节点不一致时,将对应缓存记录的真实亲缘节点更新为当前周期统计到的该客户机进程的亲缘节点,否则不做修改,缓存记录中的客户机进程的真实亲缘节点被作为指导vCPU调度的真实指标,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点。
3.如权利要求1所述的细粒度vCPU调度方法,其特征在于,在新的执行周期下,当有物理CPU出现空闲时,确定空闲物理CPU所在的NUMA节点;
若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则将该vCPU迁移到所述空闲物理CPU上等待调度执行;
若确定非本地NUMA节点的CPU中不存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则执行虚拟机管理器默认的负载均衡策略,选取一个vCPU迁移到所述空闲物理CPU上等待调度执行。
4.如权利要求1至3任意一项所述的细粒度vCPU调度方法,其特征在于,所述细粒度vCPU调度方法以vCPU中运行的客户机进程的真实访存信息为依据,根据vCPU中运行的具体客户机进程的真实亲缘节点来决定vCPU的调度。
5.一种面向NUMA内存架构的细粒度vCPU调度系统,其特征在于,包括:
进程访存特征采集单元,用于通过检测vCPU的内部状态来识别vCPU中运行的具体客户机进程,所述vCPU的内部状态用于指示在其上运行的客户机进程,以及获取vCPU在每个执行周期内的访存信息,将每个执行周期内的访存信息赋予在其上执行的客户机进程,所述访存信息为客户机进程对各个NUMA节点的访存计数;以及根据客户机进程在每个执行周期内的访存信息确定其在每个执行周期内的亲缘节点,所述亲缘节点为客户机进程访问最密集的NUMA节点;
进程特征信息缓存单元,用于缓存客户机进程的真实亲缘节点,由于缓存队列空间有限,通过缓存淘汰策略将最常运行的客户机进程的纪录缓存在队列中,不常运行的客户机纪录则被逐渐淘汰移除,所述最常运行的客户机进程为热点客户机进程;
基于客户机进程特征的vCPU调度单元,用于根据客户机进程的真实亲缘节点决定vCPU的调度决策,在判断是否需要迁移vCPU时,检查vCPU上运行的客户机进程的真实亲缘节点是否与目标NUMA节点吻合。
6.如权利要求5所述的细粒度vCPU调度系统,其特征在于,所述基于客户机进程特征的vCPU调度单元,用于在统计得到客户机进程上一调度周期的亲缘节点后,寻找该客户机进程对应的缓存记录,并当连续3次出现匹配到的缓存记录中的进程真实访存亲缘节点与当前周期计算到的客户机进程的亲缘节点不一致时,将对应缓存记录的真实亲缘节点更新为当前周期统计到的该客户机进程的亲缘节点,否则不做修改,缓存记录中的客户机进程的真实亲缘节点被作为指导vCPU调度的真实指标,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点,所述客户机对应的缓存记录用于缓存所述客户机进程真实亲缘节点。
7.如权利要求5所述的细粒度vCPU调度系统,其特征在于,所述基于客户机进程特征的vCPU调度单元,用于在新的执行周期下,当有物理CPU出现空闲时,确定空闲物理CPU所在的NUMA节点;若确定非本地NUMA节点的CPU中存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则将该vCPU迁移到所述空闲物理CPU上等待调度执行;若确定非本地NUMA节点的CPU中不存在一个可迁移vCPU,并且该vCPU上运行的客户机进程的真实亲缘节点为空闲CPU所在的NUMA节点,则执行虚拟机管理器默认的负载均衡策略,选取一个vCPU迁移到所述空闲物理CPU上等待调度执行。
8.如权利要求5至7任意一项所述的细粒度vCPU调度系统,其特征在于,所述细粒度vCPU调度系统以vCPU中当时运行的客户机进程的真实访存信息为依据,根据vCPU中运行的具体客户机进程的真实亲缘节点来决定vCPU的调度。
CN201710725962.7A 2017-08-22 2017-08-22 一种面向NUMA内存架构的细粒度vCPU调度方法及系统 Active CN107577517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710725962.7A CN107577517B (zh) 2017-08-22 2017-08-22 一种面向NUMA内存架构的细粒度vCPU调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710725962.7A CN107577517B (zh) 2017-08-22 2017-08-22 一种面向NUMA内存架构的细粒度vCPU调度方法及系统

Publications (2)

Publication Number Publication Date
CN107577517A CN107577517A (zh) 2018-01-12
CN107577517B true CN107577517B (zh) 2020-05-19

Family

ID=61035218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710725962.7A Active CN107577517B (zh) 2017-08-22 2017-08-22 一种面向NUMA内存架构的细粒度vCPU调度方法及系统

Country Status (1)

Country Link
CN (1) CN107577517B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256395B (zh) * 2020-10-23 2023-01-31 海光信息技术股份有限公司 安全内存分配、虚拟cpu调度方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075199A (zh) * 2006-05-18 2007-11-21 迈普(四川)通信技术有限公司 一种多cpu调度的方法
US8191064B2 (en) * 2007-07-25 2012-05-29 Lenovo (Beijing) Limited Method and device for scheduling true CPU resources for a virtual machine system
CN104679593A (zh) * 2015-03-13 2015-06-03 浪潮集团有限公司 一种基于smp系统的任务调度优化方法
CN104850461A (zh) * 2015-05-12 2015-08-19 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法
US9411630B1 (en) * 2015-03-10 2016-08-09 International Business Machines Corporation Reducing virtual machine pre-emption in virtualized environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075199A (zh) * 2006-05-18 2007-11-21 迈普(四川)通信技术有限公司 一种多cpu调度的方法
US8191064B2 (en) * 2007-07-25 2012-05-29 Lenovo (Beijing) Limited Method and device for scheduling true CPU resources for a virtual machine system
US9411630B1 (en) * 2015-03-10 2016-08-09 International Business Machines Corporation Reducing virtual machine pre-emption in virtualized environment
CN104679593A (zh) * 2015-03-13 2015-06-03 浪潮集团有限公司 一种基于smp系统的任务调度优化方法
CN104850461A (zh) * 2015-05-12 2015-08-19 华中科技大学 一种面向numa架构的虚拟cpu调度优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向非一致性内存访问架构的虚拟CPU调度系统;孙华华;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170531;全文 *

Also Published As

Publication number Publication date
CN107577517A (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
TWI564719B (zh) 具有多個資料預取器的處理器、所述處理器的操作方法及所述處理器操作的電腦程式產品
US10013326B2 (en) Propagating a prefetching profile bit from a prefetch queue to a data cache to indicate that a line was prefetched in response to an instruction within a code region
TWI596479B (zh) 具有資料預取器的處理器及其運作方法
CN113297098B (zh) 一种面向高性能的适应预取的智能缓存替换策略
CN101944068A (zh) 一种共享高速缓存的性能优化方法
KR20130115574A (ko) 단말기에서 태스크 스케줄링을 수행하는 방법 및 장치
CN101916230A (zh) 基于划分感知和线程感知的末级高速缓存的性能优化方法
CN109461113A (zh) 一种面向数据结构的图形处理器数据预取方法及装置
US20220374367A1 (en) Prefetch-Adaptive Intelligent Cache Replacement Policy for High Performance
CN111897647A (zh) 一种多核系统中多线程调度方法、装置及设备
WO2023011236A1 (zh) 一种程序源码的编译优化方法及相关产品
EP4123473A1 (en) Intelligent query plan cache size management
Chen et al. Co-locating online workload and offline workload in the cloud: An interference analysis
CN107577517B (zh) 一种面向NUMA内存架构的细粒度vCPU调度方法及系统
US10713164B1 (en) Cache hit ratio simulation using a partial data set
Gao et al. A cache management strategy for transparent computing storage system
CN105706049A (zh) 操作系统例行程序的预测历程储存器的部分使用
US8191067B2 (en) Method and apparatus for establishing a bound on the effect of task interference in a cache memory
US20230176973A1 (en) Replacement control for candidate producer-consumer relationships trained for prefetch generation
US11086781B2 (en) Methods and apparatus for monitoring prefetcher accuracy information using a prefetch flag independently accessible from prefetch tag information
WO2022156452A1 (zh) 一种缓存管理方法、装置及设备
CN116225686A (zh) 面向混合内存架构的cpu调度方法和系统
Gupta et al. Managing buffer cache by block access pattern
Gan et al. vscope: A fine-grained approach to schedule vcpus in numa systems
CN114610657A (zh) 一种基于动态容量的Spark内存替换方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant