《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > 基于Red5服务器集群负载均衡调度算法研究
基于Red5服务器集群负载均衡调度算法研究
来源:微型机与应用2013年第21期
张亚波,苏 艺
(四川大学 计算机学院,四川 成都 610065)
摘要: 基于动态负反馈的机制,参考现有的加权最小连接数调度和轮转调度算法,设计出了改进后的负载均衡调度算法。通过负反馈机制计算每台服务器的综合负载权重值,而综合负载权重值直接体现着服务器的当前处理能力。调度服务器根据综合负载权重值分配工作负载,实现负载的均衡分布。
Abstract:
Key words :

摘  要: 基于動態(tài)負(fù)反饋的機(jī)制,參考現(xiàn)有的加權(quán)最小連接數(shù)調(diào)度和輪轉(zhuǎn)調(diào)度算法,設(shè)計出了改進(jìn)后的負(fù)載均衡調(diào)度算法。通過負(fù)反饋機(jī)制計算每臺服務(wù)器的綜合負(fù)載權(quán)重值,而綜合負(fù)載權(quán)重值直接體現(xiàn)著服務(wù)器的當(dāng)前處理能力。調(diào)度服務(wù)器根據(jù)綜合負(fù)載權(quán)重值分配工作負(fù)載,實現(xiàn)負(fù)載的均衡分布。
關(guān)鍵詞: Red5流媒體服務(wù)器;集群技術(shù);負(fù)載均衡

1 常用負(fù)載均衡算法
 常見的負(fù)載均衡調(diào)度算法有:輪轉(zhuǎn)調(diào)度算法、加權(quán)輪轉(zhuǎn)調(diào)度算法、最小連接數(shù)調(diào)度算法、加權(quán)最小連接數(shù)調(diào)度算法、目標(biāo)地址哈希散列調(diào)度算法、源地址哈希散列調(diào)度算法等[1]。
下面主要介紹輪轉(zhuǎn)調(diào)度算法和加權(quán)最小連接數(shù)調(diào)度算法的思想。
?。?)輪轉(zhuǎn)調(diào)度算法[2]
輪轉(zhuǎn)調(diào)度算法平等地對待集群中各個服務(wù)器,認(rèn)為所有服務(wù)器具有相同的處理性能。此算法將所有的n臺服務(wù)器當(dāng)作一個任務(wù)隊列,當(dāng)一個新的用戶連接請求到來時,執(zhí)行i=(i+1)modi,然后分配任務(wù)給第i臺服務(wù)器。
?。?)加權(quán)最小連接數(shù)調(diào)度算法[3]
 加權(quán)輪轉(zhuǎn)調(diào)度算法是輪轉(zhuǎn)調(diào)度算法的改進(jìn),加權(quán)最小連接數(shù)調(diào)度算法是最小連接數(shù)調(diào)度算法的進(jìn)一步改進(jìn),它很好地改進(jìn)了最小連接數(shù)調(diào)度算法無法很好地處理集群中服務(wù)器間處理性能差異較大的缺點。即此時滿足條件的服務(wù)器就是集群中正在處理的請求連接數(shù)與自身權(quán)值的比值最小的服務(wù)器,就認(rèn)為它是當(dāng)前負(fù)載最小的服務(wù)器,負(fù)載均衡器就會把新的請求連接交給這臺服務(wù)器來處理。
2 動態(tài)反饋機(jī)制
 負(fù)載均衡調(diào)度服務(wù)器收集負(fù)載信息的本質(zhì),就是每臺服務(wù)器節(jié)點將自身的負(fù)載情況反饋給調(diào)度服務(wù)器的過程。這就是動態(tài)反饋機(jī)制[4],如圖1所示。

 圖1中,W為服務(wù)器更新之前狀態(tài)時的權(quán)值,集群中每臺服務(wù)器節(jié)點都會定期與調(diào)度服務(wù)器交互,將自身的負(fù)載信息情況反饋給調(diào)度服務(wù)器。在負(fù)載均衡調(diào)度服務(wù)器上,根據(jù)設(shè)計好的算法F()將這些負(fù)載信息進(jìn)行處理,重新調(diào)整當(dāng)前情況下服務(wù)器的新權(quán)值W′,然后更新負(fù)載信息表,這樣能夠更好地反映出當(dāng)前服務(wù)器的負(fù)載情況。
3 動態(tài)負(fù)反饋機(jī)制負(fù)載均衡調(diào)度算法
3.1 流媒體服務(wù)器綜合權(quán)值的計算

 借鑒加權(quán)最小連接數(shù)調(diào)度算法的思想,應(yīng)該為每臺流媒體服務(wù)器設(shè)定一個綜合權(quán)值。計算綜合權(quán)值所需要的指標(biāo)如下[5]:
 SCPUi:代表集群中第i臺流媒體服務(wù)器的CPU使用率;
 SMemi:代表集群中第i臺流媒體服務(wù)器的內(nèi)存使用率;
 SNeti:代表集群中第i臺流媒體服務(wù)器的網(wǎng)絡(luò)帶寬占用率;
 SDiski:代表集群中第i臺流媒體服務(wù)器的硬盤I/O占用率;
 SRoomi:代表集群中第i臺流媒體服務(wù)器的聊天室數(shù)量占用率。


?。?)Red5流媒體服務(wù)器開始運(yùn)行后,將加入到集群中,同時會在負(fù)載均衡調(diào)度服務(wù)器上進(jìn)行注冊,將自身相關(guān)信息(IP、提供服務(wù)的端口號等)發(fā)送給調(diào)度服務(wù)器;
?。?)調(diào)度服務(wù)器周期性地與每臺流媒體服務(wù)器交互(設(shè)定周期時間為10 s),采集負(fù)載信息。在流媒體服務(wù)器上,負(fù)載信息收集線程收集實時負(fù)載,通過式(2)計算實時負(fù)載Loadi,并將Loadi發(fā)送給調(diào)度服務(wù)器;
 (3)調(diào)度服務(wù)器與流媒體服務(wù)器之間通過心跳檢測進(jìn)行檢測,如果3 min內(nèi)調(diào)度服務(wù)器未收到流媒體服務(wù)器的心跳,則該服務(wù)器不可用;
?。?)如果當(dāng)前流媒體服務(wù)器上某個負(fù)載評估指標(biāo)超過設(shè)定的負(fù)載上限閾值,發(fā)送過載通知;
 (5)調(diào)度服務(wù)器將維護(hù)一張綜合負(fù)載權(quán)重值表,在收集并計算每臺流媒體服務(wù)器的綜合負(fù)載之后,通過式(9)計算出綜合負(fù)載權(quán)重值W′i,更新表中數(shù)據(jù);
?。?)根據(jù)新的權(quán)值,調(diào)度服務(wù)器將所有正常工作的服務(wù)器按照權(quán)值從高到低分為三組;
 (7)新的請求到來時,根據(jù)步驟(6)中所分出的權(quán)重值最大的一組,依照輪詢調(diào)度算法思想分配任務(wù);
 (8)判斷是否是新的采樣周期,如果不是則繼續(xù)步驟(7),否則轉(zhuǎn)向步驟(2);
?。?)如果當(dāng)前沒有合適的服務(wù)器,則暫時停止響應(yīng)用戶請求,通知用戶等待。
4 算法測試與分析
 評價集群系統(tǒng)整體性能有一個重要的參數(shù)指標(biāo):平均響應(yīng)時間。測試所用環(huán)境如表1、表2所示。

 根據(jù)表3的數(shù)據(jù),在并發(fā)請求數(shù)量不是很多的情況下,兩種算法的平均響應(yīng)時間差不多。當(dāng)并發(fā)量逐漸增大后,這時改進(jìn)算法的效率明顯優(yōu)于加權(quán)最小連接數(shù)調(diào)度算法。
 集群系統(tǒng)的穩(wěn)定性也是必須需要考慮的問題。當(dāng)采用加權(quán)最小連接數(shù)調(diào)度算法時,每臺Red5流媒體服務(wù)器的負(fù)載情況變化如圖2所示(采樣周期為10 s)。

 從圖2和圖3可知,改進(jìn)的負(fù)載均衡調(diào)度算法很好地保證了整個集群的負(fù)載均衡,同時也能很好地處理當(dāng)大量并發(fā)請求到來時的情況。
 本文通過在輪轉(zhuǎn)調(diào)度算法和動態(tài)加權(quán)最小連接數(shù)調(diào)度算法的基礎(chǔ)上,設(shè)計了一種基于動態(tài)負(fù)反饋機(jī)制的負(fù)載均衡調(diào)度算法,能夠更好地考慮到集群中每臺流媒體服務(wù)器的處理性能,達(dá)到更好地負(fù)載均衡效率。而通過實驗對比,可知改進(jìn)的負(fù)載均衡調(diào)度算法具有更短的平均用戶響應(yīng)時間,也能保證集群長時間的穩(wěn)定運(yùn)行,能夠達(dá)到負(fù)載均衡的目的。
參考文獻(xiàn)
[1] 買京京.Web服務(wù)器集群負(fù)載均衡技術(shù)研究[D].太原:中北大學(xué),2008.
[2] 童瑞霞.基于動態(tài)反饋機(jī)制的集群負(fù)載均衡算法研究[D].武漢:武漢理工大學(xué),2011.
[3] 秦曉晨.基于動態(tài)負(fù)載均衡技術(shù)的培訓(xùn)系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[4] 陳廣東.流媒體服務(wù)器集群負(fù)載均衡算法研究[D].武漢:華中師范大學(xué),2007.
[5] 張洪武.服務(wù)器集群與均衡技術(shù)研究[D].重慶:重慶大學(xué),2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。