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