[發明專利]一種數據中心中RDMA應用傳輸參數自適應選擇方法有效
| 申請號: | 201910008291.1 | 申請日: | 2019-01-04 |
| 公開(公告)號: | CN109831321B | 公開(公告)日: | 2021-02-09 |
| 發明(設計)人: | 沈典;東方;羅軍舟;王凱 | 申請(專利權)人: | 東南大學 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L29/08;H04L29/06 |
| 代理公司: | 南京經緯專利商標代理有限公司 32200 | 代理人: | 許方 |
| 地址: | 210000 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據中心 rdma 應用 傳輸 參數 自適應 選擇 方法 | ||
1.一種數據中心中RDMA應用傳輸參數自適應選擇方法,其特征在于,該方法包括以下步驟:
(1)分析和采集RDMA傳輸參數選擇過程中涉及的應用特性以及服務器資源狀態;
(2)構建基于應用特性和服務器資源狀態的RDMA傳輸參數組合選擇決策樹模型;
(3)將決策樹模型封裝在通用的API中,RDMA應用在使用所述API傳輸時,根據獲取RDMA應用自身攜帶的應用特性和服務器資源狀態搜索決策樹模型,選擇最佳的RDMA傳輸參數組合;
步驟(1)中,分析和采集RDMA傳輸參數選擇過程中涉及的應用特性以及服務器資源狀態,方法如下:
(101)RDMA傳輸參數選擇具體包括:(1)RDMA建立連接時的QP類型Ctype:ReliableConnection,記為RC、Unreliable Connection,記為UC以及Unreliable Datagram記為UD;(2)verbs的選擇Verbs:WRITE、READ、SEND/RECV;(3)RDMA數據傳輸結束時CQE的poll策略Polltype:event-triggered polling,記為epoll、busy polling記為busy;(4)inline模式傳輸IsInline:inline、no inline;(5)signal模式傳輸IsSignal:signal、unsignal;
(102)RDMA傳輸參數選擇過程中涉及的應用特性包括:(1)應用通信框架CF:一對一通信,記為1→1、一對多通信,記為1→n;(2)應用數據包大小Msize:以B為單位;(3)應用數據包類型Mtype:控制信息,記為control;數據信息,記為data;
(103)RDMA傳輸參數選擇過程中涉及的服務器資源狀態包括:(1)當前應用所在發送端服務器CPU資源使用情況CPUl,以百分比為單位;(2)當前應用所在接受端服務器CPU資源使用情況CPUr,以百分比為單位;
步驟(2)中,基于應用特性以及服務器資源狀態的RDMA傳輸參數組合如下:(201)分析RDMA傳輸參數性質和特點,確定有效傳輸參數組合,通過分析和測試RDMA硬件限制和組合的兼容性,得到有效傳輸參數組合21種,包括:(1)RC+write+busy+inline+unsignal、(2)RC+write+busy+inline+signal、(3)RC+write+busy+no inline+unsignal、(4)RC+write+busy+no inline+signal、(5)RC+write+epoll+no inline+unsignal、(6)RC+write+epoll+no inline+signal、(7)RC+write+epoll+inline+unsignal、(8)RC+read+epoll+no inline+signal、(9)RC+read+epoll+no inline+unsignal、(10)RC+send/recv+busy+inline+signal、(11)RC+send/recv+busy+no inline+signal、(12)RC+send/recv+epoll+inline+signal、(13)RC+send/recv+epoll +no inline+signal、(14)UD+send/recv+busy+inline+unsignal、(15)UD+send/recv+busy+inline+signal、(16)UD+send/recv+busy+no inline+unsignal、(17)UD+send/recv+busy+no inline+signal、(18)UD+send/recv+epoll+inline+unsignal、(19)UD+send/recv+epoll+inline+signal、(20)UD+send/recv+epoll+noinline+unsignal、(21)UD+send/recv+epoll+no inline+signal;
步驟(2)中,決策樹模型構建如下:
(20201)設RDMA通信過程中所涉及的與應用性能相關的數有Np個,分別記為P1,P2,...,PNp,各個參數提供的選擇數量分別為NP1,NP2,...,NP3,根據步驟(101),設置:
Np=5
P1:Ctype,P2:Verbs,P3:Polltype,P4:IsInline,P5:IsSignal
P1={RC,UD},P2={write,read,send/recv}
P3={busy,epoll},P4={inline,noninline},P5={signal,unsignal}
根據步驟(201),得到P1,P2,P3,P4,P5的有效排列組合21組,記為Vpi,i=1,2,...,21;
(20202)根據步驟(102)和步驟(103)的分析結果,應用特性和服務器資源狀態一共有5個,分別記為F1,F2,...,F5,其中,CPUl>50%為enough,否則為not enough,CPUr>60%為enough,否則為not enough,設置:
F1:CF,F2:Msize,F3:Mtype,F4:CPUl,F5:CPUr
F1={1→1,1→n},F2=(0,+∞),F3={control,data}
F4={enough,not enough},F5={enough,not enough}
(20203)構建從應用特性以及服務器資源狀態組合Vf到RDMA傳輸參數組合Vp選擇的決策樹模型DT(Vf),自適應地給不同的應用選擇最佳的RDMA傳輸參數組合,其中:
Vf=(F1,F2,F3,F4,F5)
Vp=DT(Vf)
測試不同Vp中的21種取值和其所對應的Vf,組合構建樣本S,綜合樣本信息熵E(S)與判斷屬性值的獲取時間T(Fj)構建決策樹,在快速分類的同時減少決策樹判斷過程中屬性值的獲取開銷,E(S)與T(Fj)的具體定義如下:
設樣本集S中,在所有樣本集S中出現的頻率為其中,NVp=21,則信息熵E(S)為:
根據步驟(20202)中的F1,F2,...,F5,設Fj有k個不同的取值,j=1,2,3,4,5,不同的Fj取值如下:
F1={1→1,1→n},F2=(0,+∞),F3={control,data}
F4={enough,not enough},F5={enough,not enough}
上述每個Fj的k個取值將S劃分為k個樣本子集其中,表示的是Fj的第1個取值所對應的參數組合的集合,1的取值范圍[1,k];
那么按判斷屬性Fj劃分S后的信息熵定義為:
其中,|S|表示樣本集S中的樣本個數,表示樣本集中的樣本個數;
設置判斷屬性值的獲取開銷T(Fj)取值如下:
(a)在構建決策樹時,首先從Vf中選擇一個狀態屬性Fj作為根節點,其中,然后將Fj的k個不同的取值作為根節點的邊,每條邊將樣本集S劃分為不同子集將Fj從Vf中移除,1的取值范圍[1,k];
(b)采用上述同樣的方式進行迭代選擇決策樹中每條邊對應的下一層節點Fj,此時的表示的是Vf中的Fj的k個取值劃分后的信息熵,計算中的為樣本集中的在樣本集中出現的頻率,NVp=21;本層節點找到后,將Fj從Vf中移除,繼續尋找本層節點Fj的k條邊所對應的下一層節點,直到Vf為空,此時樹的最后一層節點Fj的狀態屬性將樣本集S劃分成的子集將僅包含一個元素,將該元素對應的Vp設置為葉子節點;
按照步驟(a)-(b)的方法,從根節點開始,找到每層節點Fj以及最后一層葉子節點為止,即可生成一棵決策樹;
步驟(3)中,將決策樹模型封裝在通用的API中,RDMA應用在使用所述API傳輸時,根據獲取RDMA應用自身攜帶的應用特性和服務器資源狀態搜索決策樹模型,選擇最佳的RDMA傳輸參數組合,方法如下:
(301)通用的API包括:Rdma_listen(bool Ctype)、Rdma_connect(char*address,char*port,bool Ctype)、client_send(void*buf,int len,bool control,bool n)、client_recv(void*buf,int len,bool control,bool n)、server_send(void*buf,intlen,bool control,bool n)、server_recv(void*buf,int len,bool control,bool n);其中,Rdma_listen指的是在服務端監聽連接,Ctype代表QP連接類型;Rdma_connect指的是在客戶端發起連接,address和port參數分別代表服務端的地址和端口,Ctype代表QP連接類型;client_send指的是客戶端發送數據,buf和len參數分別代表發送的數據所在的地址和長度;client_recv指的是客戶端接收數據,buf和len參數分別代表接收的數據所在的地址和長度;server_send指的是服務端發送數據,buf和len參數分別代表發送的數據所在的地址和長度;server_recv指的是服務端接收數據,buf和len參數分別代表接收的數據所在的地址和長度,bool類型的control和n變量分別表示是否是控制信息、是否是多對多通信;
(302)將步驟(2)決策樹模型封裝在client_send、server_send、client_recv和server_recv中,RDMA應用在使用本發明的API傳輸數據的過程中,通過RDMA應用自身攜帶的應用特性和服務器資源狀態,通過深度優先的方式搜索決策樹模型,從而自適應地選擇最佳的有效RDMA傳輸參數組合。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東南大學,未經東南大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910008291.1/1.html,轉載請聲明來源鉆瓜專利網。





