《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業(yè)界動態(tài) > 服務器負載均衡在應用層選播通信中的實現

服務器負載均衡在應用層選播通信中的實現

2008-04-22
作者:熊 煒1, 陶 洋1, 楊

  摘 要: 選播" title="選播">選播通信是下一代網絡中一種新的通信方式。其中應用層" title="應用層">應用層選播以其標準靈活、易于擴展和實現等優(yōu)勢,已成為近年來通信領域研究的熱點。分析了受到普遍關注的應用層選播通信中服務器負載均衡問題,在此基礎提出了基于等價子集" title="等價子集">等價子集的服務器選擇策略,并且通過實驗證明了該策略的有效性。
  關鍵詞: 選播 等價子集 負載均衡 服務器選擇

?

  選播通信是下一代網絡中一種新的通信方式[1-3]。由于這種選播方式可以分別在網絡層和應用層實現,因此存在著兩種選播通信模型:應用層選播和網絡層選播??偟膩碚f,網絡層選播實現方法簡單,但是存在許多缺陷。例如:需要修改路由器配置、不便于改善通信的無狀態(tài)性、不支持用戶對服務器選擇的定義、在選擇標準方面缺乏靈活性。而應用層選擇的標準靈活、易于擴展和實現、不需要修改路由器。
  目前,國內外對網絡層選播的研究比較多,但由于網絡層選播的局限性,許多研究者試圖從應用層選播方面找到提高通信質量的突破口。網絡層選播僅僅依靠網絡自身的拓撲結構來選擇最近的服務器(如路由器跳數最小),而應用層選播依賴于外部的實體來為用戶選擇一個當前性能最好的服務器。對于用戶來說,“最近”的服務器并不能保證是性能“最好”的,因此應用層選播對通信質量更有保證,并且服務器選擇具有更多的靈活性和可擴展性。
  但是在進一步的研究中發(fā)現,應用層選播仍然存在著一個不容忽視的問題,即服務器負載的振蕩。因此,本文對應用層選播通信的關鍵技術服務器選擇進行了深入分析,找到了實現服務器負載均衡的突破口,提出了基于等價子集的選擇策略。在等價子集中包含了多個“最好”的服務器,這就為用戶提供了更多的選擇。當等價子集的規(guī)模發(fā)生變化時,可以得到不同服務器負載分布。而且從中發(fā)現:等價子集的準入、準出條件的不同組合可在不同程度上緩解服務器負載振蕩,最終找到實現服務器負載均衡的最佳準入、準出條件的組合。
1 應用層選播中的服務器負載振蕩問題
  在應用層選播通信中,選播解析器" title="解析器">解析器通常會引導客戶與當前性能最好的服務器進行連接,這樣似乎已經非常完美了,客戶似乎也可以享受到最好的通信服務了。然而應用層選播通信中一個潛在問題,即服務負載振蕩就會隨之產生。
  當選播解析器發(fā)現某個服務器當前性能最好時,選播解析器可能會引導不只一個客戶端" title="客戶端">客戶端與其建立連接。因而造成該服務器的負擔過重,該服務器不能及時地響應所有客戶請求,導致其性能的下降。而此時其他的服務器卻因沒有客戶請求的到來而仍然處于空閑狀態(tài)。當選播解析器又一次刷新所有服務器的性能參數時,又發(fā)現新的性能最好的服務器,它又會引導多個客戶端到這個服務器上,出于相同的原因后者的性能也很快降了下來,而前者負載過重的狀況也因此得到了緩解。這就是服務負載振蕩[4]。
  由于服務器負載振蕩的產生,會影響到服務器與客戶之間的通信。對于服務器,其負載會很不均衡,時而非常繁忙時而又十分空閑,從概率論的角度來看不利于資源的有效利用;對于客戶,其通信建立的時間會因為盲目地蜂擁搶占當前最好的服務器而延長,這對于實時性要求高的通信服務是致命的。總之,振蕩問題不僅使得網絡資源的利用率極低,還使得選播通信的質量難以保證。
2 負載均衡的實現
2.1等價子集的引入

  多方蜂擁而上爭奪某個有限資源的范例屢見不鮮。通常的解決方法是分散各方的注意力,從所有資源供應點中選出多個同樣高性能的點,組成一個等價子集ES(Equivalent Subcollection),盡量把各方的需求引向子集中不同的資源點。該方法既可以保證各方都能及時得到最優(yōu)的資源,又可以避免資源點上頻繁的供需變換造成需求振蕩。
  本文因此借用了上述的思想來解決負載振蕩問題,實現服務器負載的均衡。于是將等價子集的概念引入應用層選播通信的服務器選擇策略之中,并對選播原型做了一些修改。因為服務器的選擇關系到選播通信的質量,是選播通信中的關鍵技術。與原型相比最大的不同是:選播解析器不是直接為客戶選擇當前最好的服務器,而是根據客戶需求提供多個當前最好的服務器,再由客戶自己來選擇其中的一個,與其建立連接。具體過程如下:客戶端發(fā)送選播請求到選播解析器,當選播解析器收到這個請求時,先把請求中的選播域名和服務器選擇標準分別提取出來,然后把選播域名映射為相應的某個選播組,從其數據庫提取該選播組所有服務器地址以及相關性能參數,最后用客戶端提供的選擇標準來篩選出一組“最好”的服務器,組成基于性能參數的等價子集,并把首次選擇的結果返回給客戶端。當選播應答數據包到達客戶端時,再由客戶端進行第二次篩選。因為子集中的服務器均可滿足客戶定義的標準,所以在客戶端把它們視為“等價”服務器,客戶端的應用層程序會從其中隨機地選擇一個來建立連接。
2.2 選播組中等價子集的確定
  由上分析可見,選播組中的等價子集的確定作為服務器選擇中的關鍵環(huán)節(jié),在兩次篩選中起到承上啟下的作用。它是在選播解析器上首次篩選后得到的一個服務器集合,是選播組的一個子集。這個子集的確定雖然是在選播解析器上進行,但選擇服務器的標準是客戶定義的,并和選播域名一起發(fā)送到選播解析器,選播解析器僅僅依據這個標準執(zhí)行操作,確定等價子集的范圍。
  一般是通過判斷當前選播組中服務器性能值是否滿足給定的條件來確定子集范圍,并在每次更新信息到選播解析器時,都會刷新所有服務器的性能值,并重新確定這個等價的子集,直到下一次刷新之前,子集中的服務器成員暫時恒定。
  本文采用的是一種滯后的閥值法。它的基本思想是:假設子集成員的準出門限值和準入門限值分別是Tl和Tj(Tl≥Tj)。首先刷新各個服務器性能值;隨后找到性能最高的,即服務響應時間最小的一個Rmin;然后讓當前子集中與這個最小值差距大于Tl的服務器退出子集(Rj-Rmin>Tl),而讓當前子集外與這個最小值差距小于Tj的服務器加入子集(Rj-Rmin≤Tj);最后得到新的等價子集。這種方法的滯后效果表現在加入和退出子集都有一個保護帶,其寬度為Tl-Tj。該方法的優(yōu)勢在于選擇策略對服務器性能有一定的容忍性。
2.3 門限值的設定
  通過上面的分析可以發(fā)現,準出門限值和準入門限值的設定直接影響到等價子集的大小,進而影響到服務器的負載均衡程度以及選播通信的質量。具體分析如下:
  (1)當準出門限值Tl和準入門限Tj值都很小時,等價子集的準入條件顯得十分苛刻,而準出條件卻很容易滿足,這時等價子集非常小,甚至只包含一個服務器。這是非常危險的情況,因為在這種情況下通常會導致服務器負載的振蕩。當客戶端向選播解析器發(fā)送選播請求時,選播解析器當然地會把當前最好性能的服務器子集返回給每個客戶。然而,這個子集因為只有一個服務器,在這種情況下客戶實際上喪失了第二次選擇的機會,客戶端只能別無選擇地蜂擁到那個最好的服務器上等候服務,等待能快速與其建立通信連接??墒撬鼈兒芸炀鸵庾R到蜂擁而上的結果需要更長的等待時間。此時客戶端要么繼續(xù)等候,要么放棄轉而重新向選播解析器發(fā)送選播請求。實際上很多實時性強的客戶端都無法容忍這樣的延時產生,因而客戶與服務器之間的通信質量同樣難以保證。
  (2) 隨著Tl和Tj的增大,等價子集就可能包括不只一個性能最好的服務器,這樣就可以為客戶端提供多個“最好”服務器的選擇。當客戶端有選播請求時,就可從中隨機地選出一個服務器,與之建立通信??蛻舳酥匦芦@得了隨機選擇的機會,兩次選擇都得以順利實現。因此可盡量避免蜂擁搶占服務器資源的情況發(fā)生,進而緩解服務器負載的振蕩。
  (3) 當Tl和Tj都很大時,等價子集的準出又顯得很困難,而準入卻變得很容易,這時等價子集就很大了,甚至包括整個選播組的服務器。這種情況下選播解析器對服務器的首次選擇幾乎失效了,僅保留客戶端的隨機選擇。這時選播通信中服務器的選擇完全是隨機的,選播系統(tǒng)幾乎無法保證引導客戶與最好的服務器通信,因而客戶與服務器之間的通信質量同樣難以保證。
3 實驗及結果
  運用上述的思想來解決服務器負載振蕩問題,在C++編程環(huán)境下模擬了選播通信過程,進而實現服務器負載均衡。通過測試不同的準出門限值和準入門限值的組合對選播通信的質量指標―服務響應時間的影響,試圖找到最優(yōu)的門限設置組合,使得服務響應時間得到明顯改善,以此證明此時服務器負載的振蕩得到最大的緩解,以及服務器負載均衡的實現。


  首先進行一系列組合實驗,其實驗結果如圖1所示。圖中表明了在不同的準出門限下,準入門限的變化對平均響應時間的影響。由圖可知:當準出門限值Tl小于1.6時,有較低的平均響應時間;Tl為1.6時,平均響應時間高出許多,很不理想。這是因為當Tl為1.6時,等價子集相當大,等價子集幾乎包括了選播組的所有成員,因而失去了最好服務器子集的特征,選播幾乎就是一個隨機選擇的過程;當Tl小于1.6(Tl=0.4、Tj=0.1)時,實驗結果最好,出現了平均響應時間的最低點。因此,(Tl,Tj)=(0.4,0.1) 為最佳門限組合。

?


  其次,為了更客觀地說明這個最佳門限組合對服務器負載振蕩狀況的改善,又進行對比實驗,記錄在Tl與Tj的兩種不同組合下選播組中的某個服務器上每秒內到達的客戶請求數,即代表該服務器的負載,如圖2、圖3所示。圖2是在Tl和Tj分別為0.1和0.05時的服務器負載狀況;而圖3則是Tl和Tj為最佳組合時的服務器負載狀況。與圖2相比,圖3中的服務器負載發(fā)生了顯著的變化。首先請求數的絕對值有明顯的降低,其次請求數的突變現象有明顯的減少。從整體來看,圖3中服務器負載的振蕩現象與圖2中的狀況相比得到了極大的緩解,負載趨于均衡,因而其性能更優(yōu)。
  在應用層選播通信中,服務器負載的振蕩現象不可小視,它嚴重地影響著通信的質量。因此,從優(yōu)化服務器選擇策略角度出發(fā),本文利用基于等價子集的服務器選擇策略,極大地消除了服務器負載振蕩對選播通信質量的影響。仿真實驗證明,該策略較好地實現了選播服務器的負載均衡。
參考文獻

[1] DEERING S, HINDEN R. Internet protocol, version 6(IPv6). IETF RFC 2460, Dec. 1998.
[2] ?BHATTACHARJEE S, AMMAR M, ZEGURA E, et al.Application level anycasting. Tech. Rep.96-25, College of ?Computing, Georgia Institute of Technology,1996.
[3] ?PARTRIDGE C, MENDEZ T, MILLIKEN W. Host anycasting Service. RFC 1546, Nov. 1993.
[4] ?COLAJANNI M, YU P. Adaptive TTL schemes for load balancing of distributed web servers. Performance Evaluation Rev. ACMSIGMETRICS, 1997,25(2):36-42.
[5] ?VEIZADES J, GUTTMAN E, PERKINS C, et al. Service location protocol. RFC 2165, June 1997.
[6] ?ROSENBERG J, SCHULZRINNE H, SUTER B. Wide area ?network service location. Internet Draft(work in progress)? draft-ietf-svrloc-wasrv-Ol.txt, November 1997.
[7] ?CROVELLA M, CARTER R. Dynamic server selection in? the Internet. in Proc. 3rd IEEE Workshop Architecture and Implementation of High Performance Communication Subsystems (HPCS’95), Aug. 1995.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。