李慧斌 何利力
摘要:為優(yōu)化整個(gè)服務(wù)器集群負(fù)載,提出一種基于預(yù)測(cè)閾值的動(dòng)態(tài)權(quán)值負(fù)載均衡算法。動(dòng)態(tài)評(píng)估服務(wù)器性能,根據(jù)評(píng)估結(jié)果計(jì)算服務(wù)器權(quán)值,并引入反映集群負(fù)載平衡程度和狀態(tài)的閾值,以避免因頻繁修改權(quán)值造成服務(wù)器抖動(dòng);使用Holt-Winters對(duì)訪問(wèn)量進(jìn)行預(yù)測(cè),并通過(guò)結(jié)果預(yù)測(cè)閾值,實(shí)現(xiàn)復(fù)雜負(fù)載環(huán)境下的負(fù)載均衡,達(dá)到最優(yōu)負(fù)載均衡。實(shí)驗(yàn)結(jié)果表明,預(yù)測(cè)閾值的動(dòng)態(tài)權(quán)值負(fù)載均衡算法在低并發(fā)以及高并發(fā)時(shí)都有很好的性能表現(xiàn),能夠提升系統(tǒng)的最大吞吐量,減少響應(yīng)時(shí)間,提高整個(gè)集群利用率。
關(guān)鍵詞:Holt-Winters預(yù)測(cè);負(fù)載均衡;服務(wù)器集群;動(dòng)態(tài)負(fù)載算法
DOI:10.11907/rjdk.192093 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類(lèi)號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)006-0085-05
0 引言
互聯(lián)網(wǎng)用戶和Web應(yīng)用的爆發(fā)式增長(zhǎng),對(duì)服務(wù)端提出了更高要求,這需要服務(wù)器保持可靠運(yùn)行且能迅速響應(yīng),可同時(shí)為大量并發(fā)客戶端提供優(yōu)質(zhì)服務(wù)。這種高可用性和高可擴(kuò)展性,對(duì)集群網(wǎng)絡(luò)和處理能力都提出了挑戰(zhàn)。于是,高效而廉價(jià)的服務(wù)器集群成為首選方案,在現(xiàn)有設(shè)備下提高整個(gè)集群性能變得更加迫切。負(fù)載調(diào)度算法決定著整個(gè)集群性能是否可以完全釋放,作用重大。
現(xiàn)有負(fù)載均衡算法主要分成動(dòng)態(tài)負(fù)載均衡技術(shù)和靜態(tài)負(fù)載均衡技術(shù)兩大類(lèi)。靜態(tài)負(fù)載均衡技術(shù)指在負(fù)載過(guò)程中根據(jù)預(yù)先設(shè)置好的策略進(jìn)行任務(wù)分配,不會(huì)根據(jù)服務(wù)器實(shí)時(shí)情況進(jìn)行調(diào)整,運(yùn)用起來(lái)常常不如動(dòng)態(tài)負(fù)載均衡效果好,但靜態(tài)負(fù)載均衡算法比動(dòng)態(tài)負(fù)載均衡算法更加節(jié)約服務(wù)器資源。
由于效果較好,因此動(dòng)態(tài)負(fù)載均衡算法也較多。原地址哈希算法是一種很好的負(fù)載均衡算法,只要請(qǐng)求源地址不變,提供服務(wù)的總是同一臺(tái)服務(wù)器。但由于用戶活躍程度不同,可能會(huì)出現(xiàn)某服務(wù)器處理大量請(qǐng)求,而其它服務(wù)器空閑的情況,造成服務(wù)器集群負(fù)載不平衡。針對(duì)這種情況,文獻(xiàn)提出了一種基于預(yù)測(cè)模型和獨(dú)立訓(xùn)練節(jié)點(diǎn)的負(fù)載均衡算法。該算法雖然解決了上述問(wèn)題,但每次都要預(yù)測(cè)響應(yīng)時(shí)間,根據(jù)預(yù)測(cè)響應(yīng)時(shí)間進(jìn)行分配,當(dāng)并發(fā)量小時(shí),預(yù)測(cè)算法反而增加了響應(yīng)時(shí)間,不利于短而快的請(qǐng)求。針對(duì)以上問(wèn)題,文獻(xiàn)提出了一種自適應(yīng)負(fù)載指標(biāo)權(quán)值的負(fù)載均衡算法。該算法很好地解決了快速轉(zhuǎn)發(fā)問(wèn)題,但是只根據(jù)評(píng)估集群中服務(wù)器節(jié)點(diǎn)狀態(tài)及負(fù)載情況修改權(quán)值,容易因頻繁的權(quán)值修改引起集群抖動(dòng)。針對(duì)頻繁修改權(quán)值的問(wèn)題,文獻(xiàn)提出了動(dòng)態(tài)調(diào)節(jié)權(quán)重的負(fù)載均衡策略。在負(fù)載算法調(diào)節(jié)權(quán)值前計(jì)算一次閾值,根據(jù)閾值情況進(jìn)行權(quán)值調(diào)節(jié)。但其信息都由Nginx負(fù)載節(jié)點(diǎn)采集,增加了負(fù)載節(jié)點(diǎn)壓力,影響負(fù)載性能。同時(shí),只對(duì)服務(wù)器節(jié)點(diǎn)進(jìn)行信息收集與預(yù)測(cè),且在集群負(fù)載出現(xiàn)傾斜時(shí)才作出調(diào)整。
鑒于此,本文提出基于預(yù)測(cè)閾值的負(fù)載均衡算法。算法具有以下特點(diǎn):對(duì)服務(wù)器集群評(píng)估不僅僅是根據(jù)服務(wù)器的CPU、內(nèi)存、磁盤(pán)I/0等參數(shù)進(jìn)行服務(wù)器節(jié)點(diǎn)權(quán)值計(jì)算,而是將服務(wù)器集群中的每一個(gè)節(jié)點(diǎn)當(dāng)前運(yùn)行的Web項(xiàng)目加入評(píng)估中,通過(guò)計(jì)算每次請(qǐng)求對(duì)服務(wù)器節(jié)點(diǎn)資源的消耗情況實(shí)現(xiàn)綜合評(píng)估。為了防止權(quán)值頻繁更新造成服務(wù)器集群抖動(dòng),設(shè)定反映集群負(fù)載平衡程度和狀態(tài)閾值,閾值設(shè)定保證了權(quán)值更新頻率和集群穩(wěn)定性。同時(shí),增加閾值預(yù)測(cè),在集群負(fù)載傾斜前調(diào)整集群中服務(wù)器節(jié)點(diǎn)權(quán)值,進(jìn)一步保證服務(wù)器集群穩(wěn)定。預(yù)測(cè)算法部署方式靈活,可以與負(fù)載服務(wù)器同時(shí)運(yùn)行,也可以獨(dú)立運(yùn)行,避免了預(yù)測(cè)算法對(duì)負(fù)載服務(wù)器性能的影響。
1 集群狀態(tài)動(dòng)態(tài)評(píng)估
采用動(dòng)態(tài)評(píng)估方法,對(duì)整個(gè)集群狀態(tài)和集群中的服務(wù)器進(jìn)行評(píng)估,主要分為3個(gè)部分:節(jié)點(diǎn)性能動(dòng)態(tài)評(píng)估、節(jié)點(diǎn)權(quán)值計(jì)算、集群負(fù)載狀態(tài)評(píng)估。①節(jié)點(diǎn)性能動(dòng)態(tài)評(píng)估指從服務(wù)器運(yùn)行項(xiàng)目的角度,評(píng)估集群中單服務(wù)器節(jié)點(diǎn)性能;②權(quán)值計(jì)算指結(jié)合節(jié)點(diǎn)性能評(píng)估結(jié)果,計(jì)算此節(jié)點(diǎn)權(quán)值;③集群負(fù)載狀態(tài)指評(píng)估整個(gè)集群當(dāng)前負(fù)載情況,并結(jié)合預(yù)測(cè)閾值及當(dāng)前閾值對(duì)集群負(fù)載進(jìn)行調(diào)整,實(shí)現(xiàn)動(dòng)態(tài)負(fù)載。
1.1 節(jié)點(diǎn)性能動(dòng)態(tài)評(píng)估
處理整個(gè)集群負(fù)載問(wèn)題,首先要量化集群中的每一臺(tái)服務(wù)器,這是Web集群負(fù)載的首要問(wèn)題。使用不同的性能評(píng)估標(biāo)準(zhǔn),對(duì)整個(gè)集群的負(fù)載能力影響很大。對(duì)此,結(jié)合服務(wù)器運(yùn)行項(xiàng)目對(duì)資源占用情況,從CPU(Central Processing Unit)、內(nèi)存(RAM)、磁盤(pán)I/0,服務(wù)器帶寬(Bandwidth)這4個(gè)維度評(píng)估節(jié)點(diǎn)服務(wù)器性能。
設(shè)集群中有n臺(tái)服務(wù)器Cluster=(serverl,Server2,……,Servern),對(duì)其中一臺(tái)服務(wù)器的性能定義為P(serverl),其衡量該服務(wù)器的服務(wù)能力。
1.2 節(jié)點(diǎn)權(quán)值計(jì)算
權(quán)值決定負(fù)載服務(wù)器將任務(wù)分配給哪一個(gè)節(jié)點(diǎn),負(fù)載服務(wù)器也是整個(gè)集群的人口。要實(shí)現(xiàn)集群最優(yōu)負(fù)載均衡,調(diào)整權(quán)值非常必要。在實(shí)際生產(chǎn)環(huán)境中,服務(wù)器整體性能及服務(wù)器運(yùn)行項(xiàng)目不會(huì)經(jīng)常變動(dòng),只要預(yù)測(cè)的閾值入在正常范圍內(nèi),就不調(diào)整權(quán)值。因此,權(quán)值不會(huì)頻繁調(diào)整,保證了整個(gè)集群的穩(wěn)定。
集群中節(jié)點(diǎn)權(quán)值根據(jù)集群中節(jié)點(diǎn)Si的負(fù)載情況3l(Si)及節(jié)點(diǎn)Si的性能評(píng)估值計(jì)算得出,如式(4)所示。
權(quán)值評(píng)估針對(duì)每一個(gè)服務(wù)器節(jié)點(diǎn),增加了項(xiàng)目對(duì)當(dāng)前節(jié)點(diǎn)的資源消耗參數(shù),這樣評(píng)估出的權(quán)值更加準(zhǔn)確。準(zhǔn)確的權(quán)值會(huì)使集群負(fù)載更加均衡,減少權(quán)值調(diào)整次數(shù),進(jìn)一步降低抖動(dòng)發(fā)生概率,增強(qiáng)集群穩(wěn)定性。
1.3 集群整體負(fù)載狀態(tài)計(jì)算
均衡的負(fù)載能夠使集群釋放出更好的性能,對(duì)提高集群并發(fā)量及業(yè)務(wù)處理能力有重要影響。節(jié)點(diǎn)服務(wù)器資源利用狀態(tài)是影響整個(gè)集群的基礎(chǔ),其定義如下:
其中,Ui是服務(wù)器節(jié)點(diǎn)Si=(i=1,2,……,n)的資源使用情況,SL(Si)是當(dāng)前節(jié)點(diǎn)服務(wù)器的負(fù)載情況,P(Si)是當(dāng)前節(jié)點(diǎn)服務(wù)器的綜合性能評(píng)估。
服務(wù)器資源使用情況標(biāo)準(zhǔn)差(Standard Deviation)用σ表示,可以很好地反映出當(dāng)前集群負(fù)載的離散程度。σ值越小,整個(gè)集群負(fù)載平衡程度越好;反之,σ值越大,整個(gè)集群負(fù)載越不平衡,需重新計(jì)算負(fù)載權(quán)值。
2 預(yù)測(cè)閾值的動(dòng)態(tài)權(quán)值負(fù)載均衡算法設(shè)計(jì)
算法主要部分是閾值預(yù)測(cè),通過(guò)預(yù)測(cè)閾值可以在集群負(fù)載傾斜和負(fù)載超載之前對(duì)集群進(jìn)行相應(yīng)調(diào)整,同時(shí)閾值可以避免權(quán)值頻繁調(diào)整造成的服務(wù)器集群抖動(dòng)。預(yù)測(cè)閾值通過(guò)預(yù)測(cè)CN并進(jìn)一步計(jì)算得出。
2.1 預(yù)測(cè)CN(鏈接數(shù))
用戶請(qǐng)求服務(wù)會(huì)產(chǎn)生一個(gè)或多個(gè)鏈接,在鏈接產(chǎn)生前預(yù)測(cè)鏈接信息,對(duì)掌握服務(wù)器性能及集群性能變化具有重要意義。通過(guò)預(yù)測(cè)值(preCN)可以計(jì)算出預(yù)測(cè)閾值入,并根據(jù)預(yù)測(cè)閾值讓集群提前作出相應(yīng)調(diào)整。同時(shí),也可將預(yù)測(cè)值(preCN)代人負(fù)載算法進(jìn)行運(yùn)算,通過(guò)負(fù)載算法輸出值對(duì)當(dāng)前權(quán)值進(jìn)行修正,使集群性能發(fā)揮到最大。
Web服務(wù)的服務(wù)器集群中,連接數(shù)變化呈周期性規(guī)律。為使預(yù)測(cè)算法對(duì)服務(wù)器資源的消耗盡可能小、通過(guò)預(yù)測(cè)模型對(duì)結(jié)果進(jìn)行預(yù)測(cè)時(shí)盡可能迅速,選擇時(shí)間序列預(yù)測(cè)模型。
在Holt方法基礎(chǔ)上增加帶周期因子Holt-Winters方法。將鏈接到達(dá)的時(shí)間序列進(jìn)行分割,整個(gè)序列有N個(gè)周期,每周期S個(gè)時(shí)隙,設(shè)其中某時(shí)隙為最小粒度。原始轉(zhuǎn)移方程如下:
其中,ψi(i=1,2,…,T)是第i時(shí)間間隙時(shí)連接數(shù)的統(tǒng)計(jì)值;Ai、Bi、Ci表示Holt-Winters中基線、線性趨勢(shì)和季節(jié)趨勢(shì)的因子;a、b、c是平滑因子,范圍是[0,1]。
2.2 閾值入計(jì)算
由于負(fù)載調(diào)度、節(jié)點(diǎn)信息收集等會(huì)消耗一定資源,這類(lèi)資源的消耗在大量并發(fā)時(shí)微不足道,但在并發(fā)量很小時(shí)會(huì)增加負(fù)載。此時(shí),引入一個(gè)閾值入用來(lái)反映集群負(fù)載狀態(tài)和集群當(dāng)前負(fù)載的平衡程度,能夠使負(fù)載服務(wù)器在更加合適的時(shí)機(jī)調(diào)整集群中每個(gè)節(jié)點(diǎn)的負(fù)載。入定義如下:
其中,SL(Si)是節(jié)點(diǎn)Si的綜合負(fù)載情況,P(Serveri)表示節(jié)點(diǎn)Si的整體性能評(píng)估,相關(guān)系數(shù)k1+k2=1,Cd是集群負(fù)載離散程度。閾值入范圍是(0,1],該值能夠反映出當(dāng)前服務(wù)器集群狀態(tài)。入越接近1,證明服務(wù)器集群當(dāng)前負(fù)載越大;反之,則證明服務(wù)器集群當(dāng)前負(fù)載較輕,如表l所示。
2.3 算法設(shè)計(jì)
集群由負(fù)載均衡服務(wù)器(LBS,Load Balance Server)負(fù)責(zé)調(diào)度。根據(jù)負(fù)載均衡服務(wù)器性能情況,具體可以分成兩種形式:一種是整套算法由負(fù)載均衡服務(wù)器負(fù)責(zé),同時(shí)整個(gè)集群中的服務(wù)器向負(fù)載均衡服務(wù)器匯報(bào);另一種是額外增加一臺(tái)負(fù)載控制服務(wù)器(Load Balance Control Server)負(fù)責(zé)負(fù)載算法,而負(fù)載均衡服務(wù)器只需負(fù)責(zé)任務(wù)分配即可。兩種方式根據(jù)實(shí)際情況設(shè)置,第一種方法實(shí)現(xiàn)簡(jiǎn)單,同時(shí)節(jié)約成本,但是負(fù)載均衡服務(wù)器會(huì)承受更大壓力,比較適合LBS性能較好的情況;第二種方法可能會(huì)增加成本,但會(huì)減輕負(fù)載均衡服務(wù)器壓力,釋放LBS性能,比較適合LBS性能一般的情況。
負(fù)載算法實(shí)現(xiàn)如下:負(fù)載控制服務(wù)器向所有節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,查詢各服務(wù)器的CPU、內(nèi)存、磁盤(pán)I/0、帶寬等相關(guān)指標(biāo);同時(shí),各節(jié)點(diǎn)也會(huì)向負(fù)載控制器匯報(bào)自身資源使用情況。這兩項(xiàng)工作并不是同時(shí)進(jìn)行,具體由閾值以及服務(wù)器節(jié)點(diǎn)的負(fù)載情況SL聯(lián)合控制。當(dāng)閾值較低時(shí),說(shuō)明整個(gè)集群負(fù)載較低,同時(shí)LBS負(fù)載較輕,或是有獨(dú)立節(jié)點(diǎn)(增加單獨(dú)負(fù)載控制服務(wù)器)時(shí),由負(fù)載控制服務(wù)器向集群中的服務(wù)器節(jié)點(diǎn)收集信息。當(dāng)集群閩值較高,且LBS負(fù)載較高時(shí),集群中服務(wù)器定時(shí)向LBS服務(wù)器匯報(bào),同時(shí)LBS計(jì)算閾值、負(fù)載平衡度、預(yù)測(cè)CN等,并根據(jù)結(jié)果選擇是否重新計(jì)算和更新權(quán)值。
當(dāng)請(qǐng)求抵達(dá)時(shí),負(fù)載節(jié)點(diǎn)依據(jù)權(quán)值進(jìn)行調(diào)度。同時(shí),負(fù)載控制器記錄該請(qǐng)求相關(guān)信息,如:處理時(shí)間、處理請(qǐng)求的服務(wù)器節(jié)點(diǎn)、服務(wù)器節(jié)點(diǎn)當(dāng)前請(qǐng)求數(shù)CNi等。如果某節(jié)點(diǎn)長(zhǎng)時(shí)間不響應(yīng),控制服務(wù)器則將其設(shè)置為請(qǐng)求不可達(dá)。如果某節(jié)點(diǎn)已經(jīng)過(guò)載,控制服務(wù)器則將其設(shè)置成過(guò)載態(tài),負(fù)載調(diào)度時(shí)會(huì)越過(guò)此服務(wù)器,直到所有服務(wù)器都到達(dá)過(guò)載態(tài)。如果長(zhǎng)時(shí)間處于這種狀態(tài),則說(shuō)明整個(gè)集群的服務(wù)器節(jié)點(diǎn)性能需要提高。
負(fù)載算法步驟如下:
(1)整個(gè)集群節(jié)點(diǎn)初始化,評(píng)估集群中的服務(wù)器,計(jì)算出初始P(Serveri),并初始化權(quán)值。
(2)控制服務(wù)器計(jì)算權(quán)值,并修改負(fù)載服務(wù)器的權(quán)值列表。
(3)收集服務(wù)器信息,統(tǒng)計(jì)CNi并上報(bào)給控制服務(wù)器,每收集一定數(shù)量的數(shù)據(jù)控制服務(wù)器便更新R系數(shù),重載P(serverl)。
(4)控制服務(wù)器每隔一段時(shí)間進(jìn)行CN預(yù)測(cè),得出preCN,進(jìn)行模擬負(fù)載,得出預(yù)測(cè)集群離散度,并預(yù)測(cè)閾值入。如果入值在合理范圍內(nèi)轉(zhuǎn)步驟(5),入值異常則轉(zhuǎn)步驟(2)。
(5)有新的請(qǐng)求到達(dá)時(shí),負(fù)載服務(wù)器根據(jù)權(quán)值分配任務(wù),任務(wù)下發(fā)前判斷當(dāng)前節(jié)點(diǎn)負(fù)載狀態(tài),如果超載,則跳過(guò)當(dāng)前節(jié)點(diǎn)。下發(fā)成功后將結(jié)果上報(bào)給控制服務(wù)器。
(6)控制服務(wù)器接收或查詢整個(gè)集群中節(jié)點(diǎn)負(fù)載狀態(tài),計(jì)算SL(serverl)并將結(jié)果傳給負(fù)載服務(wù)器。同時(shí),計(jì)算集群當(dāng)前離散度及閾值入,如果需要更新權(quán)值,則轉(zhuǎn)步驟(2),否則轉(zhuǎn)步驟(3)。當(dāng)整個(gè)集群一直處于中低負(fù)載運(yùn)行時(shí),控制服務(wù)器將著重判斷集群離散度Cd。如果所有集群都處于超載狀態(tài),控制服務(wù)器將通知負(fù)載服務(wù)器請(qǐng)求等待,直到有服務(wù)器退出超載狀態(tài)。
3 實(shí)驗(yàn)驗(yàn)證
3.1 仿真實(shí)驗(yàn)平臺(tái)搭建
為了驗(yàn)證算法,用8臺(tái)云主機(jī)搭建仿真實(shí)驗(yàn)環(huán)境,分別是5臺(tái)業(yè)務(wù)邏輯節(jié)點(diǎn),2臺(tái)數(shù)據(jù)庫(kù)節(jié)點(diǎn),1臺(tái)負(fù)載服務(wù)器節(jié)點(diǎn),并在該環(huán)境中對(duì)預(yù)測(cè)閾值的動(dòng)態(tài)權(quán)值負(fù)載算法進(jìn)行驗(yàn)證分析。本文采用PTS(Performance Testing Service)性能壓測(cè)工具,它面向云化和分布式設(shè)計(jì),更加適合現(xiàn)行主流技術(shù)架構(gòu)。PTS可以模擬出大量用戶訪問(wèn)業(yè)務(wù)的真實(shí)情景。
為了有效測(cè)出算法性能,采取并發(fā)模式進(jìn)行施壓,同時(shí)使用設(shè)置上限每次增加10%的自動(dòng)遞增模式,所有壓力采用國(guó)內(nèi)公網(wǎng)IP進(jìn)行壓測(cè),最大程度地模擬真實(shí)環(huán)境。
由于控制服務(wù)器和負(fù)載服務(wù)器在同一臺(tái)機(jī)器上,因此采用由服務(wù)器節(jié)點(diǎn)向上匯報(bào)的方式,服務(wù)器節(jié)點(diǎn)根據(jù)當(dāng)前節(jié)點(diǎn)負(fù)載變化頻率分為3個(gè)等級(jí),最短5。匯報(bào)一次,最長(zhǎng)15s向上匯報(bào),如一個(gè)服務(wù)器超過(guò)20s沒(méi)有匯報(bào),控制服務(wù)器將其設(shè)置成不可達(dá)。服務(wù)器集群中各節(jié)點(diǎn)配置如表2所示。
3.2 實(shí)驗(yàn)結(jié)果分析
基于預(yù)測(cè)模型和獨(dú)立訓(xùn)練節(jié)點(diǎn)的負(fù)載均衡算法(實(shí)驗(yàn)組1)在處理負(fù)載均衡問(wèn)題上具有較好效果,因此將本文算法(實(shí)驗(yàn)組2)與其作對(duì)照實(shí)驗(yàn)。同時(shí),為了更加清晰地顯示實(shí)驗(yàn)結(jié)果,還增加了普通的加權(quán)輪詢算法作為對(duì)照組
實(shí)驗(yàn)過(guò)程中,在搭建好的仿真實(shí)驗(yàn)平臺(tái)上分別運(yùn)行本文預(yù)測(cè)閾值動(dòng)態(tài)權(quán)值負(fù)載均衡算法與兩種對(duì)照算法。通過(guò)PTS壓測(cè)工具以每秒增加50的并發(fā)量進(jìn)行壓測(cè),每一次壓測(cè)5分鐘,每隔4s統(tǒng)計(jì)一次平均響應(yīng)時(shí)間和當(dāng)前集群狀態(tài)。結(jié)果如圖1所示。
從圖1可以看出,并發(fā)量提高,平均響應(yīng)時(shí)間隨之上升。當(dāng)并發(fā)量不是很高時(shí),普通加權(quán)輪詢算法(對(duì)照組)與本文算法相差無(wú)幾,但是本文算法稍低于對(duì)照組,原因在于普通加權(quán)算法是憑借經(jīng)驗(yàn)設(shè)置權(quán)值,而本文是根據(jù)服務(wù)器狀態(tài)計(jì)算R值,并通過(guò)R值評(píng)估服務(wù)節(jié)點(diǎn)性能后計(jì)算權(quán)值。但是基于預(yù)測(cè)模型和獨(dú)立訓(xùn)練節(jié)點(diǎn)的負(fù)載均衡算法(實(shí)驗(yàn)組1)平均響應(yīng)時(shí)間略高于本文算法和對(duì)照組,這是由于實(shí)驗(yàn)組1的算法全程都有負(fù)載調(diào)度器參與,在低并發(fā)時(shí),復(fù)雜算法增加了額外開(kāi)銷(xiāo)。而本文算法由于增加了預(yù)測(cè)閾值入,在低并發(fā)時(shí)控制服務(wù)器并不參與,避免了額外的系統(tǒng)開(kāi)銷(xiāo),提升了響應(yīng)速度。
在高并發(fā)時(shí),對(duì)照組權(quán)值固定,每種請(qǐng)求對(duì)資源的需求不同,造成負(fù)載不均,使得響應(yīng)時(shí)間增大。而實(shí)驗(yàn)組1由于負(fù)載調(diào)度器的參與讓整個(gè)集群負(fù)載更加均衡從而使響應(yīng)時(shí)間低于對(duì)照組。而本文算法由于權(quán)值是請(qǐng)求到達(dá)之前就已經(jīng)確定好,因此在請(qǐng)求到來(lái)時(shí)避免了控制服務(wù)器運(yùn)算,提升了平均響應(yīng)時(shí)間。
4 結(jié)語(yǔ)
本文對(duì)復(fù)雜環(huán)境下的負(fù)載問(wèn)題進(jìn)行了深人研究,考慮到不同項(xiàng)目對(duì)資源占用情況不同和集群節(jié)點(diǎn)性能差異,提出了一種基于預(yù)測(cè)閾值的動(dòng)態(tài)權(quán)值負(fù)載均衡算法。算法中的權(quán)值結(jié)合了項(xiàng)目對(duì)節(jié)點(diǎn)資源的消耗情況,通過(guò)負(fù)載離散度控制,保證了整個(gè)集群負(fù)載最優(yōu),又通過(guò)閾值對(duì)算法進(jìn)行調(diào)節(jié),綜合考慮了高并發(fā)和低并發(fā)兩種不同情況。最后的模擬實(shí)驗(yàn)顯示,本文算法能減少響應(yīng)時(shí)間,使整個(gè)集群負(fù)載更加平衡,負(fù)載效果較好。后續(xù)可分析不同任務(wù)對(duì)資源的消耗程度,將其進(jìn)行量化,并結(jié)合任務(wù)訪問(wèn)頻率作進(jìn)一步研究。