云计算平台中多虚拟机内存协同优化策略研究.pdf
云计算平台中多虚拟机内存协同优化策略研究pdf,提供“云计算平台中多虚拟机内存协同优化策略研究”免费资料下载,主要包括相关工作、多虚拟机内存动态管理体系结构、多虚拟机内存动态平衡算法、实验结果及性能分析等内容,可供学习使用。12期张伟哲等:云计算平台中多虛拟机内存协同优化策略研究2267加或缩减,从而使虚拟机地址空间具备了伸缩能力.到物理机器内存的最大有效使用和多个虚拟机内存文献□4详述了逻辑层虚拟热插拔的工作原理,此资源均衡分配.因此,多虚拟机内存管理系统应具备后文献〖5进一步剖析热插拔和气球驱动两种方法以下功能:(1)监测物理机内存资源的使用情况,间的优缺点.歇性地获取正在使用的物理内存的大小和空闲内存(3)多虚拟机内存平衡技术可以分为单台物理大小,供内存调节决策使用;(2)监测每个虚拟机中机和多台物理机间的内存平衡.文献[16提出了基客户操作系统内存资源的使用情况,间歇性地的获于黑盒与灰盒的单台物理机内部多虚拟机内存平衡取客户操作系统的最大可分配内存值、最小可分配方法, Magenheimer提出了基于Ⅹen气球驱动机内存值、正在使用中的内存值、空闲内存值、空闲交制的self- balloon策略,Zhao等人8提出了基于缺换空间值和系统所有应用提交给客户操作系统的内页率曲线的虚拟机内存预测方法及内存分配策略.存值等内存信息;(3)在内存资源充裕状态下,多虚文献匚19]提岀了虚拟机的动态內存映射模型拟机内存管理系统能够根据每个客户操作系统上的(DMM),将半虚拟化、影子页表和硬件辅助虚拟化应用提交给系统的内存值,来调节客户操作系统的等与虚拟存储、内存共享等融合起来.文献[20通过内存值;(4)在内存紧缺状态下,能够从全局角度根引人双层地址空间映射机制,构建了跨越多个物理据每个客户操作系统內存的使用情况和物理内存的机的虚拟机内存优化框架.情况,平衡每个客户操作系统的内存值. Domain0相上述研究工作中页面复用技术10和内存动态对于其他客户操作系统优先级较高,因此在首先保调整机制16提供了内存动态分配的底层支持机证 Domaino内存使用情况下,再执行对其他客户操制,但并没有解决内存在各虚拟机间何时分配、如何作系统的内存平衡策略.另外,在进行内存调节的过分配等问题,而文献[16-20缺乏从全局角度进行多程中,需要考虑内存调节引起的内存和计算能力的虚拟机內存协同管理系统架构和协同调度策略.本开销文将对其进一步深入研究,提出新的高效解决方法多虚拟机内存动态管理系统体系结构如图1所示,主要由内存信息采集( Information Collection,3多虚拟机内存动态管理体系结构IC)、管理策略( Policy-Management,PM)、调节机制( Regualtor module,RM)3个部分组成.内存信息多虚拟机内存管理以多个虚拟机内存资源的动采集模块包括虚拟机监视模块(VMC)和物理机监态自适应为目的,利用内存资源的使用情况等信息,视模块(PMC).管理策略包含自发调节(Self决定给不同的虚拟机分配不同大小的内存,从而达 adjustment)和全局调节策略( Global- adjustment)Information collectedTarget memory valueEnable or disable controlDomain oPSelf-adjustment+RegulatorIC: VMODomain uGlobal-adjustmentSelf -adjustment)rEgulator kIC: VMCDomain uIC: PMCBalloonXenPhysical machine图1多虚拟机内存动态管理系统体系结构2268计算机学报2011年内存信息采集模块负责内存使用信息的获取,机上运行的客户操作系统都有一个对未来的内存需供管理策略部分决策使用,是整个多虚拟机内存管求提交的预测值C,受虚拟机最大和最小内存值限理系统的基础,內存监视模块周期性地获取内存信定,调整地提交内存值MC;=min(max(L;,C),息,并把内存信息发送给调节管理模块.内存监视模H;).设N为当前时刻分配给每个虚拟机的内存块分为虚拟机内存监视模块和物理机内存监视模值,则∑(MC一N)为所有启动了自发调节服务的块.虚拟机内存监视模块不仅可以获取分配给虚拟虚拟机需要的内存值的总和,该值为正值表示需要机的物理内存的使用情况,还可以获得每个虚拟机使用剩余的空闲物理内存,负值表示需要释放虚拟的交换空间的使用情况;物理机内存监视模块,可以获得物理机的总内存值和空闲内存值以及运行的所机多余的内存资源有客户操作系统的最大内存信息等表1虚拟机内存信息符号表管理策略模块是多虚拟机内存管理系统的核符号含义心,负责整个系统调节策略的制定和决策.根据按需H;最大内存L最小内存分配的调节原则,在内存资源充裕的情况下,给每个提交内存值客户操作系统分配充足的内存,调节工作由自发调MC根据最大和最小内存值调整后提交的内存值当前分配给虚拟机的内存值节模块完成.在内存资源紧缺状态下,各个客户操作NNTFA下一时刻虚拟机目标内存值(不包含内存“红利”)系统自发地调节已经无法满足按需分配原则,此时虚拟机最终日标内存值(包含“红利”)当前虚拟机空闲内存值调节工作则由全局调节模块完成.全局调节模块决处于活动状态的内存,等于N;-F定从哪些客户操作系统中收回内存,向哪些客户操空闲交换空间大小ST交换空间总大小作系统分配内存,并计算出可回收和分配的内存大小,将给出的每个 Domaint的最佳内存值下发给实定义1.内存资源充裕状态.当FA≥∑(MC际调节部分.详细内容将在第4节介绍N)时,物理机空闲内存资源可以满足所有虚拟机调节机制负责具体的资源调节工作,本文采用提交内存的需要,称此状态为内存资源充裕状态Xen中的 Balloon- Driver机制作为内存调节机制,使用 Xenstore完成各部分间的数据交互.内存信息定义2.内存资源紧缺状态当F<∑(MC采集模块中的虚拟机监视模块(VMC)在 Domainu了)时,空闲的物理内存资源无法满足所有虚拟机中通过轻量级 Daemon实现,物理机监视模块提交内存的需要,称此状态为内存资源紧缺状态(PMC)在 Domain0中实现.全局调节模块( Global-定义3.多虚拟机内存自发调节.若系统处于adjustment)负责全局的调节,运行在 Domain0中;内存充裕状态,各虚拟机可根据客户操作系统提交的自发调节模块(Self- adjustment)负责各个 Domaint内存值自行调节,此种内存调节方式称为自发调节内存资源的调节,运行在 Domaint中定义4.多虚拟机内存全局调节.当系统处于内存紧缺状态下,物理机内存资源已经无法满足多4多虚拟机内存动态平衡算法个虚拟机提交内存的需求了,出现内存资源需求竞争.此时,需要从多虚拟机全局的角度来考虑平衡调本节首先给出自发调节与全局调节的定义,而节策略,此种内存调节方式称为全局调节.后阐述了两者协同工作算法,最后分别详细描述了4.2自发调节与全局调节的协同算法自发调节和全局调节算法自发调节和全局调节的区别在于自发调节对于4.1自发调节与全局调节每个虚拟机无需知道其它虚拟机的内存使用信息,为了方便讨论,表1列出了虚拟机内存资源信只根据自身信息就可以决定分配多少内存资源.而息的形式化定义.在对自发调节和全局调节进行定全局调节需要掌握每个受控的客户操作系统的内存义前,首先形式化地定义内存资源的状态.设T为使用信息,从全局的角度执行平衡调节策略决定分配物理机所有可用的物理内存的大小;为物理机上给每个虚拟机多少内存资源.全局调节依赖自发调节空闲内存的大小.集合ⅴ是所有客户操作系统的集发送的虚拟机内存信息,自发调节受控于全局调节.合.对于每个虚拟机VM,∈V在启动时设定了一个自发调节和全局调节之间的协作算法1如下所最大内存值H;和一个最小内存值L对每个虚拟示,其算法的复杂性取决于从其它 Domaint中回收12期张伟哲等:云计算平台中多虛拟机内存协同优化策略研究2269内存资源和执行多个 Domainu的全局平衡调节(2)能够满足 Domain0的需要,但内存资源处策略于紧缺状态算法1.自发调节与主动调节协同算法.4.3自发调节策略输入:间隔时间time自发调节和全局调节模式在同一时间只能有输出:无个处于启用状态,判定哪种模式处于启用状态和如Cooperate (time)t何执行最终的内存调节是自发调节策略重点.从While(1)/proc文件系统的 meminfo中可以得到客户操作系调节 Domain0内存全局调节标志设置为假;统的内存信息,包括提交内存值 committed_AS;利If(空闲内存资源不够 Domaind0使用)用 Xenstore作为客户操作系统和 Domaind之间内禁用自发调节;存信息和控制信息传递的媒介;利用气球驱动机制从其它 Domainu中回收内存资源;作为调节客户操作系统内存的基础.自发调节算法全局调节标记设置为真;如算法2所示,算法复杂度为O(1)If(全局调节标记为真‖内存资源处于紧缺状态){算法2.自发调节算法禁用自发调节;子程序:调节到目标内存执行多个 Domaint的全局平衡调节策略;/ype==1为自发调节,其它非负整数都为全局调else节目标内存值兴/启用自发调节;输入:调节类型Sleep(time)输出:无Adjust_to_target (int type)iIf (type==1)首先需要考虑的是不同 Domain之间的优先级计算自发调节模式目标内存;关系. Domain0主要负责VM的创建、管理、配置等目标内存值为自发调节内存;工作,并完成设备驱动,相对于其它 Domainu更加重要.因此无论是在内存资源充裕状态,还是在内存目标内存值为全局调节内存值;}资源紧缺状态下,分配给 Domaino的调节内存值应获取当前内存值Iftarget)i始终为 Domaint0客户操作系统的提交内存值.满足根据上调比率计算目标内存;Domain0需求的前提下,再在各个 Domainu之间进y else if (current o)256MB内存的客户操作系统SIED0( SUSE LinuxBalance_ mem (total_cur);)Enterprise Desktop0)中,运行mono标准测试程序,内存访问范围为40MB~300MB.如图2(a)所5实验结果及性能分析示:采集到的空闲内存值出现多次瞬间剧烈波动.由于全局调节算法在计算空闲内存价格时需要用到空本节实验分为5部分:第1部分通过实验测定闲内存值的大小,空闲内存价格异常颠簸最终导致自发调节与全局调节算法中空闲内存、空闲内存税全局调节算法分配给每个客户操作系统的内存值率和交换空间使用率等关键参数;第2部分验证自失配发调节与全局调节算法的有效性;第3部分采用分析发现,剧烈波动的原因是物理机内存资源Dacapo和 SPEC CPU2000等标准测试程序,进紧缺时,客户操作系统通过页框回收算法(Page步验证多虚拟机内存管理系统的性能;第4部分和 Frame Reclaiming Algorithm,PFRA)回收内存页第5部分分析多虚拟机内存管理系统的开销与可扩面.因此釆用多次采集方法确定客户操作系统空闲展性内存大小.设定空闲内存波动发现基准fmdl(5MB),实验环境采用 Intel服务器和xen3.0.服务器k为收集了空闲内存值次数,frc+为当前时刻获为8核(2个 Intel Xeon e55062.13 GHz Quad-Core取的空闲内存值的大小,fre为前一时刻收集到的processors),16GB双通道1333MHz内存.客户机空闲内存值的大小.若本次获取的系统空闲内存值系统为 linux2.6.16,为了避免CPU竞争,实验中给每个虚拟机分配一个CPU核心客户机上的守护满足fre2+1-∑/re/k>/md,则认为该次获取进程使用shel!编写.全局调节使用C语言实现,调的内存值异常,取前k次获取的空闲内存值的平均节每秒运行一次.每个客户机的初始内存值为值作为该时刻系统的空闲内存值,即free+214MB,基线数据通过在没有内存信息收集和内存调节的环境下测得.∑∫rek.根据上述方法实验结果如图2(b)所示基准测试程序包括两个微内核基准测试程序空闲内存波动降低,为内存动态调整提供了保障( Dacapo2和 SPEC CPU20002)和两个微内核程空闲内存税率.启动两个客户操作系统,每个系序( random和mono)18,. random运行时随机申请统的最大内存值为512MB,分配的当前内存值为2272计算机学报2011年空闲300mono占用mono占用250200150100505001000150050010001500时间/s时间/s(a)页框回收算法的负面影响(b)多次采集获取平均值图2基于mono标准测试程序确定空闲内存示意图256MB.首先在两个客户操作系统中配置了不启用示:当交换空间使用率加权比ε=0.1时波动性相对自发调节方式的自发调节服务,在 Domain0中启用ε=0.04根据交换空间进行调节的范围显著.在小只按照基于空闲内存价格的调节策略进行计算,不的时间片内没有很大波动,对调节的影响可以忽略.作实际调节工作.在其中一台客户操作系统上运行因此取交换空间使用率加权比ε=0.1.mono标准测试程序,另一台机器上不运行任何程序.并且设置内存空闲税率τ为0,随时间τ值逐渐递增.实验结果如图3所示:当空闲内存税率递增至0.75时,调节程序会根据内存使用情况多分配40%300的内存(mono访问100MB时,两个客户操作系统260中ⅤM1内存增加了40MB,而ⅤM2内存减少了mono占用1ⅤM1VM240MB).因此,确定内存空闲税率τ=0.75220200E=0.04350E=0.1—>180小kkp300160500100015002000250030003500时间/s250F-τ=0.75图4基于mono标准测试程序确定交换空间200使用率加权比示意图1005.2内存动态平衡算法有效性50mono占用自发调节有效性.当内存资源处于充裕状态----VMI--VM2时,多虚拟机内存管理系统使用自发调节作为基本1002003004005006007008009001000的调节策略,也即每个客户操作系统使用提交内存时间/s值作为调节的目标内存值.在客户操作系统分别运图3基于mono标准测试程序确定空闲内存税率示意图行mono和 random两个测试标准,申请内存范围为交换空间使用率.交换空间使用率∈体现交换40,170MB和[40,300MB.实验结果如图5和空间的利用对内存分配的影响.启动两个客户操作图6所示:mono和 rando两个测试标准无论是系统,在客户操作系统上启用自发调节服务,但自发在有足够物理内存情况下(图5(a)、图6(a),还是调节服务的自发调节被禁用,只做内存信息收集和使用了交换空间的测试结果(图5(b)、图6(b),均交互工作.而且全局调节也只按照基于空闲内存价表明系统提交内存能够体现程序占用内存资源的情格的策略进行计算目标内存值,不执行调节.在况,使用提交内存值作为系统的目标内存值以及应VM1中运行申请内存范围为[200,350MB的用自发调节策略的有效性mono程序,VM2上不运行程序.实验结果如图4所12期张伟哲等:云计算平台中多虚拟机内存协同优化策略研究2273300提交值---mono占用300250150150100提交值---mono占用0501001502002503003504004505000200400600800100012001400时间时间/s(a) mono(40 MB-170 MB)(b)mono(40 MB-300 MB)图5基于mono标准测试程序验证自发调节算法的有效性示意图提交值,是交值random占用350random用300180250160200120F100050100150200250300350400450500100200300400500600时间/s时间/s(a) random (40 MB-170 MB)(b) random(40 MB-300 MB)图6基于 random标准测试程序验证自发调节算法的有效性示意图全局调节有效性.釆用mono和 random两个统上的测试标准能很好地吻合.另外,因为进行空闲标准测试程序基于空闲内存价格调节方式的有效性.内存值调整的缘故,利用基于空闲内存价格进行内实验结果如图7和图8所示:因为每台客户操作系统存调节是一个缓慢下降的过程.图7(b)和图8(b)所分配的内存值为256MB,因此,mono和 random在示的mono(40MB~300MB)和 randon(40MB申请访问内存在[40,170]MB范围内时没有页面300MB)的实验,因为客户操作系统物理内存只有(或者很少)被换入到交换空间.从图7(a)和图8(a)256MB,测试标准访问内存空间必然导致页面换出可以很明显地看出,基于空闲内存价格调节策略,两操作,对于mono(40MB~300MB)当交换空间使用个客户操作系统的目标内存值和运行在客户操作系量到一定值时,虽然分配给每个客户操作系统内存35030025025≌200--.VM2150mono占用10010050VMIVM2mono占用100200300400500600200400600800100012001400时间/s时间/s(a)mono(40 MB-170 MB)(b)mono(40 MB-300 MB图7基于mono标准测试程序验证全局调节算法的有效性示意图2274计算机学报2011年400VMIVM2400350VM2mono占用mono占用35030∵.八叭"京2002001501505050100150200250300350400450500100200300400500600700时间/s时间/s(a) random (40 MB-170 MB)(b) random (40 MB-300 MB)图8基于 random标准测试程序验证全局调节算法的有效性示意图值趋于稳定,但仍然发现ⅤM1的目标内存值在变存储密集型加存储密集型负载.在内存调节化.对于 random(40MB~300MB)则可以很容易地中,最具有挑战的情况就是当出现内存资源竞争时看出,基于空闲内存价格的方式调节能够按照操作在VM1上运行 Daca po,在ⅤM2上以逆序的方式系统上运行的测试程序合理调节客户操作系统的运行 Dacapo(表示为 Dacapo'). Xalan和 eclipse占内存用300MB左右的内存,并且 eclipse占了运行中的5.3全局内存调节算法性能大部分时间.当两个客户操作系统都运行 eclipse本节采用不同类型的负载组合着重验证全局内时,出现内存竞争图10和图11分别给出了两个客存调节算法的性能户操作系统上 Dacapo中各个程序运行时间和基准计算密集型加存储密集型负载.主要测试基于时间的对比.可以看出 eclipse的运行时间缩短的最空闲内存价格的调节策略的性能.首先利用基本没大.和基准运行时间相比, Dacapo在两个客户操作有内存竞争的程序进行实验.程序包括 Dacapo的系统上运行的总时间分别缩短了36%和32%套标准和186. crafty.186. crafty是一个处理密集型120的程序,内存的负载很小.在VM1上186. crafty先匚调节后的100一基准的运行10次迭代,然后运行 Dacapo的标准,同时在VM2上先运行 Dacapo,接着运行同样迭代次数的186. crafty.图9给出了实验调节后程序运行时间和基准时间的对比.基准时间是程序在启动了自发调节服务(但不执行内存调节)的客户操作系统的运行时间,系统分配的内存始终为214MB.从图中可以看出 eclipse的运行时间降低最大为20%,整个Dacapo的运行时间降低了13%图10 Dacapo+ Dacapo负载VM中内存调节前后的性能对比120调节后的基准的120调节后的100基准的600in mmnl图9 Dacapo+186. crafty内存调节前后的性能对比图11 Dacapo+ Dacapo负载VM2中内存调节前后的性能对比
下载地址
用户评论