买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于vCPU调度解决虚拟机性能干扰的方法_神州数码信息系统有限公司_201910249064.8 

申请/专利权人:神州数码信息系统有限公司

申请日:2019-03-29

公开(公告)日:2022-12-02

公开(公告)号:CN109947538B

主分类号:G06F9/455

分类号:G06F9/455;G06F9/48;G06F9/50

优先权:

专利状态码:有效-授权

法律状态:2022.12.02#授权;2021.07.06#实质审查的生效;2019.06.28#公开

摘要:发明涉及一种基于vCPU调度解决虚拟机性能干扰的方法。随着硬件架构从多核向众核不断扩展,内存带宽逐渐成为多核系统性能扩展的瓶颈,可有效监测上层应用运行状况,根据实时获得的vCPU的运行信息,建立不同节点调度开销模型,基于该模型,实时收集的不同vCPU运行数据建立模型,根据不同节点内核运行开销进行vCPU调度,权衡同节点调度和异节点调度开销大小,优化调度结果。

主权项:1.一种基于vCPU调度解决虚拟机性能干扰的方法,方法特征在于实现步骤如下:第一步,面向数据共享的性能开销建模:同节点缓存一致性开销为Intra_Coherence=Last_Private_Cache_Misses–LLC_Misses+LLC_Hits,其中Last_Private_Cache_Misses表示私有缓存失效的次数,LLC_Misses表示共享缓存失效的次数,LLC_Hits表示共享缓存命中的次数;异节点缓存一致性开销为Inter_Coherence=LLC_Misses–Mem_Access,其中Mem_Access表示内存访问的次数;访存开销为Mem_Access_Overhead=α×Mem_Access;第二步,面向资源竞争的性能开销建模:共享缓存失效率表示应用运行过程中缓存竞争大小,性能干扰模型为Interference=α×LLC_Misses,其中LLC_Misses表示共享缓存失效的次数;通过运行时收集每个vCPU的硬件计数器信息,代入性能开销模型,就可以计算出vCPU运行过程中的数据一致性开销、访存开销、性能干扰开销;第三步,虚拟机vCPU状态描述:每个vCPU状态表示为d,c,a,其中,d表示该vCPU的性能下降,c表示vCPU内数据一致性次数,a表示vCPU中内存访问次数;CPU的运行状态为u,cm,其中,u代表CPU使用率,cm代表当前CPU的LLCmiss次数,即共享缓存失效的次数,c=ic1,ic2,...,icn,ici表示该节点与i节点之间的数据一致性次数,n表示节点个数;第四步,判断是否出现了负载倾斜以调度vCPU:每个CPUi的负载水平为ui,标准化后的节点负载为p=p1,p2,p3,…,pn,其中n为CPU数量,采用信息熵表来表征集群的负载分布情况为pi=ui∑ui,Hp=-∑pilogpi;构建均衡度函数F=∑pilogpilog1;对于每个vCPU,在监测模块中设置一个性能干扰的下限值,当该vCPU的性能下降大小低于下限值则触发监测线程,将该vCPU标记为待迁移的状态,对于待迁移状态的vCPU,将其暂时归入待迁移集合Remap_set;第五步,vCPU迁移:多个待迁移的vCPU向多个CPU迁移的问题视为装箱问题,选用基于贪心的局部最优的贪心调度策略,将Remap_set中受到干扰的节点按照其同节点数据一致性开销和访存开销的大小从小到大进行排列,同时也是将当前每个CPU的状态按照CPU使用率的大小从小到大进行排列,依次将数据一致性开销和访存开销最小的vCPU迁移到各个节点之上。

全文数据:一种基于vCPU调度解决虚拟机性能干扰的方法技术领域本发明涉及一种基于vCPU调度解决虚拟机性能干扰的方法,属于软件技术领域。背景技术现代计算机的处理速度要远高于访存速度,而随着处理器由多核向众核的不断拓展,多核之间的高速缓存一致性开销逐渐增大,访存带宽也逐渐成为性能提升的主要瓶颈,处理器架构从均匀一致性内存访问模型演变为非均匀一致性内存访问模型。处理器内核按照不同节点进行划分,同一节点内的处理器内核共享多级缓存和内存,不同节点处理器内核通过节点间高速通道访问异节点数据,因此异节点数据访问会带来一定的性能开销。因此不同的调度策略可以严重影响应用在同一硬件上的性能。在虚拟化环境中,由于上层应用和下层VMM之间存在天然的语义鸿沟,以就近调度为主,然而,会隐性加重虚拟机之间的性能干扰,造成节点之间的负载倾斜。发明内容本发明的目的:减轻虚拟机之间的性能干扰同时平衡不同节点之间的负载大小。本发明的原理:根据实时获得的vCPU的运行信息,建立不同节点调度开销模型,基于该模型,实时收集的不同vCPU运行数据建立模型,根据不同节点内核运行开销进行vCPU调度。本发明技术解决方案:一种基于vCPU调度解决虚拟机性能干扰的方法,其特点在于实现步骤如下:第一步,面向数据共享的性能开销建模对于同一节点内核间的缓存数据一致性处理,操作介于末级私有缓存与末级共享缓存之间,即末级私有缓存失效的次数,与末级共享缓存失效和命中的次数之和之间的差值,可用来大致估算同一节点内的私用缓存之间数据一致性的次数,因此对于同节点缓存一致性开销的估算模型表示为:Intra_Coherence=Last_Private_Cache_Misses–LLC_Misses+LLC_Hits。对于异节点内核间的缓存数据一致性处理,操作介于末级共享缓存与内存之间,即末级共享缓存的失效次数与内存访问次数之间的差值,将不同节点之间的缓存数据不一致按照缓存失效处理,然后当末级缓存失效向内存访问数据时,再按照缓存数据一致性处理。因此对于异节点缓存一致性开销的估算模型可以表示为:Inter_Coherence=LLC_Misses–Mem_Access。对于因为缓存失效而带来的访存开销,可以由直接的内存访问的次数来估算出来,访存次数越多带来的性能开销就越大,因此访存开销可以看做是访存次数的正比例相关,可以表示为:Mem_Access_Overhead=Mem_Access。第二步,面向资源竞争的性能开销建模LLCmissrates表示应用运行过程中缓存竞争大小,缓存失效的次数提高,说明虚拟机之间资源竞争变大,缓存失效次数稳定,说明虚拟机之间资源竞争较小;内存访问的次数,当数据访问缓存失效时,就必须去内存访问数据,访存的效率要远远低于缓存命中的效率,因此缓存失效的次数越高需要去内存访问数据的行为越频繁,说明应用受到干扰性能下降地越厉害,性能干扰模型为:Interference=Last_Level_Cache_Misses。通过运行时收集每个vCPU的硬件计数器信息,代入性能开销模型,就可以计算出vCPU运行过程中的数据一致性开销、访存开销、性能干扰开销,再根据各个vCPU的开销情况代入决策模型对vCPU进行优化调度。第三步,虚拟机vCPU状态描述虚拟机的每个vCPU的状态由一个三元组表示表示,其中,d表示该vCPU的性能下降的大小,c表示vCPU内数据一致性的次数,a表示vCPU中内存访问的次数;对于硬件每个CPU的运行状态,用一个二元组表示,其中,u代表CPU使用率,c代表当前CPU的LLCmiss次数;对于硬件每个节点维护一个异节点数据一致性次数,其中,表示该节点与i节点之间的数据一致性次数,n表示节点个数。第四步,判断是否出现了负载倾斜以调度vCPU每个的负载水平为,即当前CPU的使用率代表它的负载压力,对各节点负载作标准化处理。假定为标准化后的节点负载n为CPU数量,采用信息熵表来表征集群的负载分布情况:pi=ui∑ui,Hp=-∑pilogpi,构建取值范围为0~1的均衡度函数:F=∑pilogpilog1n。对于每个vCPU,在监测模块中设置一个性能干扰的下限值,当该vCPU的性能下降大小低于下限值则触发监测线程,将该vCPU标记为待迁移的状态,为防止虚拟机因为偶尔的性能抖动而造成的反复调整的情况,造成额外的性能开销,对于待迁移状态的vCPU,将其暂时归入待迁移集合Remap_set,而定时的对待迁移集合进行监测,当监测到Remap_set集合不为空时,触发优化调度策略。第五步,vCPU迁移策略多个待迁移的vCPU向多个CPU迁移的问题可以视为装箱问题,选用基于贪心的局部最优的贪心调度策略。将Remap_set中受到干扰的节点按照其同节点数据一致性开销和访存开销的大小从小到大进行排列,同时也是将当前每个CPU的状态按照CPU使用率的大小从小到大进行排列,依次将数据一致性开销和访存开销最小的vCPU迁移到各个节点之上。对于因为同节点性能干扰影响而被迁移出去的vCPU,加入监测该vCPU的异节点数据一致性开销和访存开销,考虑当同节点性能干扰降低或消失时,可将异节点调度的应用调度回同节点运行。当该vCPU异节点数据一致性和访存开销不断增大,大于原节点内性能干扰的大小,可将该vCPU调度回原节点运行。本发明与现有技术相比具有如下优点:监测上层应用运行状况,根据当前环境下不同节点运行情况,权衡同节点调度和异节点调度开销大小,优化调度结果。附图说明图1为面向虚拟机性能干扰的vCPU调度系统架构。具体实施方式以下结合具体实施例和附图对本发明进行详细说明,如图1所示,本发明实施例方法流程:1、虚拟资源监测硬件环境是Intel的SandyBridge系列处理器,它的PMU只能够同时监测4个硬件计数器参数,而即使在其他类型的处理器中,能够同时监测的硬件计数器参数也是有限的,而需要监测的硬件计数器参数有MEM_LOAD_UOPS_LLC_MISS_RETIRED、MEM_LOAD_UOPS_RETIRED、L2_MISS、LLC_HIT、LLC_MISS等,超出了寄存器能够同时监测的参数的上限,另外,同时监测过多的参数也会给系统带来过高的开销,因此将各个参数按照监测参数划分成独立的监测组,分时复用PMU寄存器,例如,在监测同一节点内数据一致性开销的时候,需要同时监测L2_MISS,LLC_HIT,LLC_MISS三个参数,然后根据数据一致性开销模型,计算一个时间段内的数据一致性开销,然后再将PMU监测的参数,设置为MEM_LOAD_UOPS_LLC_MISS_RETIRED和LLC_MISS,用来计算异节点数据一致性开销。依次采样不同组的硬件计数器参数信息,监测虚拟机状态。监测模块是按照内核模块的形式实现,在dom0的内存空间中维护一个统计表,按照每个vCPU的粒度依次计入每个vCPU相对应的各个观测指标的信息,统计信息每个时钟周期更新一次,然后由其他模块读取该模块中的信息。而为减少由于监测数据波动而造成的频繁调整,对采样数据采取滑动平均窗口的方法进行预处理,同时,采用Z标准化方法对收集的监测数据进行标准化处理,Z标准化是统计学中较为常用的数据标准化方法,标准化值可以表明各原始数据在数据分布中的相对位置。2、调度决策决策模块中vCPU向CPU的映射是通过CPUaffinity参数实现的,在Xen的命令行参数中,可以通过直接调用vCPU-pin命令,直接将vCPU的调度指向某一个CPU或者某一个CPU组,因此的性能优化策略可以和虚拟化环境默认的调度策略在Xen中默认调度策略为Credit-Scheduler共同运行,是对原有的调度策略的一种优化。决策模块中的调度优化策略以每100毫秒的间隔启动一次,同时测试了决策间隔的大小对于系统性能的影响,包括从10毫秒到1毫秒,最后发现100毫秒可以作为一个有效的监测时间间隔,在控制频繁调度对系统造成额外的性能开销的同时,能够及时有效的应对不同节点的负载倾斜的问题,因此选择100毫秒作为决策模块的时间间隔。3、预测模型优化离线训练阶段,本发明采用迭代方法保障模型的预测准确率。然而,当底层基础设施发生变化(如虚拟机迁移)或新的负载特征出现时,预测模型会产生一定的性能衰减,而这种性能衰减无疑会对迁移决策产生负面影响。为应对上述挑战,的系统在线记录模型的预测错误率,当准确度无法满足需求时(例如错误率高于某一阈值或方差较大),重新构建预测模型。为此,客户端不断收集响应时间数据,以节点为单位进行统计,并周期性地将这些数据发送到管理节点。

权利要求:1.一种基于vCPU调度解决虚拟机性能干扰的方法,方法特征在于实现步骤如下:第一步,面向数据共享的性能开销建模:同节点缓存一致性开销为Intra_Coherence=Last_Private_Cache_Misses–LLC_Misses+LLC_Hits;异节点缓存一致性开销为Inter_Coherence=LLC_Misses–Mem_Access;访存开销为Mem_Access_Overhead=Mem_Access;第二步,面向资源竞争的性能开销建模:LLCmissrates表示应用运行过程中缓存竞争大小,性能干扰模型为Interference=Last_Level_Cache_Misses,通过运行时收集每个vCPU的硬件计数器信息,代入性能开销模型,就可以计算出vCPU运行过程中的数据一致性开销、访存开销、性能干扰开销;第三步,虚拟机vCPU状态描述:每个vCPU状态表示为,其中,d表示该vCPU的性能下降,c表示vCPU内数据一致性次数,a表示vCPU中内存访问次数;CPU的运行状态为,其中,u代表CPU使用率,c代表当前CPU的LLCmiss次数,c=,表示该节点与i节点之间的数据一致性次数,n表示节点个数;第四步,判断是否出现了负载倾斜以调度vCPU:每个的负载水平为,为标准化后的节点负载n为CPU数量,采用信息熵表来表征集群的负载分布情况为,Hp=-∑pilogpi,构建均衡度函数F=∑pilogpilog1n;对于每个vCPU,在监测模块中设置一个性能干扰的下限值,当该vCPU的性能下降大小低于下限值则触发监测线程,将该vCPU标记为待迁移的状态,对于待迁移状态的vCPU,将其暂时归入待迁移集合Remap_set;第五步,vCPU迁移:多个待迁移的vCPU向多个CPU迁移的问题可以视为装箱问题,选用基于贪心的局部最优的贪心调度策略,将Remap_set中受到干扰的节点按照其同节点数据一致性开销和访存开销的大小从小到大进行排列,同时也是将当前每个CPU的状态按照CPU使用率的大小从小到大进行排列,依次将数据一致性开销和访存开销最小的vCPU迁移到各个节点之上。

百度查询: 神州数码信息系统有限公司 一种基于vCPU调度解决虚拟机性能干扰的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。