曾輝
(四川大學(xué)計算機學(xué)院,成都 610065)
計算機技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)人群的不斷增加,導(dǎo)致網(wǎng)絡(luò)的業(yè)務(wù)量與數(shù)據(jù)量呈爆炸性增長,這對服務(wù)器是一個嚴峻的考驗。當服務(wù)器達到瓶頸時,解決的方案主要有兩種,一是用性能更好,運算速度更快的服務(wù)器替換,二是集群化,增加服務(wù)器的數(shù)量構(gòu)成集群共同對外服務(wù),后者因性價比高擴展性好而成為首選。服務(wù)器集群面臨的一個重要問題就是負載均衡,負載是否均衡直接影響到集群的性能,容錯性以及穩(wěn)定性。決定集群負載是否均衡的核心在于負載均衡算法,高效率負載均衡算法可以增大集群的吞吐量,降低請求平均反應(yīng)時間,從而提高集群的資源利用率,增加公司的市場競爭力。目前很多學(xué)者提出了很多改進的負載均衡算法,其中一種策略就是基于參數(shù)的加權(quán)負載分配。
參數(shù)化加權(quán)負載分配策略是根據(jù)服務(wù)節(jié)點一些參數(shù),例如CPU占用率,內(nèi)存占用率,網(wǎng)絡(luò)帶寬,磁盤速率等,對這些參數(shù)賦予一個適當?shù)挠嬎阆禂?shù),計算出節(jié)點的處理能力與實際負載,再綜合考慮二者從而決定任務(wù)分配的一種策略。這種策略的重點在于節(jié)點的參數(shù)選擇與計算系數(shù)的分配上,參與計算的參數(shù)選取的越多,節(jié)點性能與負載計算越精確,但帶來的額外的計算開銷也越大;計算系數(shù)選擇合適,算法效率會大大提高,若計算系數(shù)選取不當,則很可能會起到相反的效果。
國防科技大學(xué)的劉健等人提出了一種基于動態(tài)反饋的負載均衡算法,算法在選取目標服務(wù)器時考慮了節(jié)點處理能力與節(jié)點實際負載兩種因素的影響,在獲取節(jié)點的處理能力時,算法考慮了CPU的數(shù)量,類型和頻率,內(nèi)存容量,磁盤I/O速率,最大進程數(shù)量以及網(wǎng)絡(luò)吞吐量等因素,在獲取節(jié)點的實際負載時,算法考慮了CPU利用率,內(nèi)存利用率,進程數(shù)量占用率,磁盤I/O占用率,網(wǎng)絡(luò)帶寬占用率等因素。首先,算法選出集群中負載最小的節(jié)點,然后根據(jù)預(yù)設(shè)的閾值f選出符合條件的候選服務(wù)器集群J,然后根據(jù)節(jié)點的處理能力按照一定的概率將任務(wù)隨機分配給候選服務(wù)器中的某個節(jié)點。算法考慮到了節(jié)點的處理能力與實際負載兩種因素,均衡效率與經(jīng)典的最少連接算法相比有了提升,但是算法并沒有將節(jié)點的處理能力與實際負載綜合考慮,在選取候選服務(wù)器節(jié)點時只考慮了負載而忽視了節(jié)點性能,這使得算法的效率有所下降。并且,在考慮節(jié)點性能與實際負載時,算法充分考慮了各種因素的影響,雖然更加精確但相應(yīng)的計算也產(chǎn)生了一定的額外開銷。
重慶大學(xué)的張玉芳等人提出了一種基于負載權(quán)值的負載均衡算法。算法根據(jù)節(jié)點的CPU數(shù)量和頻率,內(nèi)存容量,網(wǎng)絡(luò)吞吐量和磁盤I/O速率計算出節(jié)點的處理能力,根據(jù)節(jié)點的CPU占用率,內(nèi)存占用率,網(wǎng)絡(luò)帶寬占用率和磁盤I/O占用率計算出節(jié)點的實際負載,然后將節(jié)點的實際負載與節(jié)點處理能力的比值定義為負載權(quán)值,在選取目標節(jié)點時首先將集群中負載權(quán)值最小的節(jié)點選取出來,然后根據(jù)預(yù)設(shè)的閾值f選出符合條件的候選服務(wù)器集群J。與劉健等人的算法相比,該算法在選取候選服務(wù)器節(jié)點時充分考慮了節(jié)點處理能力與節(jié)點負載兩種因素的影響,從而使得性能高的節(jié)點分配到更多任務(wù),達到能者多勞,負載均衡的目的,均衡效率有所提高。在參數(shù)選擇上算法去掉了進程數(shù)量的影響,但剩余參數(shù)的計算依然會產(chǎn)生一定的額外開銷。
吉林大學(xué)的劉敏等人提出了一種新的處理能力優(yōu)先的權(quán)值分配調(diào)度算法,算法認為為減少參數(shù)計算帶來的開銷和減輕負載均衡器的負擔(dān),在改進算法時不應(yīng)引入過多參數(shù),故算法在計算權(quán)值時只考慮了節(jié)點的CPU占用率和內(nèi)存空閑率,大大減少了參數(shù)計算帶來的開銷。處理能力優(yōu)先的權(quán)值分配調(diào)度算法并不是一種獨立的算法,它需要與之前的某些加權(quán)算法配合才能發(fā)揮更好的性能,加權(quán)算法的某些缺點,例如權(quán)值需要管理員手動設(shè)置,可能不能精確反映節(jié)點處理能力,在算法里并沒有得到改善。算法在計算權(quán)值時只是考慮了節(jié)點的CPU占用率和內(nèi)存空閑率而沒有與節(jié)點性能聯(lián)系起來,這對負載效率有一定影響。
也有其他學(xué)者基于參數(shù)化加權(quán)負載分配策略對負載均衡算法做了改進,但總的來說與上述三種算法大同小異,在此不再贅述。由此可見,節(jié)點參數(shù)與其計算系數(shù)的選取,節(jié)點性能與節(jié)點負載的綜合考慮,是參數(shù)化加權(quán)負載分配策略的重要內(nèi)容。
參數(shù)化加權(quán)負載分配算法作為負載均衡算法的一種改進策略,與傳統(tǒng)的負載均衡算法相比,它可以充分考慮并兼顧服務(wù)節(jié)點的處理性能與實際負載,使性能高的節(jié)點獲得更多任務(wù),從而達到負載均衡的效果。策略的重點在于為每個被考慮的參數(shù)選擇一個合適的計算系數(shù),如果計算系數(shù)選擇不適當,很可能會取得相反的效果。同時,如何將服務(wù)節(jié)點的實際負載動態(tài)反饋到負載均衡器上而不增加較多額外的開銷,也是這種改進策略需要考慮的問題。
參考文獻:
[1]郭成城,晏蒲柳.一種異構(gòu)Web服務(wù)器集群動態(tài)負載均衡算法[J].計算機學(xué)報,2005,28(2):179-184.
[2]張玉芳,魏欽磊,趙膺.基于負載權(quán)值的負載均衡算法[J].計算機應(yīng)用研究,2012,29(12):4711-4713.
[3]劉健,徐磊,張維明.基于動態(tài)反饋的負載均衡算法[J].計算機工程與科學(xué),2003,25(5):65-68.
[4]王紅斌.Web服務(wù)器集群系統(tǒng)的自適應(yīng)負載均衡調(diào)度策略研究_王紅斌[D].長春:吉林大學(xué),2013.
[5]劉敏,房至一,王紅斌,等.一種新的處理能力優(yōu)先的權(quán)值分配調(diào)度算法[J].吉林大學(xué)學(xué)報(理學(xué)版),2011,49(6):1105-1109.