91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用DDP技術提升Tungsten Fabric vRouter性能

發布時間:2020-08-10 20:55:08 來源:ITPUB博客 閱讀:218 作者:TF中文社區 欄目:互聯網科技

在剛剛結束的“2020虛擬開發人員和測試論壇”上,來自瞻博網絡的工程師Kiran KN和同事,介紹了在Tungsten Fabric數據平面上完成的一組性能改進(由Intel DDP技術提供支持),以下為論壇技術分享的精華:

利用DDP技術提升Tungsten Fabric vRouter性能
作為DPDK應用的vRouter

利用DDP技術提升Tungsten Fabric vRouter性能

在深入到DDP技術之前,首先介紹一下vRouter,它是什么,以及在整個Tungsten Fabric框架中的位置。
 

實際上,vRouter可以部署在常規X86服務器上,也可以在OpenStack或K8s的計算節點當中。vRouter是主要的數據平面組件,有兩種部署的模式,分別是vRouter:kernel module,以及vRouter:DPDK模式。

  利用DDP技術提升Tungsten Fabric vRouter性能


在用DPDK改善性能之前,此用例將涉及DPDK應用和vRouter。vRouter的職責是數據平面,用于數據包轉發和由vRouter代理在計算節點上編程的數據包轉發,但實際上,整個配置是通過控制器上的XMPP提供的。我們使用XMPP通過vRouter agent與控制器通信,并且有一個專門的接口來對vRouter數據平面進行編程以轉發軟件包。
 
在DPDK中,vRouter是一個高性能、多核和多線程的應用程序,這里想強調一下,它是專用于多核的DPDK應用,我們需要尋找多核的正確用法。
 
我們可以從示例中看到,網卡具有與vRouter相同數量的隊列,已為數據包或鏈接分配了核心。
 
首先,數據包需要由網卡平均地分配到所有路由器轉發核心。為此,使用了帶有5元組哈希的算法,在所有內核之間正確分配流量。而且,適當的負載平衡是基于數據包的,并且要實現該數據包需要具有5元組,多個源的目標端口IP地址。如果該協議正確,則該協議可以確定所有內核之間的流量平均分配,并且我們可以利用它分配給vRouter DPDK的所有內核的性能。盡管此流量包分布在各個處理內核上,但可以通過TX接口隊列,將它們適當地放置到虛擬機中。
 
如果此流量在各個內核之間沒有得到適當的平衡,則vRouter將在沒有內核的情況下進行重新平衡,但是對于內核來說,通過內核重新哈希化它們的代價很高,這意味著它們會消耗CPU周期并帶來額外的延遲。
 
這就是我們面臨的問題,但在今天得到了很大程度的解決,我們可以期待網卡能夠完成此任務,并適當地平衡vRouter核心之間的流量。

  利用DDP技術提升Tungsten Fabric vRouter性能


也就是說,具有MPLSoGRE的計算類型沒有足夠的熵(entropy)。由于熵的存在,我們的報頭中沒有足夠的信息,或無法正確平衡數據包的負載。
 
具體來說,數據包應該具有完整的端口信息,包含完整的5個要素,即源IP、目標IP、源端口、目標端口和協議。但是在MPLSoGRE只有源IP、目標IP和協議三元組信息。因此,網卡無法適當地平衡數據包的負載,由于該CPU內核,一對計算節點之間的所有數據包都落在瓶頸中的同一區域,這將導致網卡隊列成為整個計算的瓶頸,并且性能受到影響。
 
例如,假設一對計算節點之間有數千個流(flows)。理想情況下,我們希望將流平衡分布在所有的內核上,以便可以由不同的CPU將其拾取,以進行數據包處理。但是對于MPLSoGRE,已知端口的信息沒有足夠的熵,來自特定計算節點的所有數據包都會發生,即使有很多流量,網卡也不會將它們分發到所有隊列。因此,這里不再像我們所知道的那樣,實際上數據包不會像這樣分散在多個內核中,它只會分配給一個內核。

因此,盡管有很多CPU內核,但由于所有數據包必須經過C1,C1本質上成為了瓶頸。數據包無法直接流經C2、C3、C4,是因為它們沒有在硬件上加載,所有其它內核必須從C1獲取數據包,顯然C1將會過載。
利用DDP技術提升Tungsten Fabric vRouter性能

引入DDP消除瓶頸


利用DDP技術提升Tungsten Fabric vRouter性能

我們為Tungsten Fabric數據平面引入了一項新功能,該功能消除了MPLSoGRE數據包的瓶頸,使得性能與CPU內核數成正比。這意味著沒有單個CPU內核會成為瓶頸,并且網卡硬件將數據包平均分配給所有CPU內核。
 
我們的解決方案由Intel DDP(dynamic device personalization)技術提供支持,使用以太網700系列的產品來提供。英特爾轉向可編程管線模型后,確保它們引入了諸如固件可升級之類的功能,DDP允許在運行時動態重新配置網卡中的數據包處理管道,而無需重啟服務器。軟件可以將自定義配置文件應用到網卡,我們可以將這些配置文件視為附件,可以由最終用戶自己構建。這些配置文件可以通過軟件刷新到網卡上,以便它們可以開始在線識別和分類新的數據包類型,并將這些數據包分配到不同的Rx隊列。

這是MPLSoGRE實施的情況,首先是這是一個沒有DDP提取功能的MPLSoGRE數據包,它沒有獲得在當前數據包中聽到的內部實際存在的啟動信息,因此它沒有足夠的信息來正確分配數據包。在第二個圖例中啟用了DDP,配置文件便可以開始識別內部數據包標頭,以及內部IP標頭和內部UDP標頭,因此它可以開始使用該信息來計算哈希。
 
如何使DDP成為最終用戶需要為其數據包類型創建配置文件的方式?
 
可以通過使用Intel的配置文件編輯器(profile editor)工具來創建,Intel在其上發布了一些標準配置文件,可以直接從Intel網站下載。配置文件編輯器可用于創建新條目,或者修改分析器的現有條目,這是第1步。第2步,為MPLSoGRE數據包創建一個新的配置文件,該配置文件在不同的層上定義數據包頭的結構。第3步,是編譯并創建一個二進制程序包,可以應用于網卡。第4步,我們可以使用DPDK API在每個工具接口將這些配置文件加載到網卡。接下來第5步,網卡就能夠識別MPLSoGRE數據包。

利用DDP技術提升Tungsten Fabric vRouter性能

利用DDP技術提升Tungsten Fabric vRouter性能

對性能提升的測試及確認


利用DDP技術提升Tungsten Fabric vRouter性能

接下來,我們需要測試并確認,DDP可以提供幫助帶來性能提升。
 
首先,我們的測試框架廣泛用于開發和測試vRouter。我們使用代理方式以擁有快速概念驗證的能力,并收集信息。測試vRouter性能的所有方法,包括封裝和計算節點之間的封裝,并且總是會包含overlay網絡,就像在圖例中的所看到的那樣,我們通過第三個對象(rapid jump VM),該對象只有控制流量(不通過其它任何流量),向VM發送指令并收集信息。為了實現測試目標,我們采用丟包率只有0.001%的二進制搜索,使用標準的測試框架和規范。
 
在vRouter中,我們可以找到腳本,顯示每個內核CPU數據包處理的統計信息,以證明網卡正確地集中了所有內核之間的流量。這些統計信息來自VM0接口,這意味著連接與物理網卡之間的接口。
 
在左側,你可以看到內核1沒有在處理軟件包,這實際上意味著該內核未接收到任何由vRouter處理的軟件包。此內核只是忙于輪詢程序包,并在vRouter上的其它可用內核之間分配程序包。這意味著vRouter將成為瓶頸,因為首先需要將所有進入vRouter的流量從網卡隊列中拉出,然后將其進行重新分配(跨其它核心)以轉發到VM。
 
而在右側,你可以看到使用DDP的網卡已經正確分配了流量,Rx隊列中所有內核之間的流量幾乎相等。證明網卡完成了自己工作,并平均分配了流量。
 
可以看到,是否使用DDP,在性能結果中統計數據上的差別。在不大于3個內核的情況下,使用DDP并沒有得到任何好處——因為對于輪詢內核和跨內核重新分配流量,目前網卡處理這樣的隊列還是足夠快的。
 
但是一旦增加內核數量,然后提高整體性能,那么網卡就成為了瓶頸——在沒有DDP的情況下性能不會提高,即使增加了內核數也是如此,因為總有一個內核在拉動流量,并且你可以看到,在沒有DDP的部分中6.5mpps左右是一個內核從網卡隊列中輪詢的最大值。
 
利用DDP技術提升Tungsten Fabric vRouter性能

隨著內核的數量增加,每個內核都從網卡接收了相同數量的流量。一旦內核數量超過6個,則收益將變得更高。正如我們所看到的,具有6個內核的增益大約為73%,這確實是個很酷的數字。不僅可以提高性能,使用DDP還可以得到更好的降低延遲。這是因為我們不需要平衡內核之間的流量,也不需要計算每個數據包的哈希值。在vRouter上,這將由網卡完成,收益的增加平均為40%,最多為80%,這已經是非常棒的數字了

綜上,對于擁有多個內核的用例,我們可以借助DDP技術獲得很大的收益。另外,對于5G用例而言,DDP能夠減少延遲這一點非常重要。在所有我們希望使用MPLSoGRE情況下,借助vRouter,我們已經準備好在多核中進行5G應用部署。
 
【本文相關資料pdf文檔下載】

https://tungstenfabric.org.cn/assets/uploads/files/tf-vrouter-performance-improvements.pdf 

視頻鏈接

https://v.qq.com/x/page/j3108a4m1va.html

利用DDP技術提升Tungsten Fabric vRouter性能

利用DDP技術提升Tungsten Fabric vRouter性能

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

迁安市| 拉孜县| 临湘市| 广德县| 太原市| 垦利县| 垫江县| 岐山县| 汨罗市| 淮阳县| 济南市| 乐平市| 广平县| 海丰县| 英超| 霞浦县| 军事| 农安县| 监利县| 泸州市| 禄丰县| 克什克腾旗| 许昌市| 南江县| 疏勒县| 文化| 荔波县| 化德县| 临西县| 奉化市| 石景山区| 共和县| 若尔盖县| 宣威市| 彭泽县| 锡林浩特市| 肥西县| 丹凤县| 镇原县| 枣庄市| 太仓市|