基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)研究_第1頁
基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)研究_第2頁
基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)研究_第3頁
基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)研究_第4頁
基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)研究_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于可編程網(wǎng)卡的

高性能數(shù)據(jù)中心系統(tǒng)研究背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱現(xiàn)代數(shù)據(jù)中心架構(gòu)計算節(jié)點(diǎn)存儲節(jié)點(diǎn)網(wǎng)絡(luò)節(jié)點(diǎn)柜頂交換機(jī)核心交換機(jī)核心交換機(jī)柜頂交換機(jī)柜頂交換機(jī)柜頂交換機(jī)管理節(jié)點(diǎn)匯聚交換機(jī)匯聚交換機(jī)匯聚交換機(jī)匯聚交換機(jī)InternetAWS,Azure,谷歌云,阿里云,騰訊云…虛擬化的云數(shù)據(jù)中心虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)普通網(wǎng)卡虛擬網(wǎng)絡(luò)功能普通網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/

Flash網(wǎng)絡(luò)通信架構(gòu)客戶虛擬機(jī)1虛擬網(wǎng)絡(luò)軟件普通網(wǎng)卡防火墻負(fù)載均衡…普通網(wǎng)卡計算節(jié)點(diǎn)1網(wǎng)絡(luò)節(jié)點(diǎn)虛擬網(wǎng)數(shù)據(jù)包虛擬網(wǎng)數(shù)據(jù)包封裝網(wǎng)絡(luò)功能客戶應(yīng)用操作系統(tǒng)套接字通信原語客戶虛擬機(jī)2虛擬網(wǎng)絡(luò)軟件普通網(wǎng)卡計算節(jié)點(diǎn)2虛擬網(wǎng)數(shù)據(jù)包虛擬網(wǎng)數(shù)據(jù)包封裝客戶應(yīng)用操作系統(tǒng)套接字通信原語數(shù)據(jù)中心網(wǎng)絡(luò)性能的提升LOGSCALECPU核的網(wǎng)絡(luò)數(shù)據(jù)包

處理能力受限于CPU

主頻和指令級并行度吞吐量(Gbps)1GbE10GbE40GbE50GbE100GbE大規(guī)模部署的時間25GbE操作系統(tǒng)內(nèi)核占了網(wǎng)絡(luò)應(yīng)用的大部分CPU時間操作系統(tǒng)通信原語的性能瓶頸通信原語開銷浪費(fèi)了低延遲數(shù)據(jù)中心網(wǎng)絡(luò)來源:LuizBarroso,MikeMarty,DavidPatterson,ParthasarathyRanganathan.AttackoftheKillerMicroseconds.CommunicationsoftheACM,April2017虛擬化的網(wǎng)絡(luò)功能傳統(tǒng)的專用硬件不夠靈活用軟件實(shí)現(xiàn)網(wǎng)絡(luò)功能以提高靈活性負(fù)載均衡

虛擬機(jī)防火墻

虛擬機(jī)IPSec網(wǎng)關(guān)

虛擬機(jī)NAT

虛擬機(jī)負(fù)載均衡防火墻IPSec

網(wǎng)關(guān)NAT8軟件網(wǎng)絡(luò)功能的性能瓶頸處理能力受限處理40Gbps線速所需的CPU核數(shù)膨脹且不穩(wěn)定的延遲給數(shù)據(jù)平面增加了數(shù)十微秒至數(shù)毫秒的延遲在高負(fù)載下的延遲膨脹更加嚴(yán)重然而1毫秒的延遲就已經(jīng)違反服務(wù)質(zhì)量保證網(wǎng)絡(luò)功能軟件實(shí)現(xiàn)1500Bpkt

(正常情況)64Bpkt

(最壞情況)NVGRE

隧道解包Hyper-V

虛擬交換機(jī)5100防火墻(8K

規(guī)則)Linuxiptables21480云存儲的概念架構(gòu)客戶虛擬機(jī)1網(wǎng)絡(luò)存儲軟件普通網(wǎng)卡計算節(jié)點(diǎn)1數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)1內(nèi)存/

Flash數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)2內(nèi)存/

Flash客戶虛擬機(jī)2網(wǎng)絡(luò)存儲軟件普通網(wǎng)卡計算節(jié)點(diǎn)2CPU并行度的限制同時計算和隨機(jī)訪存時,CPU每個核每秒僅能處理5M次鍵值操作對比:僅隨機(jī)訪存時,8個DDR4內(nèi)存通道每秒可達(dá)850M次軟件數(shù)據(jù)結(jié)構(gòu)處理僅利用了37%的內(nèi)存帶寬。多核負(fù)載均衡的難題每個鍵根據(jù)哈希映射到固定的CPU核由于不同鍵的訪問頻率不均,CPU核的負(fù)載也不均衡CPU核數(shù)越多,負(fù)載越不均衡:在YCSB長尾負(fù)載下,64核的最高負(fù)載是平均值的5.5倍,10核的最高負(fù)載只是均值的1.5倍。軟件數(shù)據(jù)結(jié)構(gòu)處理的性能問題背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱異構(gòu)計算的興起LOGSCALE重定義摩爾定律:

定制硬件的性能

每18個月翻番通用處理器:頻率和Dennard縮放的終結(jié)用什么異構(gòu)硬件加速?CPUGPUFPGA網(wǎng)絡(luò)處理器(NP)網(wǎng)絡(luò)交換機(jī)(ToR)吞吐量低高高高很高延遲高很高低低低功耗高高低低低大規(guī)模部署價格高很高低低低可編程性很高高高高低通用性高高高低低通用處理器專用處理器高并行性數(shù)以十萬計的邏輯單元(包含邏輯門和寄存器)數(shù)以千計的內(nèi)存塊(BRAM):總?cè)萘繑?shù)MB,總帶寬數(shù)TB/s數(shù)以千計的DSP乘法計算單元上述邏輯單元、內(nèi)存塊、DSP間可以靈活互連高速互連FPGA硬核(hard

IP)可連接網(wǎng)絡(luò)、PCIe、板上DRAM等延遲1

us以下,帶寬數(shù)十GB/s編程困難傳統(tǒng)上使用Verilog、VHDL等硬件描述語言編程FPGA可重構(gòu)硬件微軟Azure云的FPGA部署來源:AReconfigurableFabricforAcceleratingLarge-ScaleDatacenterServices,ISCA’14ACloud-ScaleAccelerationArchitecture,MICRO’16CPU/GPU/TPU計算+

NVMe

SSD存儲QPIDRAMDRAM普通網(wǎng)卡CPU140Gb/s2網(wǎng)絡(luò)Gen3x8Gen32x8FPGADRAMCPU40Gb/s可編程網(wǎng)卡組成的硬件加速平面搜索引擎深度學(xué)習(xí)加密解密數(shù)據(jù)庫可編程網(wǎng)卡可編程網(wǎng)卡=普通網(wǎng)卡+

FPGA通過已有的數(shù)據(jù)中心網(wǎng)絡(luò)互聯(lián)每臺Azure云的物理服務(wù)器安裝一塊智能網(wǎng)卡背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱回顧:數(shù)據(jù)中心架構(gòu)虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)普通網(wǎng)卡虛擬網(wǎng)絡(luò)功能普通網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)計算、網(wǎng)絡(luò)、存儲節(jié)點(diǎn)存在性能瓶頸客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/

Flash1.1.虛擬網(wǎng)絡(luò)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬網(wǎng)絡(luò)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/

Flash虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)功能普通網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)內(nèi)存/

Flash1.2.虛擬網(wǎng)絡(luò)功能加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬網(wǎng)絡(luò)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/

Flash虛擬本地盤虛擬云盤數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)內(nèi)存/

Flash網(wǎng)絡(luò)節(jié)點(diǎn)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面2.1.虛擬存儲加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/

Flash數(shù)據(jù)結(jié)構(gòu)處理普通網(wǎng)卡存儲節(jié)點(diǎn)內(nèi)存/

Flash2.2.數(shù)據(jù)結(jié)構(gòu)處理加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)客戶應(yīng)用操作系統(tǒng)內(nèi)存/

Flash3.操作系統(tǒng)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫客戶應(yīng)用通信庫客戶應(yīng)用通信庫內(nèi)存/

Flash傳輸協(xié)議基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫客戶應(yīng)用通信庫客戶應(yīng)用通信庫內(nèi)存/

Flash傳輸協(xié)議背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱虛擬網(wǎng)絡(luò)、網(wǎng)絡(luò)功能加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫客戶應(yīng)用通信庫客戶應(yīng)用通信庫內(nèi)存/

Flash傳輸協(xié)議挑戰(zhàn):FPGA編程困難硬件描述語言難寫、難調(diào)、難改PCIeCoreDMAEnginealways@(posedgeSYSCLKornegedgeRST_B)beginif(!RST_B)DMA_TX_DATA<=`UD8'hff;elseDMA_TX_DATA<=`UDDMA_TX_DATA_N;end//send:"helloworld!"always@(posedgeSYSCLK)beginif(rst)begindma_data<=88’h0;dma_valid<=1’b0;elseif(dma_start)begindma_data<=88’h68656C6C6F20776F726C64;dma_valid<=1’b1;endelsebegindma_data<=88’h0;dma_valid<=1’b0;endendend現(xiàn)有高層次綜合技術(shù)的不足OpenCL

(為GPU設(shè)計的批處理模型)28AmemBmemCmem并行執(zhí)行的核板上共享內(nèi)存問題:板上共享內(nèi)存成為吞吐量瓶頸;批處理延遲高(1ms)主機(jī)內(nèi)存網(wǎng)絡(luò)ClickNP編程模型基于消息通信的流式處理29優(yōu)點(diǎn):管道的吞吐量可擴(kuò)放;流式處理延遲低(1μs)AmemBmemCmem并行執(zhí)行的核(元件)通過

管道,而非共享內(nèi)存來通信主機(jī)內(nèi)存網(wǎng)絡(luò)元件:類比一個處理器核輸入管道數(shù)據(jù)處理函數(shù)主機(jī)控制信號、命令輸出管道內(nèi)部狀態(tài)信號處理函數(shù)(中斷)(I/O)(I/O)(reg/mem)(主線程)(ISR)30ClickNP元件庫近200個元件包括數(shù)據(jù)包解析、校驗(yàn)和計算、隧道封裝/解封裝、加密、哈希表、前綴匹配、數(shù)據(jù)包調(diào)度、流量控制等吞吐量:200Mpps/100Gbps平均延遲0.19us,最高延遲0.8us代碼行數(shù):平均80,最高196元件時鐘頻率(MHz)峰值性能延遲(時鐘周期數(shù))邏輯資源%BRAM內(nèi)存資源%L4_Parser221.9113.6Gbps110.8%0.2%IPChecksum226.8116.1Gbps182.3%1.3%NVGRE_Encap221.8113.6Gbps91.5%0.6%AES_CTR217.027.8Gbps704.0%23.1%SHA1220.8113.0Gbps1057.9%6.6%CuckooHash209.7209.7Mpps382.0%65.5%HashTCAM207.4207.4Mpps4818.7%22.0%LPM_Tree221.8221.8Mpps1814.3%13.2%SRPrioQueue214.5214.5Mpps412.6%0.6%RateLimiter141.5141.5Mpps1416.9%14.1%網(wǎng)絡(luò)功能示例:抓包工具ClickNP配置文件(元件間的連接):from_torCountTeeto_torloggerFPGACPU32Count元件:ClickNP開發(fā)工具鏈33CatapultFPGAOSClickNPFPGA主機(jī)CatapultPCIe驅(qū)動ClickNP運(yùn)行庫ClickNP主機(jī)進(jìn)程管程工作線程ClickNP元件ClickNP管程ClickNP編譯器

HLS運(yùn)行庫PCIeI/O管道

FPGA上的HLS運(yùn)行庫ClickNP腳本中間C代碼VerilogC編譯器HLS工具優(yōu)化:利用FPGA并行性組件間并行流水線并行數(shù)據(jù)并行組件內(nèi)并行原則1:最小化內(nèi)存依賴

使用寄存器取代片上內(nèi)存

延遲寫入內(nèi)存

內(nèi)存分片原則2:平衡流水線各級延遲

循環(huán)展開

把慢路徑卸載到另一個組件異步執(zhí)行34ClickNP開發(fā)效率與性能網(wǎng)絡(luò)應(yīng)用代碼行數(shù)資源開銷(占芯片面積比例)吞吐量(相比CPU軟件)平均延遲(相比CPU軟件)數(shù)據(jù)包生成器66516%18x25x抓包工具2508%17x18x防火墻53832%22x40xIPSec網(wǎng)關(guān)69535%60x3x負(fù)載均衡器86036%55x12x數(shù)據(jù)包調(diào)度器58411%32x10x應(yīng)用場景:通過Internet加密連接多個數(shù)據(jù)中心或數(shù)據(jù)中心與辦公園區(qū)IPSec網(wǎng)關(guān)的應(yīng)用性能吞吐量隨數(shù)據(jù)包大小的穩(wěn)定性延遲隨負(fù)載高低的穩(wěn)定性云數(shù)據(jù)中心辦公園區(qū)IPSec

網(wǎng)關(guān)IPSec

網(wǎng)關(guān)Internet問題軟件網(wǎng)絡(luò)功能的性能瓶頸。創(chuàng)新點(diǎn)提出首個基于高級語言、能在40

Gbps網(wǎng)絡(luò)中實(shí)現(xiàn)線速處理的FPGA網(wǎng)絡(luò)功能處理框架。主要挑戰(zhàn)FPGA硬件描述語言難以編程,現(xiàn)有OpenCL高級語言編程框架不適合網(wǎng)絡(luò)功能處理。主要貢獻(xiàn)實(shí)現(xiàn)了ClickNP開發(fā)工具鏈,與多種商用高層次綜合工具集成?;贑lickNP設(shè)計和實(shí)現(xiàn)了200多個網(wǎng)絡(luò)元件,并用這些元件組建起多種網(wǎng)絡(luò)功能。相比基于CPU的軟件網(wǎng)絡(luò)功能,ClickNP的吞吐量提高了10倍,延遲降低到1/10;且具有可忽略的CPU開銷。是首個完全用高級語言編程,且能達(dá)到40

Gbps線速數(shù)據(jù)包處理的FPGA網(wǎng)絡(luò)功能處理平臺。ClickNP小結(jié)背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱數(shù)據(jù)結(jié)構(gòu)加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫客戶應(yīng)用通信庫客戶應(yīng)用通信庫內(nèi)存/

Flash傳輸協(xié)議鍵值存儲:基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)緩存共享數(shù)據(jù)結(jié)構(gòu)最新微博用戶ID數(shù)據(jù)庫查詢查詢結(jié)果鍵值網(wǎng)站訪客瀏覽器信息圖中的點(diǎn)機(jī)器學(xué)習(xí)特征權(quán)重鍵值數(shù)據(jù)庫事務(wù)序列號相鄰的點(diǎn)越來越重要的應(yīng)用鍵值存儲:基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)共享數(shù)據(jù)結(jié)構(gòu)圖中的點(diǎn)機(jī)器學(xué)習(xí)特征權(quán)重鍵值數(shù)據(jù)庫事務(wù)序列號相鄰的點(diǎn)越來越重要的應(yīng)用設(shè)計目標(biāo)高性能低延遲寫操作比例高

向量操作

____原子操作KV-Direct相關(guān)工作軟件

(內(nèi)核繞過)單邊RDMAKV-Direct

基于可編程網(wǎng)卡的鍵值存儲把鍵值處理從服務(wù)器端

CPU卸載到可編程網(wǎng)卡的FPGA上軟件

(內(nèi)核TCP/IP)瓶頸:操作系統(tǒng)

網(wǎng)絡(luò)協(xié)議棧瓶頸:CPU隨機(jī)內(nèi)存訪問和鍵值操作處理瓶頸:1.通信:每次鍵值操作多輪訪問2.同步:寫操作需要同步KV-Direct系統(tǒng)架構(gòu)網(wǎng)絡(luò)網(wǎng)絡(luò)解碼請求調(diào)度哈希表網(wǎng)絡(luò)編碼負(fù)載均衡PCIe

(主機(jī)內(nèi)存)智能網(wǎng)卡DRAM內(nèi)存分配挑戰(zhàn)1:網(wǎng)卡與CPU間帶寬小ToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可編程網(wǎng)卡網(wǎng)卡DRAM(4GB)13GB/s120Mops需要盡量減少每次鍵值操作的內(nèi)存訪問次數(shù)挑戰(zhàn)2:網(wǎng)卡與CPU間延遲高ToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可編程網(wǎng)卡板上DRAM

(4GB)1us延遲原子操作存在依賴:需要亂序執(zhí)行,隱藏PCIe延遲挑戰(zhàn)3:利用網(wǎng)卡上的DRAMToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可編程網(wǎng)卡板上DRAM

(4GB)如何充分利用板上DRAM?做緩存,太慢;做負(fù)載均衡,太小。方法:緩存與負(fù)載均衡結(jié)合13GB/s120Mops12GB/s100Mops挑戰(zhàn)4:網(wǎng)絡(luò)帶寬有限ToR交換機(jī)主機(jī)DRAM(256GB)PCIeGen3

x16DMA40GbEFPGACPUNIC

可編程網(wǎng)卡板上DRAM

(4GB)13GB/s120Mops5GB/s60

Mpps網(wǎng)卡與主存的PCIe帶寬有限

bucketizedchaining哈希表

slab動態(tài)內(nèi)存分配+懶惰垃圾回收

網(wǎng)卡與主存的PCIe延遲較高

訪問同一個鍵的操作有依賴

緩存+亂序執(zhí)行利用帶寬有限的網(wǎng)卡DRAM

緩存與負(fù)載均衡結(jié)合

一部分可緩存區(qū)域用DRAM緩存,另一部分直通PCIe

網(wǎng)絡(luò)帶寬有限

客戶端批量發(fā)送

向量操作性能優(yōu)化方案KV-Direct系統(tǒng)性能均勻分布吞吐量長尾分布吞吐量延遲多網(wǎng)卡的性能可擴(kuò)放性多網(wǎng)卡的性能可擴(kuò)放性12.2億次KVop/s357瓦功耗KV-Direct性能比較吞吐量(Mops)

(讀/寫)功耗(Kops/W)技術(shù)延遲(us)

(讀/寫)Memcached1.5/1.55/5傳統(tǒng)50/50MemC34.3/4.314/14傳統(tǒng)50/50RAMCloud6/120/3.3內(nèi)核繞過5/14MICA(12網(wǎng)卡)137/135342/337內(nèi)核繞過81/81FARM6/330(261)/15單邊

RDMA4.5/10DrTM-KV115/14500(3972)

/60單邊RDMA3.4/6.3HERD35/25490/300雙邊RDMA4/4FPGA-Xilinx14/14106/106FPGA3.5/4.5Mega-KV166/80330/160GPU280/280KV-Direct(單網(wǎng)卡)180/1141487(5454)/942(3454)智能網(wǎng)卡4.3/5.4KV-Direct(10網(wǎng)卡)1220/6103417(4518)/1708(2259)智能網(wǎng)卡4.3/5.4*括號內(nèi)的功耗指的是網(wǎng)卡的功耗,針對KV-Direct、FARM等繞過服務(wù)器端CPU的系統(tǒng)。問題軟件數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸。創(chuàng)新點(diǎn)提出用可編程網(wǎng)卡加速遠(yuǎn)程數(shù)據(jù)結(jié)構(gòu)訪問。在服務(wù)器端繞過CPU,用可編程網(wǎng)卡通過PCIe直接訪問主機(jī)內(nèi)存。主要挑戰(zhàn)可編程網(wǎng)卡訪問主機(jī)內(nèi)存性能受限。主要貢獻(xiàn)把單邊RDMA的內(nèi)存操作語義擴(kuò)展到鍵值操作語義。為可編程網(wǎng)卡設(shè)計了哈希表、內(nèi)存分配器、亂序執(zhí)行引擎、負(fù)載均衡和緩存、向量操作等一系列性能優(yōu)化。實(shí)現(xiàn)了10倍于CPU的能耗效率和微秒級的延遲,是首個單機(jī)性能達(dá)到10億次每秒的通用鍵值存儲系統(tǒng)。KV-Direct小結(jié)背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱操作系統(tǒng)通信原語加速虛擬機(jī)監(jiān)視器(Hypervisor)虛擬機(jī)1虛擬機(jī)2虛擬機(jī)3計算節(jié)點(diǎn)可編程網(wǎng)卡網(wǎng)絡(luò)節(jié)點(diǎn)存儲節(jié)點(diǎn)內(nèi)存/

Flash數(shù)據(jù)中心網(wǎng)絡(luò)虛擬網(wǎng)卡1虛擬網(wǎng)卡2虛擬網(wǎng)卡3虛擬本地盤虛擬云盤虛擬網(wǎng)絡(luò)可編程網(wǎng)卡虛擬網(wǎng)絡(luò)功能數(shù)據(jù)面虛擬網(wǎng)絡(luò)功能控制面可編程網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)處理數(shù)據(jù)面數(shù)據(jù)結(jié)構(gòu)處理控制面客戶應(yīng)用通信庫客戶應(yīng)用通信庫客戶應(yīng)用通信庫內(nèi)存/

Flash傳輸協(xié)議套接字:操作系統(tǒng)通信原語操作系統(tǒng)網(wǎng)卡發(fā)送方主機(jī)客戶應(yīng)用加鎖send系統(tǒng)調(diào)用VFS

send拷貝數(shù)據(jù),分配內(nèi)存TCP/IP協(xié)議TCP發(fā)送緩沖區(qū)網(wǎng)絡(luò)數(shù)據(jù)包標(biāo)準(zhǔn)C庫send套接字操作操作系統(tǒng)網(wǎng)卡接收方主機(jī)客戶應(yīng)用加鎖recv系統(tǒng)調(diào)用VFS

recv拷貝數(shù)據(jù),釋放內(nèi)存TCP/IP協(xié)議TCP接收緩沖區(qū)網(wǎng)絡(luò)數(shù)據(jù)包標(biāo)準(zhǔn)C庫recv套接字操作事件通知喚醒進(jìn)程進(jìn)程調(diào)度網(wǎng)絡(luò)數(shù)據(jù)包系統(tǒng)調(diào)用

用戶態(tài)庫,管程負(fù)責(zé)特權(quán)操作多線程共享連接需要同步

基于令牌的共享,為常見情況優(yōu)化,并兼容特殊情況(如fork)緩沖區(qū)管理

新的環(huán)形緩沖區(qū)設(shè)計TCP/IP協(xié)議棧

用可編程網(wǎng)卡(RDMA)實(shí)現(xiàn)主機(jī)間可靠通信;

用共享內(nèi)存實(shí)現(xiàn)主機(jī)內(nèi)進(jìn)程間通信數(shù)據(jù)拷貝

批量頁面重映射技術(shù)操作系統(tǒng)的通知和調(diào)度

協(xié)作式多進(jìn)程消除套接字開銷的技術(shù)SocksDirect性能單機(jī)進(jìn)程間吞吐量單機(jī)進(jìn)程間往返延遲跨機(jī)器網(wǎng)絡(luò)吞吐量跨機(jī)器網(wǎng)絡(luò)往返延遲SocksDirectCPU核數(shù)可擴(kuò)放性單機(jī)進(jìn)程間跨機(jī)器網(wǎng)絡(luò)SocksDirect實(shí)際應(yīng)用性能NginxHTTP請求端到端延遲問題Linux套接字通信原語的性能差。創(chuàng)新點(diǎn)提出用戶態(tài)運(yùn)行庫和網(wǎng)卡硬件傳輸層相結(jié)合的方法實(shí)現(xiàn)套接字通信原語,從而繞過操作系統(tǒng)內(nèi)核。主要挑戰(zhàn)操作系統(tǒng)虛擬文件系統(tǒng)層功能復(fù)雜,兼容性和性能存在矛盾。主要貢獻(xiàn)設(shè)計實(shí)現(xiàn)了一個用戶態(tài)套接字系統(tǒng)SocksDirect,與現(xiàn)有應(yīng)用程序完全兼容,能實(shí)現(xiàn)接近硬件極限的吞吐量和延遲,且多核性能具有可擴(kuò)放性。消除線程間同步、緩沖區(qū)管理、大數(shù)據(jù)拷貝、進(jìn)程喚醒等一系列開銷。相比Linux提升了7至20倍吞吐量,降低延遲到1/17至1/35,并將Web服務(wù)器的HTTP延遲降低到1/5.5。SocksDirect小結(jié)背景軟件網(wǎng)絡(luò)功能和數(shù)據(jù)結(jié)構(gòu)處理的性能瓶頸可編程網(wǎng)卡在數(shù)據(jù)中心內(nèi)的部署研究內(nèi)容基于可編程網(wǎng)卡的數(shù)據(jù)中心系統(tǒng)網(wǎng)絡(luò)功能加速–ClickNP數(shù)據(jù)結(jié)構(gòu)加速–KV-Direct通信原語加速–SocksDirect報告總結(jié)答辯報告提綱本文提出了一個基于可編程網(wǎng)卡的高性能數(shù)據(jù)中心系統(tǒng)。利用可編程網(wǎng)卡提高云計算中計算、網(wǎng)絡(luò)和存儲節(jié)點(diǎn)的性能,并降低成本。創(chuàng)新點(diǎn)1:提出用基于FPGA的可編程網(wǎng)卡加速云計算中的虛擬網(wǎng)絡(luò)功能。為了簡化編程,提出了首個適用于高速網(wǎng)絡(luò)數(shù)據(jù)包處理、基于高級語言的FPGA編程框架。相比傳統(tǒng)基于CPU的網(wǎng)絡(luò)功能,把吞吐量提高了10倍,延遲降低到1/10,為每個計算節(jié)點(diǎn)節(jié)約了1/5的CPU核。創(chuàng)新點(diǎn)2:提出用可編程網(wǎng)卡加速遠(yuǎn)程數(shù)據(jù)結(jié)構(gòu)訪問。我們以內(nèi)存鍵值存儲系統(tǒng)為例,在服務(wù)器端繞過CPU,用網(wǎng)卡直接訪問主機(jī)內(nèi)存,實(shí)現(xiàn)了10倍于CPU的吞吐量和微秒級的延遲,是首個單機(jī)性能達(dá)到10億次每秒的通用鍵值存儲系統(tǒng)。創(chuàng)新點(diǎn)3:為了降低操作系統(tǒng)網(wǎng)絡(luò)協(xié)議棧的開銷,提出一個軟硬件結(jié)合的用戶態(tài)套接字通信系統(tǒng),與現(xiàn)有應(yīng)用程序完全兼容,并能實(shí)現(xiàn)接近硬件極限的吞吐量和延遲,解決了長期以來通用網(wǎng)絡(luò)協(xié)議棧性能較低、專用網(wǎng)絡(luò)協(xié)議棧兼容性較差的矛盾。報告總結(jié)展望:可編程網(wǎng)卡成為一等公民傳統(tǒng)加速架構(gòu)CPU把規(guī)則的任務(wù)卸載到FPGA可編程網(wǎng)卡架構(gòu)FPGA把不規(guī)則的任務(wù)卸載到CPUCPUDRAMFPGASSDGPU網(wǎng)卡網(wǎng)絡(luò)FPGADRAMCPUSSDGPU網(wǎng)卡網(wǎng)絡(luò)DRAMDRAM可編程網(wǎng)卡ClickNP:HighlyflexibleandHigh-performanceNetworkProcessingwithReconfigurableHardware

BojieLi,KunTan,Layong(Larry)Luo,YanqingPeng,RenqianLuo,NingyiXu,YongqiangXiong,PengCheng,EnhongChen

Proceedingsofthe2016ACMSIGCOMMConference(SIGCOMM‘16)KV-Direct:High-PerformanceIn-MemoryKey-ValueStorewithProgrammableNIC

BojieLi,ZhenyuanRuan,WencongXiao,YuanweiLu,YongqiangXiong,AndrewPutnam,EnhongChen,LintaoZhang

Proceedingsofthe26thSymposiumonOperatingSystemsPrinciples(SOSP‘17)SocksDirect:DatacenterSocketsCanBeFastandCompatibleBojieLi,TianyiCui,ZiboWang,WeiBai,LintaoZhangProceedingsofthe2019ACMSIGCOMMConference(SIGCOMM‘19)主要獲獎:2017年微軟學(xué)者獎學(xué)金2017年博士生國家獎學(xué)金主要科研成果FastandCompatibleUser-SpaceContainerNetworkingwithProgrammableNIC

BojieLi.(Collaborators:ZiboWanga

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論