一種基于內(nèi)存壓縮和cpu動態(tài)調(diào)頻的節(jié)能方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法及系統(tǒng),本發(fā)明涉及服務(wù)器節(jié)能,其中涉及DVFS(動態(tài)電壓頻率調(diào)整)和內(nèi)存壓縮的聯(lián)動。該方法包括對內(nèi)存空間中內(nèi)容相同的頁面進(jìn)行壓縮,將節(jié)省的空間置于低能耗狀態(tài),并將該CPU的頻率降低到運(yùn)行該內(nèi)存空間所需的最低頻率。本發(fā)明能夠?qū)Ψ?wù)器的能耗進(jìn)行很好的控制,有效降低CPU和內(nèi)存帶來的能耗,在降低服務(wù)器能耗的同時增加內(nèi)存使用效率。
【專利說明】—種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及服務(wù)器節(jié)能,其中涉及DVFS (Dynamic voltage and frequencyscaling,動態(tài)電壓頻率調(diào)整)和內(nèi)存壓縮的聯(lián)動,屬于操作系統(tǒng)領(lǐng)域。
【背景技術(shù)】
[0002]云計(jì)算(Cloud Computing),是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過這種方式,共享的軟硬件資源和信息可以按需求提供給計(jì)算機(jī)和其他設(shè)備。云計(jì)算描述了一種基于互聯(lián)網(wǎng)的新的IT服務(wù)增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動態(tài)易擴(kuò)展而且經(jīng)常是虛擬化的資源。
[0003]在數(shù)據(jù)中心的服務(wù)器上,能耗費(fèi)用支出(照明、能量供應(yīng)和制冷等)占總開銷支出(包括新建設(shè)備費(fèi)用、設(shè)備維護(hù)費(fèi)用、網(wǎng)絡(luò)通信費(fèi)用等)的絕大部分,因此,通過充分利用資源以減少能量消耗越來越重要,當(dāng)前解決數(shù)據(jù)中心能量有效性的方法很多,分別從軟、硬件不同層次降低數(shù)據(jù)中心能耗,通過虛擬資源調(diào)度算法,對虛擬資源進(jìn)行整合,做到CPU和內(nèi)存等資源的有效利用,減輕服務(wù)器負(fù)載過重等情況,減少能耗;通過使用DVFS技術(shù)根據(jù)芯片所運(yùn)行的應(yīng)用程序?qū)τ?jì)算能力的不同需要,動態(tài)調(diào)節(jié)芯片的運(yùn)行頻率和電壓(對于同一芯片,頻率越低,需要的電壓也越低),從而達(dá)到節(jié)能的目的。
[0004]現(xiàn)有技術(shù)中,一種基于DVFS技術(shù)的調(diào)度算法,在第一次調(diào)度是通過逐漸增加電壓到滿足虛擬機(jī)所需的水平;第二次調(diào)度時,當(dāng)虛擬機(jī)中的任務(wù)結(jié)束后,逐漸降低電壓,這樣做到CPU的頻率做到最小且能滿足要求,從而降低計(jì)算機(jī)集群運(yùn)行多個虛擬機(jī)時的功耗;一種使用DVFS技術(shù)的集群開發(fā)啟發(fā)式調(diào)度和用于減少并行任務(wù)能耗的應(yīng)用,根據(jù)優(yōu)先級的限制而延長它們的執(zhí)行時間而非增加整體執(zhí)行時間以減少能源消耗。
[0005]在內(nèi)存方面,通過內(nèi)存壓縮技術(shù),監(jiān)測內(nèi)存中內(nèi)容相同的頁面,存儲其中的一個復(fù)本,在進(jìn)行內(nèi)存壓縮前掃描所有內(nèi)存頁面,會產(chǎn)生CPU開銷,在對內(nèi)存執(zhí)行寫操作時,會將原本已經(jīng)壓縮的頁面重新拷貝,此時也會引起額外的CPU開銷,在計(jì)算機(jī)系統(tǒng)中,內(nèi)存相對于CPU,是計(jì)算機(jī)性能的瓶頸,同時,實(shí)際內(nèi)存的控制也通過CPU來監(jiān)管,所以,在考慮內(nèi)存壓縮和CPU節(jié)能時,主要考慮內(nèi)存壓縮引起的對CPU性能要求的開銷。
[0006]以上方法基于DVFS技術(shù)的調(diào)度算法在CPU方面可以優(yōu)化資源利用,降低能耗,而基于內(nèi)存壓縮技術(shù)的方法在獲得更大的可用內(nèi)存的同時可降低空閑內(nèi)存所消耗的能源,然而各種不同層次的解決方法之間缺少有效地聯(lián)動,并不能將DVFS技術(shù)和內(nèi)存壓縮技術(shù)相結(jié)合來共同降低數(shù)據(jù)中心能耗。
[0007]發(fā)明專利“一種基于DVFS技術(shù)的大規(guī)模并行任務(wù)節(jié)能調(diào)度方法”該發(fā)明提供了一種基于DVFS技術(shù)的大規(guī)模并行任務(wù)節(jié)能調(diào)度方法,屬于分布式計(jì)算領(lǐng)域。所述方法包括以下步驟:(I)任務(wù)映射階段:將所有處理器的初始狀態(tài)均設(shè)為運(yùn)行在其最高電壓和最高頻率狀態(tài),然后通過計(jì)算獲得任務(wù)映射階段的有向無環(huán)圖調(diào)度結(jié)果的整體執(zhí)行時間MHEFT ;
(2)任務(wù)拉伸階段:將任務(wù)的執(zhí)行電壓和頻率進(jìn)行拉伸優(yōu)化,在不影響整體性能的情況下降低能耗開銷。該發(fā)明方法在不影響大規(guī)模并行任務(wù)整體執(zhí)行時間的條件下,顯著降低了并行任務(wù)帶來的能耗開銷。但是該發(fā)明是基于DVFS技術(shù)的大規(guī)模并行任務(wù)的節(jié)能調(diào)度方法,屬于分布式計(jì)算領(lǐng)域,而本發(fā)明是將DVFS技術(shù)與內(nèi)存壓縮相結(jié)合以達(dá)到節(jié)能的目的,屬于操作系統(tǒng)領(lǐng)域。
【發(fā)明內(nèi)容】
[0008]針對現(xiàn)有技術(shù)不足,本發(fā)明提出了一種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法及系統(tǒng),解決CPU節(jié)能與內(nèi)存壓縮能耗之間的矛盾。
[0009]為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,包括:對內(nèi)存空間中內(nèi)容相同的頁面進(jìn)行壓縮,將節(jié)省的空間置于低能耗狀態(tài),并將該CPU的頻率降低到運(yùn)行該內(nèi)存空間所需的最低頻率。
[0010]所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,還包括:實(shí)時監(jiān)測該內(nèi)存空間中該頁面的讀寫頻率。
[0011]所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,還包括:設(shè)定該內(nèi)存空間中該頁面的讀寫頻率閾值,若該讀寫頻率小于該讀寫頻率閾值時,則對該頁面進(jìn)行壓縮。
[0012]所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,還包括:離線獲取該頁面進(jìn)行壓縮時的壓縮能耗與該頁面進(jìn)行壓縮后節(jié)省的能耗,若該壓縮能耗小于該節(jié)省的能耗,則對該頁面進(jìn)行壓縮。
[0013]本發(fā)明還包括一種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),包括:
[0014]內(nèi)存壓縮處理模塊,用于對內(nèi)存空間中內(nèi)容相同的頁面進(jìn)行壓縮,并將節(jié)省的空間置于低能耗狀態(tài);
[0015]動態(tài)調(diào)頻處理模塊,用于將該CPU的頻率降低到運(yùn)行該內(nèi)存空間所需的最低頻率。
[0016]所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),還包括實(shí)時監(jiān)測模塊,用于實(shí)時監(jiān)測該內(nèi)存空間中該頁面的讀寫頻率。
[0017]所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),還包括判斷模塊,用于設(shè)定該內(nèi)存空間中該頁面的讀寫頻率閾值,若該讀寫頻率小于該讀寫頻率閾值時,則對該頁面進(jìn)行壓縮。
[0018]所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),該判斷模塊還用于離線獲取該頁面進(jìn)行壓縮時的壓縮能耗與該頁面進(jìn)行壓縮后節(jié)省的能耗,若該壓縮能耗小于該節(jié)省的能耗,則對該頁面進(jìn)行壓縮。
[0019]由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0020]應(yīng)用內(nèi)存壓縮技術(shù),減少內(nèi)存冗余,節(jié)省內(nèi)存空間,降低內(nèi)存帶來的功耗;應(yīng)用DVFS動態(tài)調(diào)頻技術(shù),調(diào)節(jié)CPU工作電壓和頻率,降低計(jì)算能耗;將CPU動態(tài)調(diào)頻技術(shù)與內(nèi)存壓縮技術(shù)相結(jié)合,減少內(nèi)存壓縮過程中的能耗;綜合考慮內(nèi)存壓縮的效率和能耗,做到性能與節(jié)能的折衷;根據(jù)對二者的特殊要求在權(quán)重上做出調(diào)整,如偏向性能或者偏向節(jié)能,更具靈活性;用戶可根據(jù)實(shí)際情況自定義能耗節(jié)約閾值,可定制,接近生產(chǎn)實(shí)際;根據(jù)離線測量數(shù)據(jù)和歷史記錄計(jì)算內(nèi)存壓縮過程中的功耗,提前做出決策;
【專利附圖】
【附圖說明】[0021]圖1為系統(tǒng)運(yùn)行流程圖;
[0022]其中附圖標(biāo)記為:
[0023]步驟100為本發(fā)明具體步驟,包括:
[0024]步驟101/102/103/104/105/106/107/108/109。
【具體實(shí)施方式】
[0025]本發(fā)明從內(nèi)存和CPU兩方面入手,整體流程如下:
[0026]在內(nèi)存方面,對重新拷貝已經(jīng)壓縮的頁面,采取持續(xù)監(jiān)測的方式,監(jiān)控每個頁面的讀寫情況,分析監(jiān)測歷史中頁面的讀寫頻率,對于某些讀寫頻率高的頁面不予壓縮,以減少產(chǎn)生不必要的功耗開銷。
[0027]在CPU方面,在內(nèi)存壓縮掃描頁面時,通過現(xiàn)有的DVFS技術(shù)調(diào)節(jié)CPU頻率,可以降低此時引起的功耗。
[0028]在對單臺服務(wù)器的CPU - MEM(處理器-內(nèi)存)節(jié)能聯(lián)合策略進(jìn)行設(shè)計(jì)時,本發(fā)明主要考慮內(nèi)存壓縮時的情形,而且在不同的應(yīng)用場景下內(nèi)存和CPU的使用情形也不同,當(dāng)進(jìn)行π計(jì)算等類似性質(zhì)的應(yīng)用時,對內(nèi)存的使用相對較少,而對CPU的使用率較多,而面對如矩陣計(jì)算等應(yīng)用時,對內(nèi)存的讀寫會變得非常頻繁。
[0029]在進(jìn)行內(nèi)存壓縮時,將讀寫頻繁的頁面壓縮后,當(dāng)在下一次對內(nèi)存寫時,會將原本已經(jīng)壓縮的頁面重新拷貝,引起額外的時間和CPU性能的開銷,通過歷史記錄的分析,可以預(yù)測內(nèi)存頁面讀寫的頻率,對于讀寫頻率高的頁面不進(jìn)行壓縮,這樣可以減少CPU對內(nèi)存中頁面?zhèn)浞莸念~外開銷。
[0030]當(dāng)進(jìn)行內(nèi)存壓縮時的額外能耗大于將節(jié)省的內(nèi)存空間設(shè)置為低功耗狀態(tài)節(jié)省的功耗時,不進(jìn)行內(nèi)存壓縮,但是如果對內(nèi)存有更多需求而不得不進(jìn)行壓縮時(即考慮內(nèi)存使用效率的權(quán)重較高),可對CPU進(jìn)行DVFS動態(tài)調(diào)頻,降低內(nèi)存掃描時CPU的頻率以減少能耗,從而在內(nèi)存壓縮的同時兼顧節(jié)能,同時,對內(nèi)存進(jìn)行壓縮時,考慮內(nèi)存讀寫頻繁的情況,減少重新備份內(nèi)存頁面時產(chǎn)生的額外CPU和內(nèi)存開銷。
[0031]以下為本發(fā)明的具體流程,步驟如下:
[0032]離線測量功耗值,包括:測量掃描整個內(nèi)存的能耗,用WScan_total表示;離線測量并計(jì)算由于重新備份一個內(nèi)存頁而引起的CPU的額外功耗,用Wrecopy表示,其中重新備份一個頁面即復(fù)制一個內(nèi)存頁面,Wrecopy是讀一個內(nèi)存頁面和寫一個內(nèi)存頁面功耗之和,讀寫一個內(nèi)存頁面的功耗由具體內(nèi)存性能決定;離線測量進(jìn)行內(nèi)存壓縮后,將空閑內(nèi)存的工作狀態(tài)設(shè)置為低功耗狀態(tài)所節(jié)省的能源,用Wmem表示。
[0033]監(jiān)控系統(tǒng)內(nèi)存的讀寫,記錄掃描結(jié)果中內(nèi)容相同的頁面數(shù)量(可進(jìn)行壓縮的頁面),以及其中讀寫頻率高的內(nèi)存頁面的數(shù)量,計(jì)算內(nèi)存壓縮比q,存入歷史記錄作為預(yù)測Wmem的依據(jù)。
[0034]內(nèi)存進(jìn)行壓縮前,根據(jù)將要進(jìn)行壓縮的內(nèi)存大小占整個內(nèi)存的比例k和離線測得的掃描整個內(nèi)存的功耗Wscan_total,計(jì)算掃描要進(jìn)行壓縮的內(nèi)存所產(chǎn)生的功耗Wscan =k.Wscan—total。
[0035]當(dāng)內(nèi)存頁面讀寫頻率處于某個閾值Freq時,由內(nèi)存重新備份頁面引起的CPU額外開銷為Wcopy,當(dāng)內(nèi)存讀寫頻率升高時,重新備份頁面情況的發(fā)生逐漸頻繁,重新備份內(nèi)存頁面產(chǎn)生的功耗Wrecopy增大,同時,根據(jù)CPU動態(tài)調(diào)頻,在掃描內(nèi)存頁時通過DVFS進(jìn)行動態(tài)調(diào)頻并計(jì)算進(jìn)行內(nèi)存壓縮時的總功耗,總能耗如下:
[0036]Wtotal = α.ffscan_total+ β.Wrecopy - Y.Wmem
[0037]其中α與DVFS等級相關(guān),β與內(nèi)存讀寫頻率有關(guān),Y與內(nèi)存的壓縮比有關(guān),其中α,β,Y分別是Wscan、Wrecopy和Wmem在Wtotal中所占的比重,α,β根據(jù)離線數(shù)據(jù)Wtotal 及歷史記錄 Wscan_total 和 Wrecopy 預(yù)測計(jì)算得到,即 a = ffscan_total/fftotal,β = ffrecopy/fftotal ; y根據(jù)歷史內(nèi)存壓縮比q預(yù)測得到,即Y = q(),下一輪的真實(shí)數(shù)據(jù)被記錄。
[0038]當(dāng)Wtotal = Waccept時,其中Waccept是一個可接受的能耗值,可根據(jù)用戶對節(jié)能的期望由用戶指定;
[0039]當(dāng)Wtotal〈Waccept時,則認(rèn)為內(nèi)存壓縮帶來的功耗降低是可觀的,此時根據(jù)歷史數(shù)據(jù),在掃描內(nèi)存頁的過程中運(yùn)用DVFS調(diào)節(jié)CPU頻率(CPU可調(diào)頻率分為幾個等級,α的大小決定DVFS頻率等級的高低,調(diào)用操作系統(tǒng)相關(guān)軟件接口將CPU頻率調(diào)至對應(yīng)等級),盡量減少CPU能耗,監(jiān)測內(nèi)存中內(nèi)容相同的頁面,將其進(jìn)行合并(即只保留一份副本),對于通過壓縮節(jié)省出來的內(nèi)存空間,內(nèi)存壓縮時,掃描要處理的內(nèi)存,檢查各個內(nèi)存頁面的內(nèi)容,對于內(nèi)容相同的頁面只保留一個相同的副本,其余的頁面釋放,已達(dá)到節(jié)省內(nèi)存空間的目的,通過調(diào)用操作系統(tǒng)中的軟件接口將其置為低功耗狀態(tài),進(jìn)一步節(jié)能的同時增大可利用內(nèi)存,兼顧內(nèi)存利用率;
[0040]當(dāng)Wtotal>Waccept時,在運(yùn)用DVFS的情況下,對于監(jiān)測歷史中讀寫頻繁的頁面,進(jìn)行內(nèi)存壓縮并不能達(dá)到節(jié)能的目的,故不進(jìn)行內(nèi)存壓縮;
[0041]以下為本發(fā)明系統(tǒng)的具體運(yùn)行步驟,如圖1所示,具體步驟如下:
[0042]執(zhí)行步驟101開始運(yùn)行,執(zhí)行步驟102測量掃描整個內(nèi)存的能耗Wscan_total,執(zhí)行步驟103離線測量并計(jì)算由于重新備份一個內(nèi)存頁而引起的CPU的額外功耗Wrecopy,執(zhí)行步驟104離線測量進(jìn)行內(nèi)存壓縮后,將空閑內(nèi)存的工作狀態(tài)設(shè)置為低功耗狀態(tài)所節(jié)省的能源Wmem,執(zhí)行步驟105監(jiān)測內(nèi)存中內(nèi)容相同的頁面,將其進(jìn)行合并,對于通過壓縮節(jié)省出來的內(nèi)存空間,通過調(diào)用操作系統(tǒng)中的軟件接口將其置為低功耗狀態(tài),執(zhí)行步驟106監(jiān)控系統(tǒng)內(nèi)存的讀寫,記錄歷史記錄,執(zhí)行步驟107如果Wtotal〈Waccept,則順序執(zhí)行步驟108和步驟109,步驟108根據(jù)歷史數(shù)據(jù),在掃描內(nèi)存頁的過程中運(yùn)用DVFS調(diào)節(jié)CPU頻率,通過壓縮節(jié)省出來的內(nèi)存空間,通過調(diào)用操作系統(tǒng)中的軟件接口將其置為低功耗狀態(tài),步驟109更新歷史記錄;如果Wtotal〉= Waccept,則從步驟105開始執(zhí)行。
[0043]本發(fā)明的系統(tǒng)包括以下模塊:
[0044]內(nèi)存壓縮處理模塊,用于對內(nèi)存空間中內(nèi)容相同的頁面進(jìn)行壓縮,并將節(jié)省的空間置于低能耗狀態(tài);
[0045]動態(tài)調(diào)頻處理模塊,用于將該CPU的頻率降低到運(yùn)行該內(nèi)存空間所需的最低頻率。
[0046]實(shí)時監(jiān)測模塊,用于實(shí)時監(jiān)測該內(nèi)存空間中該頁面的讀寫頻率。
[0047]判斷模塊,用于設(shè)定該內(nèi)存空間中該頁面的讀寫頻率閾值,若該讀寫頻率小于該讀寫頻率閾值時,則對該頁面進(jìn)行壓縮;離線獲取該頁面進(jìn)行壓縮時的壓縮能耗與該頁面進(jìn)行壓縮后節(jié)省的能耗,若該壓縮能耗小于該節(jié)省的能耗,則對該頁面進(jìn)行壓縮。
【權(quán)利要求】
1.一種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,其特征在于,對內(nèi)存空間中內(nèi)容相同的頁面進(jìn)行壓縮,將節(jié)省的空間置于低能耗狀態(tài),并將該CPU的頻率降低到運(yùn)行該內(nèi)存空間所需的最低頻率。
2.如權(quán)利要求1所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,其特征在于,還包括:實(shí)時監(jiān)測該內(nèi)存空間中該頁面的讀寫頻率。
3.如權(quán)利要求1或2所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,其特征在于,還包括:設(shè)定該內(nèi)存空間中該頁面的讀寫頻率閾值,若該讀寫頻率小于該讀寫頻率閾值時,則對該頁面進(jìn)行壓縮。
4.如權(quán)利要求1所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能方法,其特征在于,還包括:離線獲取該頁面進(jìn)行壓縮時的壓縮能耗與該頁面進(jìn)行壓縮后節(jié)省的能耗,若該壓縮能耗小于該節(jié)省的能耗,則對該頁面進(jìn)行壓縮。
5.一種基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),其特征在于,包括: 內(nèi)存壓縮處理模塊,用于對內(nèi)存空間中內(nèi)容相同的頁面進(jìn)行壓縮,并將節(jié)省的空間置于低能耗狀態(tài); 動態(tài)調(diào)頻處理模塊,用于將該CPU的頻率降低到運(yùn)行該內(nèi)存空間所需的最低頻率。
6.如權(quán)利要求5所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),其特征在于,還包括實(shí)時監(jiān)測模塊,用于實(shí)時監(jiān)測該內(nèi)存空間中該頁面的讀寫頻率。
7.如權(quán)利要求5或6所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),其特征在于,還包括判斷模塊,用于設(shè)定該內(nèi)存空間中該頁面的讀寫頻率閾值,若該讀寫頻率小于該讀寫頻率閾值時,則對該頁面進(jìn)行壓縮。
8.如權(quán)利要求7所述的基于內(nèi)存壓縮和CPU動態(tài)調(diào)頻的節(jié)能系統(tǒng),其特征在于,該判斷模塊還用于離線獲取該頁面進(jìn)行壓縮時的壓縮能耗與該頁面進(jìn)行壓縮后節(jié)省的能耗,若該壓縮能耗小于該節(jié)省的能耗,則對該頁面進(jìn)行壓縮。
【文檔編號】G06F1/32GK103970256SQ201410163577
【公開日】2014年8月6日 申請日期:2014年4月22日 優(yōu)先權(quán)日:2014年4月22日
【發(fā)明者】方海鷗, 宋 瑩, 孫毓忠 申請人:中國科學(xué)院計(jì)算技術(shù)研究所