本發(fā)明涉及一種服務(wù)器集群的調(diào)度方法,具體涉及一種基于負(fù)反饋的服務(wù)器集群方法及系統(tǒng)。
背景技術(shù):
隨著云計(jì)算、物聯(lián)網(wǎng)等網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,服務(wù)器集群技術(shù)應(yīng)運(yùn)而生。
服務(wù)器集群一般是由多臺(tái)服務(wù)器通過(guò)高速網(wǎng)絡(luò)連接的集群系統(tǒng),具有高性能、高可用性和高性價(jià)比的特點(diǎn),因此獲得了廣泛的應(yīng)用。然而,隨著數(shù)據(jù)中心規(guī)模的不斷提升,服務(wù)器能耗占用了大量企業(yè)投資,服務(wù)器集群節(jié)能調(diào)度已經(jīng)成為當(dāng)前業(yè)界廣泛關(guān)注的問(wèn)題。
但是,服務(wù)器集群還面臨著負(fù)載強(qiáng)度變化的情況下資源動(dòng)態(tài)管理的問(wèn)題,如果沒(méi)有基于分組的集群調(diào)度方法,可能出現(xiàn)服務(wù)器啟停狀態(tài)切換過(guò)于頻繁、負(fù)載不均衡導(dǎo)致資源利用率和性能下降等問(wèn)題。
在服務(wù)器集群分組調(diào)度中,應(yīng)開(kāi)啟的服務(wù)器數(shù)量是一個(gè)重要參數(shù),開(kāi)啟服務(wù)器數(shù)量過(guò)多,無(wú)法達(dá)到提高服務(wù)器利用率的目的,而開(kāi)啟服務(wù)器數(shù)量過(guò)低,將無(wú)法滿足系統(tǒng)要求。
技術(shù)實(shí)現(xiàn)要素:
鑒于以上問(wèn)題,本發(fā)明提供一種基于負(fù)反饋的服務(wù)器集群分組調(diào)度方法,通過(guò)對(duì)歷史運(yùn)行情況進(jìn)行統(tǒng)計(jì),并通過(guò)負(fù)反饋的方式,自動(dòng)調(diào)節(jié)開(kāi)啟服務(wù)器的數(shù)量,來(lái)改善服務(wù)器集群的資源利用率和能效。
本發(fā)明的技術(shù)方案為:
一種基于負(fù)反饋的服務(wù)器集群分組調(diào)度方法,其步驟為:
1)根據(jù)服務(wù)器第k周期的歷史運(yùn)行狀態(tài),計(jì)算第k周期的最優(yōu)服務(wù)器運(yùn)行數(shù)量;
2)根據(jù)所述最優(yōu)服務(wù)器運(yùn)行數(shù)量及服務(wù)器第k周期的運(yùn)行狀態(tài),用負(fù)反饋的方式得出第k+1周期應(yīng)開(kāi)啟的服務(wù)器數(shù)量。
進(jìn)一步的,計(jì)算所述最優(yōu)服務(wù)器運(yùn)行數(shù)量的方法為:設(shè)第k周期采集到的服務(wù)器cpu利用率及處理性能分別為c=[c1,c2,…,ci,…,cn],p=[p1,p2,…,pi,…,pn],其中,n為第k周期運(yùn)行的服務(wù)器總數(shù),ci為第i個(gè)服務(wù)器cpu利用率,pi為第i個(gè)服務(wù)器的處理性能,ci∈(0,1),pi=0或1;根據(jù)pi取值,將集合c分別劃分為兩個(gè)集合c0和c1,即將處理性能pi取值為0的服務(wù)器cpu利用率添加到集合c0,將處理性能pi取值為1的服務(wù)器cpu利用率添加到集合c1;然后將cpu利用率劃分為多個(gè)區(qū)間,根據(jù)co=argmaxi[ni0/ni1]*h計(jì)算得到第k周期的最優(yōu)運(yùn)行參數(shù)co;其中,ni0為集合c0中cpu利用率在第i個(gè)區(qū)間的樣本個(gè)數(shù),ni1為集合c1中cpu利用率在第i個(gè)區(qū)間的樣本個(gè)數(shù),h為區(qū)間系數(shù)。
進(jìn)一步的,所述處理性能為丟包率,當(dāng)有丟包時(shí)所述處理性能取值為0,當(dāng)沒(méi)有丟包時(shí)所述處理性能取值為1。
進(jìn)一步的,所述區(qū)間系數(shù)h取值為0.1。
進(jìn)一步的,用負(fù)反饋的方式得出第k+1周期應(yīng)開(kāi)啟的服務(wù)器數(shù)量的方法為:計(jì)算第k周期的服務(wù)器cpu平均利用率與第k周期的最佳cpu利用率之間的差值,若該差值大于0,則第k+1周期增加開(kāi)啟服務(wù)器的數(shù)量,反之則減少開(kāi)啟服務(wù)器的數(shù)量。
進(jìn)一步的,利用公式
本發(fā)明有兩個(gè)關(guān)鍵技術(shù):
1)根據(jù)服務(wù)器歷史運(yùn)行狀態(tài),統(tǒng)計(jì)服務(wù)器運(yùn)行的最優(yōu)參數(shù);
2)根據(jù)服務(wù)器運(yùn)行的最優(yōu)參數(shù)及當(dāng)前的運(yùn)行狀態(tài),用負(fù)反饋的方式得出應(yīng)開(kāi)啟的服務(wù)器數(shù)量。
有鑒于此,本發(fā)明的主要內(nèi)容如下:
服務(wù)器運(yùn)行狀態(tài)實(shí)時(shí)采集:以一定的時(shí)間間隔,對(duì)服務(wù)器的cpu利用率及處理性能進(jìn)行實(shí)時(shí)統(tǒng)計(jì),處理性能包括但不限于網(wǎng)卡丟包率。處理性能與服務(wù)器運(yùn)行狀態(tài)信息應(yīng)當(dāng)在時(shí)間上同步。
統(tǒng)計(jì)服務(wù)器最佳運(yùn)行參數(shù):
設(shè)過(guò)去一段時(shí)間采集到的服務(wù)器cpu利用率及處理性能分別為c=[c1,c2,…,ci,…,cn],p=[p1,p2,…,pi,…,pn],其中,ci∈(0,1),pi=0或1。根據(jù)對(duì)應(yīng)的pi的取值,可以將c分別劃分為兩個(gè)集合c0和c1。同時(shí),將cpu利用率劃分為10個(gè)區(qū)間,統(tǒng)計(jì)各個(gè)區(qū)間中的樣本數(shù)量,如下所示。
最優(yōu)的運(yùn)行參數(shù)即為:
co=argmaxi[ni0/ni1]*h,h為區(qū)間系數(shù),本發(fā)明中取值為0.1,該系數(shù)確保co的取值在(0,1)之間。
用負(fù)反饋的方式確定當(dāng)前的最優(yōu)服務(wù)器數(shù)量:
在每次采樣結(jié)束后,計(jì)算當(dāng)前的cpu平均利用率與最佳cpu利用率之間的差值,若當(dāng)前的cpu利用率高于最佳cpu利用率(該差值大于0),則增加開(kāi)啟服務(wù)器的數(shù)量,反之則減少服務(wù)器的數(shù)量。具體計(jì)算公式如下:
其中,m(k+1)是下一個(gè)運(yùn)行周期開(kāi)啟服務(wù)器的數(shù)量,m(k)是當(dāng)前開(kāi)啟的服務(wù)器數(shù)量,
與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果為:
本發(fā)明可以自適應(yīng)的學(xué)習(xí)最優(yōu)的系統(tǒng)運(yùn)行參數(shù),并動(dòng)態(tài)的將系統(tǒng)調(diào)度在最優(yōu)工作狀態(tài)下,可以有較好的性能功耗比。
附圖說(shuō)明
圖1是本發(fā)明中基于負(fù)反饋的服務(wù)器集群分組調(diào)度方法的系統(tǒng)框圖。
圖2是本發(fā)明中基于負(fù)反饋的服務(wù)器分組最優(yōu)服務(wù)器數(shù)量計(jì)算算法示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明所述方法進(jìn)行詳細(xì)說(shuō)明。
如圖1所示,本發(fā)明所述方法在本實(shí)施例中的工作流程是:
步驟101:系統(tǒng)初始化階段,初始化負(fù)載采集周期,負(fù)反饋中的調(diào)整步長(zhǎng)α,初始默認(rèn)開(kāi)啟所有服務(wù)器,之后,系統(tǒng)開(kāi)始對(duì)各個(gè)服務(wù)器的運(yùn)行狀態(tài)和性能進(jìn)行同步采集。
步驟102:在每個(gè)采集周期結(jié)束之后,將每個(gè)核的cpu利用率添加到c0和c1中,將沒(méi)有丟包的cpu利用率添加到c0,將有丟包的cpu利用率添加到c1。處理性能用0和1來(lái)表示是否有丟包,沒(méi)有丟包就是0,有丟包就是1。
步驟103:根據(jù)co=argmaxi[ni0/ni1]*0.1計(jì)算最優(yōu)的服務(wù)器運(yùn)行參數(shù)。
步驟103:計(jì)算當(dāng)前服務(wù)器的平均cpu利用率,記作
步驟104:根據(jù)以下公式,計(jì)算下一個(gè)周期應(yīng)開(kāi)啟的服務(wù)器數(shù)量
步驟105:利用動(dòng)態(tài)負(fù)載均衡的方法,將流量集中調(diào)度到m(k+1)臺(tái)服務(wù)器上。
以上實(shí)施僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書(shū)所述為準(zhǔn)。