摘 要: 基于動態(tài)負反饋的機制,參考現有的加權最小連接數調度和輪轉調度算法,設計出了改進后的負載均衡調度算法。通過負反饋機制計算每臺服務器的綜合負載權重值,而綜合負載權重值直接體現著服務器的當前處理能力。調度服務器根據綜合負載權重值分配工作負載,實現負載的均衡分布。
關鍵詞: Red5流媒體服務器;集群技術;負載均衡
1 常用負載均衡算法
常見的負載均衡調度算法有:輪轉調度算法、加權輪轉調度算法、最小連接數調度算法、加權最小連接數調度算法、目標地址哈希散列調度算法、源地址哈希散列調度算法等[1]。
下面主要介紹輪轉調度算法和加權最小連接數調度算法的思想。
(1)輪轉調度算法[2]
輪轉調度算法平等地對待集群中各個服務器,認為所有服務器具有相同的處理性能。此算法將所有的n臺服務器當作一個任務隊列,當一個新的用戶連接請求到來時,執(zhí)行i=(i+1)modi,然后分配任務給第i臺服務器。
(2)加權最小連接數調度算法[3]
加權輪轉調度算法是輪轉調度算法的改進,加權最小連接數調度算法是最小連接數調度算法的進一步改進,它很好地改進了最小連接數調度算法無法很好地處理集群中服務器間處理性能差異較大的缺點。即此時滿足條件的服務器就是集群中正在處理的請求連接數與自身權值的比值最小的服務器,就認為它是當前負載最小的服務器,負載均衡器就會把新的請求連接交給這臺服務器來處理。
2 動態(tài)反饋機制
負載均衡調度服務器收集負載信息的本質,就是每臺服務器節(jié)點將自身的負載情況反饋給調度服務器的過程。這就是動態(tài)反饋機制[4],如圖1所示。
圖1中,W為服務器更新之前狀態(tài)時的權值,集群中每臺服務器節(jié)點都會定期與調度服務器交互,將自身的負載信息情況反饋給調度服務器。在負載均衡調度服務器上,根據設計好的算法F()將這些負載信息進行處理,重新調整當前情況下服務器的新權值W′,然后更新負載信息表,這樣能夠更好地反映出當前服務器的負載情況。
3 動態(tài)負反饋機制負載均衡調度算法
3.1 流媒體服務器綜合權值的計算
借鑒加權最小連接數調度算法的思想,應該為每臺流媒體服務器設定一個綜合權值。計算綜合權值所需要的指標如下[5]:
SCPUi:代表集群中第i臺流媒體服務器的CPU使用率;
SMemi:代表集群中第i臺流媒體服務器的內存使用率;
SNeti:代表集群中第i臺流媒體服務器的網絡帶寬占用率;
SDiski:代表集群中第i臺流媒體服務器的硬盤I/O占用率;
SRoomi:代表集群中第i臺流媒體服務器的聊天室數量占用率。
(1)Red5流媒體服務器開始運行后,將加入到集群中,同時會在負載均衡調度服務器上進行注冊,將自身相關信息(IP、提供服務的端口號等)發(fā)送給調度服務器;
(2)調度服務器周期性地與每臺流媒體服務器交互(設定周期時間為10 s),采集負載信息。在流媒體服務器上,負載信息收集線程收集實時負載,通過式(2)計算實時負載Loadi,并將Loadi發(fā)送給調度服務器;
(3)調度服務器與流媒體服務器之間通過心跳檢測進行檢測,如果3 min內調度服務器未收到流媒體服務器的心跳,則該服務器不可用;
(4)如果當前流媒體服務器上某個負載評估指標超過設定的負載上限閾值,發(fā)送過載通知;
(5)調度服務器將維護一張綜合負載權重值表,在收集并計算每臺流媒體服務器的綜合負載之后,通過式(9)計算出綜合負載權重值W′i,更新表中數據;
(6)根據新的權值,調度服務器將所有正常工作的服務器按照權值從高到低分為三組;
(7)新的請求到來時,根據步驟(6)中所分出的權重值最大的一組,依照輪詢調度算法思想分配任務;
(8)判斷是否是新的采樣周期,如果不是則繼續(xù)步驟(7),否則轉向步驟(2);
(9)如果當前沒有合適的服務器,則暫時停止響應用戶請求,通知用戶等待。
4 算法測試與分析
評價集群系統整體性能有一個重要的參數指標:平均響應時間。測試所用環(huán)境如表1、表2所示。
根據表3的數據,在并發(fā)請求數量不是很多的情況下,兩種算法的平均響應時間差不多。當并發(fā)量逐漸增大后,這時改進算法的效率明顯優(yōu)于加權最小連接數調度算法。
集群系統的穩(wěn)定性也是必須需要考慮的問題。當采用加權最小連接數調度算法時,每臺Red5流媒體服務器的負載情況變化如圖2所示(采樣周期為10 s)。
從圖2和圖3可知,改進的負載均衡調度算法很好地保證了整個集群的負載均衡,同時也能很好地處理當大量并發(fā)請求到來時的情況。
本文通過在輪轉調度算法和動態(tài)加權最小連接數調度算法的基礎上,設計了一種基于動態(tài)負反饋機制的負載均衡調度算法,能夠更好地考慮到集群中每臺流媒體服務器的處理性能,達到更好地負載均衡效率。而通過實驗對比,可知改進的負載均衡調度算法具有更短的平均用戶響應時間,也能保證集群長時間的穩(wěn)定運行,能夠達到負載均衡的目的。
參考文獻
[1] 買京京.Web服務器集群負載均衡技術研究[D].太原:中北大學,2008.
[2] 童瑞霞.基于動態(tài)反饋機制的集群負載均衡算法研究[D].武漢:武漢理工大學,2011.
[3] 秦曉晨.基于動態(tài)負載均衡技術的培訓系統的設計與實現[D].西安:西安電子科技大學,2012.
[4] 陳廣東.流媒體服務器集群負載均衡算法研究[D].武漢:華中師范大學,2007.
[5] 張洪武.服務器集群與均衡技術研究[D].重慶:重慶大學,2005.