《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Red5服務(wù)器集群負(fù)載均衡調(diào)度算法研究
基于Red5服務(wù)器集群負(fù)載均衡調(diào)度算法研究
來(lái)源:微型機(jī)與應(yīng)用2013年第21期
張亞波,蘇 藝
(四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610065)
摘要: 基于動(dòng)態(tài)負(fù)反饋的機(jī)制,參考現(xiàn)有的加權(quán)最小連接數(shù)調(diào)度和輪轉(zhuǎn)調(diào)度算法,設(shè)計(jì)出了改進(jìn)后的負(fù)載均衡調(diào)度算法。通過(guò)負(fù)反饋機(jī)制計(jì)算每臺(tái)服務(wù)器的綜合負(fù)載權(quán)重值,而綜合負(fù)載權(quán)重值直接體現(xiàn)著服務(wù)器的當(dāng)前處理能力。調(diào)度服務(wù)器根據(jù)綜合負(fù)載權(quán)重值分配工作負(fù)載,實(shí)現(xiàn)負(fù)載的均衡分布。
Abstract:
Key words :

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

1 常用負(fù)載均衡算法
 常見(jiàn)的負(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)度算法的思想。
 (1)輪轉(zhuǎn)調(diào)度算法[2]
輪轉(zhuǎn)調(diào)度算法平等地對(duì)待集群中各個(gè)服務(wù)器,認(rèn)為所有服務(wù)器具有相同的處理性能。此算法將所有的n臺(tái)服務(wù)器當(dāng)作一個(gè)任務(wù)隊(duì)列,當(dāng)一個(gè)新的用戶(hù)連接請(qǐng)求到來(lái)時(shí),執(zhí)行i=(i+1)modi,然后分配任務(wù)給第i臺(tá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ù)器間處理性能差異較大的缺點(diǎn)。即此時(shí)滿(mǎn)足條件的服務(wù)器就是集群中正在處理的請(qǐng)求連接數(shù)與自身權(quán)值的比值最小的服務(wù)器,就認(rèn)為它是當(dāng)前負(fù)載最小的服務(wù)器,負(fù)載均衡器就會(huì)把新的請(qǐng)求連接交給這臺(tái)服務(wù)器來(lái)處理。
2 動(dòng)態(tài)反饋機(jī)制
 負(fù)載均衡調(diào)度服務(wù)器收集負(fù)載信息的本質(zhì),就是每臺(tái)服務(wù)器節(jié)點(diǎn)將自身的負(fù)載情況反饋給調(diào)度服務(wù)器的過(guò)程。這就是動(dòng)態(tài)反饋機(jī)制[4],如圖1所示。

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

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


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

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

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