• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于Linux集群技術(shù)的負載均衡方法

      2014-07-18 11:53:26謝曉燕張靜雯
      西安郵電大學(xué)學(xué)報 2014年3期
      關(guān)鍵詞:輪詢吞吐量集群

      謝曉燕, 張靜雯

      (西安郵電大學(xué) 計算機學(xué)院, 陜西 西安 710121)

      一種基于Linux集群技術(shù)的負載均衡方法

      謝曉燕, 張靜雯

      (西安郵電大學(xué) 計算機學(xué)院, 陜西 西安 710121)

      針對單純提高硬件性能已經(jīng)無法解決的網(wǎng)絡(luò)服務(wù)質(zhì)量問題,提出一種基于Linux集群技術(shù)的負載均衡分配方法。在Linux虛擬服務(wù)器異構(gòu)集群的基礎(chǔ)上,引入動態(tài)反饋模型來優(yōu)化采集負載信息的通信機制,并通過智能分配策略來避免傳統(tǒng)輪詢算法對服務(wù)器資源的過度消耗。結(jié)合Linux腳本及命令進行性能測試,實驗結(jié)果表明,提出的智能分配方法比加權(quán)輪詢算法具有更好的響應(yīng)時間和吞吐量。

      負載均衡;Linux 虛擬服務(wù)器;調(diào)度算法

      互聯(lián)網(wǎng)日新月異的發(fā)展帶來了3G井噴時代,客戶端的增加和網(wǎng)絡(luò)請求的實時性、突發(fā)性、并發(fā)性等特征帶給了服務(wù)器巨大的壓力,而單純提高硬件性能根本無法滿足需求。集群技術(shù)就是在這種情況下應(yīng)運而生的。

      集群的核心技術(shù)之一就是負載均衡,負載均衡通常由多臺服務(wù)器以對稱的方式組成一個服務(wù)器集群。每臺服務(wù)器都具有等價的地位,可以單獨對外提供服務(wù)而無需其他服務(wù)器的輔助。系統(tǒng)通過某種負載分擔(dān)技術(shù)將外部發(fā)來的請求均勻分配到對稱結(jié)構(gòu)中的某一臺服務(wù)器上或是將重負載節(jié)點的任務(wù)分擔(dān)到多臺服務(wù)器上做并行處理,接受到請求的服務(wù)器獨立地回應(yīng)客戶的請求。均衡負載能夠平均分配客戶請求到服務(wù)器集群,從而提供快速獲取重要數(shù)據(jù)并解決并發(fā)訪問服務(wù)問題[1-2]。

      目前最常用的負載均衡技術(shù)有基于DNS的負載均衡,反向代理負載均衡,基于NAT的負載均衡。基于DNS的負載均衡雖然簡單易行但它不能穩(wěn)定、可靠、高效地滿足企業(yè)對服務(wù)器的需求也不能滿足用戶對網(wǎng)絡(luò)訪問的及時響應(yīng)和可用性;基于NAT的負載均衡雖然很好地解決了IP地址緊張的問題,但是每次NAT轉(zhuǎn)換勢必會增加NAT設(shè)備的開銷;反向代理服務(wù)器通過代理技術(shù)顯著地提高了靜態(tài)網(wǎng)絡(luò)的瀏覽速度,改善了網(wǎng)絡(luò)的訪問質(zhì)量并且保證了一定的安全性,但其在工作的時候需要為每一種應(yīng)用服務(wù)專門設(shè)計反向代理,這就很大程度上增加了工作量。由此可見對負載均衡技術(shù)的選擇取決于具體的環(huán)境和需求。

      目前負載均衡算法的研究主要包括靜態(tài)負載均衡、動態(tài)負載均衡和自適應(yīng)負載均衡[3]。在對負載均衡的應(yīng)用中,Linux虛擬服務(wù)器(Linux Virtual Server,LVS)負載均衡系統(tǒng)因其資源共享,源碼公開和免費成為了當(dāng)今的另一個研究熱點。在LVS集群系統(tǒng)[4]中主要研究靜態(tài)和動態(tài)兩大類調(diào)度策略:靜態(tài)調(diào)度策略是以定好的規(guī)則來分配資源,不考慮服務(wù)器的實時工作情況和負載狀況,它在實現(xiàn)的時候比較容易但其適應(yīng)性不強。當(dāng)大量請求并發(fā)時容易造成節(jié)點之間負載不均衡,使系統(tǒng)整體性能變低。動態(tài)調(diào)度策略主要是以服務(wù)器當(dāng)前的連接數(shù)來代表服務(wù)器的負載狀況,經(jīng)過具體的策略規(guī)則將請求發(fā)到合適的服務(wù)器上。

      LVS作為基于Linux系統(tǒng)的負載調(diào)度技術(shù),主要用于創(chuàng)建具有良好的可擴展性、高可靠性、高性能和高可用性集群[5],這樣的集群系統(tǒng)在文獻[6]中有很好的應(yīng)用。在對LVS異構(gòu)集群性能的集中研究中,文獻[7]采用類似于網(wǎng)絡(luò)管理的模式實現(xiàn)了動態(tài)反饋的最低利用率的最小連接數(shù)調(diào)度算法,文獻[8]也對WLC權(quán)值的靜態(tài)問題提出應(yīng)該科學(xué)合理地整合硬件有效因素和協(xié)調(diào)網(wǎng)絡(luò)應(yīng)用性能指標來綜合考慮。綜上所述,在選擇異構(gòu)服務(wù)器集群算法的時候,大多都采用WLC算法直接進行解決,但是WLC算法作為一種動態(tài)算法,無論從實現(xiàn)復(fù)雜度還是資源消耗都遠遠大于靜態(tài)算法。

      靜態(tài)輪詢調(diào)度實現(xiàn)簡單,響應(yīng)時間比較短,但它在實現(xiàn)過程中均勻地將請求發(fā)送給每臺服務(wù)器,并不會根據(jù)服務(wù)器集群的差異來分配資源,因此并不適合異構(gòu)服務(wù)器集群,這就使得具有權(quán)值分配的加權(quán)輪詢WRR作為對輪詢算法RR的一個優(yōu)化得到廣泛的應(yīng)用[9-10]。

      本文擬針對LVS系統(tǒng)中服務(wù)器性能不一致的情況,引入動態(tài)負載反饋模型來優(yōu)化通信機制,并在其基礎(chǔ)上開辟兩塊共享內(nèi)存來實現(xiàn)對不同狀態(tài)服務(wù)器的處理。通過在服務(wù)器端開啟上報進程和在負載均衡器上開啟管理進程,以優(yōu)化傳統(tǒng)的輪詢策略,實現(xiàn)集群節(jié)點的動態(tài)增加和屏蔽。

      在LVS輪詢調(diào)度算法的實現(xiàn)中,當(dāng)服務(wù)器的性能存在差異的時候,服務(wù)器的整體性能取決于最差服務(wù)器的性能。如果在輪詢策略中負載均衡器LD可以智能地分配請求,那么在理想狀態(tài)下框架的性能可以達到最優(yōu)。這就需要負載均衡器LD清楚RS集群的負載信息。本文在實現(xiàn)分配的時候,服務(wù)器需要上報自己的性能信息,負載均衡器不僅需要對服務(wù)器上報的信息進行處理還要及時根據(jù)分配策略來智能分配資源,因此不妨將文中所給方法稱為智能分配算法。

      1 LVS系統(tǒng)框架

      在設(shè)計的LVS系統(tǒng)中,建立LD與RS集群的性能同步通信機制也就是動態(tài)反饋機制[11],使負載均衡器可以清楚后端RS集群的性能信息并且在分配請求的時候優(yōu)先把請求分配到負載低的節(jié)點;對于負載高的RS節(jié)點,暫時停止分配請求并在每個時間周期去判斷該高負載節(jié)點是否恢復(fù)正常。具體邏輯如圖1所示。

      圖1 LVS系統(tǒng)框架

      對LVS框架做如下優(yōu)化。

      (1) 在RS集群的每個節(jié)點開啟agent進程,用來上報RS節(jié)點的負載信息;在負載均衡器上增加一個獨立的模塊monitor,用來接收agent的數(shù)據(jù),并判讀RS的健康情況。

      (2) LD需要額外開辟兩塊共享內(nèi)存來存放輸出結(jié)果,存放“可用的RS”和“不可用的RS”。LD分配請求的時候需從“可用RS池”讀取RS信息并轉(zhuǎn)發(fā)請求。

      (3) RS處理請求的同時,agent會實時監(jiān)控服務(wù)器節(jié)點負載情況,按周期上報給LD的monitor模塊,monitor模塊根據(jù)agent上報的信息通過規(guī)則來判斷RS是否可以繼續(xù)處理更多的請求。

      (4) 如果該RS負載信息正常,則把其放入“可用RS池”,等待LD的請求分配;如果該RS負載信息異常,則放入“不可用RS池”。同時LD還需要對“不可用RS池”的 RS節(jié)點進行監(jiān)測。

      2 算法研究及性能分析

      傳統(tǒng)的輪詢算法在面對服務(wù)器性能一樣的時候,通常能較好地分配任務(wù)請求,但是當(dāng)服務(wù)器性能不一樣的時候,往往不能使服務(wù)器資源利用最大化,這就使集群系統(tǒng)的整體性能受到影響。以下結(jié)合服務(wù)器的參數(shù)指標分析系統(tǒng)在不同情況下的服務(wù)器集群性能。

      (1) 在一個具有n個服務(wù)器的集群中,服務(wù)器i的性能指標有很多[12],包括當(dāng)前連接數(shù)、CPU使用率、內(nèi)存使用率、輸入/輸出設(shè)備,網(wǎng)絡(luò)帶寬等等。在此假定CPU使用率為C,內(nèi)存使用率為M,磁盤使用率為D,網(wǎng)卡使用率為W。在Web服務(wù)集群中,處理單次請求所需要的資源使用率分別為w,x,y,z。任何一個指標達到性能瓶頸都會影響服務(wù)器的處理性能,所以服務(wù)器i(i=1,2,…,n)的并發(fā)處理能力取決于函數(shù)

      f(i)=min{Ci/w,Mi/x,Di/y,Wi/z} 。

      為要保證集群有服務(wù)器,n應(yīng)是大于0 的數(shù)。Ci,Mi,Di,Wi為服務(wù)器i當(dāng)前使用率也就是i的動態(tài)參數(shù)。

      當(dāng)且僅當(dāng)

      (2) 在系統(tǒng)穩(wěn)定且狀態(tài)良好的時候,集群理想處理性能為各個真實服務(wù)器處理性能的總和。

      (3) 在系統(tǒng)不穩(wěn)定的時候,假設(shè)服務(wù)器i到達性能瓶頸并處在短暫屏蔽狀態(tài),則服務(wù)器i的處理性能約等于f(i),當(dāng)且僅當(dāng)

      而此時集群中其它服務(wù)器的性能可以寫成βf(i),即為除i外其它真實服務(wù)器性能的總和。β取值范圍可表示為

      此時系統(tǒng)仍然具有的理論處理能力為

      F(x)-f(i)-βf(i)。

      (4) 如果在短暫的屏蔽后,服務(wù)器i性能恢復(fù)正常,則系統(tǒng)目前的處理能力仍然為各個真實服務(wù)器處理能力的和。如果服務(wù)器i就此宕機,則此時系統(tǒng)具有的最大處理能力為F(x)-f(i)。

      (5) 集群x的性能可表示為

      通過對服務(wù)器集群性能的研究結(jié)合對輪詢算法的理解可知,輪詢調(diào)度并不適合異構(gòu)服務(wù)器集群。帶有權(quán)值的輪詢算法能夠很好地解決異構(gòu)服務(wù)器集群性能不一的情況,它根據(jù)靜態(tài)配置的權(quán)值來分配工作請求。但是在所有權(quán)值算法中,都有如下兩個問題無法避免:其一就是各個服務(wù)器間的性能無法完美的符合M∶N,其次就是即使在權(quán)值比接近完美的時候,個別服務(wù)器會因為突發(fā)地運行某些服務(wù)或者處理異常的請求導(dǎo)致權(quán)值比失去平衡;而且當(dāng)系統(tǒng)運行一段時間或增加節(jié)點時勢必需要重新配置,增加了集群的維護成本。此外,如果權(quán)值分配不合理則會使系統(tǒng)性能得不到充分的利用甚至還會引發(fā)服務(wù)器宕機;即使在權(quán)值分配理想的情況下,由于它無法動態(tài)地獲取服務(wù)器的真實狀況,因此無法根據(jù)服務(wù)器的具體性能變化而及時動態(tài)合理地分配請求。智能分配策略可以動態(tài)地監(jiān)測每臺服務(wù)器的負載信息,靈活增加節(jié)點以及屏蔽不可用的節(jié)點,具體實現(xiàn)如圖2所示。

      圖2 系統(tǒng)流程

      業(yè)務(wù)通過外網(wǎng)把請求發(fā)送到負載均衡器LD的外網(wǎng)卡,LD接收到請求后查詢“可用的RS池”,通過策略將請求發(fā)送給合適的RS進行處理。處理完成后通過RS本身外網(wǎng)卡把處理結(jié)果直接反饋給用戶,這里采用的是LVS-DR方式。RS上部署的agent進程會定期把RS的性能數(shù)據(jù)和負載狀況上報到LD“存儲RS負載模塊”,然后通過規(guī)則進行判斷。如果該RS可用,則把該RS的信息更新到“可用的RS池”,否則把該RS放到“暫不可用的RS池”,同時把該RS的信息在“可用的RS池”中去掉相當(dāng)于屏蔽這個節(jié)點,等待一個周期后再由agent上報數(shù)據(jù)進行判斷。當(dāng)需要動態(tài)增加一個節(jié)點的時候,只需要為其開啟agent進程就可以正常上報信息了。

      3 系統(tǒng)測試及分析

      通過虛擬機來實現(xiàn)系統(tǒng)的搭建和測試,在負載參數(shù)的采集過程中由于CPU使用率、內(nèi)存使用率以及磁盤使用率數(shù)據(jù)波動不大,選擇網(wǎng)卡來驗證算法,當(dāng)網(wǎng)卡超過規(guī)定的閾值時就自動進行屏蔽。實驗平臺選擇Redhat企業(yè)版本,其中Linux內(nèi)核版本為2.6,采用Linux系統(tǒng)管理工具和shell腳本來共同完成。測試拓撲圖如圖3所示。

      圖3 測試拓撲圖

      通過測試獲取基于LVS-DR方式的Web服務(wù)的吞吐量及響應(yīng)時間,通過對WRR算法和智能分配算法分別進行壓測來驗證服務(wù)集群的性能,其中后端服務(wù)器的參數(shù)信息如表1。

      表1 服務(wù)器性能對比表

      針對上表服務(wù)器性能不統(tǒng)一的情況,智能分配算法通過優(yōu)化輪詢算法RR來避免靜態(tài)算法中權(quán)值的選擇。用RI表示RS1的性能,Ri表示RS2的性能,通過表1可以大致地認為2Ri

      ab -n 2000 -c 4 http://192.168.0.254/a.file來實現(xiàn),其中-n和-c分別表示一共要發(fā)送的請求數(shù)和一次并發(fā)的請求數(shù)。整個命令表示對192.168.0.254下的a.file文件發(fā)送2 000個請求,每次并發(fā)4個。

      通過調(diào)整-c后面的參數(shù)來調(diào)整并發(fā)的數(shù)目。多次測試后,通過ipvsadm命令可以查看WRR的連接數(shù)比例基本為3∶1。對智能分配算法和加權(quán)輪詢算法WRR從1至17不斷調(diào)整并發(fā)數(shù),分別比較其響應(yīng)時間和吞吐量,結(jié)果如圖4所示。

      (a) 響應(yīng)時間

      (b) 吞吐量

      通過圖4對加權(quán)輪詢算法WRR進行分析,WRR算法在并發(fā)為4的時候,吞吐量達到最大值,該點也正好符合權(quán)值3∶1的分配。同時在并發(fā)為8,12的時候吞吐量也略有毛刺。并發(fā)為14的時候性能較好的RS1首先出現(xiàn)失敗率徒增,原因是RS1與RS2的性能關(guān)系是2Ri

      同樣,通過上圖對智能分配算法進行分析。

      (1) 并發(fā)為1到13之間,兩種算法的響應(yīng)時間和吞吐量相差不大,WRR算法按照3∶1給RS1和RS2分配請求,智能分配算法仍按照輪詢算法來分配請求。因此RS1和RS2的性能都正常。通過測試,在并發(fā)為6的時候,智能分配算法吞吐量達到最佳,系統(tǒng)性能基本上為F(x)。

      (2) 在并發(fā)為14和15的時候,RS1性能比RS2好,系統(tǒng)運行基本正常。隨著并發(fā)數(shù)繼續(xù)增加,RS2漸漸出現(xiàn)性能問題。在并發(fā)為16的時候,智能分配算法已暫停給RS2分配請求了,此時系統(tǒng)的性能為

      F(x)=f(i)+βf(i),

      其中f(i)為RS2的性能,可以看出此時智能分配算法的響應(yīng)時間曲線與吞吐量曲線優(yōu)于WRR算法。

      (3) 當(dāng)并發(fā)數(shù)達到17的時候,RS2宕機了。智能分配算法和WRR算法均出現(xiàn)了大量的失敗,吞吐量有所下降。圖中智能分配算法的響應(yīng)時間在并發(fā)數(shù)17的時候會超過WRR算法,可能是因為當(dāng)并發(fā)請求繼續(xù)增加的時候,系統(tǒng)進行算法判斷、處理中斷的代價增大造成了響應(yīng)時間的延長。

      綜上所述,對于整體系統(tǒng)而言,智能分配算法在響應(yīng)時間上比WRR算法短,吞吐量比WRR算法高,在整體性能上比加權(quán)輪詢算法WRR優(yōu)。

      4 結(jié) 語

      在LVS輪詢算法的基礎(chǔ)上引入了動態(tài)反饋機制,避免了靜態(tài)分配所造成的負載分配不均衡。通過對比輪詢算法最常用的優(yōu)化策略,即加權(quán)輪詢算法,提出了智能分配策略,既避免了輪詢算法對異構(gòu)服務(wù)器集群資源的浪費,也避免了加權(quán)輪詢算法中權(quán)值靜態(tài)分配所造成的不適應(yīng)性。

      使用Linux腳本對智能分配方法進行了測試,測試結(jié)果表明,智能分配策略比加權(quán)輪詢算法具有更好的響應(yīng)時間及吞吐量。通過對比加權(quán)輪詢算法WRR和智能分配算法的響應(yīng)時間與吞吐量,可以明顯地看出智能分配算法的整體響應(yīng)時間比加權(quán)輪詢算法WRR低,吞吐量比加權(quán)輪詢算法WRR高。由此可見,智能分配算法的整體性能優(yōu)于加權(quán)輪詢算法,它是輪詢算法的一個很好的優(yōu)化策略。

      [1] 湯君.基于集群的動態(tài)反饋負載均衡系統(tǒng)的研究與應(yīng)用[D].天津:天津大學(xué),2008:11-12.

      [2] 朱志祥,許輝輝,王雄.基于云計算的彈性負載均衡方案[J].西安郵電大學(xué)學(xué)報,2013,18(6):43-47.

      [3] Valeria C, Michele C, Philips Y. Dynamic Load Balancing on Web-Server Systems[J]. IEEE Internet Computing,1999,3(3):28-29.

      [4] 崔小燕.Linux集群系統(tǒng)分析[J].西安郵電學(xué)院學(xué)報,2006,11(5):103-106.

      [5] 李莉,盧春,楊柯.LVS:優(yōu)秀的服務(wù)器集群解決方案[J].信息安全與通信保密,2011(9):74-77.

      [6] Xu Yang, Xie Xiaoyao, Xia Daoxun. Research and Design on LVS Cluster System[C]//2009 IEEE International Workshop on Open-source Software for Scientific Computation. Guiyang: IEEE, 2009:68-72.

      [7] 謝茂濤,宋中山.LVS集群系統(tǒng)負載均衡策略的研究[J].計算機工程與科學(xué),2006,28(8):30-39.

      [8] 劉玉艷.LVS負載均衡技術(shù)在網(wǎng)絡(luò)服務(wù)中的應(yīng)用研究[D].合肥:合肥工業(yè)大學(xué),2007:34-35.

      [9] 李慧玲,周繼成.加權(quán)輪詢算法在TCP非對稱網(wǎng)絡(luò)中的應(yīng)用及其性能分析[J].計算機工程與技術(shù),2000(3):10-11.

      [10] 張鵬,俞伯峰,龐琳,等.基于公平服務(wù)多維加權(quán)輪詢調(diào)度的IPTV組播流量控制策略[J].計算機應(yīng)用,2008,28(7):1832-1834.

      [11] 田紹亮,左明,吳紹偉.一種改進的基于動態(tài)反饋的負載均衡算法[J].計算機工程與設(shè)計,2007,28(3):572-573.

      [12] 劉武釗.集群計算機系統(tǒng)負載均衡技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2008:19-22.

      [責(zé)任編輯:王輝]

      A method of load balancing based on Linux cluster

      XIE Xiaoyan, ZHANG Jingwen

      (School of Computer Science and Technology, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)

      The rapid increase of concurrent request brings great burden on the server. Simply raising the performance of hardware cannot fundamentally solve the problem and on the contrary it will increase overhead cost. Therefore load balancing is becoming one of hot research topics. The proposed method in this paper is based on the LVS heterogeneous cluster. It adopts dynamic feedback mechanism to optimize the communication mechanisms of load information collection, and gives an intelligent allocation method to improve the overall system performance. The experiment results show that the proposed method can significantly improve throughput and decrease response time compared with the weighted round robin algorithm.

      load balancing, Linux virtual server, dispatch algorithm

      10.13682/j.issn.2095-6533.2014.03.013

      2014-03-11

      陜西省自然科學(xué)基礎(chǔ)研究計劃資助項目(2012JQ8029);陜西省教育廳科研計劃資助項目(12JK0938)

      謝曉燕(1972-),女,副教授,從事網(wǎng)絡(luò)及服務(wù)計算研究。E-mail:35731599@qq.com 張靜雯(1989-),女,碩士研究生,研究方向為計算機網(wǎng)絡(luò)和多媒體技術(shù)。E-mail:773684821@qq.com

      TP399

      A

      2095-6533(2014)03-0064-05

      猜你喜歡
      輪詢吞吐量集群
      海上小型無人機集群的反制裝備需求與應(yīng)對之策研究
      基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計?
      一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
      電子制作(2018年11期)2018-08-04 03:25:40
      Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
      2016年10月長三角地區(qū)主要港口吞吐量
      集裝箱化(2016年11期)2017-03-29 16:15:48
      2016年11月長三角地區(qū)主要港口吞吐量
      集裝箱化(2016年12期)2017-03-20 08:32:27
      勤快又呆萌的集群機器人
      依托站點狀態(tài)的兩級輪詢控制系統(tǒng)時延特性分析
      利用時間輪詢方式操作DDR3實現(xiàn)多模式下數(shù)據(jù)重排
      2014年1月長三角地區(qū)主要港口吞吐量
      集裝箱化(2014年2期)2014-03-15 19:00:33
      专栏| 西昌市| 仁寿县| 克什克腾旗| 马边| 区。| 丽水市| 商南县| 阿拉尔市| 怀柔区| 杭锦旗| 屏南县| 滨州市| 邵武市| 莲花县| 柳江县| 札达县| 咸阳市| 无极县| 新建县| 奈曼旗| 丹棱县| 连州市| 渝中区| 湖北省| 文水县| 高雄县| 葵青区| 洛川县| 阳西县| 辽源市| 会理县| 淮北市| 海原县| 瑞金市| 清涧县| 巧家县| 临朐县| 图木舒克市| 张掖市| 康乐县|