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