張 翼,蔡 磊,霍 如,,3,汪 碩,3,4,黃 韜,3,4,盧 華
(1.北京工業(yè)大學(xué) 信息學(xué)部 北京未來網(wǎng)絡(luò)科技高精尖創(chuàng)新中心,北京 100124;2.廣東省新一代通信與網(wǎng)絡(luò)創(chuàng)新研究院,廣東 廣州 510700;3.網(wǎng)絡(luò)通信與安全紫金山實(shí)驗(yàn)室,江蘇 南京 211111;4.北京郵電大學(xué) 網(wǎng)絡(luò)與交換國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876)
工業(yè)互聯(lián)網(wǎng)標(biāo)識(shí)解析體系是工業(yè)互聯(lián)網(wǎng)網(wǎng)絡(luò)體系的重要組成部分,是支撐工業(yè)互聯(lián)網(wǎng)互聯(lián)互通的神經(jīng)樞紐.工業(yè)互聯(lián)網(wǎng)標(biāo)識(shí)解析體系結(jié)構(gòu)自頂向下包含國(guó)際根節(jié)點(diǎn)、國(guó)家頂級(jí)節(jié)點(diǎn)、二級(jí)節(jié)點(diǎn)以及企業(yè)節(jié)點(diǎn),這些節(jié)點(diǎn)之間數(shù)據(jù)互通,形成了一個(gè)巨大的產(chǎn)業(yè)生態(tài)體系[1-2].隨著標(biāo)識(shí)解析技術(shù)的快速發(fā)展,許多行業(yè)企業(yè)通過對(duì)接二級(jí)節(jié)點(diǎn),利用標(biāo)識(shí)解析技術(shù)實(shí)現(xiàn)了產(chǎn)品的供應(yīng)鏈管理以及生命周期管理,標(biāo)識(shí)的注冊(cè)量以及解析量也因此達(dá)到了海量級(jí)別,如何讓二級(jí)節(jié)點(diǎn)系統(tǒng)有效處理高并發(fā)的標(biāo)識(shí)服務(wù)請(qǐng)求也成為了當(dāng)前的主要關(guān)注點(diǎn)之一.
面向高并發(fā)的請(qǐng)求,負(fù)載均衡是主要的解決方案之一,在過去的研究中,主要采用的負(fù)載均衡方案可以分為靜態(tài)負(fù)載均衡和動(dòng)態(tài)負(fù)載均衡兩類,靜態(tài)負(fù)載均衡算法是指不考慮服務(wù)器的實(shí)時(shí)負(fù)載狀態(tài),僅利用一些統(tǒng)計(jì)數(shù)值或者數(shù)學(xué)函數(shù)以一定比例來分配請(qǐng)求,主要包含輪詢調(diào)度算法、加權(quán)輪詢調(diào)度算法、地址散列調(diào)度算法、一致性哈希算法[3-4].動(dòng)態(tài)負(fù)載均衡算法主要是指在集群長(zhǎng)時(shí)間的運(yùn)行后,自身的負(fù)載狀態(tài)會(huì)產(chǎn)生較大的差異,在進(jìn)行請(qǐng)求分配的同時(shí),需要利用服務(wù)器的實(shí)時(shí)運(yùn)行信息評(píng)估服務(wù)器的負(fù)載狀態(tài),并根據(jù)該狀態(tài)來進(jìn)行請(qǐng)求的分配,目前傳統(tǒng)的動(dòng)態(tài)負(fù)載均衡算法主要包含最小連接調(diào)度算法、加權(quán)最小連接調(diào)度算法[5-6].此外,隨著人工智能的發(fā)展,許多人工智能算法被應(yīng)用到了負(fù)載均衡的新方案中,例如文獻(xiàn)[7-9]提出的負(fù)載均衡算法均基于人工神經(jīng)網(wǎng)絡(luò)創(chuàng)建流量預(yù)測(cè)模型,并根據(jù)預(yù)測(cè)結(jié)果來選擇負(fù)載最小的路徑.
目前學(xué)術(shù)界基于人工智能的動(dòng)態(tài)負(fù)載均衡方案大部分都應(yīng)用在諸如云計(jì)算、SDN以及移動(dòng)蜂窩網(wǎng)絡(luò)等領(lǐng)域中,主要實(shí)現(xiàn)的是網(wǎng)絡(luò)層之間的路由負(fù)載均衡.而本文的場(chǎng)景是針對(duì)標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)系統(tǒng),負(fù)載均衡方案需要應(yīng)用到應(yīng)用層集群服務(wù)器之間,因此上述的動(dòng)態(tài)負(fù)載均衡方案不能很好的移植到本文的場(chǎng)景中.此外,由于標(biāo)識(shí)解析技術(shù)在國(guó)內(nèi)發(fā)展的時(shí)間較短,目前技術(shù)本身及部署推廣已經(jīng)發(fā)展的較為成熟,但是性能優(yōu)化并未考慮的比較全面,僅采用一些簡(jiǎn)單的如靜態(tài)負(fù)載均衡的方案來緩解標(biāo)識(shí)解析節(jié)點(diǎn)壓力,不能考慮到集群的實(shí)時(shí)運(yùn)行狀況和流量的突發(fā)性,這也導(dǎo)致了目前的標(biāo)識(shí)解析系統(tǒng)不能很好地應(yīng)對(duì)高并發(fā)請(qǐng)求處理.針上述問題,本文提出了一種感知?jiǎng)討B(tài)負(fù)載均衡方案,該方案首先基于LSTM算法建立了服務(wù)器連接數(shù)長(zhǎng)期預(yù)測(cè)模型,通過該模型可以預(yù)測(cè)得到服務(wù)器下一時(shí)刻的請(qǐng)求連接數(shù)并反映下一時(shí)刻的流量大小.然后在此基礎(chǔ)上,基于加權(quán)最小連接調(diào)度算法,利用集群的性能指標(biāo)、實(shí)時(shí)負(fù)載信息預(yù)測(cè)得到權(quán)值最大的服務(wù)器來處理請(qǐng)求.仿真實(shí)驗(yàn)結(jié)果表明:本文提出的算法相對(duì)于傳統(tǒng)的靜態(tài)負(fù)載均衡算法可以大幅度地縮短請(qǐng)求的平均響應(yīng)時(shí)間,提高集群吞吐率和請(qǐng)求響應(yīng)成功率.
工業(yè)互聯(lián)網(wǎng)二級(jí)節(jié)點(diǎn)是面向特定行業(yè)或者多個(gè)行業(yè)提供標(biāo)識(shí)服務(wù)的公共節(jié)點(diǎn),如圖1所示,二級(jí)節(jié)點(diǎn)服務(wù)部署采取了分布式的部署方式,同一行業(yè)的不同節(jié)點(diǎn)可以部署在不同的地區(qū),不同行業(yè)的二級(jí)節(jié)點(diǎn)通過互聯(lián)網(wǎng)彼此互聯(lián),他們之間的資源共享,形成了一張標(biāo)識(shí)信息網(wǎng)絡(luò).在行業(yè)二級(jí)節(jié)點(diǎn)內(nèi)部,不同地區(qū)的節(jié)點(diǎn)部署了多個(gè)標(biāo)識(shí)解析代理服務(wù),每個(gè)代理服務(wù)之間的數(shù)據(jù)互為復(fù)制,資源共享.面對(duì)海量的標(biāo)識(shí)請(qǐng)求,我們?cè)O(shè)計(jì)了一種負(fù)載均衡器,將訪問流量均攤到多個(gè)服務(wù)器上執(zhí)行任務(wù),這樣可以縮短系統(tǒng)對(duì)用戶提供服務(wù)的響應(yīng)時(shí)間、平衡多個(gè)服務(wù)器之間的負(fù)載,從而達(dá)到提升整體服務(wù)器集群性能的目的.
圖1 標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)網(wǎng)絡(luò)拓?fù)?/p>
在眾多行業(yè)的二級(jí)節(jié)點(diǎn)中,每個(gè)二級(jí)節(jié)點(diǎn)內(nèi)部都部署著負(fù)載均衡系統(tǒng),該系統(tǒng)框架如圖2所示.本文提出的負(fù)載均衡系統(tǒng)主要可以分為兩部分:第一部分的數(shù)據(jù)采集模塊負(fù)責(zé)采集服務(wù)器性能指標(biāo)和負(fù)載信息,負(fù)載均衡模塊負(fù)責(zé)利用預(yù)測(cè)模型得到的請(qǐng)求連接數(shù)和數(shù)據(jù)采集模塊得到的數(shù)據(jù)來計(jì)算服務(wù)器的權(quán)重并選擇最佳節(jié)點(diǎn).第二部分的流量調(diào)度模塊則主要依據(jù)預(yù)測(cè)得到的最佳節(jié)點(diǎn)來進(jìn)行流量調(diào)度,達(dá)到負(fù)載均衡的目的,集群管理模塊則主要負(fù)責(zé)管理集群中的服務(wù)器并向數(shù)據(jù)采集模塊提供信息采集接口.
圖2 標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)負(fù)載均衡系統(tǒng)框架
本文提出的動(dòng)態(tài)負(fù)載均衡算法選擇一個(gè)服務(wù)器的可能性由該服務(wù)器的權(quán)重決定,而服務(wù)器權(quán)重又由3部分決定,即服務(wù)器的性能、實(shí)時(shí)負(fù)載以及請(qǐng)求連接數(shù),具體設(shè)計(jì)思路如圖3所示,負(fù)載均衡系統(tǒng)在接收到用戶請(qǐng)求之后,首先計(jì)算各個(gè)服務(wù)器的性能指標(biāo)以及實(shí)時(shí)負(fù)載,然后利用長(zhǎng)短期記憶網(wǎng)絡(luò)模型來預(yù)測(cè)各個(gè)服務(wù)器下一時(shí)刻的請(qǐng)求連接數(shù),最后通過這3個(gè)參數(shù)來預(yù)測(cè)最佳的節(jié)點(diǎn)并將請(qǐng)求轉(zhuǎn)發(fā)到該節(jié)點(diǎn)進(jìn)行處理.
圖3 標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)負(fù)載均衡系統(tǒng)流程圖
最小連接調(diào)度算法是指在分配請(qǐng)求的時(shí)候采取服務(wù)器請(qǐng)求連接數(shù)作為評(píng)估指標(biāo),每次選取連接數(shù)最小的服務(wù)器分配任務(wù).但是由于不同的服務(wù)器具有不同的性能,在連接數(shù)相同的情況下低性能的服務(wù)器負(fù)載可能已經(jīng)飽和,因此加權(quán)最小連接調(diào)度算法在最小連接調(diào)度算法的基礎(chǔ)之上,用相應(yīng)的權(quán)值代表服務(wù)器的性能指標(biāo),使服務(wù)器的連接數(shù)與權(quán)值成比例,將請(qǐng)求分配到比例最小的服務(wù)器上.論文[6]提出的算法就是一種典型的加權(quán)最小連接調(diào)度負(fù)載均衡算法,該算法選擇了可以反映服務(wù)器負(fù)載情況的CPU利用率、硬盤利用率、內(nèi)存利用率;可以反映服務(wù)器性能的CPU、硬盤大小、內(nèi)存大?。豢梢苑从钞?dāng)前流量大小的服務(wù)器連接數(shù)等數(shù)據(jù)作為權(quán)重評(píng)估的參數(shù),利用每個(gè)參數(shù)的變化來計(jì)算動(dòng)態(tài)權(quán)重,來評(píng)估服務(wù)器的實(shí)時(shí)性.
本文在文獻(xiàn)[6]提出的動(dòng)態(tài)負(fù)載均衡算法基礎(chǔ)上,將硬盤大小、硬盤利用率這兩個(gè)參數(shù)換為網(wǎng)卡帶寬以及網(wǎng)卡帶寬利用率,并引入了基于LSTM的請(qǐng)求連接數(shù)預(yù)測(cè)模型,將預(yù)測(cè)得到的請(qǐng)求數(shù)也加入到了權(quán)重評(píng)估參數(shù)中,下面兩節(jié)將分別介紹請(qǐng)求連接數(shù)的預(yù)測(cè)模型以及利用請(qǐng)求連接數(shù)、負(fù)載信息和性能指標(biāo)來評(píng)估服務(wù)器權(quán)重的算法.
本文基于LSTM算法建立了請(qǐng)求連接數(shù)預(yù)測(cè)模型,通過該模型,我們將得到服務(wù)器下一時(shí)刻的請(qǐng)求連接數(shù)qt+1.
2.1.1 數(shù)據(jù)預(yù)處理
式(1)中的X矩陣為本算法的輸入矩陣:
Xn×2=[Q,T],
(1)
其中:Q矩陣對(duì)應(yīng)為請(qǐng)求連接數(shù),Q=[q1,q2,…,qn]T;T矩陣對(duì)應(yīng)為具體的時(shí)刻,T=[t1,t2,…,tn]T.
如果直接使用原始的數(shù)據(jù)來進(jìn)行輸入,則會(huì)突出數(shù)值較高的結(jié)果的影響力,削弱數(shù)值較低的結(jié)果的影響力,所以我們需要對(duì)X矩陣的數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化操作.本文采用了Z-score方法,這種方法基于原始數(shù)據(jù)的均值和標(biāo)準(zhǔn)差進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化,如式(2)所示.
X=(X-mean(X))/S,
(2)
其中:mean(X)為X矩陣的均值;S為矩陣X的方差.標(biāo)準(zhǔn)化后的數(shù)據(jù)會(huì)圍繞0波動(dòng),大于0說明該數(shù)值高于平均水平,低于0則相反.
2.1.2 LSTM算法模型
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)是一類以序列數(shù)據(jù)為輸入,在序列的演進(jìn)方向進(jìn)行遞歸且所有的節(jié)點(diǎn)按照鏈?zhǔn)竭B接的遞歸神經(jīng)網(wǎng)絡(luò).但是,標(biāo)準(zhǔn)的循環(huán)神經(jīng)網(wǎng)絡(luò)被梯度爆炸的問題所限制,利用該模型建立長(zhǎng)期的依賴關(guān)系非常困難.針對(duì)此問題,學(xué)術(shù)界提出了眾多解決方案,包括LSTM以及門控循環(huán)單元.LSTM網(wǎng)絡(luò)是一種特殊的RNN,側(cè)重于研究數(shù)據(jù)序列的互相依賴關(guān)系.該網(wǎng)絡(luò)將時(shí)間特征融入到自身,能夠依據(jù)系統(tǒng)動(dòng)態(tài)的時(shí)序數(shù)據(jù)建立能反映序列中包含的動(dòng)態(tài)依存關(guān)系的數(shù)學(xué)模型,解決了RNN梯度消失以及長(zhǎng)期依賴的問題并且在處理時(shí)序數(shù)據(jù)時(shí)表現(xiàn)出優(yōu)異性能,因此本文選擇利用LSTM網(wǎng)絡(luò)對(duì)請(qǐng)求連接數(shù)時(shí)序數(shù)據(jù)進(jìn)行預(yù)測(cè).
LSTM算法的基本結(jié)構(gòu)如圖4所示,貫穿在圖上方的紅色水平線為細(xì)胞狀態(tài)(cell),c為記憶細(xì)胞,主要用來存儲(chǔ)信息,a為隱藏層的輸出,y
(3)
忘記門負(fù)責(zé)決定記憶細(xì)胞要丟棄的信息,具體公式為
Γf=σ(Wf[a
(4)
其中a
圖4 LSTM基礎(chǔ)結(jié)構(gòu)圖
(5)
Γu=σ(Wu[a
(6)
(7)
(8)
輸出門用來控制該層的細(xì)胞狀態(tài)有多少被過濾,首先使用激活函數(shù)sigmoid來獲得一個(gè)0到1之間的數(shù)值Γo,然后將細(xì)胞狀態(tài)通過tanh激活函數(shù)處理并與Γo相乘,輸出得到本層的a
Γo=σ(Wo[a
(9)
a
(10)
本文選取節(jié)點(diǎn)性能指標(biāo)、節(jié)點(diǎn)負(fù)載和節(jié)點(diǎn)請(qǐng)求連接數(shù)這3種節(jié)點(diǎn)特征作為節(jié)點(diǎn)權(quán)重影響因子.對(duì)于節(jié)點(diǎn)性能指標(biāo)和節(jié)點(diǎn)負(fù)載來說,常用的評(píng)估參數(shù)有CPU主頻、網(wǎng)絡(luò)帶寬、運(yùn)行內(nèi)存.CPU是節(jié)點(diǎn)的運(yùn)算和控制中心,是信息處理和程序運(yùn)行的執(zhí)行單元,節(jié)點(diǎn)的CPU主頻越大,計(jì)算能力越高.網(wǎng)絡(luò)帶寬是單位時(shí)間內(nèi)能夠傳輸?shù)臄?shù)據(jù)量,是衡量網(wǎng)絡(luò)特征的一個(gè)重要參數(shù),節(jié)點(diǎn)的網(wǎng)絡(luò)帶寬越大,可以并行處理的請(qǐng)求越多.運(yùn)行內(nèi)存是指程序運(yùn)行時(shí)需要的內(nèi)存,節(jié)點(diǎn)運(yùn)行內(nèi)存越大,系統(tǒng)程序運(yùn)行越快.可以看出上述3種參數(shù)對(duì)于節(jié)點(diǎn)處理并發(fā)請(qǐng)求的能力有很大的影響,非常適用于評(píng)估標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)的性能指標(biāo)和節(jié)點(diǎn)負(fù)載.
令Si代表集群中第i個(gè)服務(wù)器,Cd、Md、Bd分別代表服務(wù)器的CPU主頻,內(nèi)存容量以及網(wǎng)絡(luò)帶寬,Cu、Mu、Bu分別代表服務(wù)器的CPU利用率、內(nèi)存利用率以及網(wǎng)絡(luò)帶寬利用率.
(1)計(jì)算第i個(gè)服務(wù)器的性能指標(biāo)P(Si):
(11)
其中α1、β1、γ1是控制參數(shù)權(quán)重的系數(shù)且α1+β1+γ1=1.
(2)計(jì)算第i個(gè)服務(wù)器的節(jié)點(diǎn)負(fù)載L(Si):
L(Si)=α2Cui+β2Mui+γ2Bui,
(12)
其中α2、β2、γ2是控制參數(shù)權(quán)重的系數(shù)且α2+β2+γ2=1.
(3)服務(wù)器的權(quán)重不僅與下一時(shí)刻的連接數(shù)有關(guān),還與當(dāng)前時(shí)刻的連接數(shù)有很大關(guān)系[6].基于這一情況,計(jì)算第i個(gè)服務(wù)器的請(qǐng)求連接數(shù)Rank(Si):
Rank(Si)=α3qt(Si)+β3qt+1(Si),
(13)
其中:qt+1是通過基于LSTM預(yù)測(cè)模型預(yù)測(cè)得到服務(wù)器下一時(shí)刻的請(qǐng)求連接數(shù);qt表示當(dāng)前時(shí)刻的請(qǐng)求連接數(shù);α3、β3是控制參數(shù)權(quán)重的系數(shù)且α3+β3=1.
令第n臺(tái)服務(wù)器的權(quán)重為W(Sn),權(quán)重越大,分配請(qǐng)求的可能性越大.權(quán)重與服務(wù)器的性能成正比,服務(wù)器的性能指標(biāo)越高,可以處理的請(qǐng)求越多.但是隨著服務(wù)器的長(zhǎng)時(shí)間運(yùn)行,服務(wù)器的剩余性能將越來越少,這一指標(biāo)將有所局限,因此我們引入了服務(wù)器的實(shí)時(shí)負(fù)載L(Sn),服務(wù)器的負(fù)載與權(quán)重成反比,負(fù)載越高,服務(wù)器可以處理的請(qǐng)求越少.此外,不同的服務(wù)器具有不同的性能,處理相同數(shù)量的請(qǐng)求對(duì)于高性能的服務(wù)器來說,可能只是占用了一少部分資源,但是對(duì)于低性能的服務(wù)器來說,可能已經(jīng)占據(jù)了大部分資源,這樣也是負(fù)載不均衡,因此本文引入了請(qǐng)求連接數(shù)這一指標(biāo),該指標(biāo)與權(quán)重成反比.綜上所述,我們得到了下面的權(quán)重計(jì)算公式:
(14)
通過以上分析,選擇最佳節(jié)點(diǎn)的問題即可以轉(zhuǎn)換為選擇權(quán)值最大的服務(wù)器,即計(jì)算W(Sn)的最大值Max(W(Sn)).
依據(jù)以上提到的負(fù)載均衡算法流程,本文設(shè)計(jì)了相關(guān)的算法偽代碼如表1(第32頁)所示.該偽代碼主要描述了本算法如何利用影響因子評(píng)估參數(shù)來選擇集群處理并發(fā)請(qǐng)求的最佳節(jié)點(diǎn).
表1 標(biāo)識(shí)解析負(fù)載均衡算法的偽代碼
在計(jì)算3種影響因子時(shí),參數(shù)權(quán)重反映了影響因子對(duì)對(duì)應(yīng)參數(shù)的依賴程度.對(duì)于節(jié)點(diǎn)性能和節(jié)點(diǎn)負(fù)載來說,CPU和運(yùn)行內(nèi)存決定了處理服務(wù)請(qǐng)求的速度,影響程度一致,故權(quán)重系數(shù)相等,而網(wǎng)絡(luò)帶寬決定了系統(tǒng)并發(fā)量,面對(duì)海量的標(biāo)識(shí)服務(wù)并發(fā)請(qǐng)求,網(wǎng)絡(luò)帶寬相對(duì)于CPU和運(yùn)行內(nèi)存具有更高的影響程度,故網(wǎng)絡(luò)帶寬的權(quán)重系數(shù)稍大.在計(jì)算請(qǐng)求連接數(shù)時(shí),當(dāng)前時(shí)刻的請(qǐng)求連接和下一時(shí)刻的請(qǐng)求連接的屬性特征相同,影響程度也相同,故權(quán)重系數(shù)相等.仿真實(shí)驗(yàn)中式(11)~(13)中所有的權(quán)重系數(shù)的取值如表2所示.
表2 參數(shù)權(quán)重設(shè)計(jì)
本實(shí)驗(yàn)搭建了LSTM的單層網(wǎng)絡(luò)以及全連接層模型,對(duì)服務(wù)器請(qǐng)求連接數(shù)進(jìn)行了長(zhǎng)期的預(yù)測(cè).在LSTM網(wǎng)絡(luò)中,訓(xùn)練樣本包括功能與標(biāo)簽,他們作用于網(wǎng)絡(luò)模型的輸入與輸出,經(jīng)過相應(yīng)的特征計(jì)算之后,網(wǎng)絡(luò)模型將獲得預(yù)測(cè)值,本網(wǎng)絡(luò)模型就是從歷史請(qǐng)求連接數(shù)到下一時(shí)刻請(qǐng)求連接數(shù)的映射.此外,本實(shí)驗(yàn)選取了信息采集模塊定時(shí)采集的節(jié)點(diǎn)請(qǐng)求連接數(shù)序列作為數(shù)據(jù)集,我們?cè)趯?duì)數(shù)據(jù)集進(jìn)行標(biāo)準(zhǔn)化處理之后將其劃分為訓(xùn)練集和測(cè)試集,訓(xùn)練集用來訓(xùn)練模型,確定合適的參數(shù),測(cè)試集用來測(cè)試已經(jīng)訓(xùn)練好的模型的精確性.
訓(xùn)練集和測(cè)試集的大小比例對(duì)模型的預(yù)測(cè)效果有十分顯著的影響,訓(xùn)練集太小,數(shù)據(jù)不具備普遍性,會(huì)導(dǎo)致訓(xùn)練結(jié)果較差,訓(xùn)練集過大則可能導(dǎo)致模型過擬合,對(duì)新的數(shù)據(jù)的預(yù)測(cè)效果會(huì)與訓(xùn)練效果不符.因此本文對(duì)預(yù)測(cè)模型進(jìn)行訓(xùn)練的同時(shí),分別采用了35%、50%以及75%的訓(xùn)練集,對(duì)比了3種比例的訓(xùn)練集的訓(xùn)練效果以及預(yù)測(cè)效果.在對(duì)模型進(jìn)行訓(xùn)練時(shí),主要可以分為兩個(gè)階段:隨機(jī)初始化參數(shù)和使用適應(yīng)性矩估計(jì)(Adaptive Moment Estimation,Adam)優(yōu)化器進(jìn)行優(yōu)化訓(xùn)練.Adam是一種基于隨機(jī)梯度的優(yōu)化方法,與其他優(yōu)化方法相比,Adam算法收斂速度快,學(xué)習(xí)效果更為有效.此外,我們選擇了均方誤差函數(shù)(Mean Square Error,MSE)函數(shù)作為損失函數(shù),通過該函數(shù)可以表示模型的訓(xùn)練效果.圖5~圖7分別對(duì)應(yīng)這3次實(shí)驗(yàn)的預(yù)測(cè)結(jié)果,其中,實(shí)線代表了數(shù)據(jù)測(cè)試集的實(shí)際數(shù)據(jù),虛線代表了訓(xùn)練模型的預(yù)測(cè)數(shù)據(jù)集,采用以上3種比例的訓(xùn)練集的損失分別為0.0007、0.00051和0.00092,所以本文算法模型最后選取了50%的數(shù)據(jù)作為訓(xùn)練集.
圖5 仿真模型預(yù)測(cè)結(jié)果(35%)
圖6 仿真模型預(yù)測(cè)結(jié)果(50%)
圖7 仿真模型預(yù)測(cè)結(jié)果(75%)
我們將訓(xùn)練集輸入模型,經(jīng)過多次的實(shí)驗(yàn)與調(diào)試,最終將平均損失降低在0.0007左右,此外,LSTM模型的層數(shù)為1層,batch_size為48(每次向網(wǎng)絡(luò)中輸入48個(gè)樣本),訓(xùn)練次數(shù)(Epoch)為500.
本文利用壓力測(cè)試工具siege模擬了100、500、1000、1500、2000、3000、4000、5000等不同請(qǐng)求數(shù)量的并發(fā)場(chǎng)景,分別對(duì)比了Nginx內(nèi)置的輪詢調(diào)度算法、加權(quán)輪詢調(diào)度算法、源地址散列調(diào)度算法以及本文提出的標(biāo)識(shí)解析負(fù)載均衡(Identity Resolution Load Balancing, IRLB)算法,選擇了平均響應(yīng)時(shí)間、吞吐率以及失敗次數(shù)這3個(gè)指標(biāo)作為算法評(píng)估指標(biāo).
圖8展示了4種算法在不同并發(fā)請(qǐng)求數(shù)下的平均響應(yīng)時(shí)間,從該圖的實(shí)驗(yàn)結(jié)果可以看出在請(qǐng)求數(shù)量達(dá)到500之前,隨著請(qǐng)求數(shù)量的增加,源地址散列算法、輪詢算法以及加權(quán)輪詢算法的響應(yīng)時(shí)間快速增長(zhǎng)到1.2s上下,而本文而本論文提出的IRLB算法由于根據(jù)請(qǐng)求連接數(shù)、服務(wù)器的負(fù)載情況以及性能指標(biāo)動(dòng)態(tài)的調(diào)整了服務(wù)器的權(quán)重,平均響應(yīng)時(shí)間只增長(zhǎng)到0.5s左右.在請(qǐng)求數(shù)量達(dá)到500之后,由于處理了大量請(qǐng)求,性能有所下降,4種算法處理請(qǐng)求的平均響應(yīng)時(shí)間都達(dá)到了峰值,但是IRLB算法的響應(yīng)時(shí)間仍然比其他算法縮短了50%左右,這也論證了本算法在響應(yīng)時(shí)間這一指標(biāo)上優(yōu)于其他3種算法.
圖8 平均響應(yīng)時(shí)間對(duì)比
吞吐率是指服務(wù)器單位時(shí)間內(nèi)可以處理的并發(fā)請(qǐng)求數(shù)量,在一定程度上也可以反應(yīng)負(fù)載均衡算法的性能。圖9(第34頁)展示了4種算法在不同并發(fā)請(qǐng)求數(shù)下的吞吐率,從該圖的實(shí)驗(yàn)結(jié)果可以看出,在100到5000的并發(fā)請(qǐng)求數(shù)量之間,各個(gè)算法的吞吐率總體保持穩(wěn)定。因?yàn)镮RLB算法考慮了服務(wù)器實(shí)時(shí)的運(yùn)行狀態(tài),大大的提升了服務(wù)器的利用率,使得該算法的吞吐率相比于其他3種算法提升了30%左右。
圖9 吞吐率對(duì)比
失敗次數(shù)可以在一定程度上反應(yīng)一個(gè)負(fù)載均衡算法的穩(wěn)定性,圖10(第34頁)展示了4種算法在不同并發(fā)請(qǐng)求數(shù)下的失敗次數(shù),可以明顯看出隨著請(qǐng)求數(shù)量的繼續(xù)增加,輪詢算法以及加權(quán)輪詢算法都開始出現(xiàn)較多的失敗請(qǐng)求,最多可達(dá)100多次。源地址散列算法雖然也會(huì)出現(xiàn)失敗的請(qǐng)求次數(shù),但是相對(duì)較少且比較穩(wěn)定。IRLB算法由于可以選取狀態(tài)最好的服務(wù)器來處理請(qǐng)求,所以請(qǐng)求失敗次數(shù)大部分時(shí)間均為零,只有少數(shù)時(shí)刻出現(xiàn)了失敗的情況,相比于其他3種算法完全可以忽略。因此,IRLB算法相比于其他的算法擁有更高的穩(wěn)定性。
圖10 失敗次數(shù)對(duì)比
本文針對(duì)當(dāng)前工業(yè)互聯(lián)網(wǎng)二級(jí)節(jié)點(diǎn)服務(wù)廣泛部署、但性能優(yōu)化尚屬空白的問題,充分研究傳統(tǒng)的負(fù)載均衡算法,結(jié)合有效的深度學(xué)習(xí)算法,提出了一種基于LSTM的動(dòng)態(tài)負(fù)載均衡方案,該方案綜合考慮了服務(wù)器的性能指標(biāo),實(shí)時(shí)負(fù)載信息以及服務(wù)器的流量突發(fā)性,解決了高并發(fā)請(qǐng)求給標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)帶來的壓力,為用戶提供了更好的服務(wù)體驗(yàn).仿真實(shí)驗(yàn)表明,相比于傳統(tǒng)的負(fù)載均衡方案,本文提出的負(fù)載均衡方案不僅提高了標(biāo)識(shí)解析二級(jí)節(jié)點(diǎn)集群吞吐率和請(qǐng)求響應(yīng)成功率,還大幅度縮短了并發(fā)請(qǐng)求的平均響應(yīng)時(shí)間.未來的工作中將考慮從二級(jí)節(jié)點(diǎn)標(biāo)識(shí)服務(wù)中提取出與標(biāo)識(shí)相關(guān)的關(guān)鍵特征來優(yōu)化負(fù)載均衡算法.
復(fù)旦學(xué)報(bào)(自然科學(xué)版)2021年1期