VPP初學筆記(一)


VPP是什么?

Vector Packet Processing (VPP) ,詳細概念可參考網站https://wiki.fd.io/view/VPP,這里僅為了學習效果記錄關鍵點,並便於日后復習。
根據該英文網站內容的中文翻譯可參考網站https://www.pianshen.com/article/65971780497/
為什么叫做向量包處理呢?怎樣理解向量處理?
我們提出或者研究一項新的網絡處理技術都是希望它能夠更快的處理數據包(更快、更高、更強是人類的永恆追求),那么向量包處理也正是這個目的。眾所周知,我們一般都是通過提高並發處理量來提高包處理效率。並行計算將要解決的問題分解為很多小問題,每個小問題可以被同時獨立的進行計算。通過這種方式,問題分發給不同的處理元素,每個處理元素同步的執行其中一個子問題,會顯著的增加計算的速度。如何通過這種方式處理事件呢?兩個很好的方案分別是多核處理器,和本文提到的向量處理器。
什么是多核處理器?一個多核處理器是一個獨立計算組件,通過使用多個串行處理器來執行並行計算,每個串行處理器執行一個不同的計算,這些計算同步進行。也就是說,一個大問題的每個子問題都由一個獨立的處理器去計算以達到並行的效果。就像多個人執行一個大項目,每個人處理一個不同的任務,但都同時為同一個項目在作出貢獻。這一點可能需要其他的組織來實現,不過項目的整體速度是加快了。

什么是向量處理器?向量處理器計算指令的方式與串行處理器一致,但是串行處理器只能處理單一數據集,而向量處理器可以直接操作一維數組(向量)指令集。其基本思路是,如果你正在一個程序中反復多次的做同一件事,每次使用不同的數據集,通常思路是對每個數據集執行一個獨立的指令,向量處理器是對所有數據集只執行一次指令即可。SIMD(單指令多數據)通常用於表示指令按照這種方式工作。

多核處理器和向量處理器有何不同?這里通過一個例子來說明,可以忘記上面描述的一切,記住這個例子即可。假設我們想要將四個大石頭滾到馬路的另一邊,平均滾動每個石頭需要花費1分鍾。串行處理器會逐一的滾動每個石頭,將花費4分鍾時間。擁有兩個核的多核處理器讓兩個人去滾石頭,即每人滾兩個,最終花費2分鍾。向量處理器找一根長木板,放到四個大石頭后面,推木板即可同時滾動四個石頭,最終只需要1分鍾。多核處理器相當於擁有多個工人,而向量處理器擁有一種方法,可以同時對多件事進行相同的操作。

VPP技術特色

由於向量報文中的第一個報文packet-1為I-cache進行了熱身,向量報文中剩下報文的處理性能可以直接達到極限,I-cache 缺失的固定開銷平攤到了整個向量處理中,使單個報文的處理開銷顯著降低。由此可見,向量報文處理解決了標量處理的主要性能缺陷,和並行計算相比有具有如下優點:

  1. 解決了I-cache抖動問題
  2. 向量報文進行預取緩解了讀時延問題,高性能並且更加穩定

服務的易插件化

VPP平台的圖節點graph node組織方式,使用戶可以根據需求,通過plugin方式插入新的圖節點或者重新排列圖節點,擴展非常方便,也不會影響原有核心處理流程。

VPP怎么用?

VPP平台可以用於作為虛擬路由器或者虛擬交換機來使用。它支持很多標准的網絡功能(L2 switching, L3 routing, NAT, encapsulations),並便於使用插件來進行擴展。 VPP平台使您可以通過命令行界面(CLI)管理這些應用程序的某些功能和配置。並和本地的程序、遠程程序或者通過本地ODL和外部進行協作。如果是VDP與DPDK集成在一起,需要選擇一定型號的NIC設備即網卡並在特定的OS架構上進行。我用的centos7.8+intel ixgbe網卡(X-540T2)
它不僅可以支持單個應用,還可以用於opendaylight等VNF(virtaul network function)場景和雲計算網絡環境。更多VPP的使用場景可以參考https://fd.io/overview/usecases/

VPP性能

VPP平台已顯示提供以下近似性能指標:

  • 來自單個x86_64內核的多個MPPS
  • 單個物理主機上> 100Gbps全雙工
  • 多核擴展基准測試示例(在UCS-C240 M3上,3.5 gHz,轉發了所有內存通道,簡單的ipv4轉發):
    • 1個核心:9 MPPS進出
    • 2核:13.4 MPPS進出
    • 4核:20.0 MPPS進出

和OVSDPDK的路由轉發性能相比,當路由條數從10條上升到1K條再到100K、2M條時VPP的轉發性能並不會想OVSDPSK一樣下降,而是基本保持線性水平。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM