邰瀅瀅,薄 旭,龐 影,付云鵬
(遼寧大學(xué) 信息學(xué)院,沈陽(yáng) 110036)
服務(wù)器的實(shí)時(shí)性是服務(wù)端對(duì)客戶端的請(qǐng)求在指定時(shí)間做出響應(yīng)的性能.實(shí)時(shí)性高的響應(yīng)時(shí)間短,實(shí)時(shí)性低的響應(yīng)時(shí)間長(zhǎng).對(duì)實(shí)時(shí)性沒(méi)有嚴(yán)格要求而只要求處理任務(wù)的吞吐量的服務(wù)器是任務(wù)性服務(wù)端.傳統(tǒng)意義上研究服務(wù)端負(fù)載平衡都是任務(wù)分配的負(fù)載平衡.隨著大數(shù)據(jù)時(shí)代的到來(lái),實(shí)時(shí)服務(wù)器負(fù)載平衡問(wèn)題越來(lái)越突出.比如騰訊、微信等有上億客戶端,其后臺(tái)服務(wù)器網(wǎng)絡(luò)如何實(shí)時(shí)響應(yīng)這些海量請(qǐng)求;再如隨著自動(dòng)化的發(fā)展,當(dāng)遠(yuǎn)程開(kāi)關(guān)數(shù)量猛增,它們所控制的后臺(tái)服務(wù)如何支撐才能讓開(kāi)關(guān)控制延時(shí)不至于不可接受;還有金融交易、軍事應(yīng)用等,都要求配備實(shí)時(shí)服務(wù)器網(wǎng)絡(luò),它們都需要對(duì)用戶的請(qǐng)求做出快速響應(yīng),也就是說(shuō)都要求后臺(tái)服務(wù)器的負(fù)載均衡.以上這些服務(wù)器有共同的特點(diǎn):客戶端巨大,必須由集群才能支撐;服務(wù)端對(duì)客戶端的請(qǐng)求必須在指定時(shí)間內(nèi)做出響應(yīng).基于這兩個(gè)特點(diǎn),有兩種解決方案,第一是有一個(gè)硬件配置足夠強(qiáng)大的后臺(tái)服務(wù)器網(wǎng)絡(luò),實(shí)現(xiàn)服務(wù)器處理能力的提升,但是這種方式通常要增加一定量的硬件設(shè)施,構(gòu)成更復(fù)雜的網(wǎng)絡(luò),不利于維護(hù)和管理;第二就是必須有一個(gè)好的均衡算法使得服務(wù)器快速響應(yīng),這種方式強(qiáng)調(diào)的是使用最小的資源成本,提高網(wǎng)絡(luò)效率,最優(yōu)化用戶體驗(yàn),所以一直是學(xué)者們關(guān)注的重點(diǎn).
由于一般服務(wù)器處理客戶端請(qǐng)求時(shí)都要消耗cpu,內(nèi)存,帶寬,占用硬盤(pán)讀寫(xiě)io,按客戶端請(qǐng)求的特點(diǎn),可以分為:計(jì)算型請(qǐng)求,io型請(qǐng)求,網(wǎng)絡(luò)型請(qǐng)求,內(nèi)存型請(qǐng)求.目前的研究都是先判斷請(qǐng)求的所消耗的主要資源,忽略其他次要資源.然后以這一主要資源做排序算法,選出最優(yōu)服務(wù)器[1-3].即使考慮了其他資源也是作為參考或者輔助參量.這就忽略了系統(tǒng)資源的多參量性.尤其對(duì)實(shí)時(shí)性要求較強(qiáng)的場(chǎng)合,如:基于帶寬為主要資源選出的最優(yōu)服務(wù)器,因其次要資源cpu或內(nèi)存短缺,很有可能不能實(shí)時(shí)響應(yīng)客戶端請(qǐng)求.所以系統(tǒng)資源的多參量性在實(shí)時(shí)服務(wù)器負(fù)載平衡中不可忽視.
而模糊綜合評(píng)判算法本身能較好地解決模糊的、難以量化的問(wèn)題,適合解決各種非確定性問(wèn)題.尤其該方法曾經(jīng)在農(nóng)業(yè)選種上有過(guò)成功應(yīng)用.農(nóng)業(yè)選種問(wèn)題與本文所提出的問(wèn)題具有相似性.基于此,本文提出了一種基于模糊數(shù)學(xué)的評(píng)優(yōu)方法,它綜合了服務(wù)器的所有資源,進(jìn)行多參量的評(píng)估,選出當(dāng)前網(wǎng)絡(luò)中最適合做出應(yīng)答響應(yīng)的服務(wù)器.
針對(duì)網(wǎng)絡(luò)集群的負(fù)載平衡問(wèn)題,文獻(xiàn)[1]提出了基于一致哈希算法的策略,由于哈希算法本身可以在概率上保證網(wǎng)絡(luò)節(jié)點(diǎn)的流量平均分配,但是由于每個(gè)節(jié)點(diǎn)訪問(wèn)壓力不同,所以對(duì)訪問(wèn)的處理時(shí)間是不一樣的.因此創(chuàng)建了重載隊(duì)列,根據(jù)閾值,如果確定是重載節(jié)點(diǎn),會(huì)將此任務(wù)再分裂,將一部分?jǐn)?shù)據(jù)分散到其他輕載節(jié)點(diǎn),直到該隊(duì)列為空.通過(guò)這樣不斷分裂式的調(diào)度,使得系統(tǒng)實(shí)現(xiàn)負(fù)載均衡.但是這種任務(wù)分片的閾值設(shè)置會(huì)影響整個(gè)系統(tǒng)的效率.文獻(xiàn)[3]針對(duì)大規(guī)模網(wǎng)絡(luò)集群,響應(yīng)慢,服務(wù)質(zhì)量不高的問(wèn)題,提出了全局應(yīng)用靜態(tài)整體輪詢(xún)的方法,把大集群分為幾個(gè)相對(duì)較小的集群,在每個(gè)小集群內(nèi)計(jì)算其負(fù)載熵,若負(fù)載熵小則認(rèn)為該小集群出現(xiàn)了失衡,需要進(jìn)行負(fù)載遷移,如果負(fù)載熵較大,那么認(rèn)為該集群負(fù)載平衡.這樣就避免了通信延遲.文獻(xiàn)[4]提出了一種自適應(yīng)的分布式負(fù)載均衡算法,它對(duì)網(wǎng)絡(luò)中的服務(wù)器建立了路由表,根據(jù)路由表進(jìn)行任務(wù)匹配,同時(shí)會(huì)計(jì)算各節(jié)點(diǎn)的負(fù)載信息,也就是LC的值,根據(jù)負(fù)載波動(dòng)率更新LC的值,確定選擇哪一個(gè)服務(wù)器副本.該方法需要不斷維護(hù)和更新系統(tǒng)的路由表和LC測(cè)度表,但是當(dāng)網(wǎng)絡(luò)變化比較大時(shí),路由的計(jì)算時(shí)間會(huì)比較長(zhǎng),也就是當(dāng)網(wǎng)絡(luò)處于一種過(guò)渡狀態(tài),極有可能會(huì)發(fā)生擁塞,而且路由協(xié)議也會(huì)影響網(wǎng)絡(luò)的效率.文獻(xiàn)[5] 提出了在全局負(fù)載均衡下云環(huán)境中的大數(shù)據(jù)動(dòng)態(tài)遷移方法,這種方法首先構(gòu)建了最小成本數(shù)據(jù)遷移模型.然后計(jì)算數(shù)據(jù)傳輸成本,評(píng)估虛擬機(jī)數(shù)據(jù)加載的利用率,把數(shù)據(jù)超載的服務(wù)器轉(zhuǎn)移到數(shù)據(jù)輕載的服務(wù)器.這種方法在一定程度上,降低了數(shù)據(jù)遷移的成本,但是以計(jì)算步驟增加,網(wǎng)絡(luò)開(kāi)銷(xiāo)增大為代價(jià).文獻(xiàn)[6]中提出基于流散列的負(fù)載平衡方案,主要是由于數(shù)據(jù)中心網(wǎng)絡(luò)處理的各種作業(yè)負(fù)載,從延遲敏感的小流量到帶寬需求高的大流量不等.處理步驟主要包括:i)在軟件最底層接近硬件的軟邊緣實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載平衡功能(例如虛擬交換機(jī)),這樣傳輸層、客戶虛擬機(jī)、或者網(wǎng)絡(luò)硬件都不需要變化;ii)深層次的負(fù)載均衡,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)邊緣層軟件的負(fù)載均衡方案,稱(chēng)為Presto,并在10 Gbps的物理實(shí)驗(yàn)平臺(tái)做了評(píng)估.演示了分組重新排序?qū)邮諜C(jī)的計(jì)算影響,并提出一種處理tcp接收分流功能中的重新排序的機(jī)制.該方法對(duì)硬件依賴(lài)較強(qiáng),適合集中處理的數(shù)據(jù)中心模式,實(shí)時(shí)性稍差.文獻(xiàn)[7]中主節(jié)點(diǎn)為所有基于Qos的文件過(guò)濾存儲(chǔ)請(qǐng)求都設(shè)置了閾值,再計(jì)算每個(gè)存儲(chǔ)節(jié)點(diǎn)的最高可用估計(jì)值,然后根據(jù)該值將任務(wù)分配給存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)能夠根據(jù)連接節(jié)點(diǎn)的變化定時(shí)自適應(yīng)反饋更新自身信息.該方法在一定程度上減小了系統(tǒng)的平均響應(yīng)時(shí)間,但是主節(jié)點(diǎn)需要不斷遍歷各存儲(chǔ)節(jié)點(diǎn)信息,增加了系統(tǒng)開(kāi)銷(xiāo).文獻(xiàn)[8]首先研究任務(wù)分類(lèi),將目前服務(wù)的類(lèi)型分為幾個(gè)簇,根據(jù)服務(wù)器得到的請(qǐng)求,將任務(wù)歸類(lèi)到相應(yīng)的簇,在該場(chǎng)景中,每個(gè)服務(wù)器集群只處理一種特定類(lèi)型的多媒體任務(wù),并且每個(gè)客戶端在不同的時(shí)間請(qǐng)求不同的多媒體服務(wù).一般而言,這種場(chǎng)景可以被當(dāng)作一個(gè)整數(shù)線性規(guī)劃問(wèn)題處理,從計(jì)算方面講是可行的.力圖通過(guò)一種有效的遺傳算法的植入方案解決這個(gè)問(wèn)題.但是遺傳算法計(jì)算復(fù)雜,參數(shù)選擇具有很大的不確定性,搜索速度有限.
基于模糊數(shù)學(xué)發(fā)展而來(lái)的模糊綜合評(píng)判方法,本質(zhì)來(lái)說(shuō)是利用了模糊數(shù)學(xué)的隸屬度理論,把確定事物的各個(gè)條件從模糊的,難以量化,轉(zhuǎn)變?yōu)榭啥吭u(píng)價(jià)的量,再將這些量按一定規(guī)則綜合,給出一個(gè)總體評(píng)價(jià)[9].這個(gè)評(píng)價(jià)結(jié)果由于體現(xiàn)了決定事物的各個(gè)條件,所以清晰可靠,系統(tǒng)性比較強(qiáng)[10].適合本文服務(wù)器多參量的綜合衡量.
模糊綜合評(píng)判的基本原理:設(shè)集合X,Y是非空的,任給一個(gè)從X到Y(jié)的模糊映射f,可誘導(dǎo)出一個(gè)從X到Y(jié)的模糊變換:
Tf:F(x)→F(y);A|→Tf(A)=A°Rf
(1)
其中,Rf是由f誘導(dǎo)出的從X到Y(jié)的模糊關(guān)系[9].X是服務(wù)器多種資源的權(quán)重向量的取值集合.Y是集群中的服務(wù)器服務(wù)能力向量的取值集合.而針對(duì)某一時(shí)刻給定服務(wù)器多種資源的值,存在一個(gè)從資源權(quán)重向量到服務(wù)能力向量的映射.該原理給出了這個(gè)映射Rf的求解方法.
標(biāo)準(zhǔn)確定,只從影響事物的眾多條件中選擇一個(gè)來(lái)對(duì)其進(jìn)行評(píng)價(jià),稱(chēng)為單一評(píng)判;從部分或者所有的單一評(píng)價(jià)中獲得對(duì)某個(gè)事物的整體評(píng)價(jià),稱(chēng)為綜合評(píng)判.綜合評(píng)判本身是一個(gè)決策過(guò)程,類(lèi)似將所有事物排隊(duì),從中選優(yōu)的方法.綜合評(píng)判的數(shù)學(xué)表達(dá)式為:B=A
以下分別說(shuō)明表達(dá)式中各個(gè)量的計(jì)算方法.A是因素集上的一個(gè)模糊子集的向量表,在綜合評(píng)判中通常稱(chēng)之為權(quán)重集.它表示根據(jù)服務(wù)器的具體應(yīng)用,系統(tǒng)對(duì)各資源的需求比例.如流媒體對(duì)服務(wù)器在響應(yīng)過(guò)程中對(duì)帶寬要求較高,那么該項(xiàng)占用的比例就要大一些.R是由模糊映射誘導(dǎo)出的單因素評(píng)判集:
〈M〉的選擇一般分為:主因素決定型,主因素突出型,加權(quán)平均模型.
選用的算子要根據(jù)實(shí)際情況而定,本文的應(yīng)用在考慮多因素時(shí)修正值由主要因素決定,所以選主因素突出型比較適合.
1)為評(píng)判對(duì)象尋找因素集U={u1u2…un}.
影響評(píng)判對(duì)象的眾多相關(guān)因素構(gòu)成因素集.
2)給出評(píng)判集V={v1v2…vm}
評(píng)判集又被稱(chēng)為評(píng)語(yǔ)集.它是因素集中各因素實(shí)際出現(xiàn)的數(shù)量.
3)從因素集中選擇一個(gè),進(jìn)行單因素評(píng)判
對(duì)單因素ui(i=1,2,…,n)作評(píng)價(jià),確定ui對(duì)評(píng)語(yǔ)vj(j=1,2,…,m)的隸屬度rij,得出ui的單因素評(píng)價(jià)模糊子集,表示如下:
f:U→F(V);
(2)
其中,0≤rij≤1,i=1,2,…,n;j=1,2,…,m.
(3)
4)構(gòu)造綜合評(píng)價(jià)矩陣
根據(jù)模糊關(guān)系定理,由模糊值映射f導(dǎo)出U到V的模糊關(guān)系R,稱(chēng)矩陣R為綜合評(píng)判矩陣.也就是把模糊隸屬度rij作為矩陣元素,構(gòu)成總評(píng)價(jià)矩陣Rf:
5)確定因素重要程度模糊集
因?yàn)橛绊懯挛锏母饕蛩仄渲匾潭炔灰粯?影響力也就不同,有些大,有些小.所以,在進(jìn)行綜合評(píng)判時(shí),必須給出各個(gè)因素在總評(píng)價(jià)中的重要程度,用模糊子集A來(lái)表示:
A={a1a2…an}
其中ai表示ui的影響程度大小.這里稱(chēng)A為U上的因素重要程度模糊子集,而稱(chēng)ai為因素ui的重要程度系數(shù),也稱(chēng)A為對(duì)應(yīng)因素的權(quán)重向量[9].本文的權(quán)重計(jì)算方法將在下一小節(jié)中詳細(xì)說(shuō)明.
6)確定綜合評(píng)判模型
當(dāng)因素重要程度模糊集A和綜合評(píng)判矩陣模糊關(guān)系R確定后,通過(guò)R做模糊線性變換,把A變?yōu)樵u(píng)判集V上的模糊子集[9],采用主因素突出型的計(jì)算形式為:
(4)
其中V是求最大值.
7)計(jì)算綜合評(píng)判結(jié)果
對(duì)上述計(jì)算結(jié)果進(jìn)行評(píng)價(jià)排序,即從U到V的模糊變換.將結(jié)果歸一化,選擇模糊隸屬度最大的服務(wù)器作為該問(wèn)題的最優(yōu)解.也就是本次服務(wù)重定向的目標(biāo).
重要程度模糊因素集A的確定十分重要,因?yàn)樗苯雨P(guān)系到綜合評(píng)判的結(jié)果是否正確.目前向量A的確定方法主要有幾種:求解模糊關(guān)系方程法,專(zhuān)家調(diào)查法,Delphi法(專(zhuān)家評(píng)議法)等.本文主要通過(guò)Delphi法,研究其改進(jìn)策略.
Delphi法是利用專(zhuān)家集體智慧來(lái)確定各因素在評(píng)判問(wèn)題或者決策問(wèn)題中的重要程度系數(shù)ai(i=1,2,…,n)[11].具體步驟如下:
1)確定各因素ai的重要性序列值
邀請(qǐng)專(zhuān)家們憑個(gè)人的經(jīng)驗(yàn)和見(jiàn)解,評(píng)價(jià)各因素ui的重要性序列值ei,下面給出ei∈{1,2,…,m}的確定方法:對(duì)最具影響力的因素,取ei=m;對(duì)最不具影響力的因素,取ei=1.那么對(duì)于因素ui,第k個(gè)專(zhuān)家所得出的因素重要性序列值記為ei(k).每一位專(zhuān)家都提供一份這樣的評(píng)定序列.
2)編制優(yōu)先得分表
根據(jù)n次實(shí)驗(yàn)所的因素重要性序列值ei進(jìn)行如下統(tǒng)計(jì)[11]:
設(shè)實(shí)驗(yàn)共做了n次,將所有實(shí)驗(yàn)的Aij(k)值累加起來(lái),即
(5)
由此得m*m個(gè)統(tǒng)計(jì)值.
3)求∑Ai值
將上式中的Aij值按j累加起來(lái),令:
∑Amax=max{∑A1,∑A2,…,∑Am}
(6)
∑Amin=min{∑A1,∑A2,…,∑Am}
(7)
則與∑Amax相對(duì)應(yīng)的因素的重要程度最高,而與∑Amin相對(duì)應(yīng)的因素的重要程度同其他因素相比是最低的[11].
4)計(jì)算級(jí)差d[11]
令amax=1,amin=0.1,則:
(8)
5)求因素重要程度系數(shù)ai
ai可由公式(9)計(jì)算:
(9)
由此得出所需要的描述因素重要程度的權(quán)重向量:
A=(a1,a2,…,am)
實(shí)際上,綜合評(píng)判研究對(duì)象因素集中各因素的量和對(duì)象本身優(yōu)劣之間有一個(gè)函數(shù)關(guān)系.如果這個(gè)函數(shù)在應(yīng)用范圍內(nèi)是接近線性的增函數(shù),那么與其用專(zhuān)家評(píng)議法就不如實(shí)驗(yàn)評(píng)議得到的數(shù)據(jù)更能反映現(xiàn)狀.原因是這種類(lèi)型的綜合評(píng)判研究的對(duì)象的因素集中各因素的相關(guān)量有如下特點(diǎn):1)對(duì)象集各因素都是實(shí)測(cè)量,具有客觀性,且各因素之間的相關(guān)性比較小;2)因素集各數(shù)據(jù)可以隨時(shí)獲取;3)因素集各數(shù)據(jù)在應(yīng)用范圍內(nèi)是接近線性的增函數(shù).據(jù)此,本文將專(zhuān)家評(píng)議改進(jìn)為實(shí)驗(yàn)評(píng)議,它和Delphi法的主要差別在于輸入的數(shù)據(jù)不再是每一位專(zhuān)家提供的一份各因素ui的ei值評(píng)定序列,而是實(shí)驗(yàn)測(cè)試的數(shù)據(jù)序列.這種方法適合客觀性強(qiáng)并且實(shí)驗(yàn)數(shù)據(jù)能夠隨時(shí)再現(xiàn)的系統(tǒng)的權(quán)重向量A的確定.
權(quán)重的數(shù)值是服務(wù)器響應(yīng)具體應(yīng)用請(qǐng)求所用各種資源的比例.它只和具體應(yīng)用關(guān)系比較大,和服務(wù)器配置關(guān)系比較小.為了讓權(quán)重向量計(jì)算結(jié)果準(zhǔn)確,實(shí)驗(yàn)中采用實(shí)際流媒體娛樂(lè)服務(wù)項(xiàng)目中服務(wù)器的配置.使權(quán)重計(jì)算結(jié)果在本類(lèi)應(yīng)用中具有代表性.
本文中實(shí)驗(yàn)評(píng)議法輸入的數(shù)據(jù)是在應(yīng)用范圍內(nèi)的壓力測(cè)試均勻采樣.
1)搭建單服務(wù)器實(shí)驗(yàn)環(huán)境
原來(lái)有集群支撐的系統(tǒng)改為用單服務(wù)器.然后做模擬客戶請(qǐng)求.由集群中取出一臺(tái)電腦.處理器是intel i5-2300 2.8GHz,內(nèi)存8G,硬盤(pán)西部數(shù)據(jù)1T,網(wǎng)絡(luò)Realtek百兆網(wǎng)卡.
2)取得實(shí)驗(yàn)數(shù)據(jù)
a.測(cè)出服務(wù)器的最大負(fù)載量.同時(shí)瞬間向服務(wù)器發(fā)出模擬客戶請(qǐng)求,當(dāng)有請(qǐng)求失敗時(shí)的請(qǐng)求數(shù)為服務(wù)器的最大負(fù)載量M=1098.
b.設(shè)置10個(gè)采樣點(diǎn).單次同時(shí)瞬間向服務(wù)器發(fā)出模擬客戶請(qǐng)求數(shù)是M/n=1098/10=109.8.
10次同時(shí)瞬間向服務(wù)器發(fā)出模擬客戶請(qǐng)求數(shù)分別是:109.8,219.6,329.4,439.2,549,658.8,768.6,878.4,988.2,1098.這些數(shù)據(jù)是從服務(wù)器無(wú)負(fù)載到滿負(fù)載過(guò)程中的均勻采樣,覆蓋了服務(wù)器整個(gè)運(yùn)行過(guò)程.
由10次實(shí)驗(yàn)得出一份各因素ui的ei值評(píng)定如表1所示.
表1 因素評(píng)定表
Table 1 Evaluation form of factors
因素序號(hào)u1u2u3u4ei(1)3.02.93.910.1ei(2)5.96.08.120.1ei(3)9.18.911.930.0ei(4)12.012.116.140.1ei(5)15.115.019.949.9ei(6)17.918.024.159.9ei(7)21.121.028.070.0ei(8)24.024.132.179.9ei(9)27.127.036.290.0ei(10)30.030.140.199.8
3)編制優(yōu)先得分表
根據(jù)10次實(shí)驗(yàn)所的因素重要性序列值ei進(jìn)行統(tǒng)計(jì),結(jié)果如表2所示.
表2 優(yōu)先得分表
Table 2 Prior score
因素序號(hào)u1u2u3u4u1*500u25*00u31010*0u4101010*
4)求∑Ai的值
∑Amax=30,∑Amin=5
5)計(jì)算級(jí)差d
6)權(quán)重向量的系數(shù)ai
根據(jù)前述公式得出權(quán)重向量:A=(0.10.1 0.55 0.91).
本例集群由5臺(tái)服務(wù)器組成,每臺(tái)服務(wù)器參與評(píng)判的參量為CPU,I/O,內(nèi)存,帶寬,所以U={u1u2u3u4},設(shè)u1為服務(wù)器cpu剩余百分比,u2為服務(wù)器內(nèi)存剩余百分比,u3為服務(wù)器硬盤(pán)io剩余百分比,u4為服務(wù)器網(wǎng)絡(luò)帶寬剩余百分比.這些參量是反應(yīng)服務(wù)器的實(shí)時(shí)請(qǐng)求響應(yīng)能力的主要指標(biāo).V={v1v2… v5},表示評(píng)判集.在某一時(shí)間點(diǎn),對(duì)集群中的5臺(tái)服務(wù)器的實(shí)時(shí)響應(yīng)能力進(jìn)行排序.因本例集群是流媒體服務(wù)器,主要考慮對(duì)流媒體服務(wù)請(qǐng)求的響應(yīng),由于流媒體服務(wù)對(duì)服務(wù)器的帶寬和硬盤(pán)要求高一些,根據(jù)實(shí)驗(yàn)評(píng)議法測(cè)得的權(quán)重為:A=(0.1 0.1 0.55 0.91).
因?yàn)榉?wù)器集群在任何時(shí)刻都有可能有客戶端請(qǐng)求.所以任何時(shí)刻集群對(duì)客戶端請(qǐng)求都很重要.而在集群負(fù)荷高于70%低于%90最具代表性.因?yàn)榈陀?0%總體負(fù)荷比較輕實(shí)時(shí)性容易達(dá)到.而高于%90系統(tǒng)已經(jīng)接近滿負(fù)荷,滿負(fù)荷情況下無(wú)論怎樣優(yōu)化算法都不能對(duì)實(shí)時(shí)性有明顯提高,只有增加服務(wù)器數(shù)量才能提高實(shí)時(shí)性.所以負(fù)載在滿負(fù)荷的80%左右時(shí),實(shí)驗(yàn)所用數(shù)據(jù)相對(duì)具有代表性.
對(duì)服務(wù)器集群進(jìn)行壓力測(cè)試,當(dāng)達(dá)到權(quán)重實(shí)驗(yàn)的最大負(fù)載量的80%左右時(shí),獲取這一時(shí)刻集群中5個(gè)服務(wù)器4項(xiàng)剩余資源的取值,按上述步驟計(jì)算求解.
5個(gè)服務(wù)器的4項(xiàng)剩余資源指標(biāo)如表3所示.
表3 因素評(píng)定表
Table 3 Remaining resource of servers
服務(wù)器編號(hào)x1x2x3x411.61110.590.691.6721.4299.440.161.5031.4475.970.241.2541.57210.750.751.7151.48310.990.751.44
1)單因素評(píng)判矩陣,如表4所示.
表4 因素評(píng)定表
Table 4 Judgement matrix of single factor
序號(hào)r1jr2jr3jr4j10.2136040.2218270.2664090.22060820.1894720.1977380.0617760.19815130.1918590.1250520.0926640.16512540.2084330.2251780.2895750.22589250.1966320.2302050.2895750.190225
2)綜合評(píng)判
B=A°Rf=(0.200753,0.180317,0.150264,0.205561,
0.173104).
按服務(wù)能力從大到小的次序排列,5個(gè)服務(wù)器服務(wù)能力降序排列:4,1,2,5,3.
4號(hào)服務(wù)器服務(wù)能力為0.205561.從計(jì)算結(jié)果看,它的服務(wù)能力最強(qiáng),所以本次請(qǐng)求應(yīng)分配給4號(hào)服務(wù)器.從資源指標(biāo)表1可以看出,cpu剩余最多的是1號(hào)服務(wù)器,內(nèi)存剩余最多的是5號(hào)服務(wù)器.4號(hào)服務(wù)器cpu和內(nèi)存剩余雖然不是最多的,但這兩項(xiàng)指標(biāo)也是排名靠前.再看硬盤(pán)io和帶寬剩余兩個(gè)參數(shù),4號(hào)服務(wù)器明顯出眾.而又由于流媒體的硬盤(pán)io和帶寬權(quán)重占的比重大,所以4號(hào)服務(wù)器明顯勝出.所以該算法所得結(jié)果明顯合理.
實(shí)驗(yàn)方法,搭建一個(gè)服務(wù)器集群,如圖1所示,由五臺(tái)電腦構(gòu)成.處理器是intel i5-2300 2.8GHz,內(nèi)存8G,硬盤(pán)西部數(shù)據(jù)1T,網(wǎng)絡(luò)Realtek百兆網(wǎng)卡.運(yùn)行兩次壓力測(cè)試,一次是硬盤(pán)io單因素算法,一次是模糊綜合評(píng)判算法.在兩次運(yùn)行過(guò)程中,都在個(gè)別服務(wù)器上進(jìn)行如下模擬壓力測(cè)試:文件拷貝模擬硬盤(pán)io操作,壓縮文件模擬cpu計(jì)算,申請(qǐng)內(nèi)存測(cè)試程序模擬內(nèi)存占用,下載文件模擬帶寬占用.
圖1 服務(wù)器集群結(jié)構(gòu)圖Fig.1 Structure chart of server cluster
這個(gè)搭建好的服務(wù)器集群,分別配置成單因素算法和模糊綜合評(píng)判時(shí)進(jìn)行實(shí)驗(yàn).對(duì)服務(wù)器集群進(jìn)行壓力測(cè)試,在模擬壓力測(cè)試下,最大負(fù)載量80%時(shí),獲得20個(gè)平均返回時(shí)間的采樣數(shù)據(jù).繪制成圖2.
圖2 兩種算法時(shí)間對(duì)比圖Fig.2 Time Comparison diagram of two algorithms
從圖2可以看出,硬盤(pán)io單因素請(qǐng)求平均返回時(shí)間相對(duì)于模糊綜合評(píng)判請(qǐng)求平均返回時(shí)間大部分都要長(zhǎng)一些.其主要原因是,只有一小部分在硬盤(pán)壓力測(cè)試時(shí)避開(kāi)了有壓力的服務(wù)器,而其余的cpu、內(nèi)存、帶寬這三個(gè)壓力測(cè)試時(shí),單因素算法并沒(méi)有避開(kāi)有壓力的服務(wù)器,所以返回的時(shí)間明顯較長(zhǎng).對(duì)于實(shí)時(shí)性服務(wù)器集群來(lái)說(shuō),實(shí)現(xiàn)實(shí)時(shí)性要求當(dāng)客戶端請(qǐng)求到來(lái)時(shí),能夠快速找到性能最優(yōu)的服務(wù)器,做出迅速處理.雖然基于單因素的負(fù)載均衡算法也實(shí)現(xiàn)了實(shí)時(shí)響應(yīng),但是由于算法本身的限制,只能做到某一因素最優(yōu),而不能避開(kāi)其他因素稍差的服務(wù)器,所以應(yīng)答最快,但是處理時(shí)間未必最短,整體響應(yīng)時(shí)間稍長(zhǎng),而新算法充分考慮所有因素的影響,不僅選出了最優(yōu)服務(wù)器,成功地避開(kāi)了整體性能有壓力的服務(wù)器,而且使服務(wù)響應(yīng)時(shí)間保持在一定的范圍內(nèi),服務(wù)器集群的實(shí)時(shí)性得到了優(yōu)化.所以本算法優(yōu)于單因素算法,能夠使服務(wù)器集群負(fù)載均衡,從而提高服務(wù)器集群的實(shí)時(shí)性.
隨著大數(shù)據(jù)時(shí)代的到來(lái),負(fù)載平衡問(wèn)題已經(jīng)成為實(shí)時(shí)服務(wù)器集群響應(yīng)的重要問(wèn)題.均衡算法的快速性和準(zhǔn)確性直接影響著系統(tǒng)的性能.本文針對(duì)服務(wù)器系統(tǒng)的多參量性,提出了基于模糊綜合評(píng)判的負(fù)載均衡算法,根據(jù)模糊數(shù)學(xué)理論,模糊綜合評(píng)判能夠?qū)κ艿蕉喾N因素制約的事物或?qū)ο笞龀鲆粋€(gè)總體的評(píng)價(jià)的特點(diǎn),對(duì)集群中服務(wù)器各參量,計(jì)算評(píng)判矩陣,利用主因素型公式,對(duì)所有參量進(jìn)行綜合評(píng)判,模糊隸屬度最大的為當(dāng)前任務(wù)重定向的目標(biāo).從實(shí)驗(yàn)結(jié)果來(lái)看,該算法可以在負(fù)載均衡問(wèn)題上做出正確的決策且實(shí)時(shí)性比傳統(tǒng)的基于單一參量的評(píng)判算法更優(yōu).