本發(fā)明屬于數(shù)據(jù)中心的流量控制領(lǐng)域,具體的說是涉及一種基于深度強(qiáng)化學(xué)習(xí)的數(shù)據(jù)中心自適應(yīng)流量控制方法。
背景技術(shù):
1、當(dāng)前的數(shù)據(jù)中心采用了遠(yuǎn)程直接內(nèi)存訪問技術(shù)(remote?direct?memory?access,rdma)保障數(shù)據(jù)中心的高吞吐和低延遲。rdma允許計(jì)算機(jī)直接訪問遠(yuǎn)程系統(tǒng)的內(nèi)存,而無需通過操作系統(tǒng)的參與,從而顯著提升了數(shù)據(jù)中心網(wǎng)絡(luò)的傳輸性能。rdma傳輸協(xié)議需要依賴無損的網(wǎng)絡(luò)環(huán)境,即數(shù)據(jù)包不會(huì)因?yàn)榫W(wǎng)絡(luò)擁塞而丟失,從而避免數(shù)據(jù)重傳導(dǎo)致的額外傳輸時(shí)延。為了實(shí)現(xiàn)無損網(wǎng)絡(luò),數(shù)據(jù)中心網(wǎng)絡(luò)采用了基于優(yōu)先級(jí)的流量控制(priority-basedflow?control,pfc)技術(shù)。pfc?通過暫停交換機(jī)端口或端口優(yōu)先級(jí)隊(duì)列的數(shù)據(jù)傳輸,避免緩沖溢出,從而保障了數(shù)據(jù)的無損傳輸。具體來說,當(dāng)交換機(jī)隊(duì)列長度超過pfc的暫停閾值時(shí),交換機(jī)會(huì)向其上游交換機(jī)發(fā)送一個(gè)?pfc?暫停幀。上游交換機(jī)收到pfc暫停幀后,暫停數(shù)據(jù)流的傳輸。當(dāng)交換機(jī)隊(duì)列長度低于pfc的恢復(fù)閾值時(shí),會(huì)向上游交換機(jī)發(fā)送pfc恢復(fù)幀。上游交換機(jī)收到pfc恢復(fù)幀后,恢復(fù)數(shù)據(jù)流的傳輸。網(wǎng)絡(luò)中數(shù)據(jù)的傳輸效率與pfc暫停閾值的設(shè)置密切相關(guān)。若pfc暫停閾值較低,會(huì)導(dǎo)致頻繁觸發(fā)數(shù)據(jù)暫停操作,從而影響流量傳輸效率;若pfc暫停閾值過高,會(huì)導(dǎo)致交換機(jī)對(duì)網(wǎng)絡(luò)狀態(tài)反應(yīng)遲鈍,造成嚴(yán)重的隊(duì)列堆積?,F(xiàn)有的流量控制方案仍需人工配置pfc閾值,然而,真實(shí)的網(wǎng)絡(luò)環(huán)境是復(fù)雜多變的,人工配置pfc閾值無法及時(shí)應(yīng)對(duì)新興的網(wǎng)絡(luò)應(yīng)用程序及其突發(fā)性流量,從而導(dǎo)致網(wǎng)絡(luò)性能的下降,人工配置難以及時(shí)適應(yīng)網(wǎng)絡(luò)環(huán)境的頻繁變化,并可能導(dǎo)致閾值配置錯(cuò)誤。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述技術(shù)問題,本發(fā)明提供了一種基于深度強(qiáng)化學(xué)習(xí)的數(shù)據(jù)中心自適應(yīng)流量控制方法,設(shè)計(jì)自適應(yīng)的動(dòng)態(tài)流量控制閾值配置方案,提升網(wǎng)絡(luò)傳輸性能,保障閾值配置的可靠性。
2、為了達(dá)到上述目的,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
3、本發(fā)明是一種基于深度強(qiáng)化學(xué)習(xí)的數(shù)據(jù)中心自適應(yīng)流量控制方法,該自適應(yīng)流量控制實(shí)現(xiàn)具體包括以下步驟:
4、步驟1、選取觸發(fā)流量控制時(shí)發(fā)送暫停幀的閾值作為動(dòng)作空間,選取交換機(jī)收發(fā)數(shù)據(jù)流量、上游交換機(jī)端口暫停時(shí)間作為狀態(tài)空間參數(shù);
5、步驟2、根據(jù)動(dòng)作空間與狀態(tài)空間,確定動(dòng)作執(zhí)行前后網(wǎng)絡(luò)環(huán)境的變化,設(shè)計(jì)有效的獎(jiǎng)勵(lì)函數(shù);
6、步驟?3、設(shè)計(jì)并部署智能體來統(tǒng)一管理交換機(jī)端口隊(duì)列;
7、步驟?4、智能體與交換機(jī)交互,計(jì)算獎(jiǎng)勵(lì),更新網(wǎng)絡(luò),訓(xùn)練優(yōu)化網(wǎng)絡(luò)環(huán)境;
8、步驟5、若訓(xùn)練的交換機(jī)端口閾值在多個(gè)時(shí)間步內(nèi)均沒有產(chǎn)生獎(jiǎng)勵(lì),說明此閾值與當(dāng)前網(wǎng)絡(luò)環(huán)境適配,暫停訓(xùn)練以降低交換機(jī)性能開銷;
9、步驟6、當(dāng)暫停訓(xùn)練的交換機(jī)數(shù)據(jù)累計(jì)超過一定界限時(shí),表征此時(shí)可能觸發(fā)流量控制,因此恢復(fù)對(duì)此端口閾值的訓(xùn)練。
10、本發(fā)明的進(jìn)一步改進(jìn)在于:步驟1中,選取動(dòng)作空間和狀態(tài)空間參數(shù)的過程包括:
11、步驟1.1、根據(jù)流經(jīng)交換機(jī)的流量情況,實(shí)時(shí)計(jì)算交換機(jī)緩沖區(qū)剩余空間:
12、
13、其中,?為總緩沖區(qū)大小,?為總頭部空間,為總保留空間,為共享緩沖區(qū)已使用的字節(jié)數(shù);
14、步驟1.2、根據(jù)交換機(jī)緩沖區(qū)剩余空間,計(jì)算觸發(fā)pfc暫停幀閾值
15、
16、其中,為調(diào)整基于優(yōu)先級(jí)的流量控制(pfc)暫停閾值的一個(gè)移位因子,其取值為;
17、步驟1.3、為了確保吞吐量,需要及時(shí)恢復(fù),所以將pfc恢復(fù)閾值設(shè)置為
18、
19、其中,為最大傳輸單元;
20、步驟1.4、選擇作為動(dòng)態(tài)調(diào)整pfc觸發(fā)敏感性的動(dòng)作,設(shè)置其動(dòng)作空間為[1,2,4,8,16,32,64]。此動(dòng)作空間可根據(jù)交換機(jī)緩沖區(qū)的不同進(jìn)行調(diào)整;
21、步驟1.5、選取一個(gè)時(shí)間步內(nèi)收發(fā)數(shù)據(jù)流量和接收數(shù)據(jù)包數(shù)目作為狀態(tài)參數(shù),收發(fā)數(shù)據(jù)流量反映了端口的流量傳輸情況,接收數(shù)據(jù)包數(shù)目反映了端口的流量密度;選取一個(gè)時(shí)間步內(nèi)上游交換機(jī)暫停時(shí)間作為狀態(tài)參數(shù),用于反映當(dāng)前交換機(jī)pfc觸發(fā)所造成的影響,若無pfc觸發(fā)則此狀態(tài)取值為0。
22、本發(fā)明的進(jìn)一步改進(jìn)在于:步驟2中,所述根據(jù)動(dòng)作空間與狀態(tài)空間,確定動(dòng)作執(zhí)行前后網(wǎng)絡(luò)環(huán)境的變化,設(shè)計(jì)有效獎(jiǎng)勵(lì)函數(shù)的過程包括:
23、步驟2.1、若一次動(dòng)作執(zhí)行后的一個(gè)時(shí)間步內(nèi)的接收數(shù)據(jù)量等于發(fā)送數(shù)據(jù)量或接收數(shù)據(jù)包數(shù)目為0,且沒有pfc觸發(fā),則說明此動(dòng)作對(duì)網(wǎng)絡(luò)沒有影響,設(shè)置總獎(jiǎng)勵(lì)為0,并直接進(jìn)入下一次訓(xùn)練;
24、步驟2.2、設(shè)置接收獎(jiǎng)勵(lì)。當(dāng)接收數(shù)據(jù)包多為大流量或接收數(shù)據(jù)包數(shù)目較少時(shí),可適當(dāng)增大pfc閾值以避免pfc的觸發(fā);當(dāng)接收數(shù)據(jù)包眾多,且多為小流量時(shí),可適當(dāng)減小pfc閾值,令pfc提前觸發(fā)以避免造成更嚴(yán)重的擁塞。上述情況可以通過接收數(shù)據(jù)包平均大小反映,為接收數(shù)據(jù)量,為接收數(shù)據(jù)包數(shù)量,平均數(shù)據(jù)包較大,對(duì)應(yīng)于多為大流量和數(shù)據(jù)包較少的情況;平均數(shù)據(jù)包較小,對(duì)應(yīng)于多為小流量和數(shù)據(jù)包較多的情況。通過對(duì)比動(dòng)作執(zhí)行前后狀態(tài)變化,設(shè)計(jì)接收獎(jiǎng)勵(lì)函數(shù):
25、
26、其中,?和為動(dòng)作執(zhí)行前后數(shù)據(jù)接收量,?和為動(dòng)作執(zhí)行前后接收數(shù)據(jù)包數(shù)量,和為前后兩次動(dòng)作;
27、步驟2.3、設(shè)置暫停獎(jiǎng)勵(lì)。當(dāng)數(shù)據(jù)包眾多時(shí),適當(dāng)延長上游交換機(jī)暫停時(shí)間有利于緩解網(wǎng)絡(luò)擁塞,但暫停時(shí)間過長也會(huì)影響交換機(jī)端口流量傳輸效率,因此,我們用來權(quán)衡此暫停時(shí)長的合理性,并結(jié)合動(dòng)作執(zhí)行前后的變化來反映當(dāng)前動(dòng)作的優(yōu)劣,設(shè)計(jì)暫停獎(jiǎng)勵(lì)函數(shù)如下:
28、
29、其中,?和?為動(dòng)作執(zhí)行前后時(shí)間步內(nèi)暫停持續(xù)時(shí)間,為時(shí)間步內(nèi)暫停持續(xù)時(shí)間;
30、步驟2.4、設(shè)置總獎(jiǎng)勵(lì),為了充分權(quán)衡接收獎(jiǎng)勵(lì)和暫停獎(jiǎng)勵(lì),將總獎(jiǎng)勵(lì)設(shè)置為接收獎(jiǎng)勵(lì)和暫停獎(jiǎng)勵(lì)的加權(quán)函數(shù):
31、
32、其中,和?分別為接收獎(jiǎng)勵(lì)和暫停獎(jiǎng)勵(lì)在總獎(jiǎng)勵(lì)中所占權(quán)重。
33、本發(fā)明的進(jìn)一步改進(jìn)在于:步驟3中,所述設(shè)計(jì)并部署能夠在交換機(jī)上通過執(zhí)行動(dòng)作來獲取狀態(tài)并計(jì)算獎(jiǎng)勵(lì)加以學(xué)習(xí)幫助做出最佳決策的智能體來統(tǒng)一管理交換機(jī)端口隊(duì)列的過程包括:
34、步驟3.1、選取深度學(xué)習(xí)算法訓(xùn)練智能體,并通過智能體自適應(yīng)調(diào)整pfc暫停閾值;
35、步驟3.2、初始化一個(gè)深度神經(jīng)網(wǎng)絡(luò)作為網(wǎng)絡(luò),用于近似值函數(shù),在持續(xù)的更新和學(xué)習(xí)過程中,利用q值函數(shù)評(píng)估當(dāng)前動(dòng)作的價(jià)值,并指導(dǎo)動(dòng)作的選擇,以幫助智能體在調(diào)整交換機(jī)端口pfc暫停閾值時(shí)作出最優(yōu)決策;
36、步驟3.3、初始化一個(gè)目標(biāo)網(wǎng)絡(luò),它的結(jié)構(gòu)與網(wǎng)絡(luò)相同,但參數(shù)獨(dú)立更新,用于計(jì)算目標(biāo)q值;
37、步驟3.4、創(chuàng)建一個(gè)經(jīng)驗(yàn)回放緩沖區(qū),存儲(chǔ)智能體與交換機(jī)交互過程中獲取的經(jīng)驗(yàn)即狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)和下一個(gè)狀態(tài);
38、步驟3.5、設(shè)置學(xué)習(xí)率、折扣因子、用于策略的隨機(jī)概率epsilon、批量大小、更新頻率的超參數(shù)。
39、本發(fā)明的進(jìn)一步改進(jìn)在于:步驟4中,智能體與交換機(jī)交互,計(jì)算獎(jiǎng)勵(lì),更新網(wǎng)絡(luò),訓(xùn)練優(yōu)化網(wǎng)絡(luò)環(huán)境的過程包括:
40、步驟4.1、根據(jù)策略選擇動(dòng)作:以概率選擇隨機(jī)動(dòng)作,探索新狀態(tài),以概率選擇當(dāng)前網(wǎng)絡(luò)輸出中值最大的動(dòng)作;
41、步驟4.2、智能體確定動(dòng)作并將其部署到交換機(jī)隊(duì)列,調(diào)整基于優(yōu)先級(jí)的流量控制觸發(fā)的敏感性,接著從交換機(jī)獲取下一時(shí)間步狀態(tài),結(jié)合動(dòng)作和狀態(tài)計(jì)算獎(jiǎng)勵(lì),并將當(dāng)前狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)和下一個(gè)狀態(tài)存儲(chǔ)到經(jīng)驗(yàn)回放緩沖區(qū)中;
42、步驟4.3、重復(fù)步驟4.1和步驟4.2,當(dāng)經(jīng)驗(yàn)回放緩沖區(qū)中的經(jīng)驗(yàn)累計(jì)到設(shè)定數(shù)目后,從經(jīng)驗(yàn)回放緩沖區(qū)中采樣一個(gè)批量的經(jīng)驗(yàn),用于訓(xùn)練網(wǎng)絡(luò);
43、步驟4.4、使用目標(biāo)網(wǎng)絡(luò)來計(jì)算目標(biāo)值,通過最小化損失函數(shù)來更新網(wǎng)絡(luò)的參數(shù),損失函數(shù)為目標(biāo)值與當(dāng)前值的均方誤差:
44、
45、每隔一定步數(shù),將網(wǎng)絡(luò)的參數(shù)復(fù)制到目標(biāo)網(wǎng)絡(luò)中,保持目標(biāo)網(wǎng)絡(luò)的穩(wěn)定性,其中,?為目標(biāo)值,為期望值,表示對(duì)所有采樣的狀態(tài)、動(dòng)作對(duì)的平均值,為當(dāng)前時(shí)間步狀態(tài),為當(dāng)前時(shí)間步動(dòng)作,為神經(jīng)網(wǎng)絡(luò)的權(quán)重,為當(dāng)前網(wǎng)絡(luò)的估計(jì)值;
46、步驟4.5、隨著訓(xùn)練的進(jìn)行,將逐漸衰減,以減少隨機(jī)動(dòng)作的選擇比例,逐步使智能體從探索過渡到利用階段。
47、本發(fā)明的進(jìn)一步改進(jìn)在于:步驟5中,所述滿足特定條件時(shí)暫停訓(xùn)練以降低交換機(jī)性能開銷的過程包括:
48、步驟5.1、設(shè)置一個(gè)計(jì)數(shù)器用于跟蹤連續(xù)獎(jiǎng)勵(lì)為0的回合數(shù),以此判斷當(dāng)前閾值對(duì)交換機(jī)端口的流量傳輸是否存在影響;
49、步驟5.2、若連續(xù)多個(gè)回合例如3-5個(gè)回合內(nèi)獎(jiǎng)勵(lì)為0,則說明當(dāng)前動(dòng)作不影響交換機(jī)端口流量傳輸,將智能體標(biāo)記為空閑狀態(tài),暫停對(duì)此交換機(jī)端口的訓(xùn)練。
50、進(jìn)一步地,步驟6中,所述當(dāng)可能觸發(fā)流量控制時(shí)恢復(fù)對(duì)端口閾值的訓(xùn)練的過程包括:
51、步驟6.1、在空閑狀態(tài)下,會(huì)在每個(gè)時(shí)間步檢查共享緩沖區(qū)大小是否超過當(dāng)前閾值的1/2,可根據(jù)網(wǎng)絡(luò)帶寬進(jìn)行調(diào)整;
52、步驟6.2、若共享緩沖區(qū)大小超過當(dāng)前閾值的1/2,則恢復(fù)對(duì)此端口的訓(xùn)練。
53、本發(fā)明達(dá)到的有益效果為:本發(fā)明將流量控制與深度強(qiáng)化學(xué)習(xí)相結(jié)合,可以及時(shí)應(yīng)對(duì)網(wǎng)絡(luò)環(huán)境的變化,根據(jù)網(wǎng)絡(luò)環(huán)境自適應(yīng)調(diào)節(jié)pfc暫停閾值,以降低流完成時(shí)間,從而避免因此可能產(chǎn)生的隊(duì)頭阻塞等問題,同時(shí)也避免了由于人工修改pfc閾值導(dǎo)致的配置錯(cuò)誤等問題,從而保障數(shù)據(jù)中心網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)母咝约胺€(wěn)定性。本發(fā)明是基于深度強(qiáng)化學(xué)習(xí)的自適應(yīng)流量控制方法,具備收斂快、易部署、適配性強(qiáng)等優(yōu)點(diǎn)。所以自適應(yīng)流量控制方法更適用于一直處于變化狀態(tài)的數(shù)據(jù)中心網(wǎng)絡(luò)。與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):
54、(1)本發(fā)明可以實(shí)現(xiàn)對(duì)pfc暫停閾值觸發(fā)的敏感性進(jìn)行更靈活的調(diào)控,以適應(yīng)復(fù)雜多變的網(wǎng)絡(luò)環(huán)境。
55、(2)本發(fā)明在可編程交換機(jī)中結(jié)合了深度強(qiáng)化學(xué)習(xí),可以不需要任何設(shè)備級(jí)別的修改,在無需人為干預(yù)的情況下,根據(jù)實(shí)時(shí)的網(wǎng)絡(luò)負(fù)載情況,就能夠自動(dòng)地適應(yīng)網(wǎng)絡(luò)交通的動(dòng)態(tài)變化,簡化了數(shù)據(jù)中心的網(wǎng)絡(luò)操作。
56、(3)在線訓(xùn)練過程中,本發(fā)明收斂速度快,只需要極短的訓(xùn)練時(shí)間就可以迅速適應(yīng)當(dāng)前網(wǎng)絡(luò)的流量狀況,以便應(yīng)對(duì)各種突發(fā)流量狀況。
57、(4)本發(fā)明采用分布式代理部署,并控制智能體的暫停與恢復(fù),緩解訓(xùn)練數(shù)據(jù)過多給交換機(jī)帶來的巨大壓力。