一种基于内存压缩和CPU动态调频的节能方法及系统
技术领域
本发明涉及服务器节能,其中涉及DVFS(Dynamic voltage and frequencyscaling,动态电压频率调整)和内存压缩的联动,属于操作系统领域。
背景技术
云计算(Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。
在数据中心的服务器上,能耗费用支出(照明、能量供应和制冷等)占总开销支出(包括新建设备费用、设备维护费用、网络通信费用等)的绝大部分,因此,通过充分利用资源以减少能量消耗越来越重要,当前解决数据中心能量有效性的方法很多,分别从软、硬件不同层次降低数据中心能耗,通过虚拟资源调度算法,对虚拟资源进行整合,做到CPU和内存等资源的有效利用,减轻服务器负载过重等情况,减少能耗;通过使用DVFS技术根据芯片所运行的应用程序对计算能力的不同需要,动态调节芯片的运行频率和电压(对于同一芯片,频率越低,需要的电压也越低),从而达到节能的目的。
现有技术中,一种基于DVFS技术的调度算法,在第一次调度是通过逐渐增加电压到满足虚拟机所需的水平;第二次调度时,当虚拟机中的任务结束后,逐渐降低电压,这样做到CPU的频率做到最小且能满足要求,从而降低计算机集群运行多个虚拟机时的功耗;一种使用DVFS技术的集群开发启发式调度和用于减少并行任务能耗的应用,根据优先级的限制而延长它们的执行时间而非增加整体执行时间以减少能源消耗。
在内存方面,通过内存压缩技术,监测内存中内容相同的页面,存储其中的一个复本,在进行内存压缩前扫描所有内存页面,会产生CPU开销,在对内存执行写操作时,会将原本已经压缩的页面重新拷贝,此时也会引起额外的 CPU开销,在计算机系统中,内存相对于CPU,是计算机性能的瓶颈,同时,实际内存的控制也通过CPU来监管,所以,在考虑内存压缩和CPU节能时,主要考虑内存压缩引起的对CPU性能要求的开销。
以上方法基于DVFS技术的调度算法在CPU方面可以优化资源利用,降低能耗,而基于内存压缩技术的方法在获得更大的可用内存的同时可降低空闲内存所消耗的能源,然而各种不同层次的解决方法之间缺少有效地联动,并不能将DVFS技术和内存压缩技术相结合来共同降低数据中心能耗。
发明专利“一种基于DVFS技术的大规模并行任务节能调度方法”该发明提供了一种基于DVFS技术的大规模并行任务节能调度方法,属于分布式计算领域。所述方法包括以下步骤:(1)任务映射阶段:将所有处理器的初始状态均设为运行在其最高电压和最高频率状态,然后通过计算获得任务映射阶段的有向无环图调度结果的整体执行时间MHEFT;(2)任务拉伸阶段:将任务的执行电压和频率进行拉伸优化,在不影响整体性能的情况下降低能耗开销。该发明方法在不影响大规模并行任务整体执行时间的条件下,显著降低了并行任务带来的能耗开销。但是该发明是基于DVFS技术的大规模并行任务的节能调度方法,属于分布式计算领域,而本发明是将DVFS技术与内存压缩相结合以达到节能的目的,属于操作系统领域。
发明内容
针对现有技术不足,本发明提出了一种基于内存压缩和CPU动态调频的节能方法及系统,解决CPU节能与内存压缩能耗之间的矛盾。
为实现上述目的,本发明提供了一种基于内存压缩和CPU动态调频的节能方法,包括:对内存空间中内容相同的页面进行压缩,将节省的空间置于低能耗状态,并将该CPU的频率降低到运行该内存空间所需的最低频率。
所述的基于内存压缩和CPU动态调频的节能方法,还包括:实时监测该内存空间中该页面的读写频率。
所述的基于内存压缩和CPU动态调频的节能方法,还包括:设定该内存空间中该页面的读写频率阈值,若该读写频率小于该读写频率阈值时,则对该页面进行压缩。
所述的基于内存压缩和CPU动态调频的节能方法,还包括:离线获取该页面进行压缩时的压缩能耗与该页面进行压缩后节省的能耗,若该压缩能耗小于该节省的能耗,则对该页面进行压缩。
本发明还包括一种基于内存压缩和CPU动态调频的节能系统,包括:
内存压缩处理模块,用于对内存空间中内容相同的页面进行压缩,并将节省的空间置于低能耗状态;
动态调频处理模块,用于将该CPU的频率降低到运行该内存空间所需的最低频率。
所述的基于内存压缩和CPU动态调频的节能系统,还包括实时监测模块,用于实时监测该内存空间中该页面的读写频率。
所述的基于内存压缩和CPU动态调频的节能系统,还包括判断模块,用于设定该内存空间中该页面的读写频率阈值,若该读写频率小于该读写频率阈值时,则对该页面进行压缩。
所述的基于内存压缩和CPU动态调频的节能系统,该判断模块还用于离线获取该页面进行压缩时的压缩能耗与该页面进行压缩后节省的能耗,若该压缩能耗小于该节省的能耗,则对该页面进行压缩。
由以上方案可知,本发明的优点在于:
应用内存压缩技术,减少内存冗余,节省内存空间,降低内存带来的功耗;应用DVFS动态调频技术,调节CPU工作电压和频率,降低计算能耗;将CPU动态调频技术与内存压缩技术相结合,减少内存压缩过程中的能耗;综合考虑内存压缩的效率和能耗,做到性能与节能的折衷;根据对二者的特殊要求在权重上做出调整,如偏向性能或者偏向节能,更具灵活性;用户可根据实际情况自定义能耗节约阈值,可定制,接近生产实际;根据离线测量数据和历史记录计算内存压缩过程中的功耗,提前做出决策。
附图说明
图1为系统运行流程图;
其中附图标记为:
步骤100为本发明具体步骤,包括:
步骤101/102/103/104/105/106/107/108/109。
具体实施方式
本发明从内存和CPU两方面入手,整体流程如下:
在内存方面,对重新拷贝已经压缩的页面,采取持续监测的方式,监控每个页面的读写情况,分析监测历史中页面的读写频率,对于某些读写频率高的页面不予压缩,以减少产生不必要的功耗开销。
在CPU方面,在内存压缩扫描页面时,通过现有的DVFS技术调节CPU频率,可以降低此时引起的功耗。
在对单台服务器的CPU–MEM(处理器-内存)节能联合策略进行设计时,本发明主要考虑内存压缩时的情形,而且在不同的应用场景下内存和CPU的使用情形也不同,当进行π计算等类似性质的应用时,对内存的使用相对较少,而对CPU的使用率较多,而面对如矩阵计算等应用时,对内存的读写会变得非常频繁。
在进行内存压缩时,将读写频繁的页面压缩后,当在下一次对内存写时,会将原本已经压缩的页面重新拷贝,引起额外的时间和CPU性能的开销,通过历史记录的分析,可以预测内存页面读写的频率,对于读写频率高的页面不进行压缩,这样可以减少CPU对内存中页面备份的额外开销。
当进行内存压缩时的额外能耗大于将节省的内存空间设置为低功耗状态节省的功耗时,不进行内存压缩,但是如果对内存有更多需求而不得不进行压缩时(即考虑内存使用效率的权重较高),可对CPU进行DVFS动态调频,降低内存扫描时CPU的频率以减少能耗,从而在内存压缩的同时兼顾节能,同时,对内存进行压缩时,考虑内存读写频繁的情况,减少重新备份内存页面时产生的额外CPU和内存开销。
以下为本发明的具体流程,步骤如下:
离线测量功耗值,包括:测量扫描整个内存的能耗,用Wscan_total表示;离线测量并计算由于重新备份一个内存页而引起的CPU的额外功耗,用Wrecopy表示,其中重新备份一个页面即复制一个内存页面,Wrecopy是读一个内存页面和写一个内存页面功耗之和,读写一个内存页面的功耗由具体内存性能决定;离线测量进行内存压缩后,将空闲内存的工作状态设置为低功耗状态所节省的能源,用Wmem表示。
监控系统内存的读写,记录扫描结果中内容相同的页面数量(可进行压缩 的页面),以及其中读写频率高的内存页面的数量,计算内存压缩比q,存入历史记录作为预测Wmem的依据。
内存进行压缩前,根据将要进行压缩的内存大小占整个内存的比例k和离线测得的扫描整个内存的功耗Wscan_total,计算扫描要进行压缩的内存所产生的功耗Wscan=k·Wscan_total。
当内存页面读写频率处于某个阈值Freq时,由内存重新备份页面引起的CPU额外开销为Wcopy,当内存读写频率升高时,重新备份页面情况的发生逐渐频繁,重新备份内存页面产生的功耗Wrecopy增大,同时,根据CPU动态调频,在扫描内存页时通过DVFS进行动态调频并计算进行内存压缩时的总功耗,总能耗如下:
Wtotal=α·Wscan_total+β·Wrecopy–γ·Wmem
其中α与DVFS等级相关,β与内存读写频率有关,γ与内存的压缩比有关,其中α,β,γ分别是Wscan、Wrecopy和Wmem在Wtotal中所占的比重,α,β根据离线数据Wtotal及历史记录Wscan_total和Wrecopy预测计算得到,即α=Wscan_total/Wtotal,β=Wrecopy/Wtotal;γ根据历史内存压缩比q预测得到,即γ=q(),下一轮的真实数据被记录。
当Wtotal=Waccept时,其中Waccept是一个可接受的能耗值,可根据用户对节能的期望由用户指定;
当Wtotal<Waccept时,则认为内存压缩带来的功耗降低是可观的,此时根据历史数据,在扫描内存页的过程中运用DVFS调节CPU频率(CPU可调频率分为几个等级,α的大小决定DVFS频率等级的高低,调用操作系统相关软件接口将CPU频率调至对应等级),尽量减少CPU能耗,监测内存中内容相同的页面,将其进行合并(即只保留一份副本),对于通过压缩节省出来的内存空间,内存压缩时,扫描要处理的内存,检查各个内存页面的内容,对于内容相同的页面只保留一个相同的副本,其余的页面释放,已达到节省内存空间的目的,通过调用操作系统中的软件接口将其置为低功耗状态,进一步节能的同时增大可利用内存,兼顾内存利用率;
当Wtotal>Waccept时,在运用DVFS的情况下,对于监测历史中读写频繁的页面,进行内存压缩并不能达到节能的目的,故不进行内存压缩;
以下为本发明系统的具体运行步骤,如图1所示,具体步骤如下:
执行步骤101开始运行,执行步骤102测量扫描整个内存的能耗Wscan_total,执行步骤103离线测量并计算由于重新备份一个内存页而引起的CPU的额外功耗Wrecopy,执行步骤104离线测量进行内存压缩后,将空闲内存的工作状态设置为低功耗状态所节省的能源Wmem,执行步骤105监测内存中内容相同的页面,将其进行合并,对于通过压缩节省出来的内存空间,通过调用操作系统中的软件接口将其置为低功耗状态,执行步骤106监控系统内存的读写,记录历史记录,执行步骤107如果Wtotal<Waccept,则顺序执行步骤108和步骤109,步骤108根据历史数据,在扫描内存页的过程中运用DVFS调节CPU频率,通过压缩节省出来的内存空间,通过调用操作系统中的软件接口将其置为低功耗状态,步骤109更新历史记录;如果Wtotal>=Waccept,则从步骤105开始执行。
本发明的系统包括以下模块:
内存压缩处理模块,用于对内存空间中内容相同的页面进行压缩,并将节省的空间置于低能耗状态;
动态调频处理模块,用于将该CPU的频率降低到运行该内存空间所需的最低频率。
实时监测模块,用于实时监测该内存空间中该页面的读写频率。
判断模块,用于设定该内存空间中该页面的读写频率阈值,若该读写频率小于该读写频率阈值时,则对该页面进行压缩;离线获取该页面进行压缩时的压缩能耗与该页面进行压缩后节省的能耗,若该压缩能耗小于该节省的能耗,则对该页面进行压缩。