劉玉艷,沈明玉
(1. 池州學(xué)院,池州 247000;2. 合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,合肥 230009)
隨著Internet的飛速發(fā)展和對(duì)人們生活影響的深入,越來(lái)越多的人選擇在互聯(lián)網(wǎng)上購(gòu)物、娛樂(lè)、休閑、獲取信息或與人溝通;更多的企事業(yè)、單位、公司通過(guò)互聯(lián)網(wǎng)來(lái)完成它們的業(yè)務(wù),建立與客戶(hù)的聯(lián)絡(luò)。這種變化促使互聯(lián)網(wǎng)的用戶(hù)數(shù)和網(wǎng)絡(luò)流量以幾何級(jí)數(shù)增長(zhǎng),對(duì)網(wǎng)絡(luò)服務(wù)的可伸縮性提出了更高的要求。
日益增長(zhǎng)的訪問(wèn)量和高強(qiáng)度的負(fù)荷對(duì)網(wǎng)絡(luò)服務(wù)器的性能要求越來(lái)越高,越來(lái)越多的應(yīng)用要求能夠提供不間斷的服務(wù),服務(wù)器端的任何中斷都將造成不可估量的損失,因此需要一套可靠的方案來(lái)解決網(wǎng)絡(luò)服務(wù)器的高可用性問(wèn)題。
用Linux虛擬服務(wù)器(Linux Virtual Server)技術(shù)可以建立一個(gè)具有高性?xún)r(jià)比、可擴(kuò)展性和高可管理性等特性的集群系統(tǒng),能有效解決網(wǎng)絡(luò)服務(wù)負(fù)載均衡的問(wèn)題[1]。
Linux Virtual Server(簡(jiǎn)稱(chēng)LVS)系統(tǒng)是一個(gè)開(kāi)源項(xiàng)目,它采用基于IP層負(fù)載均衡的調(diào)度方法將TCP/IP請(qǐng)求均衡地分配到不同的真實(shí)服務(wù)器(Real Server,簡(jiǎn)稱(chēng)RS)上,負(fù)載均衡器自動(dòng)屏蔽掉真實(shí)服務(wù)器的故障,將一組真實(shí)服務(wù)器構(gòu)成一個(gè)高性能的、高可用的虛擬服務(wù)器[2~4]。
LVS系統(tǒng)屬于任務(wù)級(jí)負(fù)載均衡。它采用集中式任務(wù)分配,任務(wù)的分配是以連接為粒度。如在HTTP 協(xié)議中,每個(gè)從Web 服務(wù)器上獲得的對(duì)象都需要建立一個(gè)TCP 連接,用戶(hù)的不同請(qǐng)求會(huì)被調(diào)度到不同的服務(wù)器上,所以這種細(xì)粒度的調(diào)度在一定程度上可以避免了用戶(hù)訪問(wèn)的突發(fā)性引起的負(fù)載不均的問(wèn)題。
LV S系統(tǒng)支持八種調(diào)度策略:輪詢(xún)法(RR)、加權(quán)輪詢(xún)法(WRR)、最少連接法(LC)、加權(quán)最少連接法(WLC)、基于局部性的最少連接法(LBLC)、帶復(fù)制的基于局部性最少連接法(LBLCR)、目標(biāo)地址散列法(DH)和源地址散列法(SH) 。
調(diào)度算法設(shè)計(jì)的好壞直接決定了集群在負(fù)載均衡上的表現(xiàn),設(shè)計(jì)不好的算法,會(huì)導(dǎo)致集群的負(fù)載失衡。一般的平衡算法主要任務(wù)是決定如何選擇下一個(gè)集群節(jié)點(diǎn),然后將新的服務(wù)請(qǐng)求轉(zhuǎn)發(fā)給它。有些簡(jiǎn)單平衡方法可以獨(dú)立使用,有些必須和其它簡(jiǎn)單或高級(jí)方法組合使用。而一個(gè)好的負(fù)載均衡算法也并不是萬(wàn)能的,它一般只在某些特殊的應(yīng)用環(huán)境下才能發(fā)揮最大效用。因此在考察負(fù)載均衡算法的同時(shí),也要注意算法本身的適用面,并在采取集群部署的時(shí)候根據(jù)集群自身的特點(diǎn)進(jìn)行綜合考慮,把不同的算法和技術(shù)結(jié)合起來(lái)使用。
通過(guò)研究發(fā)現(xiàn),以LVS的八種調(diào)度算法為基礎(chǔ),現(xiàn)在人們也研究出很多種動(dòng)態(tài)調(diào)度算法,如動(dòng)態(tài)負(fù)反饋[5,6]、基于Agent的調(diào)度算法[7]、最快回應(yīng)最少連接調(diào)度算法[8]等。動(dòng)態(tài)負(fù)載均衡算法就是負(fù)載均衡器周期性地從后端服務(wù)器獲取當(dāng)前各節(jié)點(diǎn)真實(shí)服務(wù)器的負(fù)載狀態(tài),并根據(jù)這些狀態(tài)來(lái)動(dòng)態(tài)調(diào)整后續(xù)的分配策略,最為關(guān)鍵的步驟是動(dòng)態(tài)地計(jì)算每臺(tái)服務(wù)器的當(dāng)前負(fù)載權(quán)值。動(dòng)態(tài)負(fù)載調(diào)度算法中,負(fù)載均衡器需及時(shí)、準(zhǔn)確把握節(jié)點(diǎn)服務(wù)器的負(fù)載狀況,并根據(jù)各個(gè)節(jié)點(diǎn)真實(shí)服務(wù)器當(dāng)前的資源使用狀態(tài)動(dòng)態(tài)調(diào)整負(fù)載平衡的任務(wù)分布,這樣才能實(shí)現(xiàn)系統(tǒng)高效的負(fù)載均衡。因此,使用動(dòng)態(tài)調(diào)度算法的集群系統(tǒng),負(fù)載均衡器需要安裝收集和計(jì)算各節(jié)點(diǎn)服務(wù)器運(yùn)行時(shí)的CPU頻率、CPU個(gè)數(shù)、CPU的使用率、內(nèi)存大小、網(wǎng)絡(luò)流量、響應(yīng)速度等狀態(tài)信息的監(jiān)控軟件;各節(jié)點(diǎn)服務(wù)器則需安裝反饋傳遞自身狀態(tài)信息的響應(yīng)軟件。這些軟件需要購(gòu)買(mǎi)或二次開(kāi)發(fā),這會(huì)加大投資成本;此外,動(dòng)態(tài)算法中負(fù)載均衡器與各節(jié)點(diǎn)服務(wù)器也需實(shí)時(shí)交互,這無(wú)疑會(huì)造成占用系統(tǒng)資源、加大系統(tǒng)內(nèi)耗和增加額外開(kāi)支等問(wèn)題。因此當(dāng)前的動(dòng)態(tài)調(diào)度算法大都存在:如何降低負(fù)載信息獲取、交互所占用的系統(tǒng)資源[9],使系統(tǒng)內(nèi)耗資源降低等一些未能解決的問(wèn)題,所以目前負(fù)載均衡系統(tǒng)中仍較多采用LVS調(diào)度算法。
WLC算法調(diào)度算法也是一種動(dòng)態(tài)調(diào)度算法。這種算法實(shí)時(shí)地計(jì)算每個(gè)節(jié)點(diǎn)的連接數(shù),并且考慮各真實(shí)服務(wù)器性能差異。它即克服了靜態(tài)調(diào)度算法只適用于同構(gòu)服務(wù)器(即各節(jié)點(diǎn)服務(wù)器配置相差不大)集群系統(tǒng)的缺點(diǎn),也解決了大多動(dòng)態(tài)調(diào)度算法中負(fù)載均衡器和節(jié)點(diǎn)服務(wù)器需安裝額外軟件、頻繁交互額外產(chǎn)生內(nèi)耗等問(wèn)題。WLC是LVS提供的八種調(diào)度算法之一,是系統(tǒng)默認(rèn)的調(diào)度算法。
算法基本思想:該算法是最少連接算法的改進(jìn),它為每個(gè)真實(shí)服務(wù)器Si指定一個(gè)整數(shù)值Wi標(biāo)記服務(wù)器的性能(性能較高的服務(wù)器具有較大值)。
算法的實(shí)現(xiàn):當(dāng)負(fù)載均衡器分配服務(wù)時(shí),會(huì)在支持此服務(wù)的真實(shí)服務(wù)器分配鏈表中,從頭部開(kāi)始尋找連接數(shù)與權(quán)值的比值最小、且權(quán)值不為零(表示服務(wù)器可用)的服務(wù)器,如果找到符合要求的服務(wù)器,則返回此服務(wù)器指針,否則返回空指針。算法流程如下:
假設(shè)有一組服務(wù)器S = {S0, S1, ..., Sn-1},W(Si)表示服務(wù)器Si的權(quán)值,C(Si)表示服務(wù)器Si的當(dāng)前連接數(shù)。所有服務(wù)器當(dāng)前連接數(shù)的總和為CSUM = ΣC(Si) (i=0, 1, .. , n-1)。當(dāng)前的新連接請(qǐng)求會(huì)被發(fā)送服務(wù)器Sm,當(dāng)且僅當(dāng)服務(wù)器Sm滿足以下條件 (C(Sm) / CSUM)/ W(Sm) = min { (C(Si)/ CSUM) / W(Si)} (i=0, 1, . , n-1),其中W(Si)不為零,因?yàn)镃SUM在這一輪查找中是個(gè)常數(shù),所以判斷條件可以簡(jiǎn)化為:
C(Sm) / W(Sm) = min { C(Si) / W(Si)} (i=0, 1, ., n-1) 其中W(Si)不為零
因?yàn)槌ㄋ璧腃PU周期比乘法多,且在Linux內(nèi)核中不允許浮點(diǎn)除法,服務(wù)器的權(quán)值都大于零,所以判斷條件C(Sm) / W(Sm) > C(Si) / W(Si)可以進(jìn)一步表示為C(Sm)*W(Si) > C(Si)* W(Sm)。同時(shí)保證服務(wù)器的權(quán)值為零時(shí),服務(wù)器不被調(diào)度。所以,算法只要執(zhí)行以下流程:
算法的評(píng)價(jià):算法既考慮了集群中各真實(shí)服務(wù)器的處理性能的不同,又考慮了各個(gè)真實(shí)服務(wù)器的狀態(tài),可以實(shí)現(xiàn)真正意義上的負(fù)載均衡。雖然算法復(fù)雜度稍微大些,但是它提高了系統(tǒng)的效率,這種效率的提高不僅抵消了算法所帶來(lái)的開(kāi)銷(xiāo),而且大大地改善了系統(tǒng)地性能。WLC 是LVS的缺省負(fù)載分配算法,在通常的應(yīng)用中一般都采用此算法。加權(quán)最小連接算法既考慮了各個(gè)真實(shí)服務(wù)器當(dāng)前的連接狀態(tài),又考慮了各個(gè)真實(shí)服務(wù)器的處理能力因素,因而是LVS集群系統(tǒng)任務(wù)分配算法中最優(yōu)的。
WLC調(diào)度算法雖被廣泛采用,這種算法也存在如下問(wèn)題:1)權(quán)值估算的合理、科學(xué)性。WLC算法中用到的權(quán)值是管理員根據(jù)每臺(tái)服務(wù)器的性能及負(fù)載狀況為每臺(tái)服務(wù)器指定一個(gè)整數(shù)值。擁有比較高的權(quán)值的真實(shí)服務(wù)器在任何時(shí)候其上活動(dòng)的連接數(shù)都占有比較高的百分比,權(quán)值直接影響系統(tǒng)中各節(jié)點(diǎn)能否“均衡”,因此使用科學(xué)、合理的方法計(jì)算權(quán)值,對(duì)異構(gòu)負(fù)載均衡系統(tǒng)至關(guān)重要。傳統(tǒng)采用WLC算法的LVS負(fù)載均衡系統(tǒng),其中的權(quán)值大都是管理員根據(jù)節(jié)點(diǎn)服務(wù)器硬件配置估算的,這種估算方法的科學(xué)性顯然有不科學(xué)的地方,本文將介紹一種節(jié)點(diǎn)服務(wù)器權(quán)值優(yōu)化的方法。2)權(quán)值配置需要管理員手工配置,不能在系統(tǒng)運(yùn)行過(guò)程中自動(dòng)動(dòng)態(tài)完成。以及無(wú)法估算出每臺(tái)節(jié)點(diǎn)服服器的動(dòng)態(tài)權(quán)值等問(wèn)題。這些是負(fù)載均衡器和節(jié)點(diǎn)服務(wù)器不需額外安裝監(jiān)控和反饋軟件所帶來(lái)的負(fù)面問(wèn)題,并不是算法本身存在的本質(zhì)問(wèn)題,所以不在本文討論范圍之內(nèi),本文要討論的是如何得到更反映服務(wù)器實(shí)際性能的權(quán)值問(wèn)題,即權(quán)值計(jì)算方法的優(yōu)化。
加權(quán)最少連接調(diào)度算法(WLC)是最少連接優(yōu)先算法的超集。這種算法需為集群中的每個(gè)節(jié)點(diǎn)分配一個(gè)反映該節(jié)點(diǎn)處理能力的權(quán)重。任何時(shí)候,權(quán)重大的節(jié)點(diǎn)都應(yīng)該得到份額較大的連接。服務(wù)器權(quán)值又稱(chēng)砝碼是反映服務(wù)器處理能力的指標(biāo),它通常受帶寬、緩沖區(qū)I/O、CPU調(diào)度周期、需要處理的數(shù)據(jù)量、啟動(dòng)的線程數(shù)、磁盤(pán)訪問(wèn)時(shí)間等多種因素綜合影響[10]。
在WLC算法中,判斷條件語(yǔ)句是C(Sm)*W(Si)>C(Si)*W(Sm),i=0,1,2,……,n-1,W(Si)不為零,Si表示上次分配的服務(wù)器,Sm表示下一次將要分配的服務(wù)器,C(Si)和C(Sm),W(Si)W(Sm)分別表示服務(wù)器Si和Sm的當(dāng)前連接數(shù)和權(quán)值。
服務(wù)器連接數(shù)是負(fù)載均衡器根據(jù)各節(jié)點(diǎn)服務(wù)器當(dāng)前連接狀態(tài),由系統(tǒng)動(dòng)態(tài)自動(dòng)獲得;權(quán)值是反映服務(wù)器性能高低的一個(gè)整數(shù)值,它以倍數(shù)形式反映服務(wù)器能力的差別,如權(quán)值為200的節(jié)點(diǎn)比100的服務(wù)器性能高2倍。因此WLC算法優(yōu)化主要是對(duì)各節(jié)點(diǎn)服務(wù)器權(quán)值的優(yōu)化。
任何工具或人都無(wú)法計(jì)算出動(dòng)態(tài)運(yùn)行機(jī)器的實(shí)際性能(即WLC算法中的權(quán)值),因此只能盡量使計(jì)算的權(quán)值科學(xué)、合理。服務(wù)器性能除受本身組成硬件CPU、內(nèi)存、主板、硬盤(pán)等綜合作用的影響外,還受服務(wù)器軟件和網(wǎng)絡(luò)連接等因素影響,因此由管理員僅根據(jù)硬件配置估算出來(lái)的權(quán)值,明顯存在不妥之處??茖W(xué)合理的權(quán)值計(jì)算方法,應(yīng)綜合硬件因素協(xié)作結(jié)果的整機(jī)效能和作為網(wǎng)絡(luò)應(yīng)用的服務(wù)性能指標(biāo)(如響應(yīng)時(shí)間,吞吐量等)等多種因素。
使用WLC調(diào)度算法的負(fù)載均衡系統(tǒng),管理員給各個(gè)節(jié)點(diǎn)服務(wù)器配置的整數(shù)值(即權(quán)值),是以倍數(shù)形式反映各節(jié)點(diǎn)服務(wù)器間性能差異,因此只要得出各節(jié)點(diǎn)服務(wù)器性能比值,即可以配置WLC調(diào)度算法的各節(jié)點(diǎn)服務(wù)器的權(quán)值數(shù)。例如有三臺(tái)服務(wù)器分別用A,B,C,若三者的性能比例為1:2:3,則A,B,C的權(quán)值可分別配置為100,200,300。由此可推,計(jì)算各節(jié)點(diǎn)服務(wù)器權(quán)值可轉(zhuǎn)化為計(jì)算各節(jié)點(diǎn)服務(wù)器性能比值,然后再調(diào)整為適當(dāng)?shù)恼麛?shù)值即可。
假如有兩臺(tái)服務(wù)器分別用A和B表示,它們的權(quán)值用WA和WB表示,則可用公式:WA/WB=(MA/MB+NA/NB)/2求得機(jī)器A和B性能之比,其中MA,MB表示機(jī)器A和B的整機(jī)系統(tǒng)性能,NA,NB分別表示機(jī)器A和B的網(wǎng)絡(luò)服務(wù)性能。無(wú)論是機(jī)器的整體性能,還是網(wǎng)絡(luò)應(yīng)用服務(wù)性能都應(yīng)根據(jù)問(wèn)題的復(fù)雜程度選用多個(gè)或單個(gè)指標(biāo)測(cè)試得到。為簡(jiǎn)化計(jì)算過(guò)程,在選用各指標(biāo)時(shí)要盡量統(tǒng)一選取為正向指標(biāo),即所選指標(biāo)與性能成正比。若遇到特殊情況不得不選用某逆向指標(biāo)時(shí),則要將此項(xiàng)的比值取倒數(shù)后再代入公式計(jì)算。公式可以反映出節(jié)點(diǎn)服務(wù)器性能即權(quán)值,是由整機(jī)性能和網(wǎng)絡(luò)服務(wù)系統(tǒng)性能兩個(gè)指標(biāo)來(lái)共同決定的。
3.1.1 服務(wù)器整機(jī)性能測(cè)試工具
服務(wù)器的整機(jī)性能指標(biāo)是衡量系統(tǒng)是否先進(jìn)的一個(gè)重要參數(shù),在測(cè)試中一般以速度作為衡量標(biāo)準(zhǔn)。如CPU的工作頻率、內(nèi)存的數(shù)據(jù)存取時(shí)間、各種總線的數(shù)據(jù)傳輸帶寬等[11]。為準(zhǔn)確衡量服務(wù)器整機(jī)的性能高底,單從表面的硬件配置上是無(wú)法準(zhǔn)確和精確弄清楚的,應(yīng)選用專(zhuān)業(yè)硬件測(cè)試軟件來(lái)實(shí)現(xiàn)計(jì)算機(jī)性能測(cè)試。針對(duì)安裝操作系統(tǒng)的不同,可選用相對(duì)應(yīng)的測(cè)試軟件,如基于DOS系統(tǒng)的性能測(cè)試軟件Norton Utility等,基于Linux環(huán)境的I/O測(cè)試工具iozone和服務(wù)器網(wǎng)絡(luò)性能測(cè)試工具Netperf?;赪indows系統(tǒng)的性能測(cè)試軟件Iometer、Lavalys Everest、SiSoft Sandra Pro、WintuneWinsstem、Business Winstone、WinBench 2004和PCMark 2004等[12]。因本文設(shè)計(jì)的系統(tǒng)中節(jié)點(diǎn)服務(wù)器是安裝的Windows系統(tǒng),因而只介紹Windows系統(tǒng)的性能測(cè)試軟件的使用方法,對(duì)于基于其他操作系統(tǒng)的性能測(cè)試軟件,用戶(hù)可自己查閱相關(guān)資料。
根據(jù)測(cè)試目的的不同,有不同的性能測(cè)試軟件,如Everest可鑒別CPU的真假、查詢(xún)內(nèi)存詳細(xì)情況、硬盤(pán)轉(zhuǎn)速容量等狀況,也可以檢測(cè)顯卡、聲卡、機(jī)器整機(jī)性能等指標(biāo);SiSoft Sandra Pro則側(cè)重于系統(tǒng)分析與評(píng)測(cè);WinBench 2004主要測(cè)試系統(tǒng)整體性能;Business Winstone 2004則是一種非常專(zhuān)業(yè)、嚴(yán)格的整機(jī)性能測(cè)試軟件;PCMark 2004是一款綜合性能測(cè)試軟件。
本文選用FutureMark公司的一款硬件測(cè)試工具PCMark04,取測(cè)試結(jié)果中的PCMark Score作為計(jì)算公式中的整機(jī)性能指標(biāo)。
3.1.2 服務(wù)器網(wǎng)絡(luò)性能測(cè)試工具
常用的基本網(wǎng)絡(luò)服務(wù)包括DNS服務(wù)、郵件服務(wù)、WWW服務(wù)、FTP服務(wù)、DHCP服務(wù)、流媒體服務(wù)等等[13]。針對(duì)不同的網(wǎng)絡(luò)服務(wù),測(cè)試指標(biāo)和測(cè)試工具均有不同,如可用Avalanche 2200工具測(cè)試郵件服務(wù)器的瞬間提供SMTP服務(wù)的能力——最大并發(fā)數(shù)、成功發(fā)送郵件百分比、平均往返延遲等指標(biāo)以反映服務(wù)器性能[14]; Spirent公司的Smartbits 600B工具可測(cè)試流媒體服務(wù)器性能,WebMark工具測(cè)試Web服務(wù)器性能,Mercury(美科利)Interactive公司的LoadRunner工具則可適用于各種體系架構(gòu),可以支持很多協(xié)議和技術(shù)如Web、Ftp、Database[15],在客戶(hù)端使用WebServer stress Tool工具測(cè)試用戶(hù)訪問(wèn)服務(wù)器一定大小的網(wǎng)頁(yè)時(shí)所用的時(shí)間(Time Spent)或者網(wǎng)絡(luò)流量(Traffic),Avalanche 2500 Web工具測(cè)試服務(wù)器的最大新建用戶(hù)數(shù)、總響應(yīng)數(shù)和成功響應(yīng)數(shù),RadView公司的webload工具可以測(cè)試服務(wù)器的吞吐量、每秒處理事務(wù)數(shù)等指標(biāo),微軟公司提供的免費(fèi)Web Application Stress(簡(jiǎn)稱(chēng)WAS)工具能夠測(cè)試Web Server的吞吐率、請(qǐng)求響應(yīng)時(shí)間等指標(biāo)。
為保證測(cè)試數(shù)據(jù)的科學(xué)性和準(zhǔn)確性,一般情況下,應(yīng)采用兩種或兩種以上的測(cè)試軟件對(duì)服務(wù)器性能的不同指標(biāo)進(jìn)行測(cè)試,如選用Web server stress tool工具測(cè)試服務(wù)器的time spent,選用WAS測(cè)試服務(wù)器的請(qǐng)求響應(yīng)時(shí)間、吞吐率等指標(biāo),并且最好采用多次測(cè)試取平均值的方法計(jì)算各服務(wù)器的相應(yīng)指標(biāo)。
本文所設(shè)計(jì)系統(tǒng)的實(shí)驗(yàn)環(huán)節(jié),選用微軟公司提供的免費(fèi)測(cè)試工具WAS。用它來(lái)測(cè)試每臺(tái)服務(wù)器的請(qǐng)求響應(yīng)時(shí)間(TTLB)和吞吐率(Requests per second),分別用A,B標(biāo)識(shí)各臺(tái)服務(wù)器,用同一臺(tái)安裝WAS工具的客戶(hù)機(jī),并在WAS測(cè)試環(huán)境中設(shè)置相同的測(cè)試條件如相同的用戶(hù)數(shù)、用戶(hù)并發(fā)數(shù)和測(cè)試時(shí)間等參數(shù),使用相同的測(cè)試腳本。
3.2.1 服務(wù)器整機(jī)性能測(cè)試結(jié)果
測(cè)試運(yùn)行結(jié)束后,PCMark04出現(xiàn)的測(cè)試結(jié)果如圖1所示.
圖1 PCMark04出現(xiàn)的測(cè)試結(jié)果
其中PCMark Score的計(jì)算公式是:
PCMark Score = 66 × (File Compression ×File Encryption × File Decompression × Image Processing × File Decryption × Virus Scanning ×Grammar Check × Audio Conversion × Web Page Rendering × WMV Video Compression × DivX Video Compression × Physics and 3D × Graphics Memory)1/13
公式中的66是將最后成績(jī)進(jìn)行一定倍數(shù)的擴(kuò)大,以使測(cè)試結(jié)果有一定的有效位數(shù)和容易記憶,公式最后的 1/13 次方則代表對(duì)前面的乘積進(jìn)行13次方開(kāi)根號(hào)。
圖1中的PCMark Score的數(shù)值,即是所測(cè)機(jī)器的整機(jī)性能指標(biāo)。為使測(cè)試數(shù)據(jù)具有可比性,所有真實(shí)服務(wù)器應(yīng)設(shè)置相同的測(cè)試環(huán)境:格式化一樣的分區(qū)、安裝相同的操作系統(tǒng)和版本、安裝相同的軟件環(huán)境。測(cè)試每臺(tái)機(jī)器時(shí)均采用測(cè)試五次、每次機(jī)器重啟,最后將五次結(jié)果計(jì)算平均值。實(shí)驗(yàn)中測(cè)得兩臺(tái)機(jī)器A和B的PCmark Score指標(biāo)分別為2586和4215
3.2.2 服務(wù)器網(wǎng)絡(luò)性能測(cè)試結(jié)果
分別測(cè)試機(jī)器A和B,實(shí)驗(yàn)所得數(shù)據(jù)如表1所示:
表1 機(jī)器A,B實(shí)驗(yàn)測(cè)得數(shù)據(jù)
Requests per second即吞吐率,表示W(wǎng)eb Server每秒處理客戶(hù)請(qǐng)求數(shù),為正向指標(biāo),即此值越大表示性能越高[16]。TTLB Avg即平均請(qǐng)求響應(yīng)時(shí)間,表示從發(fā)起一個(gè)請(qǐng)求開(kāi)始,到客戶(hù)端收到最后一個(gè)字節(jié)所耗費(fèi)的時(shí)間[17],此指標(biāo)為逆向指標(biāo),即值越小表示服務(wù)器性能越好。
3.2.3 實(shí)驗(yàn)分析
將機(jī)器A和B測(cè)試數(shù)據(jù),利用權(quán)值改進(jìn)方法計(jì)算出A和B性能比值,再以此比值為基礎(chǔ)調(diào)整成合適的權(quán)值。將實(shí)驗(yàn)中所測(cè)指標(biāo)代入上文公式,得:
MA/MB=4215/2586≈1.63,
NA/NB=(44.31/15.24+3260.06/1125.33)/2≈1.62,(此公式中有逆向指標(biāo)TTLB Avg,機(jī)器A的值是1125.33,B的值是3260.06,計(jì)算時(shí)用比值的倒數(shù)即3260.06/1125.33)
WA/WB=(1.63+1.62)/2≈1.6。
為在實(shí)際負(fù)載均衡系統(tǒng)中,更能明顯表示服務(wù)器性能變化,將A和B的權(quán)值分別用160和100表示。將實(shí)驗(yàn)沒(méi)得數(shù)據(jù)配置在實(shí)際的負(fù)載均衡系統(tǒng)中,發(fā)現(xiàn)系統(tǒng)能實(shí)現(xiàn)很好均衡,權(quán)值大的即性能較高的服務(wù)器分配了較多的負(fù)載,而值小的則分配的負(fù)載較少。
本文提出一種通過(guò)分別測(cè)試各節(jié)點(diǎn)服務(wù)器的整機(jī)性能和網(wǎng)絡(luò)性能,再按數(shù)學(xué)方法求得各節(jié)點(diǎn)的比值,最后再調(diào)整為合適的數(shù)值,作為服務(wù)器的權(quán)值配置到實(shí)際應(yīng)用的LVS均衡系統(tǒng)中,配置到LVS負(fù)載均衡系統(tǒng)。實(shí)驗(yàn)結(jié)果表明采用這種方法將會(huì)使系統(tǒng)中各節(jié)點(diǎn)服務(wù)器更好實(shí)現(xiàn)均衡。
[1] 章文嵩.Linux服務(wù)器集群系統(tǒng)[EB/OL]http://www.ibm.com/developerworks/cn /linux /cluster/lvs/part1/index.html.2002.
[2] YM TEO.Comparison of Load Balancing Strategies on Cluster-based Web Servers[DB/OL].Transactions of the Society for Modeling and Simulation.2001.
[3] L AVERSA,A BESTAVROS.Load balancing a cluster of Web Servers Us-ing Distributed Packet Rewriting[C].Proceedings of the 2000 IEEE International Performance,Computing,and Communications Confer ence,2000.2:24-29.
[4] 許廣斌.基于linux的集群系統(tǒng)[EB/OL]http://www.ibm.com/developerworks /cn/linux/cluster /linux_cluster/part1/index.html.2004
[5] V CARDELLINI P S Yu.Dynamic load balancing on web server systems[J].IEEE Internet Computing,1999.
[6] TA NGUYEN,BINH DUONG,SUIPING Zhou [J].A dynamic load sharing Algorithm for Massively Multiplayer Online Games[J].Sydney Australia.2003.
[7] 王晉鵬,潘龍法,李降龍.LVS集群中的動(dòng)態(tài)反饋調(diào)度算法[J].計(jì)算機(jī)工程.2005,3(19).
[8] 鄭祺.一種基于動(dòng)態(tài)反饋的負(fù)載均衡算法研究[J].計(jì)算機(jī)時(shí)代,2006.
[9] 喬治.基于Linux負(fù)載均衡系統(tǒng)的研究與實(shí)現(xiàn)[D].北京工業(yè)大學(xué),2005.
[10]余勝生,楊立輝,等.一種基于可變權(quán)重的最少連接優(yōu)先算法[J].小型微型計(jì)算機(jī)系統(tǒng),2003,24(11).
[11]易建勛.計(jì)算機(jī)維修技術(shù)[M].清華大學(xué)出版社,2005.
[12]曹岳輝,李力,李夢(mèng)暉.計(jì)算機(jī)硬件技術(shù)基礎(chǔ)[M]. 清華大學(xué)出版社,2006.
[13]MOHAN C.Application servers and associated technologies[J].New York:ACM Press.2002.
[14]姜波,張峰."郵"系方寸間 -- E-mail服務(wù)器性能綜述[J].網(wǎng)絡(luò)世界,2006.
[15]服務(wù)器性能測(cè)試典型工具,網(wǎng)管員世[EB/OL],http://www.netadmin.com.cn /kt_article_show.php?article_id=12331&categ_code=10261003. 2007
[16]HUANAT.Redhat advance enterprise下架設(shè)雙機(jī)集群[EB/OL].http://www.ixpub.net/638747.html.2006.
[17]陳紹英,等.Web Performance Test Model And Application[M].電子工業(yè)出版社,2006.