本發(fā)明涉及服務器能耗管理技術領域,尤其涉及一種大規(guī)模服務器集群的在線能耗管理方法與裝置。
背景技術:
網絡服務運營商通常是按峰值負載來部署服務器集群(簡稱集群)的規(guī)模,但平時運營時的負載通常遠低于峰值負載,因此必須根據(jù)實際的負載狀況動態(tài)管理集群的規(guī)模以進行節(jié)能,從而降低運營成本。為了最大化的節(jié)能,很多已有的方法通過定義變量描述集群中各個服務器的開關和CPU頻率,將能耗管理問題描述成規(guī)劃問題,然后求解。但他們都是針對單個服務器定義規(guī)劃變量,當集群規(guī)模很大時,變量數(shù)目巨大,給規(guī)劃問題的在線求解帶來困難,從而無法做到在線實時管理。
技術實現(xiàn)要素:
本發(fā)明實施例所要解決的技術問題在于,如何在保證開啟服務器的CPU利用率等于給定目標值的前提下,根據(jù)負載狀況動態(tài)管理集群中的服務器使得集群的能耗最小,尤其是當集群規(guī)模較大時,如何使得管理依然能夠在線實時進行。
為了解決上述技術問題,本發(fā)明提出了一種大規(guī)模服務器集群的在線能耗管理方法,包括具體以下步驟:
S1:測定在保證CPU利用率等于給定目標值的前提下服務器集群中各型號服務器的各個頻率對應的負載和功耗;
S2:根據(jù)負載歷史信息預測下一個管理周期的負載;
S3:針對所述服務器集群中的每種服務器型號定義變量,將能耗最小作為目標,將所有服務器的負載和等于所預測的負載作為約束條件,將能耗管理問題描述成規(guī)劃問題;
S4:對所述規(guī)劃問題進行求解;
S5:根據(jù)所述求解結果確定所述服務器集群中各服務器的開關狀態(tài)和工作頻率;
S6:根據(jù)所確定的所述服務器集群中各服務器的工作頻率確定各服務器的負載;
S7:根據(jù)所確定的所述服務器集群中各服務器的開關狀態(tài),工作頻率和負載,對各服務器實施管理。
具體地,所述負載為平均請求速率,所述工作頻率為CPU頻率。
進一步地,所述步驟S3進一步包括:針對服務器集群中的每種服務器型號定義兩個規(guī)劃變量,一個是開啟服務器的數(shù)量n,一個是服務器的工作頻率f。
更進一步地,所述步驟S5進一步包括:根據(jù)求解得到的每種服務器型號的開啟服務器數(shù)量n和服務器工作頻率f,確定該種型號各個服務器的開關狀態(tài)和工作頻率:
當n=0,關閉所有服務器;
當n>0,且f等于該種型號服務器的某個離散頻率值,僅開啟n臺服務器,且讓它們工作在頻率f上;
當n>0,且f介于該種型號服務器的兩個離散頻率fi和fi+1(fi<fi+1)之間,僅開啟n臺服務器,其中(表示不超過x的最大整數(shù))臺工作在頻率fi+1上,臺工作在頻率fi上,1臺在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于工作在頻率fi上的時間與總時間的比值等于
更進一步地,所述步驟S6進一步包括:根據(jù)所確定的服務器的工作頻率,以及所測定的當該服務器工作于離散頻率fi時使該服務器CPU利用率等于給定目標值的負載值λi,確定該服務器承擔的負載:
當服務器工作在某個離散頻率fi上,該服務器承擔的負載為λi;
當服務器在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于η,工作在頻率fi上的時間與總時間的比值等于1-η,該服務器承擔的負載為(1-η)*λi+η*λi+1。
相應地,本發(fā)明還提出了一種大規(guī)模服務器集群的在線能耗管理裝置,包括:
參數(shù)測定模塊,用于測定在保證CPU利用率等于給定目標值的前提下服務器集群中各型號服務器的各個頻率對應的負載和功耗;
負載預測模塊,用于根據(jù)負載歷史信息預測下一個管理周期的負載;
規(guī)劃問題描述模塊,用于針對所述服務器集群中的每種服務器型號定義變量,將能耗最小作為目標,將所有服務器的負載和等于所預測的負載作為約束條件,將能耗管理問題描述成規(guī)劃問題;
規(guī)劃問題求解模塊,用于對所述規(guī)劃問題進行求解;
狀態(tài)和頻率確定模塊,用于根據(jù)所述求解結果確定所述服務器集群中各服務器的開關狀態(tài)和工作頻率;
負載確定模塊,用于根據(jù)所確定的所述服務器集群中各服務器的工作頻率確定各服務器的負載;
管理實施模塊,用于根據(jù)所確定的所述服務器集群中各服務器的開關狀態(tài),工作頻率和負載,對各服務器實施管理。
具體地,所述負載為平均請求速率,所述工作頻率為CPU頻率。
進一步地,所述規(guī)劃問題描述模塊進一步包括:針對服務器集群中的每種服務器型號定義兩個規(guī)劃變量,一個是開啟服務器的數(shù)量n,一個是服務器的工作頻率f。
更進一步地,所述狀態(tài)和頻率確定模塊進一步包括:根據(jù)求解得到的每種服務器型號的開啟服務器數(shù)量n和服務器工作頻率f,確定該種型號各個服務器的開關狀態(tài)和工作頻率:
當n=0,關閉所有服務器;
當n>0,且f等于該種型號服務器的某個離散頻率值,僅開啟n臺服務器,且讓它們工作在頻率f上;
當n>0,且f介于該種型號服務器的兩個離散頻率fi和fi+1(fi<fi+1)之間,僅開啟n臺服務器,其中(表示不超過x的最大整數(shù))臺工作在頻率fi+1上,臺工作在頻率fi上,1臺在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于工作在頻率fi上的時間與總時間的比值等于
更進一步地,所述負載確定模塊進一步包括:根據(jù)所確定的服務器的工作頻率,以及所測定的當該服務器工作于離散頻率fi時使該服務器CPU利用率等于給定目標值的負載值λi,確定該服務器承擔的負載:
當服務器工作在某個離散頻率fi上,該服務器承擔的負載為λi;
當服務器在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于η,工作在頻率fi上的時間與總時間的比值等于1-η,該服務器承擔的負載為(1-η)*λi+η*λi+1。
本發(fā)明所公開的一種大規(guī)模服務器集群的在線能耗管理方法,在保證開啟服務器的CPU利用率等于給定目標值的前提下,根據(jù)負載狀況動態(tài)管理集群中的服務器使得集群的能耗最小;即使應用于大規(guī)模的集群,管理依然能夠在線實時進行;允許服務器頻率在兩個相鄰的離散頻率之間切換以避免性能浪費,同時又盡量減少需要在兩個頻率之間切換的服務器數(shù)量以減少切換開銷。本發(fā)明還公開了一種大規(guī)模服務器集群的在線能耗管理裝置。
附圖說明
通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點,附圖是示意性的而不應理解為對本發(fā)明進行任何限制,在附圖中:
圖1示出了本發(fā)明實施例中的一種大規(guī)模服務器集群的在線能耗管理方法的步驟流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明的實施例進行詳細描述。
如圖1所示,本發(fā)明提供了一種大規(guī)模服務器集群的在線能耗管理方法,包括具體以下步驟:
步驟S1:測定在保證CPU利用率等于給定目標值的前提下服務器集群中各型號服務器的各個頻率對應的負載和功耗,其中,負載為平均請求速率。
步驟S2:根據(jù)負載歷史信息預測下一個管理周期的負載。
步驟S3:針對服務器集群中的每種服務器型號定義變量,將能耗最小作為目標,將所有服務器的負載和等于預測的負載作為約束條件,將能耗管理問題描述成規(guī)劃問題。
進一步地,步驟S3進一步包括:針對服務器集群中的每種服務器型號定義兩個規(guī)劃變量,一個是開啟服務器的數(shù)量n,一個是服務器的工作頻率f。
步驟S4:對該規(guī)劃問題進行求解。
步驟S5:根據(jù)求解結果確定各服務器的開關狀態(tài)和工作頻率,其中,工作頻率為CPU頻率。
進一步地,步驟S5進一步包括:根據(jù)求解得到的每種服務器型號的開啟服務器數(shù)量n和服務器工作頻率f,確定該種型號各個服務器的開關狀態(tài)和工作頻率:
當n=0,關閉所有服務器;
當n>0,且f等于該種型號服務器的某個離散頻率值,僅開啟n臺服務器,且讓它們工作在頻率f上;
當n>0,且f介于該種型號服務器的兩個離散頻率fi和fi+1(fi<fi+1)之間,僅開啟n臺服務器,其中(表示不超過x的最大整數(shù))臺工作在頻率fi+1上,臺工作在頻率fi上,1臺在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于工作在頻率fi上的時間與總時間的比值等于
步驟S6:根據(jù)所確定的各服務器的工作頻率確定各服務器的負載。
進一步地,步驟S6進一步包括:根據(jù)所確定的服務器的工作頻率,以及所測定的當該服務器工作于離散頻率fi時使該服務器CPU利用率等于給定目標值的負載值λi,確定該服務器承擔的負載:
當服務器工作在某個離散頻率fi上,該服務器承擔的負載為λi;
當服務器在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于η,工作在頻率fi上的時間與總時間的比值等于1-η,該服務器承擔的負載為(1-η)*λi+η*λi+1。
步驟S7:根據(jù)所確定的各服務器的開關狀態(tài),工作頻率和負載,對各服務器實施管理。
本發(fā)明還提供一種大規(guī)模服務器集群的在線能耗管理裝置,包括:參數(shù)測定模塊、負載預測模塊、規(guī)劃問題描述模塊、規(guī)劃問題求解模塊、狀態(tài)和頻率確定模塊、負載確定模塊以及管理實施模塊。
具體地,參數(shù)測定模塊用于測定在保證CPU利用率等于給定目標值的前提下服務器集群中各型號服務器的各個頻率對應的負載和功耗,其中,負載為平均請求速率。
負載預測模塊用于根據(jù)負載歷史信息預測下一個管理周期的負載。
規(guī)劃問題描述模塊用于針對服務器集群中的每種服務器型號定義變量,將能耗最小作為目標,將所有服務器的負載和等于預測的負載作為約束條件,將能耗管理問題描述成規(guī)劃問題。其中,具體的變量定義方式如下:針對服務器集群中的每種服務器型號定義兩個規(guī)劃變量,一個是開啟服務器的數(shù)量n,一個是服務器的工作頻率f。
規(guī)劃問題求解模塊用于對規(guī)劃問題進行求解。
狀態(tài)和頻率確定模塊用于根據(jù)所述求解結果確定各服務器的開關狀態(tài)和工作頻率,其中,工作頻率為CPU頻率。具體地,狀態(tài)和頻率確定模塊根據(jù)求解得到的每種服務器型號的開啟服務器數(shù)量n和服務器工作頻率f,確定該種型號各個服務器的開關狀態(tài)和工作頻率:
當n=0,關閉所有服務器;
當n>0,且f等于該種型號服務器的某個離散頻率值,僅開啟n臺服務器,且讓它們工作在頻率f上;
當n>0,且f介于該種型號服務器的兩個離散頻率fi和fi+1(fi<fi+1)之間,僅開啟n臺服務器,其中(表示不超過x的最大整數(shù))臺工作在頻率fi+1上,臺工作在頻率fi上,1臺在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于工作在頻率fi上的時間與總時間的比值等于
負載確定模塊用于根據(jù)所確定的各服務器的工作頻率確定各服務器的負載。具體地,負載計算模塊根據(jù)所確定的服務器的工作頻率,以及所測定的當該服務器工作于離散頻率fi時使該服務器CPU利用率等于給定目標值的負載值λi,確定該服務器承擔的負載:
當服務器工作在某個離散頻率fi上,該服務器承擔的負載為λi;
當服務器在頻率fi和fi+1之間切換,且工作在頻率fi+1上的時間與總時間的比值等于η,工作在頻率fi上的時間與總時間的比值等于1-η,該服務器承擔的負載為(1-η)*λi+η*λi+1。
管理實施模塊用于根據(jù)所確定的各服務器的開關狀態(tài),工作頻率和負載,對各服務器實施管理。
上述能耗管理周期性地進行,每個管理周期結束時,負載預測模塊首先預測下一個周期的負載,然后根據(jù)所預測的負載來調整各服務器的開關狀態(tài),工作頻率和負載,使得在保證開啟服務器的CPU利用率在給定目標值的前提下集群的總能耗最小。
本發(fā)明具有以下優(yōu)點:
1)最大化節(jié)能。若僅讓服務器工作在離散頻率上,通常會導致服務器性能過剩,從而造成浪費;而本發(fā)明允許服務器頻率在兩個相鄰的離散頻率之間切換以避免性能浪費。
2)大規(guī)模集群的在線管理。在實際的集群中,服務器通常都是一批一批采購的,同一批采購的服務器中有很多都是同型號的。一般來說,集群中服務器型號的數(shù)量通常比服務器的數(shù)量低一個數(shù)量級,故與針對單個服務器定義規(guī)劃變量的方式相比,本發(fā)明的規(guī)劃變量定義方式能大幅度減少變量的數(shù)目,從而能大幅度減少規(guī)劃問題求解的計算量,即使應用于大規(guī)模的集群,規(guī)劃問題依然能夠在線求解。
3)頻率切換開銷小。在本發(fā)明中,對于同種型號的服務器來說,至多只有1臺服務器需要在兩個頻率之間切換,從而能有效減少頻率切換開銷。
以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。