基于能效管理的云计算资源调度模型及算法(2)
时间:2017-01-04 12:55 来源:毕业论文 作者:毕业论文 点击:次
云计算系统的能耗[1]主要分为三个方面:空闲能耗,执行能耗和配套冷却设施的能耗。与之对应的能耗优化管理技术有关闭/休眠技术、电压动态调整技术,和虚拟化技术。其中,关闭/休眠技术主要是用来降低空闲能耗;电压动态调整技术和虚拟化技术主要是用来降低执行能耗。关闭/休眠技术通过将空闲的服务器关闭而达到节能的目的。电压动态调整技术主要是通过降低处理器的电压从而降低处理器的动态功率。虚拟化技术可实现多个任务在一个计算机上的不同虚拟机上的运行,通过提高计算机资源利用率,以减少所需计算机数量的方式降低能耗。而本文中降低云环境的能耗就是以关闭/休眠技术和虚拟化技术为依托的,通过虚拟化技术实现了计算机资源从物理实体向虚拟实体的迁移,针对每一个到达的任务都分配一类虚拟机(其中每一类虚拟机的CPU,内存,外存性能是不同的),并将所有的虚拟机按照一定的算法放置到物理机上,当物理机上所有的虚拟机都运行结束时就将该物理机关闭。 2 云计算能耗管理的模型 2.1 研究场景 目前的云计算环境中大部分采用Google提出的Map/Reduce的编程模型,本文的研究也是基于该模型的。而在Map/Reduce编程模型下,如何对众多的总任务进行调度是一个复杂的问题。为了简单起见,我们假设所有的任务是同时到达的,而对每一个提交的任务,我们通过随机的方式给它分配一类虚拟机(每一类虚拟机的CPU性能是不同的),分配一个运行时间。我们定义了一个虚拟机类型数组VMType(不同类型的虚拟机的计算能力不同),一个运行时间数组Runtime。 假设服务器总的计算能力(如CPU)为C,虚拟机类型数组为{VT1,VT2,……,VTn},运行时间数组为{R1,R2,……,Rn}。此时,对于一个给定任务,可以为它分配n个虚拟机类型中的任何一个,n个运行时间中的任何一个。比如对于任务J1,分配的虚拟机类型为VT1,运行时间为R3;任务J2,分配的虚拟机类型为VT5,运行时间为R2;任务J3,分配的虚拟机类型为VT1,运行时间为R1;如果VT1、VT2和VT3的计算能力之和小于C,那么就可以把这三个虚拟机放置到同一台服务器上。 而在本文中所要解决的问题就是要将Map/Reduce任务所对应的虚拟机按照某种算法映射到物理服务器上,从而使系统的整体能耗尽量得到最小化。 为了解决该问题,本文对虚拟机,物理机和虚拟机装箱进行如下定义: 定义1:虚拟机VmMsg(VmId,ComputeAbility,DeadLine)其中: VmId表示虚拟机的编号,ComputeAbility表示虚拟机计算能力,DeadLine表示虚拟机运行时间。 定义2:物理机ServerMsg(VmList, FreeAbility)其中: VmList表示该物理机上放置的虚拟机集合,FreeAbility表示该物理机的空闲能力。 定义3:虚拟机装箱BinMsg(ServerList),其中: ServerList表示在该箱子里所有的服务器集合。 2.2 单个服务器上的能耗 在文献[7]中,林守林等学者提出:CPU在不同频率不同利用率时的功率是不同的,如表1所示: 表1 CPU在不同频率不同利用率下的功率 频率 0 12.5% 25% 37.5% 50% 62.5% 75% 87.5% 100% 当频率固定时,CPU功率随着CPU利用率的增大而呈递增趋势。为了简单起见,本文假设CPU的频率始终保持1.0G,这样就可以得到一个CPU功率关于CPU利用率的函数powerfun()为: (1) 所以当知道服务器Serveri的CPU的利用率时,就可以通过powerfun()函数获得该服务器CPU的功率。所以服务器CPU功率Pi=powerfan(Ui),其中Ui表示服务器的CPU利用率。另外还可以获得每台服务器运行时间Ri,所以每台服务器所消耗的能量为: (责任编辑:qin) |