林春鶯
(集美大學(xué)理學(xué)院,福建 廈門(mén) 361021)
內(nèi)容分發(fā)網(wǎng)絡(luò)(content delivery network,CDN)是一種在服務(wù)提供方和消費(fèi)方之間,通過(guò)架設(shè)節(jié)點(diǎn)或者服務(wù)器,讓用戶就近獲取所需的內(nèi)容,從而達(dá)到緩解網(wǎng)絡(luò)擁塞,提高用戶訪問(wèn)網(wǎng)站響應(yīng)速度的目的?;谶@種服務(wù)結(jié)構(gòu),如何有效管理不同服務(wù)的資源調(diào)度分配,保證高質(zhì)量的服務(wù)是一個(gè)需要深入研究的問(wèn)題。特別是當(dāng)資源處于超負(fù)荷運(yùn)轉(zhuǎn)或網(wǎng)絡(luò)波動(dòng)時(shí),如何通過(guò)調(diào)度來(lái)及時(shí)選擇合適的替代資源,是保證服務(wù)質(zhì)量的關(guān)鍵。傳統(tǒng)業(yè)界的調(diào)度方式一般采用基于規(guī)則的方式[1],即,先收集大量服務(wù)器資源的指標(biāo)(比如負(fù)載情況、網(wǎng)絡(luò)情況、物理位置、服務(wù)冗余度等),再統(tǒng)計(jì)評(píng)價(jià)指標(biāo),最后以此來(lái)制定規(guī)則。但指標(biāo)量越大則導(dǎo)致調(diào)度規(guī)則越復(fù)雜,使修改和維護(hù)成本更高,靈活性更差,同時(shí)調(diào)度策略往往只考慮服務(wù)質(zhì)量,而沒(méi)有考慮現(xiàn)實(shí)的成本問(wèn)題。
近年來(lái)強(qiáng)化學(xué)習(xí)(reinforcement learning,RL)[2]因其強(qiáng)大的探索能力和自主學(xué)習(xí)能力,在游戲[3]、機(jī)器人控制[4]、交通控制[5]等領(lǐng)域都有廣泛的應(yīng)用。在資源調(diào)度策略領(lǐng)域,文獻(xiàn)[6]利用Q值強(qiáng)化學(xué)習(xí),將虛擬機(jī)資源調(diào)度描述成馬爾科夫決策過(guò)程,并設(shè)計(jì)了動(dòng)作的獎(jiǎng)勵(lì)函數(shù),實(shí)現(xiàn)虛擬機(jī)的資源調(diào)度策略;文獻(xiàn)[7]將深度強(qiáng)化學(xué)習(xí)的思路應(yīng)用到微電網(wǎng)在線優(yōu)化調(diào)度過(guò)程中;文獻(xiàn)[8]應(yīng)用強(qiáng)化學(xué)習(xí)算法求解置換流水車間調(diào)度問(wèn)題;文獻(xiàn)[9]提出DeepRM模型,將資源調(diào)度系統(tǒng)的狀態(tài)信息建模成圖像形式,將獲取的圖像信息輸入到卷積神經(jīng)網(wǎng)絡(luò)中,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像信息進(jìn)行快速特征提取,用強(qiáng)化學(xué)習(xí)的方法對(duì)神經(jīng)網(wǎng)絡(luò)中的參數(shù)進(jìn)行迭代更新,形成最終的策略;文獻(xiàn)[10]使用分析集群狀態(tài)和機(jī)器狀態(tài)的兩層深度強(qiáng)化學(xué)習(xí)模型來(lái)共同完成對(duì)集群資源和能耗的管理工作。這些應(yīng)用都是將現(xiàn)實(shí)問(wèn)題轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)問(wèn)題,通過(guò)訓(xùn)練智能體(agent)以及定義符合領(lǐng)域知識(shí)的環(huán)境反饋,進(jìn)行動(dòng)態(tài)靈活的學(xué)習(xí)。
為了解決CDN資源調(diào)度中存在的復(fù)雜規(guī)則問(wèn)題,同時(shí)綜合考慮服務(wù)質(zhì)量和成本,本文擬結(jié)合強(qiáng)化學(xué)習(xí)的優(yōu)勢(shì),對(duì)CDN資源調(diào)度問(wèn)題進(jìn)行重新定義,提出一種基于深度強(qiáng)化學(xué)習(xí)的CDN資源調(diào)度系統(tǒng)設(shè)計(jì)方法,以避免人為指定調(diào)度規(guī)則帶來(lái)的不準(zhǔn)確、維護(hù)困難以及成本波動(dòng)等問(wèn)題。
本文提出的基于深度強(qiáng)化學(xué)習(xí)的流量調(diào)度系統(tǒng)的設(shè)計(jì)內(nèi)容,主要包括調(diào)度的智能告警觸發(fā)模塊、綜合質(zhì)量和成本的調(diào)度評(píng)估模塊、強(qiáng)化學(xué)習(xí)模塊。其工作原理主要為:1)采集節(jié)點(diǎn)和服務(wù)器相關(guān)指標(biāo)以及故障數(shù)據(jù),構(gòu)建基于馬爾可夫模型的智能報(bào)警網(wǎng)絡(luò),產(chǎn)生流量調(diào)度的增量帶寬需求;2)對(duì)節(jié)點(diǎn)和服務(wù)器的帶寬情況、服務(wù)能力、用戶覆蓋情況、響應(yīng)時(shí)間等進(jìn)行綜合考慮,建立質(zhì)量評(píng)估模型(強(qiáng)化學(xué)習(xí)環(huán)境的獎(jiǎng)勵(lì)函數(shù)的組成部分);3)對(duì)節(jié)點(diǎn)和服務(wù)器的計(jì)費(fèi)類型、計(jì)費(fèi)系數(shù)等進(jìn)行綜合考慮,建立成本評(píng)估模型(強(qiáng)化學(xué)習(xí)環(huán)境的獎(jiǎng)勵(lì)函數(shù)的組成部分);4)針對(duì)增量帶寬需求,結(jié)合質(zhì)量和成本評(píng)估獎(jiǎng)勵(lì)函數(shù),在線上受限環(huán)境(model-free)或者虛擬環(huán)境(model-base)中進(jìn)行迭代學(xué)習(xí),建立深度強(qiáng)化學(xué)習(xí)模型;5)在全網(wǎng)環(huán)境部署模型后,根據(jù)調(diào)度產(chǎn)生的數(shù)據(jù)不斷進(jìn)行在線學(xué)習(xí),完善調(diào)度系統(tǒng)。
建立故障報(bào)警網(wǎng)絡(luò)是為了能及時(shí)發(fā)現(xiàn)出現(xiàn)服務(wù)質(zhì)量的節(jié)點(diǎn)或服務(wù)器,觸發(fā)流量調(diào)度。本研究通過(guò)采集近期故障報(bào)警歷史數(shù)據(jù),建立基于馬爾科夫鏈的異常檢測(cè)算法,進(jìn)行智能告警。主要有:1)采集故障報(bào)警歷史數(shù)據(jù)。歷史數(shù)據(jù)指因監(jiān)控服務(wù)器而產(chǎn)生的從底層機(jī)器指標(biāo)(CPU、請(qǐng)求數(shù)、響應(yīng)時(shí)間)到高層機(jī)器指標(biāo)(客戶投訴)報(bào)警的時(shí)間序列。2)對(duì)故障報(bào)警歷史數(shù)據(jù)進(jìn)行離散化,設(shè)立低、中、高三個(gè)告警級(jí)別,從而建立不同告警級(jí)別前后相連的馬爾科夫鏈。3)基于報(bào)警馬爾可夫鏈,建立故障報(bào)警網(wǎng)絡(luò)。當(dāng)發(fā)生低級(jí)別機(jī)器指標(biāo)報(bào)警時(shí),根據(jù)網(wǎng)絡(luò)內(nèi)各個(gè)報(bào)警級(jí)別間的轉(zhuǎn)化關(guān)系及概率,預(yù)測(cè)高級(jí)別報(bào)警產(chǎn)生的概率,若概率較高,則會(huì)以較大概率觸發(fā)調(diào)度。
在基于強(qiáng)化學(xué)習(xí)的調(diào)度系統(tǒng)中,當(dāng)調(diào)度系統(tǒng)生成一個(gè)動(dòng)作時(shí),需要環(huán)境給出獎(jiǎng)勵(lì)來(lái)指導(dǎo)整個(gè)學(xué)習(xí)過(guò)程。本研究為強(qiáng)化學(xué)習(xí)提供服務(wù)質(zhì)量的獎(jiǎng)勵(lì)函數(shù)。當(dāng)一個(gè)帶寬增量需求提出時(shí),雖然機(jī)器的承載帶寬可承載,但是由于業(yè)務(wù)特性不同,對(duì)機(jī)器的CPU、內(nèi)存等要求是不同的,若不加以區(qū)分就會(huì)造成機(jī)器資源耗竭,影響服務(wù)質(zhì)量。因此,本研究提出基于Stacking模型的服務(wù)質(zhì)量評(píng)估模塊,用來(lái)預(yù)測(cè)加量后機(jī)器資源的CPU使用率,并以此作為機(jī)器負(fù)載的判斷標(biāo)準(zhǔn)。過(guò)程步驟如下:
1)采集訓(xùn)練數(shù)據(jù):采集線上機(jī)器資源的業(yè)務(wù)屬性(帶寬量、http請(qǐng)求數(shù))和機(jī)器屬性(內(nèi)存大小、磁盤(pán)類型、CPU核數(shù)、CPU主頻大小)作為輸入特征,采集機(jī)器資源的多核CPU實(shí)時(shí)使用率均值為預(yù)測(cè)值,同時(shí)統(tǒng)計(jì)不同業(yè)務(wù)特征每1 Mibit/s帶寬對(duì)應(yīng)增加的http請(qǐng)求。
2)數(shù)據(jù)集劃分:將歷史n天數(shù)據(jù)作為訓(xùn)練集,第n+1天數(shù)據(jù)作為測(cè)試集,并采用滑動(dòng)窗口方式在時(shí)間軸上將數(shù)據(jù)集不斷劃分。
3)基模型訓(xùn)練:先使用Xgboost、RandomForest、Lightgbm算法作為基模型,采用K折交叉驗(yàn)證方式對(duì)每種模型進(jìn)行訓(xùn)練,然后每種基模型訓(xùn)練后會(huì)得到K個(gè)子模型以及對(duì)訓(xùn)練集樣本的CPU使用率預(yù)測(cè)結(jié)果,再保存每種基模型的各個(gè)子模型。
4)模型融合:用K-NearestNeighbor(KNN)進(jìn)行模型融合,將步驟3)中每種基模型下的子模型對(duì)應(yīng)訓(xùn)練集的CPU使用率預(yù)測(cè)結(jié)果作為KNN模型的輸入特征,將訓(xùn)練集真實(shí)CPU使用率作為KNN模型的輸出,設(shè)置訓(xùn)練模型近鄰個(gè)數(shù)為5(見(jiàn)圖1左邊部分)。
5)預(yù)測(cè)階段:假設(shè)要給機(jī)器資源加量500 Mibit/s帶寬量,實(shí)時(shí)采集當(dāng)前機(jī)器的業(yè)務(wù)屬性(帶寬量、http請(qǐng)求數(shù))和機(jī)器屬性(內(nèi)存大小、磁盤(pán)類型、CPU核數(shù)、CPU主頻大小),在此基礎(chǔ)上將增量的500 Mibit/s按照統(tǒng)計(jì)系統(tǒng)換算成http請(qǐng)求數(shù)加到當(dāng)前值中,帶寬量也加500 Mibit/s,訓(xùn)練好的模型對(duì)增量后的特征進(jìn)行預(yù)測(cè),得到CPU使用率,如圖1所示。
本文所要解決的CDN資源調(diào)度問(wèn)題為服務(wù)的增量需求問(wèn)題。當(dāng)客戶請(qǐng)求訪問(wèn)增加,導(dǎo)致當(dāng)前服務(wù)的機(jī)器資源負(fù)載增加,出現(xiàn)服務(wù)響應(yīng)時(shí)間變長(zhǎng),服務(wù)質(zhì)量降低,此時(shí)需要為當(dāng)前的客戶請(qǐng)求增加額外的機(jī)器資源。其調(diào)度結(jié)構(gòu)如圖2所示。其中:增量需求包含帶寬增量(如需要增加300 Mibit/s)和地理屬性(如福建)兩個(gè)重要屬性;服務(wù)器資源是有額定帶寬上限的機(jī)器資源,可用資源池為機(jī)器剩余的可用帶寬,不同的機(jī)器資源有不同的價(jià)格系數(shù),代表了機(jī)器的成本因素;調(diào)度策略為強(qiáng)化學(xué)習(xí)的智能體(agent)結(jié)構(gòu),調(diào)度策略的目標(biāo)是既要滿足帶寬增量的要求,又要兼顧服務(wù)質(zhì)量和成本的均衡。
1.4.1 問(wèn)題建模
與傳統(tǒng)的機(jī)器學(xué)習(xí)相比,強(qiáng)化學(xué)習(xí)更注重與環(huán)境的交互,通過(guò)不斷與環(huán)境交互獲得獎(jiǎng)勵(lì)學(xué)習(xí),以此得到最佳的動(dòng)作(如圖3所示)。
本文將CDN增量需求的調(diào)度問(wèn)題轉(zhuǎn)化為基于有限的馬爾科夫決策過(guò)程。這種過(guò)程可以用一個(gè)五元組表示(S,A,Pa(st,st+1),Ra(st,st+1),γ)。其中:S為狀態(tài)集合;A是動(dòng)作集合;Pa(st,st+1)為在時(shí)刻t的狀態(tài)st經(jīng)過(guò)執(zhí)行動(dòng)作a可以在t+1時(shí)刻轉(zhuǎn)換到狀態(tài)st+1的轉(zhuǎn)換概率;Ra(st,st+1)為執(zhí)行動(dòng)作a所產(chǎn)生的獎(jiǎng)勵(lì)值;γ為折扣因子,值處于[0,1]區(qū)間,用來(lái)表示獎(jiǎng)勵(lì)值對(duì)累積獎(jiǎng)勵(lì)值的影響權(quán)重。對(duì)于本文要解決的CDN增量需求的調(diào)度問(wèn)題,動(dòng)作A為將可用資源池中服務(wù)器資源分配給某個(gè)增量需求;狀態(tài)S為分配后增量需求滿足情況和資源的剩余情況;而獎(jiǎng)勵(lì)R為分配后CDN服務(wù)產(chǎn)生的服務(wù)質(zhì)量和成本。本文設(shè)計(jì)的強(qiáng)化學(xué)習(xí)的目標(biāo)就是學(xué)習(xí)最佳的策略(h),能使整個(gè)任務(wù)過(guò)程的累積獎(jiǎng)勵(lì)值最大。
本文采用Q學(xué)習(xí)方法中的動(dòng)作評(píng)價(jià)函數(shù)Q(s,a)來(lái)描述在狀態(tài)s時(shí)agent選擇動(dòng)作a后所得到的最大累積獎(jiǎng)勵(lì)。在agent訓(xùn)練過(guò)程中,總是選擇Q最大值的動(dòng)作:
Q(st,at)=r(st,at)+γmaxQ(st+1,at+1)。
1.4.2 策略設(shè)計(jì)
本文采用基于卷積網(wǎng)絡(luò)的DQN(deep Q-network)[11]算法來(lái)訓(xùn)練agent智能體。DQN算法使用參數(shù)為θ的深度卷積神經(jīng)網(wǎng)絡(luò)作為動(dòng)作值函數(shù)的網(wǎng)絡(luò)模型,用模型Q(s,a,θ)來(lái)模擬最佳Q(s,a)。在訓(xùn)練過(guò)程中,該網(wǎng)絡(luò)模型生成每個(gè)動(dòng)作的Q值,采用遞增的ε-greedy策略來(lái)選擇動(dòng)作,生成一系列的狀態(tài)、動(dòng)作和獎(jiǎng)勵(lì)值。DQN訓(xùn)練模型如圖4所示。
DQN采用均方誤差作為深度網(wǎng)絡(luò)的損失函數(shù),公式為L(zhǎng)i(θi)=E[(r+γmaxa′Q(s′,a′;θi)-Q(s,a;θi))2]。其中:γ為折扣因子;θi為第i次迭代的網(wǎng)絡(luò)參數(shù);s′,a′為下一個(gè)狀態(tài)和動(dòng)作。
DQN采用mini-batch方式的隨機(jī)下降法來(lái)實(shí)現(xiàn)對(duì)目標(biāo)損失函數(shù)的優(yōu)化。每產(chǎn)生一個(gè)動(dòng)作a和環(huán)境交互后,神經(jīng)網(wǎng)絡(luò)都會(huì)進(jìn)行一次迭代學(xué)習(xí),同時(shí)更新參數(shù),直到收斂。
1.4.3 狀態(tài)空間
策略中狀態(tài)空間包含可用的機(jī)器資源池和增量帶寬需求。由問(wèn)題定義可知,資源池和增量需求都是以數(shù)值屬性帶寬量(如500 Mibit/s)表示,這樣動(dòng)作設(shè)計(jì)(分配資源)時(shí)只能整個(gè)分配或者不分配,使資源分配方式受限。所以在狀態(tài)空間設(shè)計(jì)時(shí),需將資源和需求量拆分成更小的單元(如100 Mibit/s)。如圖5所示,左邊為5個(gè)帶寬需求,有顏色的部分代表最小單元帶寬,第一個(gè)需求為增強(qiáng)500 Mibit/s;右邊為當(dāng)前資源池中每臺(tái)機(jī)器可用帶寬資源,同樣有顏色的表示最小帶寬單元,第一個(gè)帶寬資源為700 Mibit/s。將有顏色的部分用1表示,空白的地方用0表示,就可以將資源狀態(tài)轉(zhuǎn)換為圖像矩陣的形式,作為DQN深度卷積網(wǎng)絡(luò)的輸入,從而提取重要特征。由于DQN神經(jīng)網(wǎng)絡(luò)需要保持輸入的固定大小,狀態(tài)空間設(shè)計(jì)時(shí),設(shè)定固定M個(gè)需求,而對(duì)于剩余的需求則可以放在等待隊(duì)列。
1.4.4 動(dòng)作空間
策略中的動(dòng)作空間為將資源分配給帶寬需求的動(dòng)作集合。設(shè)策略中包括M個(gè)帶寬需求,N個(gè)機(jī)器資源,則總的狀態(tài)空間數(shù)量為N×M+1個(gè),{0,1,2,3,…,N×M-1,φ},φ表示空動(dòng)作,不做分配。在每次迭代時(shí),調(diào)度器將資源分配給合適的帶寬需求,并更新系統(tǒng)中的資源狀態(tài),直到所有的帶寬需求都分配完或者所有的資源都分配完才中止迭代。
1.4.5 獎(jiǎng)勵(lì)函數(shù)
本策略中針對(duì)CDN資源調(diào)度問(wèn)題,兼顧質(zhì)量和成本的目標(biāo),設(shè)計(jì)了一個(gè)基于模型的評(píng)估函數(shù)。當(dāng)一個(gè)機(jī)器資源分配給一個(gè)帶寬需求時(shí),除了要滿足需求的帶寬,還要使機(jī)器資源在地理位置上盡可能相同,這樣才能保證就近訪問(wèn),提高響應(yīng)時(shí)間。另外,還需要考慮加量后機(jī)器資源是否會(huì)出現(xiàn)高機(jī)器負(fù)載。雖然機(jī)器資源帶寬是允許承接設(shè)定的帶寬量,但由于業(yè)務(wù)特性不同,使用CPU資源不同,即使同樣的帶寬量產(chǎn)生的負(fù)載也會(huì)不同,如網(wǎng)頁(yè)和流媒體的CPU資源使用率就完全不同。服務(wù)成本要求盡可能選擇價(jià)格系數(shù)小的機(jī)器資源。
因此,策略中的獎(jiǎng)勵(lì)函數(shù)可以表示成:r=(m×g×l)/p。其中:m表示滿足帶寬的比例,可以在分配后計(jì)算;g表示地理位置的匹配程度,可以根據(jù)帶寬需求的地理屬性和機(jī)器資源的地理屬性匹配情況,按照不同層級(jí)設(shè)定不同的比例(如同城為1,同省為0.8,同大區(qū)為0.5,跨大區(qū)為-0.5,跨國(guó)為-1);l表示加量后負(fù)載情況;p為價(jià)格系數(shù),是機(jī)器資源的固有屬性。
對(duì)于如何判斷加量后會(huì)不會(huì)產(chǎn)生機(jī)器負(fù)載問(wèn)題,本策略先采用Stacking質(zhì)量評(píng)估模型進(jìn)行預(yù)測(cè),得到增量帶寬后的CPU使用率;再根據(jù)CPU使用率的不同等級(jí)設(shè)置不同的分?jǐn)?shù),如>90%為-1,[80%,90%]為0.2,[50%,80%]為0.6,<50%為1。
1.5.1 訓(xùn)練參數(shù)
在DQN網(wǎng)絡(luò)訓(xùn)練中,為使agent 在訓(xùn)練前期對(duì)最優(yōu)策略的探索力度增加,采用遞增的ε-greedy策略來(lái)選擇動(dòng)作。設(shè)ε的初始值為0.5,最大值為0.9,增幅為0.001;折扣因子為0.95;經(jīng)驗(yàn)池規(guī)模為30 000;迭代次數(shù)為1000;采用Mini-batch 訓(xùn)練方法,設(shè)batch-size為32;采用隨機(jī)梯度下降方法更新Q網(wǎng)絡(luò)參數(shù),優(yōu)化器為Adam,學(xué)習(xí)率為0.001。每C個(gè)訓(xùn)練回合后將當(dāng)前Q網(wǎng)絡(luò)的參數(shù)值復(fù)制給目標(biāo)Q′網(wǎng)絡(luò),并更新一次目標(biāo)網(wǎng)絡(luò)參數(shù)。
1.5.2 受限環(huán)境調(diào)度系統(tǒng)
CDN是一個(gè)復(fù)雜的內(nèi)容分發(fā)網(wǎng)絡(luò),在訓(xùn)練本文提出的基于強(qiáng)化學(xué)習(xí)的CDN流量調(diào)度系統(tǒng)時(shí),需要在不影響現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)上構(gòu)造一個(gè)可行的環(huán)境。受限環(huán)境(model-free)調(diào)度系統(tǒng)是指系統(tǒng)的學(xué)習(xí)過(guò)程、調(diào)度過(guò)程都是在真實(shí)的環(huán)境下進(jìn)行,同樣,接收到的結(jié)果反饋也來(lái)自于真實(shí)的環(huán)境。model-free調(diào)度系統(tǒng)結(jié)構(gòu)圖見(jiàn)圖6。
本文構(gòu)建CDN受限環(huán)境的目的在于從CDN全網(wǎng)環(huán)境中規(guī)劃出一個(gè)小范圍的環(huán)境,使得深度強(qiáng)化學(xué)習(xí)模型在訓(xùn)練和驗(yàn)證期間的一系列試錯(cuò)行為產(chǎn)生的負(fù)面影響,被控制在一個(gè)較小的范圍,避免給全網(wǎng)的服務(wù)質(zhì)量和成本帶來(lái)波動(dòng)。該受限環(huán)境可以根據(jù)物理位置、運(yùn)營(yíng)商或者不同等級(jí)的用戶等進(jìn)行劃分。
本文提出的設(shè)計(jì)方法分成CDN受限環(huán)境下的訓(xùn)練階段和CDN全網(wǎng)環(huán)境下的應(yīng)用階段。
在訓(xùn)練階段,若出現(xiàn)觸發(fā)調(diào)度的情況,則設(shè)置CDN受限環(huán)境下資源配置情況為模型輸入狀態(tài),模型會(huì)基于當(dāng)前網(wǎng)絡(luò)中的參數(shù),輸出替代資源的挑選概率或者分?jǐn)?shù),并根據(jù)一定策略選擇替代資源,然后評(píng)估系統(tǒng)對(duì)替代資源的服務(wù)情況進(jìn)行評(píng)估并反饋給模型,模型接收到反饋信號(hào)后,根據(jù)反向傳播算法,調(diào)整網(wǎng)絡(luò)參數(shù),使后續(xù)調(diào)度能夠朝著全局最優(yōu)的方向進(jìn)行。
當(dāng)訓(xùn)練達(dá)到一定迭代次數(shù)或者結(jié)束條件時(shí),會(huì)生成性能較好的調(diào)度模型。該調(diào)度模型會(huì)應(yīng)用到CDN全網(wǎng)環(huán)境上,在后續(xù)的運(yùn)行過(guò)程中仍然持續(xù)進(jìn)行在線學(xué)習(xí)。若發(fā)生觸發(fā)調(diào)度的情況時(shí),模型會(huì)根據(jù)學(xué)習(xí)的結(jié)果選擇可能對(duì)未來(lái)產(chǎn)生正面影響的替代資源進(jìn)行服務(wù),同時(shí)評(píng)估系統(tǒng)會(huì)對(duì)替代資源的選擇進(jìn)行評(píng)估,調(diào)度模型根據(jù)反饋信號(hào)進(jìn)行參數(shù)調(diào)整。
1.5.3 虛擬環(huán)境調(diào)度系統(tǒng)
虛擬環(huán)境(model-based)調(diào)度系統(tǒng)是指系統(tǒng)的學(xué)習(xí)過(guò)程是在虛擬環(huán)境中完成,而調(diào)度過(guò)程是在真實(shí)環(huán)境中進(jìn)行。虛擬環(huán)境調(diào)度系統(tǒng)結(jié)構(gòu)圖如圖7所示。
CDN虛擬環(huán)境是指根據(jù)線上CDN全網(wǎng)環(huán)境虛擬出的一個(gè)環(huán)境。該環(huán)境支持調(diào)度系統(tǒng)與其進(jìn)行交互,且支持根據(jù)調(diào)度結(jié)果,模擬線上CDN全網(wǎng)環(huán)境對(duì)其的響應(yīng)。其評(píng)估系統(tǒng)的工作方式和原理與受限環(huán)境調(diào)度系統(tǒng)一樣,但由于是虛擬環(huán)境,調(diào)度觸發(fā)條件中的故障報(bào)警功能可以用簡(jiǎn)單的元胞自動(dòng)機(jī)進(jìn)行模擬。
基于CDN虛擬全網(wǎng)環(huán)境來(lái)訓(xùn)練模型有兩點(diǎn)優(yōu)勢(shì):
1)線上真實(shí)環(huán)境需要等待調(diào)度觸發(fā)條件出現(xiàn),才能進(jìn)行調(diào)度,評(píng)估調(diào)度結(jié)果,累積訓(xùn)練數(shù)據(jù)。在這樣的情況下讓模型的性能收斂,可能需要一個(gè)比較長(zhǎng)的時(shí)間周期。如果是在虛擬環(huán)境中,可以通過(guò)元胞自動(dòng)機(jī)進(jìn)行觸發(fā)條件模擬,相較于真實(shí)環(huán)境下能有千倍甚至萬(wàn)倍的效率對(duì)模型進(jìn)行訓(xùn)練,大大縮短訓(xùn)練時(shí)間周期。
2)CDN受限環(huán)境是為了減小模型在訓(xùn)練期間的試錯(cuò)行為對(duì)線上服務(wù)質(zhì)量和成本帶來(lái)的負(fù)面影響,而規(guī)劃出的CDN全網(wǎng)環(huán)境的一個(gè)子集。該子集環(huán)境雖然能夠?qū)⒇?fù)面影響限制在一個(gè)較小的范圍內(nèi),但是卻不能完全消除影響。另外,由于是一個(gè)CDN的子集環(huán)境,在該環(huán)境上產(chǎn)生的用于模型訓(xùn)練的數(shù)據(jù)是一個(gè)局部數(shù)據(jù)集,可能與CDN全網(wǎng)環(huán)境產(chǎn)生的全局?jǐn)?shù)據(jù)集不是來(lái)自同一個(gè)分布,可能會(huì)導(dǎo)致深度強(qiáng)化學(xué)習(xí)模型出現(xiàn)過(guò)擬合現(xiàn)象,而不能很好地泛化到全網(wǎng)環(huán)境。而CDN虛擬環(huán)境則解決了以上兩個(gè)問(wèn)題,一方面,它在虛擬環(huán)境中的任何操作都不會(huì)對(duì)真實(shí)環(huán)境造成影響;另一方面,虛擬環(huán)境是模擬真實(shí)的全局環(huán)境,避免了數(shù)據(jù)層面的局限性。
在阿里云申請(qǐng)了全球10個(gè)機(jī)房節(jié)點(diǎn)資源,20臺(tái)服務(wù)器設(shè)備,對(duì)本文算法進(jìn)行實(shí)驗(yàn)仿真。
首先,訓(xùn)練Stacking質(zhì)量評(píng)估模型。實(shí)驗(yàn)定義ABS(實(shí)際CPU-預(yù)測(cè)CPU)<5表示模型預(yù)測(cè)準(zhǔn)確,模型預(yù)測(cè)精度=模型預(yù)測(cè)準(zhǔn)確數(shù)量/樣本總數(shù)。預(yù)測(cè)結(jié)果顯示,CPU的精度整體可以達(dá)到95%。從在線運(yùn)行結(jié)果(見(jiàn)圖8)可知,21:03實(shí)際帶寬2.57 Gibit/s,預(yù)期加量700 Mibit/s,模型判斷不能加量;21:12實(shí)際帶寬3.15Gibit/s,機(jī)器的健康值為0.7,加量導(dǎo)致機(jī)負(fù)載超負(fù)荷。由實(shí)驗(yàn)可知,質(zhì)量評(píng)估模型能有效評(píng)估加量后的機(jī)器質(zhì)量情況,能夠?yàn)閺?qiáng)化學(xué)習(xí)提供有效的獎(jiǎng)勵(lì)反饋。
圖9顯示了強(qiáng)化學(xué)習(xí)訓(xùn)練過(guò)程不同迭代的獎(jiǎng)勵(lì)值。由圖9可知,隨著迭代的增加,智能體agent完成調(diào)度任務(wù)所獲得的獎(jiǎng)勵(lì)值不斷增長(zhǎng)直至收斂。
在線上部署強(qiáng)化學(xué)習(xí)過(guò)程中,對(duì)比開(kāi)啟強(qiáng)化學(xué)習(xí)調(diào)度前后的效果(見(jiàn)圖10),發(fā)現(xiàn)本算法在不同產(chǎn)品線上不僅能滿足合適的帶寬要求,而且機(jī)器的服務(wù)質(zhì)量也有明顯的提升。
在帶寬調(diào)度上,線上實(shí)驗(yàn)結(jié)果表明強(qiáng)化學(xué)習(xí)模型可以有效地控制節(jié)點(diǎn)跑高。如圖11所示,節(jié)點(diǎn)跑高后1 min內(nèi)開(kāi)始降量。
最后對(duì)比了基于規(guī)則調(diào)度系統(tǒng)和深度強(qiáng)化學(xué)習(xí)調(diào)度系統(tǒng)在不同場(chǎng)景中的調(diào)度耗時(shí)。由表1可見(jiàn),深度強(qiáng)化學(xué)習(xí)調(diào)度系統(tǒng)提升效果明顯。
表1 調(diào)度耗時(shí)對(duì)比圖Fig.1 Time consuming comparison of scheduling