亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

高速轉發,為云防火墻提供堅實基礎

2022-12-29 07:11:53
23
0

云防火(huo)墻采用(yong)(yong)了DPDK提(ti)供(gong)的用(yong)(yong)戶(hu)態(tai)數據面進行(xing)收發包處(chu)理,繞過了Linux內核態(tai)協(xie)議棧,以(yi)提(ti)升報(bao)文處(chu)理效(xiao)率。利(li)用(yong)(yong)DPDK提(ti)供(gong)的一(yi)組lib庫和(he)工具包集合,云防火(huo)墻從以(yi)下六方面來優(you)化轉發性能:

1、用戶(hu)態RCU鎖。

2、用戶(hu)態(tai)驅動(dong)。這(zhe)種方式既規避了不(bu)必要的內存(cun)拷貝又避免了系(xi)統調用。用戶(hu)態(tai)驅動(dong)不(bu)受(shou)限(xian)于內核現有的數據格(ge)式和行(xing)為定義。對mbuf頭格(ge)式的重定義、對網(wang)卡DMA操作的重新優化可以(yi)獲得更好的性能。而(er)用戶(hu)態(tai)驅動(dong)也(ye)便于快速地迭代優化,甚至(zhi)對不(bu)同場景進行(xing)不(bu)同的優化組合。

3、親和性與獨占(zhan)(zhan),DPDK工作(zuo)在(zai)用(yong)(yong)戶態(tai),線(xian)程的調度仍然(ran)依(yi)賴內核。利(li)用(yong)(yong)線(xian)程的CPU親和綁(bang)定(ding)(ding)的方式,特定(ding)(ding)任(ren)務可(ke)(ke)以被(bei)指定(ding)(ding)只在(zai)某個核上(shang)工作(zuo)。好(hao)處是(shi)可(ke)(ke)避(bi)免線(xian)程在(zai)不同(tong)核間頻繁(fan)切換,核間線(xian)程切換容易導致(zhi)因cache miss和cache write back造成的大量(liang)性能損失。如果更(geng)(geng)進一(yi)步地限定(ding)(ding)某些核不參(can)與Linux系統(tong)調度,就可(ke)(ke)能使線(xian)程獨占(zhan)(zhan)該核,保證更(geng)(geng)多(duo)cache hit的同(tong)時(shi),也避(bi)免了同(tong)一(yi)個核內的多(duo)任(ren)務切換開銷。

4、降(jiang)(jiang)低(di)訪(fang)存(cun)(cun)(cun)開銷,防火墻是(shi)一種典(dian)型的(de)I/O密集型(I/O bound)工作負載。無論是(shi)CPU指令還是(shi)DMA,對(dui)于(yu)(yu)內存(cun)(cun)(cun)子系統(Cache+DRAM)都(dou)會訪(fang)問(wen)頻繁。利(li)用內存(cun)(cun)(cun)大頁(ye)能有效(xiao)(xiao)降(jiang)(jiang)低(di)TLB miss,比(bi)如利(li)用內存(cun)(cun)(cun)多通道的(de)交錯(cuo)訪(fang)問(wen)能有效(xiao)(xiao)提高內存(cun)(cun)(cun)訪(fang)問(wen)的(de)有效(xiao)(xiao)帶(dai)寬,再比(bi)如利(li)用對(dui)于(yu)(yu)內存(cun)(cun)(cun)非對(dui)稱(cheng)性(NUMA)的(de)感知可(ke)以避免(mian)額外的(de)訪(fang)存(cun)(cun)(cun)延遲(chi)。

5、軟件調優(you)。這(zhe)里包括一系列調優(you)實踐(jian),比(bi)如結構的cache line對(dui)齊,比(bi)如數據(ju)在多核間訪(fang)問(wen)避免(mian)跨cache line共享(xiang),比(bi)如適時地預取數據(ju),再(zai)如多元(yuan)數據(ju)批量操(cao)作。

6、充分挖掘網卡的(de)潛(qian)能,目(mu)前主流(liu)網卡往往都支持SR-IOV(Single Root Input/Output Virtualization, 單(dan)根I/O虛擬化)、RSS(Receive-Side Scaling, 接收方擴(kuo)展)和硬件卸(xie)載(zai)(如Chksum,TSO等(deng))功能。

1)SR-IOV

對于虛(xu)擬(ni)(ni)機方(fang)式部署(shu)的云防火(huo)墻,利用SR-IOV將(jiang)一(yi)(yi)塊物(wu)理網卡呈(cheng)現(xian)為一(yi)(yi)個(ge)(ge)(ge)PF(Physical Function,物(wu)理功能(neng))和多個(ge)(ge)(ge)VF(Virtual Function,虛(xu)擬(ni)(ni)功能(neng)),每個(ge)(ge)(ge)VF都(dou)有它們自己(ji)的獨立PCI配置(zhi)空(kong)間、收發隊列、中斷等(deng)資(zi)源。宿主機將(jiang)一(yi)(yi)個(ge)(ge)(ge)或者(zhe)多個(ge)(ge)(ge)VF透傳給(gei)虛(xu)擬(ni)(ni)機獨占(zhan)使用,繞過(guo)Hypervisor模擬(ni)(ni)層以提高I/O性能(neng)。

2)RSS

簡單說(shuo),RSS就(jiu)是讓(rang)多(duo)隊列網卡將數據包收發處理均勻地hash到多(duo)個(ge)核上。

其中(zhong)哈希(xi)值的(de)(de)計算(suan)(suan)公(gong)式在(zai)硬件中(zhong)完成的(de)(de),網卡會根(gen)據不同(tong)(tong)的(de)(de)數(shu)(shu)據包(bao)(bao)類型選(xuan)取出不同(tong)(tong)的(de)(de)關鍵字(zi),比如IPV4 UDP包(bao)(bao)的(de)(de)關鍵字(zi)就由四(si)元組組成(源(yuan)IP地(di)址、目(mu)的(de)(de)IP地(di)址、源(yuan)端口號(hao)、目(mu)的(de)(de)端口號(hao))。另(ling)外,在(zai)云防火墻中(zhong),一個(ge)(ge)連(lian)接的(de)(de)雙向流有(you)著相似的(de)(de)處理,自然就希(xi)望有(you)著對(dui)稱信息的(de)(de)數(shu)(shu)據包(bao)(bao)都能(neng)進入(ru)同(tong)(tong)一個(ge)(ge)核上處理,選(xuan)用對(dui)稱哈希(xi)(Symmetric Hash)算(suan)(suan)法可(ke)以(yi)保證Hash(src,dst)= Hash(dst,src),避免不同(tong)(tong)核之間的(de)(de)數(shu)(shu)據同(tong)(tong)步消耗性能(neng)。RSS使得網卡更好地(di)與多核處理器、多任務系統配合,從而達到更高效IO處理的(de)(de)目(mu)的(de)(de)。

0條評論
0 / 1000
l****n
1文章數
0粉(fen)絲(si)數(shu)
l****n
1 文章(zhang) | 0 粉絲
l****n
1文章數
0粉絲數
l****n
1 文章 | 0 粉絲
原創

高速轉發,為云防火墻提供堅實基礎

2022-12-29 07:11:53
23
0

云(yun)防(fang)火墻(qiang)采用了(le)(le)DPDK提供的用戶態數據面進行收發包處理,繞過了(le)(le)Linux內(nei)核態協議棧(zhan),以提升報文(wen)處理效率(lv)。利用DPDK提供的一組(zu)lib庫和工(gong)具包集合,云(yun)防(fang)火墻(qiang)從以下六(liu)方面來優化轉發性能:

1、用戶態RCU鎖(suo)。

2、用戶態驅(qu)動(dong)。這種方式既規避了不(bu)(bu)必要的(de)內存(cun)拷貝又避免了系統(tong)調用。用戶態驅(qu)動(dong)不(bu)(bu)受限于內核(he)現(xian)有的(de)數(shu)據格式和行為定(ding)義。對mbuf頭格式的(de)重定(ding)義、對網卡DMA操作的(de)重新優化(hua)(hua)可以(yi)獲得(de)更好的(de)性能。而用戶態驅(qu)動(dong)也便于快速地迭(die)代優化(hua)(hua),甚至對不(bu)(bu)同場景進行不(bu)(bu)同的(de)優化(hua)(hua)組合。

3、親和性與獨占,DPDK工作(zuo)在(zai)(zai)用戶(hu)態,線(xian)程(cheng)的調(diao)度仍然依賴(lai)內核。利用線(xian)程(cheng)的CPU親和綁定的方式,特(te)定任務可以被指定只(zhi)在(zai)(zai)某個核上工作(zuo)。好處是可避免線(xian)程(cheng)在(zai)(zai)不同(tong)核間頻繁切(qie)(qie)換,核間線(xian)程(cheng)切(qie)(qie)換容易導致因(yin)cache miss和cache write back造成的大量性能損失。如果(guo)更進一步(bu)地限(xian)定某些核不參與Linux系統調(diao)度,就(jiu)可能使線(xian)程(cheng)獨占該核,保證更多cache hit的同(tong)時,也避免了同(tong)一個核內的多任務切(qie)(qie)換開銷。

4、降低訪(fang)(fang)存(cun)(cun)開銷(xiao),防火(huo)墻(qiang)是一(yi)種典(dian)型(xing)的(de)I/O密集型(xing)(I/O bound)工(gong)作(zuo)負載。無論是CPU指令還是DMA,對(dui)(dui)于(yu)內(nei)(nei)存(cun)(cun)子系統(tong)(Cache+DRAM)都(dou)會訪(fang)(fang)問(wen)頻(pin)繁(fan)。利用(yong)內(nei)(nei)存(cun)(cun)大(da)頁能(neng)有(you)(you)效降低TLB miss,比如利用(yong)內(nei)(nei)存(cun)(cun)多通道的(de)交錯訪(fang)(fang)問(wen)能(neng)有(you)(you)效提(ti)高內(nei)(nei)存(cun)(cun)訪(fang)(fang)問(wen)的(de)有(you)(you)效帶寬,再比如利用(yong)對(dui)(dui)于(yu)內(nei)(nei)存(cun)(cun)非對(dui)(dui)稱性(NUMA)的(de)感(gan)知(zhi)可以(yi)避免額外(wai)的(de)訪(fang)(fang)存(cun)(cun)延遲(chi)。

5、軟件調優(you)。這里包括一系(xi)列調優(you)實踐(jian),比如結構的cache line對(dui)齊(qi),比如數據在多核間訪問避免跨cache line共享,比如適時地預取數據,再如多元數據批(pi)量操作(zuo)。

6、充分挖掘網(wang)卡的潛能(neng),目前主流網(wang)卡往往都支持SR-IOV(Single Root Input/Output Virtualization, 單根(gen)I/O虛擬化)、RSS(Receive-Side Scaling, 接收(shou)方擴展(zhan))和硬件卸(xie)載(如(ru)Chksum,TSO等)功(gong)能(neng)。

1)SR-IOV

對于虛(xu)擬(ni)機(ji)方式部署(shu)的云防火(huo)墻,利用(yong)SR-IOV將一塊物理網卡呈現為一個(ge)PF(Physical Function,物理功能)和(he)多個(ge)VF(Virtual Function,虛(xu)擬(ni)功能),每個(ge)VF都有它們自己的獨立(li)PCI配(pei)置(zhi)空間(jian)、收發(fa)隊列、中斷等資源。宿主(zhu)機(ji)將一個(ge)或(huo)者多個(ge)VF透傳給虛(xu)擬(ni)機(ji)獨占(zhan)使(shi)用(yong),繞過(guo)Hypervisor模擬(ni)層以提高I/O性能。

2)RSS

簡單說,RSS就是(shi)讓(rang)多隊列(lie)網卡將數據包(bao)收(shou)發處理均(jun)勻地hash到(dao)多個核上。

其中哈希(xi)值的(de)(de)(de)(de)(de)計算公(gong)式在(zai)硬(ying)件中完成(cheng)的(de)(de)(de)(de)(de),網(wang)(wang)卡(ka)會(hui)根據不(bu)同(tong)(tong)的(de)(de)(de)(de)(de)數(shu)據包類(lei)型選取出不(bu)同(tong)(tong)的(de)(de)(de)(de)(de)關鍵字,比(bi)如(ru)IPV4 UDP包的(de)(de)(de)(de)(de)關鍵字就由四元組組成(cheng)(源IP地(di)(di)址(zhi)、目(mu)的(de)(de)(de)(de)(de)IP地(di)(di)址(zhi)、源端口(kou)(kou)號、目(mu)的(de)(de)(de)(de)(de)端口(kou)(kou)號)。另外,在(zai)云防火墻中,一個連接的(de)(de)(de)(de)(de)雙向流(liu)有(you)著相(xiang)似的(de)(de)(de)(de)(de)處(chu)理(li),自然就希(xi)望(wang)有(you)著對(dui)稱信(xin)息的(de)(de)(de)(de)(de)數(shu)據包都能進入同(tong)(tong)一個核(he)上(shang)處(chu)理(li),選用對(dui)稱哈希(xi)(Symmetric Hash)算法可以(yi)保證Hash(src,dst)= Hash(dst,src),避免不(bu)同(tong)(tong)核(he)之間的(de)(de)(de)(de)(de)數(shu)據同(tong)(tong)步消耗性能。RSS使得網(wang)(wang)卡(ka)更好地(di)(di)與多核(he)處(chu)理(li)器、多任務系統配合,從而達到(dao)更高(gao)效IO處(chu)理(li)的(de)(de)(de)(de)(de)目(mu)的(de)(de)(de)(de)(de)。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0