專利名稱:伺服器系統(tǒng)及其電源管理方法
技術領域:
本發(fā)明涉及一種電源管理機制,尤其涉及一種伺服器系統(tǒng)及其電源管理方法。
背景技術:
云端運算(cloud computing)技術是通過網(wǎng)際網(wǎng)絡(Internet)結合大量的伺服 器以形成超高運算與超大儲存能力。云端運算技術可將這些伺服器的軟硬件進行共享或分 工,并通過網(wǎng)絡及瀏覽器來操作這些服務的網(wǎng)頁,使用上面的接口進行各種運算和工作。由 于這些伺服器的數(shù)量龐大,由伺服器組成的伺服器機群(server group)通常會采用電源管 理機制以降低電源消耗。
圖1所示,圖1是一種伺服器系統(tǒng)100的示意圖。在伺服器系統(tǒng)100中具有大量 的節(jié)點PM (Physical Machine),每個節(jié)點PM便是伺服器系統(tǒng)100中的實體主機,而這些節(jié) 點PM皆與網(wǎng)絡110相連。并且,每個節(jié)點PM上皆架設有一至多個虛擬主機VM(virtual machine),以通過網(wǎng)絡110執(zhí)行云端運算功能。管理伺服器120通過網(wǎng)絡110來對這些節(jié) 點PM執(zhí)行電源管理。于部分實施例中,管理伺服器120可以是伺服器系統(tǒng)100中某個節(jié)點 PM,其可執(zhí)行虛擬主機中的特定功能以進行電源管理機制。
以往所知的電源管理機制會將部份節(jié)點PM中負載較重的虛擬主機VM轉移至總量 負載較輕的節(jié)點PM,以平衡每個節(jié)點PM的負載,此動作亦可稱為虛擬主機VM的即時轉移 (live migration),藉以實現(xiàn)每個節(jié)點的負載平衡(load balance)。
進行即時轉移后,如果每個節(jié)點PM的平均總量負載仍然偏低時,便可將某些節(jié) 點PM中的虛擬主機VM全數(shù)轉移至其他節(jié)點PM中,并關閉沒有虛擬主機VM在其中的節(jié)點 PM,便可減少運作中節(jié)點PM的數(shù)量,亦可使運作中的節(jié)點PM能夠在最有效的電源使用效 率中執(zhí)行所有的虛擬主機,上述動作可稱為節(jié)點關閉(node power-off)。相對地,如果每 個節(jié)點PM的平均總量負載偏高而難以負荷時,便會開啟/再啟動未運作的節(jié)點PM,并進行 虛擬主機VM的即時轉移,以維持電源使用效率,上述動作亦可稱為可稱為節(jié)點啟動(node power-on)。
雖然上述的電源管理機制在理論上可節(jié)省較多的電源,但虛擬主機VM在其轉移 過程中將會耗費大量的網(wǎng)絡頻寬,因而降低整體云端運算的效能。每個虛擬主機VM的負載 大小也會因為使用者數(shù)量、應用軟件的種類等因素而隨時產(chǎn)生變化,因而難以估計這些變 化的發(fā)生時點。因此,如果節(jié)點PM會經(jīng)常性進行虛擬主機VM的即時轉移、節(jié)點PM的電源 關閉與再啟動等電源管理機制時,將會大幅度降低云端運算的效率。因此,在云端運算技術 中,如何在具有眾多節(jié)點的伺服器系統(tǒng)100采用較佳的電源管理機制便是目前欲待深入研 究的方向。發(fā)明內(nèi)容
本發(fā)明提供一種伺服器系統(tǒng)及其電源管理方法,其依據(jù)節(jié)點的中央處理單元 (CPU)使用率來動態(tài)調(diào)整CPU的運算效能及工作周期的狀態(tài),以在不影響虛擬主機的工作效率之下節(jié)省電源消耗。
本發(fā)明提供一種伺服器系統(tǒng)的電源管理方法,上述伺服器系統(tǒng)包括有多個節(jié)點。 伺服器系統(tǒng)的電源管理方法包括下列步驟。檢測每個節(jié)點(例如,一特定節(jié)點)內(nèi)中央處理 單元所對應的使用率以計算此特定節(jié)點的CPU平均使用率。依據(jù)此平均使用率以判斷此特 定節(jié)點的狀態(tài)。當此狀態(tài)低于正常負載狀態(tài)時,便調(diào)整此特定節(jié)點中的CPU操作參數(shù),以降 低CPU的處理速度,并使此狀態(tài)回到正常負載狀態(tài)而節(jié)省電源消耗。類似地,當此狀態(tài)高于 正常負載狀態(tài)時,便調(diào)整此特定節(jié)點中的CPU操作參數(shù)以提升CPU的處理速度,并使此CPU 的狀態(tài)回到正常負載狀態(tài)。
換言之,本發(fā)明提供一種伺服器系統(tǒng)的電源管理方法,其中該伺服器系統(tǒng)包括多 個節(jié)點,該伺服器系統(tǒng)的電源管理方法包括下列步驟檢測一特定節(jié)點中至少一中央處理 單元所對應的至少一使用率以計算該特定節(jié)點的一平均使用率,其中該特定節(jié)點是該些 節(jié)點的其一;依據(jù)該平均使用率判斷該特定節(jié)點的一狀態(tài);當該狀態(tài)低于一正常負載狀態(tài) 時,調(diào)整該特定節(jié)點中該中央處理單元的一操作參數(shù)以降低該中央處理單元的處理速度, 以使該狀態(tài)回到該正常負載狀態(tài);以及當該狀態(tài)高于該正常負載狀態(tài)時,調(diào)整該操作參數(shù) 以提升該中央處理單元的處理速度,以使該狀態(tài)回到該正常負載狀態(tài)。
在本發(fā)明的一實施例中,伺服器系統(tǒng)的電源管理方法還包括下列步驟。當調(diào)升上 述CPU的操作參數(shù)仍然無法使上述狀態(tài)回到正常負載狀態(tài)時(例如,當CPU的狀態(tài)已是滿 載負載狀態(tài)且CPU的運算效能已調(diào)整至最大值并且CPU的工作周期已調(diào)整至最大值),則進 行一虛擬主機即時轉移程序,以平衡這些節(jié)點所承受的負載。
在本發(fā)明的一實施例中,伺服器系統(tǒng)的電源管理方法還包括下列步驟。當降低CPU 的處理速度仍然無法使上述狀態(tài)回到正常負載狀態(tài)時,便進行一節(jié)點關閉程序并配合上述 的虛擬主機即時轉移程序,以使運作中的每個節(jié)點的狀態(tài)回到正常負載狀態(tài)。相對地,當提 升CPU的處理速度仍然無法使上述狀態(tài)回到正常負載狀態(tài)時,便進行一節(jié)點啟動程序并配 合上述的虛擬主機即時轉移程序,以使運作中的每個節(jié)點的狀態(tài)回到正常負載狀態(tài)。
在本發(fā)明的一實施例中,判斷上述特定節(jié)點的狀態(tài)包括有下列步驟。當平均使用 率高于一最大CPU門檻值時,將上述狀態(tài)設定為滿載負載狀態(tài)。當平均使用率高于一高度 CPU門檻值且低于最大CPU門檻值時,則將上述狀態(tài)設定為高度負載狀態(tài)。當平均使用率高 于一低度CPU門檻值且低于高度CPU門檻值時,則將上述狀態(tài)設定為正常負載狀態(tài)。以及, 當平均使用率低于上述低度CPU門檻值時,將上述狀態(tài)設定為低度負載狀態(tài)。此外,當平均 使用率低于一閑置CPU門檻值時,將上述狀態(tài)設定為閑置負載狀態(tài),其中,上述閑置CPU門 檻值應低于低度CPU門檻值。
另一方面,本發(fā)明提供一種伺服器系統(tǒng),包括有多個節(jié)點及一管理伺服器。每個節(jié) 點可以視作為一個實體主機,因此每個節(jié)點皆包括至少一中央處理單元(CPU)。每個節(jié)點及 管理伺服器皆耦接至網(wǎng)絡。管理伺服器可檢測每個節(jié)點(例如,一特定節(jié)點)的CPU的使 用率以計算此特定節(jié)點的平均使用率,并依據(jù)平均使用率來判斷出特定節(jié)點的狀態(tài)。當上 述狀態(tài)低于正常負載狀態(tài)時,管理伺服器便調(diào)整特定節(jié)點中CPU的操作參數(shù)以降低CPU的 處理速度。并且,當上述狀態(tài)高于正常負載狀態(tài)時,管理伺服器便調(diào)整特定節(jié)點中的CPU操 作參數(shù)以提升CPU的處理速度,以使上述狀態(tài)回到正常負載狀態(tài)。此外,伺服器系統(tǒng)的其余 實施細節(jié)請參照上述說明,在此不加贅述。
換言之,本發(fā)明提供一種伺服器系統(tǒng),包括多個節(jié)點和一管理伺服器。每一節(jié)點 耦接至一網(wǎng)絡,且每一節(jié)點包括至少一中央處理單元;管理伺服器耦接至該網(wǎng)絡,該管理伺 服器檢測一特定節(jié)點中該中央處理單元所對應的一使用率以計算該特定節(jié)點的一平均使 用率,依據(jù)該平均使用率判斷該特定節(jié)點的一狀態(tài),當該狀態(tài)低于一正常負載狀態(tài)時,調(diào)整 該特定節(jié)點中該中央處理單元的一操作參數(shù)以降低該中央處理單元的處理速度,且當該狀 態(tài)高于該正常負載狀態(tài)時,調(diào)整該操作參數(shù)以提升該中央處理單元的處理速度,以使該狀 態(tài)回到該正常負載狀態(tài),其中該特定節(jié)點為該些節(jié)點的其一。
基于上述,由于以往的電源管理機制在執(zhí)行過程中會占據(jù)較多系統(tǒng)資源、也耗費 較多的處理時間。藉此,本發(fā)明實施例可依據(jù)每個節(jié)點的整體負載(或是,各節(jié)點的中央處 理單元(CPU)的平均使用率)來動態(tài)調(diào)整中央處理單元(CPU)的運轉速度,使得各個節(jié)點 能夠在正常負載狀態(tài)中進行運轉,以在不影響各個節(jié)點的工作效率、不占據(jù)系統(tǒng)資源之下 節(jié)省電源消耗。
藉此,本發(fā)明實施例可避免經(jīng)常性地執(zhí)行虛擬主機的即時轉移及節(jié)點關閉/節(jié)點 啟動,免除了云端運算效率的降低。當調(diào)整CPU的運作瀕率(P)及工作周期(T)仍無法使 伺服器系統(tǒng)運作在較佳的耗電效率時,再執(zhí)行以往的電源管理機制,便可達到最佳的電源管理功效。
為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
圖1是一種伺服器系統(tǒng)的示意圖。
圖2是根據(jù)本發(fā)明一實施例說明伺服器系統(tǒng)的電源管理方法的流程圖。
圖3是根據(jù)本發(fā)明一實施例說明伺服器系統(tǒng)的示意圖。
圖4為特定節(jié)點中BIOS、芯片組與其中一個實體CPU的示意圖。
圖5為管理伺服器中的CPU平均使用率狀態(tài)表。
圖6為本發(fā)明實施例所述的CPU操作參數(shù)表。
附圖標記
100、300 :伺服器系統(tǒng)
110,310 :網(wǎng)絡
120、320 :管理伺服器
330 :基本輸入輸出系統(tǒng)(BIOS)
410 :芯片組
412,421 460 :寄存器
413 :存儲器
414 =SMI指令輸出/輸入端口
415 =SMI數(shù)據(jù)輸出/輸入端口
CTl CTN =CPU執(zhí)行緒內(nèi)含的該組寄存器
CPU :中央處理單元
PM :節(jié)點/實體主機
VM:虛擬主機
S210 S280 :步驟
P CPU的運算效能
T =CPU的工作周期具體實施方式
現(xiàn)將詳細參考本發(fā)明的示范性實施例,在附圖中說明所述示范性實施例的實例。 另外,凡可能之處,在附圖及實施方式中使用相同標號的元件/構件/符號代表相同或類似 部分。
請參照圖2,圖2是根據(jù)本發(fā)明一實施例說明伺服器系統(tǒng)300的電源管理方法的流 程圖。圖3是根據(jù)本發(fā)明一實施例說明伺服器系統(tǒng)300的示意圖。于本實施例中,在此以 圖3所示的伺服器系統(tǒng)300來執(zhí)行圖2顯示的伺服器系統(tǒng)300電源管理方法。
伺服器系統(tǒng)300具有大量的節(jié)點PM,每個節(jié)點PM可以是伺服器系統(tǒng)300中的實 體主機。這些節(jié)點PM及管理伺服器320皆與網(wǎng)絡310相連。每個節(jié)點PM上皆具備有一 至多個虛擬主機(virtual machine)VM、多個中央處理單元(CPU)以及基本輸入輸出系統(tǒng) (BIOS) 330,以通過網(wǎng)絡310執(zhí)行云端運算功能。管理伺服器320則可通過網(wǎng)絡310來對這 些節(jié)點PM執(zhí)行電源管理。于部分實施例中,管理伺服器320可以是伺服器系統(tǒng)300中某個 節(jié)點PM,或是在節(jié)點PM中其中一個虛擬主機VM的電源管理機制。
在此說明的是,此處所指的實體主機PM可以有多個CPU插槽,因此可以架設許多 具有多核心(core)CPU,例如在實體主機PM中架設多個四核心CPU。每個CPU當中的每個核 心也可以包含有一個或多個執(zhí)行緒(thread)。因此,本實施例將多核心CPU稱為實體CPU, 而將每個實體CPU中的每一個核心稱為核心CPU。并且,每個核心CPU中也可以包括有多個 執(zhí)行緒,而每一個CPU執(zhí)行緒稱為邏輯CPU。藉此,在本實施例以及圖1及圖3中所提及的 CPU可以是實體CPU,可以是核心CPU,也可以是邏輯CPU。
在此說明伺服器系統(tǒng)300的電源管理方法,于本實施例中,此電源管理方法可以 每經(jīng)過一段時間(例如,60秒)便執(zhí)行一次。為了簡化說明,在此將其中一個節(jié)點PM稱為 是一特定節(jié)點。因此,于步驟S210中,管理伺服器320檢測特定節(jié)點內(nèi)CPU所對應的使用 率,并藉此來計算此特定節(jié)點的平均使用率。CPU所對應的使用率系指每個CPU當中的執(zhí)行 緒在執(zhí)行指令的負載程度,因此每個CPU使用率則可以將這個CPU中每個執(zhí)行緒的負載程 度進行平均以計算求得。最高的CPU使用率便是100% (此時CPU中所有的執(zhí)行緒應處于 滿載狀態(tài)),而最低的CPU使用率則為0% (此時CPU中所有的執(zhí)行緒幾乎處于閑置狀態(tài))。
如同上述,由于每個實體節(jié)點PM上皆會包括有多個邏輯CPU或邏輯CPU。因此,在 計算特定節(jié)點中CPU的平均使用率時,便會先行檢測出特定節(jié)點中每個CPU所對應的使用 率。接著,將這些CPU的使用率進行加總并除以特定節(jié)點上CPU的數(shù)量,以計算得到特定節(jié) 點上的CPU平均使用率。
特別提及的是,于本實施例中,管理伺服器320對于各個節(jié)點PM的CPU使用率檢 測、CPU操作參數(shù)檢測及控制,皆可以采用基本輸入輸出系統(tǒng)(BIOS)的軟件(Software ;Sff) 系統(tǒng)管理中斷(System management interrupt ;SMI)機制配合各個節(jié)點PM中的芯片組進 行管理,而不需要通過基板管理控制器(BMC)來進行此電源管理方法,因此可降低節(jié)點PM的架設成本。當然,于其他實施例中,管理伺服器320也可以利用節(jié)點PM中的基板管理控 制器來進行CPU使用率的檢測、操作參數(shù)的檢測、管理與控制,本發(fā)明并不限制于此。
在此詳細說明本實施例如何利用BIOS中的SMI處理程序,藉以取得節(jié)點PM中各 個CPU的使用率、CPU操作參數(shù)。圖4為特定節(jié)點PM中BIOS 330、芯片組410與其中一個 實體CPU的示意圖。為了方便說明,本實施例中所述的實體CPU例如是具有N個執(zhí)行緒的 邏輯CPU,N為一正整數(shù)。每個執(zhí)行緒CTl CTN都內(nèi)含一組寄存器,為便于說明,在此以 CTl CTN來分別表示位在執(zhí)行緒CTl CTN內(nèi)的該組寄存器。于本實施例中,每個節(jié)點 PM可通過其中的芯片組(chipset)410來產(chǎn)生SMI信號。
舉例來說,芯片組410包括有表單指向寄存器412、SMI指令輸出/輸入端口(SMI command I/O Port) 414 及 SMI 數(shù)據(jù)輸出 / 輸入端口(SMI Data I/O Port) 415。于本實施 例中,SMI指令輸出/輸入端口 414及SMI數(shù)據(jù)輸出/輸入端口 415是通過寄存器來實現(xiàn)。 SMI指令輸出/輸入端口 414及SMI數(shù)據(jù)輸出/輸入端口 415用以進行SW SMI機制的SMI 指令及數(shù)據(jù)存取,而表單指向寄存器412儲存有一存儲器地址,藉以指向至存儲器(memory buffer) 413中諸多表單的存放處,讓BIOS 330的SMI處理程序(SMI handler)得以參考 下述的CPU目前使用率狀態(tài)表、CPU的運算效能P及工作周期T范圍表、CPU的運算效能P 及工作周期T操作參數(shù)表等表單,藉以提供操作的所需的輸入、輸出參數(shù)。在實作中,假設 SMI指令輸出/輸入端口 414的地址為B2且SMI數(shù)據(jù)輸出/輸入端口 415的地址為B3,且 定義H)值為SW SMI機制的CPU執(zhí)行緒的管理命令。
因此,請參照圖4,當芯片組410將H)值寫入SMI指令輸出/輸入端口 414的地址 B2時,B2將產(chǎn)生一個SMI信號至實體CPU,實體CPU將會立刻跳至BIOS 330中對應的SMI 處理程序(SMI handler)以處理此SMI信號。詳言之,實體CPU將會讀取SMI指令輸出/ 輸入端口 414的地址B2中的值而得H)值,此時實體CPU將會執(zhí)行CPU執(zhí)行緒的管理程序, 此程序會進一步讀取SMI數(shù)據(jù)輸出/輸入端口 415的地址B3中的值以便進一步得知要做 何工作。于此處,本實施例定義SMI數(shù)據(jù)輸出/輸入端口 415的地址B3中的值如下
O—從CPU寄存器所取得的目前的CPU使用率。
I—從CPU寄存器所取得的CPU運算效能P、工作周期T的最大值與最小值。
2-從CPU寄存器所取得目前的運算效能P、工作周期T的值。
3—對CPU寄存器所設定的運算效能P、工作周期T的值。
因此,CPU執(zhí)行緒的管理程序?qū)腥缟系墓ぷ饕M行,但是這些工作所需的輸 入、輸出參數(shù)可由表單指向寄存器412所指向的存儲器(memory buffer) 413中諸多表單取 得。
當芯片組410發(fā)出SMI信號至CPU后,CPU中的執(zhí)行緒都會收到此SMI信號,然后 每個執(zhí)行緒便會到BIOS 330中讀取各自對應的SMI處理程序來執(zhí)行,藉以取得對應CPU的 使用率,并依照操作參數(shù)控制對應的CPU。
為了便于說明,在此以實體CPU中一執(zhí)行緒對應的一組寄存器CTl作為舉例,而圖 4省略了其他寄存器組(例如,寄存器組CT2 CTN)當中的架構,因為其架構與寄存器組 CTl應為相同。于本實施例中,每個寄存器組CTl CTN包括有系統(tǒng)管理模式基底寄存器 (system management mode base register) 450 ;用以控制及暫存運算效能P的現(xiàn)狀、P最大 值及P最小值的P現(xiàn)狀寄存器421、P最大值寄存器422及P最小值寄存器423 ;以及,用以控制及暫存工作周期T的現(xiàn)狀、T最大值及T最小值的T現(xiàn)狀寄存器431、T最大值寄存器 432及T最小值寄存器433。SMM (system management mode)基底寄存器450用以暫存BIOS 330中的地址起始點,藉以儲存各個執(zhí)行緒中所需執(zhí)行的SMI處理程序的進入點(entry)。 此外,寄存器組CTl CTN還包括可暫存此執(zhí)行緒使用率的CPU使用率寄存器460。
通過上述架構,CPU中的各個執(zhí)行緒在接收到SMI信號后,便利用SMM(system management mode)基底寄存器450中所儲存的地址起始點以跳至SMI處理程序的進入點, 藉以開始執(zhí)行各個執(zhí)行緒對應的SMI處理程序,并將在SMI處理程序中所取得的相關信息 暫存及控制相對應的寄存器421 460中。以目前的實施例流程而言,是利用CPU當中其中 一個稱作系統(tǒng)啟動帶狀處理器(system boot strap processor ;SBSP)的執(zhí)行緒會執(zhí)行正 常的SMI處理程序,其他執(zhí)行緒(稱作應用處理器(application processor))通過信號旗 幟(semaphore)方式來實現(xiàn)與SBSP之間的同步動作,再藉由執(zhí)行RSM指令來一起結束SMI 處理程序,并使CPU離開System Management模式(SMM)。此CPU的SMI機制也就是上述如 何利用BIOS中的SMI接口取得節(jié)點PM中各個CPU的使用率、CPU操作參數(shù)及使用操作參 數(shù)控制CPU的P及T的操作的相關動作。
另一方面,上述的SMI處理程序的流程略述如下。首先,此SMI處理程序會先分析 由芯片組410傳送來的SMI信號,以判斷所需執(zhí)行的動作。舉例而言,本實施例將SMI信號 分為以下四種
指令O—取得CPU目前使用率。
指令1一取得CPU運算效能P、工作周期T的最大值及最小值的狀態(tài)信息。
指令2—取得CPU目前的運算效能P、工作周期T的狀態(tài)信息。
指令3—設定CPU現(xiàn)在的運算效能P、工作周期T。
在分析完SMI信號之后,SMI處理程序會通過芯片組410中表單指向寄存器412所 指出的各種表單,并依據(jù)上述指令來執(zhí)行相對應的動作。例如,通過這些表單來得知其指令 的輸出及輸入?yún)?shù)為何。
回到圖2及圖3,于步驟S215中,管理伺服器320接著便依據(jù)由步驟S210計算得 到的平均使用率來判斷此特定節(jié)點的負載狀態(tài)。于本實施例中,管理伺服器320可利用內(nèi) 建的CPU平均使用率狀態(tài)表來判斷每一個節(jié)點目前的負載狀態(tài),而此CPU平均使用率狀態(tài) 表亦可由使用者進行調(diào)整與設定。
圖5為管理伺服器320中的CPU平均使用率狀態(tài)表。如圖5所示,由于CPU使用 率最高便是100%,因此當特定節(jié)點的平均使用率高于最大CPU門檻值(例如,95% )且小 于等于100%時,管理伺服器320便將特定節(jié)點的狀態(tài)設定為滿載負載狀態(tài),換句話說,將 特定節(jié)點的狀態(tài)碼設定為5。當平均使用率高于高度CPU門檻值(例如,80%)且低于最大 CPU門檻值(95% )時,則將此特定節(jié)點的狀態(tài)設定為高度負載狀態(tài)(設定特定節(jié)點的狀態(tài) 碼為4)。
依此類推,當平均使用率高于低度CPU門檻值(例如,40% )且低于高度CPU門檻 值(80% )時,表示此特定節(jié)點位于較佳的電源消耗功率中,而特定節(jié)點上的虛擬主機VM皆 可在不影響其效能下正常執(zhí)行,因此則將此特定節(jié)點的狀態(tài)設定為正常負載狀態(tài)(設定特 定節(jié)點的狀態(tài)碼為3)。以及,當平均使用率分別低于低度CPU門檻值(40% )或甚至低于 閑置CPU門檻值(10% )時,則將此特定節(jié)點的狀態(tài)分別設定為低度負載狀態(tài)(設定特定節(jié)點的狀態(tài)碼為2)或是閑置負載狀態(tài)(設定特定節(jié)點的狀態(tài)碼為I)。
回到圖2,接著進入步驟S220,管理伺服器320分別判斷每個節(jié)點PM的負載狀態(tài)。 如果每個節(jié)點PM的負載狀態(tài)皆為正常負載狀態(tài),便可直接進入步驟S225以結束本次的電 源管理方法。當特定節(jié)點的負載狀態(tài)低于正常負載狀態(tài)(狀態(tài)碼為3)的時候(例如,當特 定節(jié)點位于低度負載狀態(tài)(狀態(tài)碼為2)或閑置負載狀態(tài)(狀態(tài)碼為1)),便由步驟S220進 入步驟S230,管理伺服器320便調(diào)整此特定節(jié)點中的CPU操作參數(shù)(例如,CPU的運算效能 P及工作周期(duty cycle) T)以降低CPU的處理速度,并期望使此狀態(tài)回到正常負載狀態(tài), 藉以節(jié)省此特定節(jié)點中的電源消耗。
相對而言,當特定節(jié)點的負載狀態(tài)高于正常負載狀態(tài)(狀態(tài)碼為3)的時候(例 如,當特定節(jié)點位于滿載負載狀態(tài)(狀態(tài)碼為5)或高度負載狀態(tài)(狀態(tài)碼為4)),便由步驟 S220進入步驟S240,管理伺服器320依此調(diào)整特定節(jié)點中的CPU操作參數(shù)(例如,CPU的 運算效能P或工作周期(duty cycle) T)以提高CPU的處理速度,并期望使此狀態(tài)回到正常 負載狀態(tài)。
在此說明本實施例如何利用調(diào)整特定節(jié)點中的CPU操作參數(shù)來降低/提高CPU處 理速度。于本實施例中,CPU處理速度的調(diào)整是管理伺服器320利用BIOS的SMI接口,并 對每個CPU的運算效能P及工作周期T利用一 CPU操作參數(shù)表來進行調(diào)整,圖6為本發(fā)明 實施例所述的CPU操作參數(shù)表。
于圖6中,CPU操作參數(shù)碼用以設定每個CPU的運算效能P及工作周期T。運算效 能P及工作周期T在圖4中則是以百分比作為舉例,例如,當某一 CPU的操作參數(shù)碼被設定 為I時,表示此CPU的運算效能P被設定為最大值(100% ),而此CPU的工作周期T亦被設 定為最大值(100%),以使CPU能夠以最大額度的處理速度來處理指令。相對而言,當某一 CPU的操作參數(shù)碼被設定為8時,表示此CPU的運算效能P則被設定為最大值的25%,而此 CPU的工作周期T亦被設定為最大值的12. 5%,以使CPU能夠以最低限度的處理速度來處 理指令。在此特別說明的是,應用本實施例者可依據(jù)其需求來調(diào)整圖6的CPU操作參數(shù)表 中的數(shù)據(jù),本發(fā)明不應以此為限。
在此利用圖6并舉例說明步驟S240。假設特定節(jié)點的負載狀態(tài)為高度負載狀態(tài) (狀態(tài)碼為4),且特定節(jié)點中每一個CPU的操作參數(shù)碼皆設定為4,亦即特定節(jié)點中每一個 CPU的的運算效能P設定為最大值的70%,其工作周期T亦被設定為最大值的62. 5%。因 為特定節(jié)點的負載狀態(tài)(高度負載狀態(tài)的狀態(tài)碼為4)高于正常負載狀態(tài)(狀態(tài)碼為3),因 此于步驟S240中,管理伺服器320首先取得特定節(jié)點中先前設定的CPU操作參數(shù)碼(4),并 且減少特定節(jié)點中CPU操作參數(shù)碼的數(shù)值(例如將CPU操作參數(shù)碼由4減少至3),以提升 CPU的處理速度。
相對來說,在此利用圖6并舉例說明步驟S230。假設特定節(jié)點的負載狀態(tài)為低度 負載狀態(tài)(狀態(tài)碼為2),且特定節(jié)點中每一個CPU的操作參數(shù)碼亦設定為4。因為特定節(jié) 點的負載狀態(tài)(低度負載狀態(tài)的狀態(tài)碼為2)低于正常負載狀態(tài)(狀態(tài)碼為3),因此于步驟 S230中,管理伺服器320首先取得特定節(jié)點中先前設定的CPU操作參數(shù)碼(4),并且降低特 定節(jié)點中CPU操作參數(shù)碼的數(shù)值(例如將CPU操作參數(shù)碼由4提升至5),以降低CPU的處 理速度,并期望特定節(jié)點的負載狀態(tài)能夠藉此回到正常負載狀態(tài)。
有鑒于此,本發(fā)明實施例的電源管理方法可基于時間相依(time locality)原則,依據(jù)此次在每個節(jié)點中檢測得到的平均CPU使用率來預測出下次每個節(jié)點的負載狀態(tài),進 而對CPU的操作參數(shù)進行調(diào)整,以期望下次每個節(jié)點的平均使用率皆能回到正常負載狀態(tài) 中。
但是,如果特定節(jié)點的負載狀態(tài)已經(jīng)為滿載負載狀態(tài)(狀態(tài)碼為5),且此特定節(jié) 點中每一個CPU的操作參數(shù)碼已被設定為1,亦即每個CPU皆位于滿載狀態(tài),此時上述的電 源管理方法已無法進行更多的調(diào)整來使每個節(jié)點回到正常負載狀態(tài)?;蚴牵绻囟ü?jié)點 的負載狀態(tài)已經(jīng)為閑置負載狀態(tài)(狀態(tài)碼為I),且此特定節(jié)點中每一個CPU的操作參數(shù)碼 已被設定為8,亦即特定節(jié)點中每個CPU幾乎位于閑置狀態(tài),此時上述的電源管理方法已無 法進行更多的調(diào)整來使每個節(jié)點回到正常負載狀態(tài)。因此,本發(fā)明實施例便結合以往的電 源管理機制來完善此電源管理方法。
請繼續(xù)參照圖2,于步驟S250中,當特定節(jié)點的負載狀態(tài)已經(jīng)為閑置負載狀態(tài)(狀 態(tài)碼為I),且此特定節(jié)點中每一個CPU的處理速度已降至最低時(亦即,CPU的工作參數(shù)碼 已被設定為8),則表示降低特定節(jié)點的CPU的處理速度已經(jīng)無法使特定節(jié)點的負載狀態(tài)回 到正常負載狀態(tài)時,則進入步驟S270,管理伺服器320進行虛擬主機VM的即時轉移程序,以 平衡這些節(jié)點PM所承受的負載。
如果虛擬主機VM的即時轉移程序仍然無法使特定節(jié)點的負載狀態(tài)回到正常負載 狀態(tài)時,則進行節(jié)點關閉程序,配合虛擬主機VM的即時轉移程序,將某些節(jié)點PM中的虛擬 主機VM全數(shù)轉移至其他節(jié)點PM中,并關閉已沒有虛擬主機VM在其中的節(jié)點PM,以減少運 作中節(jié)點PM的數(shù)量。相對而言,在步驟S250中,如果降低特定節(jié)點的CPU的處理速度可以 使狀態(tài)回到正常負載狀態(tài)時,便可從步驟S250回到步驟S225以結束本次電源管理方法。而 在執(zhí)行步驟S270完畢之后,亦回到步驟S225以結束本次電源管理方法。
請繼續(xù)參考圖2,于步驟S260中,當特定節(jié)點的負載狀態(tài)已經(jīng)為滿載負載狀態(tài)(狀 態(tài)碼為5),且此特定節(jié)點中每一個CPU的處理速度已提升至最高時(亦即,CPU的工作參數(shù) 碼已被設定為I),則進入步驟S280,管理伺服器320便進行虛擬主機VM的即時轉移程序, 以平衡這些節(jié)點PM所承受的負載。
如果虛擬主機VM的即時轉移程序仍然無法使特定節(jié)點的負載狀態(tài)回到正常負載 狀態(tài)時,則進行節(jié)點啟動程序以開啟/再啟動未運作的節(jié)點PM,并配合虛擬主機VM的即時 轉移程序?qū)⑻摂M主機VM依據(jù)其負載程度進行節(jié)點PM之間的轉移,以在不影響虛擬主機VM 的工作效率之下來節(jié)省電源。并且,類似于步驟S250及S270,在步驟S260中,如果降低特 定節(jié)點的CPU的處理速度可以使狀態(tài)回到正常負載狀態(tài)時,便可從步驟S260回到步驟S225 以結束本次電源管理方法。而在執(zhí)行步驟S280完畢之后,亦回到步驟S225以結束本次電 源管理方法。
綜上所述,由于以往的電源管理機制在執(zhí)行過程中會占據(jù)較多系統(tǒng)資源、也耗費 較多的處理時間。藉此,本發(fā)明實施例可依據(jù)每個節(jié)點的整體負載(亦即各節(jié)點的中央處 理單元(CPU)的使用率)來動態(tài)調(diào)整中央處理單元(CPU)的運轉速度,使得各個CPU能夠 在正常負載狀態(tài)中進行運轉,以在不影響虛擬主機的工作效率、不占據(jù)系統(tǒng)資源之下節(jié)省 電源消耗。
藉此,本發(fā)明實施例可避免經(jīng)常性地執(zhí)行虛擬主機的即時轉移及節(jié)點關閉/節(jié)點 啟動,免除了云端運算效率的降低。當調(diào)整CPU轉速仍無法使伺服器系統(tǒng)運作在較佳的耗電效率時,再通過以往的電源管理機制以達到最佳的電源管理功效。
雖然本發(fā)明已以實施例揭示如上,然其并非用以限定本發(fā)明,任何所屬技術領域的普通技術人員,當可作些許更動與潤飾,而不脫離本發(fā)明的精神和范圍。
權利要求
1.一種伺服器系統(tǒng)的電源管理方法,其中該伺服器系統(tǒng)包括多個節(jié)點,該伺服器系統(tǒng)的電源管理方法包括下列步驟檢測一特定節(jié)點中至少一中央處理單元所對應的至少一使用率以計算該特定節(jié)點的一平均使用率,其中該特定節(jié)點是該些節(jié)點的其一;依據(jù)該平均使用率判斷該特定節(jié)點的一狀態(tài);當該狀態(tài)低于一正常負載狀態(tài)時,調(diào)整該特定節(jié)點中該中央處理單元的一操作參數(shù)以降低該中央處理單元的處理速度,以使該狀態(tài)回到該正常負載狀態(tài);以及當該狀態(tài)高于該正常負載狀態(tài)時,調(diào)整該操作參數(shù)以提升該中央處理單元的處理速度,以使該狀態(tài)回到該正常負載狀態(tài)。
2.根據(jù)權利要求1所述的伺服器系統(tǒng)的電源管理方法,其中還包括下列步驟當調(diào)整該操作參數(shù)無法使該狀態(tài)回到該正常負載狀態(tài)時,進行一虛擬主機即時轉移程序,以平衡該些節(jié)點的負載。
3.根據(jù)權利要求2所述的伺服器系統(tǒng)的電源管理方法,其中還包括下列步驟當降低該中央處理單元的處理速度無法使該狀態(tài)回到該正常負載狀態(tài)時,進行一節(jié)點關閉程序并配合該虛擬主機即時轉移程序,以使運作中的每一節(jié)點的該狀態(tài)回到該正常負載狀態(tài)。
4.根據(jù)權利要求2所述的伺服器系統(tǒng)的電源管理方法,其中還包括下列步驟當提升該中央處理單元的處理速度無法使該狀態(tài)回到該正常負載狀態(tài)時,進行一節(jié)點啟動程序并配合該虛擬主機即時轉移程序,以使運作中的每一節(jié)點的該狀態(tài)回到該正常負載狀態(tài)。
5.根據(jù)權利要求1所述的伺服器系統(tǒng)的電源管理方法,其中判斷該特定節(jié)點的該狀態(tài)包括下列步驟當該平均使用率高于一最大中央處理單元門檻值時,將該狀態(tài)設定為一滿載負載狀態(tài);當該平均使用率高于一高度中央處理單元門檻值且低于該最大中央處理單元門檻值時,將該狀態(tài)設定為一高度負載狀態(tài);當該平均使用率高于一低度中央處理單元門檻值且低于該高度中央處理單元門檻值時,將該狀態(tài)設定為該正常負載狀態(tài);當該平均使用率低于該低度中央處理單元門檻值時,將該中央處理單元的該狀態(tài)設定為該低度負載狀態(tài),其中,該滿載負載狀態(tài)及該高度負載狀態(tài)高于該正常負載狀態(tài),且該低度負載狀態(tài)低于該正常負載狀態(tài)。
6.根據(jù)權利要求5所述的伺服器系統(tǒng)的電源管理方法,其中判斷該特定節(jié)點的該狀態(tài)還包括下列步驟當該平均使用率低于一閑置中央處理單元門檻值時,將該狀態(tài)設定為該閑置負載狀態(tài),其中該閑置中央處理單元門檻值低于該低度中央處理單元門檻值,且該閑置負載狀態(tài)低于該正常負載狀態(tài)。
7.根據(jù)權利要求1所述的伺服器系統(tǒng)的電源管理方法,其中該中央處理單元的該操作參數(shù)為該中央處理單元的一運算效能或一工作周期。
8.—種伺服器系統(tǒng),包括多個節(jié)點,每一節(jié)點耦接至一網(wǎng)絡,且每一節(jié)點包括至少一中央處理單元;一管理伺服器,耦接至該網(wǎng)絡,該管理伺服器檢測一特定節(jié)點中該中央處理單元所對應的一使用率以計算該特定節(jié)點的一平均使用率,依據(jù)該平均使用率判斷該特定節(jié)點的一狀態(tài),當該狀態(tài)低于一正常負載狀態(tài)時,調(diào)整該特定節(jié)點中該中央處理單元的一操作參數(shù)以降低該中央處理單元的處理速度,且當該狀態(tài)高于該正常負載狀態(tài)時,調(diào)整該操作參數(shù)以提升該中央處理單元的處理速度,以使該狀態(tài)回到該正常負載狀態(tài),其中該特定節(jié)點為該些節(jié)點的其一。
9.根據(jù)權利要求8所述的伺服器系統(tǒng),當降低該中央處理單元的處理速度無法使該狀態(tài)回到該正常負載狀態(tài)時,該管理伺服器進行一虛擬主機即時轉移程序及一節(jié)點關閉程序,以使運作中的每一節(jié)點的該狀態(tài)回到該正常負載狀態(tài)。
10.根據(jù)權利要求8所述的伺服器系統(tǒng),當提升該中央處理單元的處理速度無法使該狀態(tài)回到該正常負載狀態(tài)時,該管理伺服器進行一節(jié)點啟動程序并配合一虛擬主機即時轉移程序,以使運作中的每一節(jié)點的該狀態(tài)回到該正常負載狀態(tài)。
全文摘要
一種伺服器系統(tǒng)及其電源管理方法。伺服器系統(tǒng)的電源管理方法包括下列步驟檢測一特定節(jié)點中至少一中央處理單元(CPU)所對應的一使用率以計算特定節(jié)點的平均使用率。依據(jù)平均使用率判斷此特定節(jié)點的狀態(tài)。當此狀態(tài)低于正常負載狀態(tài)時,調(diào)整CPU的操作參數(shù)以降低CPU的處理速度。以及,當此狀態(tài)高于正常負載狀態(tài)時,調(diào)整CPU的操作參數(shù)以提升CPU的處理速度,藉以使上述狀態(tài)回到正常負載狀態(tài)。本電源管理方法依據(jù)節(jié)點的中央處理單元(CPU)使用率來動態(tài)調(diào)整CPU的運算效能及工作周期,以在不影響虛擬主機的工作效率之下節(jié)省電源消耗。
文檔編號G06F1/32GK103034539SQ20111029621
公開日2013年4月10日 申請日期2011年9月30日 優(yōu)先權日2011年9月30日
發(fā)明者盧盈志 申請人:英業(yè)達股份有限公司