一種基於負反饋的伺服器集群分組調度方法與流程
2023-09-20 08:22:45 1

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