CN109947538B - 一种基于vCPU调度解决虚拟机性能干扰的方法 - Google Patents
一种基于vCPU调度解决虚拟机性能干扰的方法 Download PDFInfo
- Publication number
- CN109947538B CN109947538B CN201910249064.8A CN201910249064A CN109947538B CN 109947538 B CN109947538 B CN 109947538B CN 201910249064 A CN201910249064 A CN 201910249064A CN 109947538 B CN109947538 B CN 109947538B
- Authority
- CN
- China
- Prior art keywords
- vcpu
- overhead
- access
- performance
- cache
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
发明涉及一种基于vCPU调度解决虚拟机性能干扰的方法。随着硬件架构从多核向众核不断扩展,内存带宽逐渐成为多核系统性能扩展的瓶颈,可有效监测上层应用运行状况,根据实时获得的vCPU的运行信息,建立不同节点调度开销模型,基于该模型,实时收集的不同vCPU运行数据建立模型,根据不同节点内核运行开销进行vCPU调度,权衡同节点调度和异节点调度开销大小,优化调度结果。
Description
技术领域
本发明涉及一种基于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。
第二步,面向资源竞争的性能开销建模
LLC miss rates表示应用运行过程中缓存竞争大小,缓存失效的次数提高,说明虚拟机之间资源竞争变大,缓存失效次数稳定,说明虚拟机之间资源竞争较小;内存访问的次数,当数据访问缓存失效时,就必须去内存访问数据,访存的效率要远远低于缓存命中的效率,因此缓存失效的次数越高需要去内存访问数据的行为越频繁,说明应用受到干扰性能下降地越厉害,性能干扰模型为:
Interference=α×Last_Level_Cache_Misses。
通过运行时收集每个vCPU的硬件计数器信息,代入性能开销模型,就可以计算出vCPU运行过程中的数据一致性开销、访存开销、性能干扰开销,再根据各个vCPU的开销情况代入决策模型对vCPU进行优化调度。
第三步,虚拟机vCPU状态描述
虚拟机的每个vCPU的状态由一个三元组表示<d,c,a>表示,其中,d表示该vCPU的性能下降的大小,c表示vCPU内数据一致性的次数,a表示vCPU中内存访问的次数;对于硬件每个CPU的运行状态,用一个二元组<u,cm>表示,其中,u代表CPU使用率,cm代表当前CPU的LLC miss次数;对于硬件每个节点维护一个异节点数据一致性次数<ic1,ic2,...,icn>,其中,ici表示该节点与i节点之间的数据一致性次数,n表示节点个数。
第四步,判断是否出现了负载倾斜以调度vCPU
每个CPUi的负载水平为ui,即当前CPU的使用率代表它的负载压力,对各节点负载作标准化处理。假定p=(p1,p2,p3...,pn)为标准化后的节点负载(n为CPU数量),采用信息熵表来表征集群的负载分布情况:pi=ui/∑ui,H(p)=-∑pilogpi,构建取值范围为0~1的均衡度函数:F=∑pilog(pi/log(1/n))。
对于每个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的Sandy Bridge系列处理器,它的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的映射是通过CPU affinity参数实现的,在Xen的命令行参数中,可以通过直接调用vCPU-pin命令,直接将vCPU的调度指向某一个CPU或者某一个CPU组,因此的性能优化策略可以和虚拟化环境默认的调度策略(在Xen中默认调度策略为Credit-Scheduler)共同运行,是对原有的调度策略的一种优化。决策模块中的调度优化策略以每100毫秒的间隔启动一次,同时测试了决策间隔的大小对于系统性能的影响,包括从10毫秒到1毫秒,最后发现100毫秒可以作为一个有效的监测时间间隔,在控制频繁调度对系统造成额外的性能开销的同时,能够及时有效的应对不同节点的负载倾斜的问题,因此选择100毫秒作为决策模块的时间间隔。
3、预测模型优化
离线训练阶段,本发明采用迭代方法保障模型的预测准确率。然而,当底层基础设施发生变化(如虚拟机迁移)或新的负载特征出现时,预测模型会产生一定的性能衰减,而这种性能衰减无疑会对迁移决策产生负面影响。为应对上述挑战,的系统在线记录模型的预测错误率,当准确度无法满足需求时(例如错误率高于某一阈值或方差较大),重新构建预测模型。为此,客户端不断收集响应时间数据,以节点为单位进行统计,并周期性地将这些数据发送到管理节点。
Claims (1)
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的LLC miss次数,即共享缓存失效的次数,c=<ic1,ic2,...,icn>,ici表示该节点与i节点之间的数据一致性次数,n表示节点个数;
第四步,判断是否出现了负载倾斜以调度vCPU:每个CPUi的负载水平为ui,标准化后的节点负载为p=(p1,p2,p3,…,pn),其中n为CPU数量,采用信息熵表来表征集群的负载分布情况为pi=ui/∑ui,H(p)=-∑pilogpi;构建均衡度函数F=∑pilog(pi/log(1/n));对于每个vCPU,在监测模块中设置一个性能干扰的下限值,当该vCPU的性能下降大小低于下限值则触发监测线程,将该vCPU标记为待迁移的状态,对于待迁移状态的vCPU,将其暂时归入待迁移集合Remap_set;
第五步,vCPU迁移:多个待迁移的vCPU向多个CPU迁移的问题视为装箱问题,选用基于贪心的局部最优的贪心调度策略,将Remap_set中受到干扰的节点按照其同节点数据一致性开销和访存开销的大小从小到大进行排列,同时也是将当前每个CPU的状态按照CPU使用率的大小从小到大进行排列,依次将数据一致性开销和访存开销最小的vCPU迁移到各个节点之上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910249064.8A CN109947538B (zh) | 2019-03-29 | 2019-03-29 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910249064.8A CN109947538B (zh) | 2019-03-29 | 2019-03-29 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947538A CN109947538A (zh) | 2019-06-28 |
CN109947538B true CN109947538B (zh) | 2022-12-02 |
Family
ID=67013008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910249064.8A Active CN109947538B (zh) | 2019-03-29 | 2019-03-29 | 一种基于vCPU调度解决虚拟机性能干扰的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947538B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955398A (zh) * | 2014-04-28 | 2014-07-30 | 浙江大学 | 一种基于处理器性能监控的虚拟机共生调度方法 |
CN104050043A (zh) * | 2014-06-17 | 2014-09-17 | 华为技术有限公司 | 基于共享缓存感知的虚拟机调度方法和装置 |
CN104850461A (zh) * | 2015-05-12 | 2015-08-19 | 华中科技大学 | 一种面向numa架构的虚拟cpu调度优化方法 |
CN107967180A (zh) * | 2017-12-19 | 2018-04-27 | 上海交通大学 | 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9465669B2 (en) * | 2013-08-13 | 2016-10-11 | Vmware, Inc. | NUMA scheduling using inter-vCPU memory access estimation |
-
2019
- 2019-03-29 CN CN201910249064.8A patent/CN109947538B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955398A (zh) * | 2014-04-28 | 2014-07-30 | 浙江大学 | 一种基于处理器性能监控的虚拟机共生调度方法 |
CN104050043A (zh) * | 2014-06-17 | 2014-09-17 | 华为技术有限公司 | 基于共享缓存感知的虚拟机调度方法和装置 |
CN104850461A (zh) * | 2015-05-12 | 2015-08-19 | 华中科技大学 | 一种面向numa架构的虚拟cpu调度优化方法 |
CN107967180A (zh) * | 2017-12-19 | 2018-04-27 | 上海交通大学 | 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统 |
Non-Patent Citations (1)
Title |
---|
面向多处理器虚拟机的动态NUMA方法;施继成等;《小型微型计算机系统》;20150415(第04期);第677-682页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109947538A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Iorgulescu et al. | {PerfIso}: Performance isolation for commercial {Latency-Sensitive} services | |
CN108829494B (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
Liu et al. | Performance and energy modeling for live migration of virtual machines | |
US8533719B2 (en) | Cache-aware thread scheduling in multi-threaded systems | |
Alonso et al. | Adaptive on-line software aging prediction based on machine learning | |
EP3087503B1 (en) | Cloud compute scheduling using a heuristic contention model | |
Tang et al. | Fault-aware, utility-based job scheduling on blue, gene/p systems | |
Chen et al. | Elastic parameter server load distribution in deep learning clusters | |
US11579933B2 (en) | Method for establishing system resource prediction and resource management model through multi-layer correlations | |
US10887176B2 (en) | Predicting resource demand in computing environments | |
US20220329539A1 (en) | METHOD AND SERVER FOR ADJUSTING ALLOCATION OF COMPUTING RESOURCES TO PLURALITY OF VIRTUALIZED NETWORK FUNCTIONS (VNFs) | |
Srikanthan et al. | Data sharing or resource contention: Toward performance transparency on multicore systems | |
Xue et al. | Managing data center tickets: Prediction and active sizing | |
CN104657198A (zh) | Numa架构系统在虚拟机环境中的访存优化方法及系统 | |
US11693721B2 (en) | Creating robustness scores for selected portions of a computing infrastructure | |
WO2022026044A1 (en) | Sharing of compute resources between the virtualized radio access network (vran) and other workloads | |
CN107423114B (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
CN109947538B (zh) | 一种基于vCPU调度解决虚拟机性能干扰的方法 | |
Panneerselvam et al. | Latency-aware empirical analysis of the workloads for reducing excess energy consumptions at cloud datacentres | |
CN112306628A (zh) | 一种基于多核服务器的虚拟网络功能资源管理框架 | |
Ye et al. | Sova: A software-defined autonomic framework for virtual network allocations | |
CN115292030A (zh) | 一种云计算环境下物理内存自适应方法及系统 | |
Zhao et al. | Software maintenance optimization based on Stackelberg game methods | |
Li et al. | mPlogP: A parallel computation model for heterogeneous multi-core computer | |
Moradi et al. | DiHi: distributed and hierarchical performance modeling of multi-VM cloud running applications |
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 |