Microsoft--sigcomm'15
核心思想:避免RDMA網(wǎng)絡(luò)中的丟包,替代PFC流控方案熬尺,建立流模型調(diào)節(jié)交換機(jī)緩存閾值(用于標(biāo)記ECN)
簡(jiǎn)介:
高帶寬(40Gbps+)摸屠、低時(shí)延(10us- per hop)的數(shù)據(jù)中心網(wǎng)絡(luò)需求。TCP/IP協(xié)議棧的運(yùn)行模式需要大量的CPU開銷粱哼,時(shí)延也相當(dāng)高季二。RDMA將網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)在網(wǎng)卡(NIC)上,通過(guò)Bypass的方式降低CPU開銷揭措,直接與對(duì)端內(nèi)存進(jìn)行交互胯舷。關(guān)鍵問(wèn)題是如何為RDMA網(wǎng)絡(luò)營(yíng)造一個(gè)無(wú)損環(huán)境,如何在網(wǎng)卡上設(shè)計(jì)和實(shí)現(xiàn)擁塞控制協(xié)議避免丟包蜂筹。
最初RDMA是部署在IB網(wǎng)絡(luò)中的需纳,IB網(wǎng)絡(luò)的L2鏈路層使用逐跳、基于身份令牌的流控機(jī)制避免由于緩存溢出引發(fā)的丟包艺挪。所以L4傳輸層設(shè)計(jì)就相對(duì)簡(jiǎn)單不翩,效率很高。但I(xiàn)B網(wǎng)絡(luò)與數(shù)據(jù)中心中已有的以太網(wǎng)絡(luò)不兼容麻裳,DC中同時(shí)運(yùn)行兩種網(wǎng)絡(luò)的管理成本太高口蝠,于是基于Ethernet的RoCE(為了可路由)和基于UDP的RoCEv2(為了ECMP)產(chǎn)生了。若要達(dá)到與IB高效的性能津坑,需保證RoCEv2運(yùn)行在無(wú)損網(wǎng)絡(luò)中妙蔗,即不丟包。RoCE采用PFC粗粒度的流控機(jī)制疆瑰,通過(guò)暫停發(fā)包的指令避免緩存溢出眉反。PFC是基于端口(每個(gè)端口有8條虛擬優(yōu)先級(jí)鏈路)的,不能區(qū)分流穆役,容易造成擁塞擴(kuò)散的現(xiàn)象寸五,降低吞吐量。
所以耿币,擁塞控制機(jī)制必須滿足這些條件:(1)運(yùn)行在數(shù)據(jù)中心三層路由網(wǎng)絡(luò)中梳杏,實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)(2)在終端主機(jī)上的CPU開銷足夠低(3)在非擁塞環(huán)境下快啟動(dòng)。
目前已有方案:QCN不支持三層網(wǎng)絡(luò)。DCTCP和iWarp是慢啟動(dòng)十性。DCTCP和TCP-Bolt是在軟件中實(shí)現(xiàn)的叛溢,CPU開銷很大。
DCQCN:只需要交換機(jī)支持RED和ECN即可劲适。協(xié)議實(shí)現(xiàn)在網(wǎng)卡上楷掉。可以保證快速公平收斂减响,高帶寬利用率靖诗,低延遲郭怪。
conventional:常規(guī)的支示,慣例的
設(shè)計(jì)DCQCN的必要性:TCP/IP協(xié)議棧不能提供超低時(shí)延和超低CPU開銷;目前PFC方案的弊端鄙才;以及解決方案的弊端
(1)測(cè)量比較TCP與RDMA的吞吐量颂鸿、時(shí)延和CPU利用率
方案:TCP:修改iperf,開啟LSO攒庵,RSS嘴纺,使用16條線程,零拷貝操作? ? ? RDMA:使用自定義的工具測(cè)試IB read操作傳送數(shù)據(jù)浓冒,一條線程占滿一條鏈路栽渴。
(2)PFC的限制和弊端
PFC:通過(guò)監(jiān)控ingress queue以及向上一跳發(fā)送PAUSE幀的方式避免交換機(jī)緩沖區(qū)和NIC緩沖區(qū)出現(xiàn)緩存溢出,從而避免丟包稳懒。
問(wèn)題:PFC是針對(duì)端口和優(yōu)先級(jí)進(jìn)行流控的闲擦,不能識(shí)別流,會(huì)造成HOL問(wèn)題场梆,對(duì)單條流性能造成影響墅冷。不公平性。級(jí)聯(lián)性或油。
解決方案:添加8條優(yōu)先級(jí)寞忿。但隨著發(fā)送端數(shù)量的增多,網(wǎng)絡(luò)規(guī)模的擴(kuò)大顶岸,可擴(kuò)展性不高腔彰。并且處于同一優(yōu)先級(jí)的不同流仍會(huì)遭受HOL問(wèn)題。
(3)PFC改進(jìn)方案的不足之處
改進(jìn)方案:使用流級(jí)擁塞控制機(jī)制辖佣。
QCN:二層流控機(jī)制霹抛。依據(jù)mac地址和流id確定某條流,根據(jù)排隊(duì)長(zhǎng)度依概率判定是否擁塞凌简,向發(fā)送該擁塞報(bào)文的源端發(fā)送擁塞通知上炎。源端在周期內(nèi)若收到擁塞通知,則降低發(fā)送速率,否則增加發(fā)送速率藕施。
問(wèn)題:QCN是通過(guò)二層mac地址標(biāo)識(shí)流的寇损,在IP網(wǎng)絡(luò)中不可行,mac地址會(huì)變裳食,交換機(jī)不知道該向誰(shuí)發(fā)送擁塞通知包矛市。
解決方案:擴(kuò)展QCN支持三層流控。需要做的是修改NIC和交換機(jī)以支持用五元組標(biāo)識(shí)流诲祸。修改交換機(jī)需要修改ASIC芯片浊吏,周期長(zhǎng),可實(shí)現(xiàn)性低救氯。
DCQCN算法
不改交換機(jī)找田,在NIC上實(shí)現(xiàn),考慮CPU開銷着憨。在性能方面上墩衙,要求公平帶寬分配的快速收斂,避免震蕩甲抖,維持短隊(duì)長(zhǎng)漆改,確保高鏈路利用率。
CP算法(Congestion Point):在交換機(jī)上准谚。與DCTCP機(jī)制相同挫剑,利用RED功能依據(jù)隊(duì)列長(zhǎng)度按照概率分布給數(shù)據(jù)包打上ECN標(biāo)簽。本方案中改進(jìn)了DCTCP的參數(shù)設(shè)置模型柱衔。
NP算法(Notification Point):在接收端樊破。決定了在收到ECN包后什么時(shí)間和怎樣構(gòu)造CNP(congestion notification packet)的問(wèn)題。在某一時(shí)間周期內(nèi)秀存,最多只發(fā)送一個(gè)CNP包捶码。N=50us。
RP算法(Reaction Point):在發(fā)送端或链。當(dāng)收到CNP包時(shí)惫恼,怎么調(diào)節(jié)速率。當(dāng)收到CNP包后澳盐,依照equation 1 調(diào)節(jié)祈纯;在連續(xù)K時(shí)間內(nèi),未收到CNP包叼耙,根據(jù)當(dāng)前計(jì)時(shí)器(每T個(gè)時(shí)間單元為1腕窥,保證快恢復(fù))和計(jì)數(shù)器(每B個(gè)字節(jié)為1)的值,按照equation 2 快速增加速率筛婉。
緩存區(qū)設(shè)置:Tflight簇爆,Tpfc癞松,Tecn
需求:PFC的觸發(fā)要晚于ECN,早于緩存溢出入蛆,避免丟包和吞吐量下降
討論的前提:交換機(jī)為共享緩存模式响蓉,有32個(gè)全雙工的40Gbps端口,12MB的共享內(nèi)存哨毁,支持PFC的8條優(yōu)先級(jí)隊(duì)列
Tflight:用于存儲(chǔ)PAUSE包發(fā)送時(shí)和生效時(shí)到達(dá)的數(shù)據(jù)包的內(nèi)存大小枫甲。根據(jù)BDP,每個(gè)端口扼褪,每個(gè)優(yōu)先級(jí)所需要的內(nèi)存空間為22.4KB想幻。
Tpfc:可理解為觸發(fā)PFC的ingress 隊(duì)列中可以占用的最大內(nèi)存區(qū)域。每個(gè)端口的每個(gè)優(yōu)先級(jí)隊(duì)列的Tpfc值要小于等于24.47KB话浇。而觸發(fā)PFC的條件一定要比它小脏毯。當(dāng)隊(duì)列內(nèi)存占用降低到Tpfc減去兩個(gè)MTU的值時(shí),會(huì)自動(dòng)發(fā)送RESUME信號(hào)凳枝,恢復(fù)發(fā)包抄沮。
Tecn:觸發(fā)ECN標(biāo)記的最小egress queue占用的內(nèi)存空間跋核。該值的設(shè)置一定要使ECN先于PFC觸發(fā)岖瑰。最壞情況下,所有的egress queue的包都來(lái)自于同一條ingress queue砂代,為保證ecn先于pfc觸發(fā)蹋订,則Tecn應(yīng)小于0.85KB,小于一個(gè)MTU長(zhǎng)度刻伊,不可行露戒。這種想法過(guò)于靜態(tài),由于交換機(jī)內(nèi)緩存資源是共享的捶箱,所以Tpfc的設(shè)置應(yīng)取決于剩余的可用資源智什。如下公式:
DCQCN分析:建立流模型決定參數(shù)設(shè)置
建立了當(dāng)前速率丁屎,目標(biāo)速率荠锭,速率增長(zhǎng)步長(zhǎng),速率調(diào)節(jié)參數(shù)α晨川,等一系列參數(shù)证九。
實(shí)驗(yàn)結(jié)果:搭建實(shí)驗(yàn)床驗(yàn)證流模型和參數(shù)設(shè)置的有效性
DCQCN是基于速率調(diào)整的擁塞控制方案,DCTCP共虑、iWarp和TCP-Bolt都是基于窗口的擁塞控制算法愧怜。
下一步研究方向:將機(jī)器學(xué)習(xí)應(yīng)用到DCQCN算法中調(diào)節(jié)參數(shù)設(shè)置