DPDK簡介

DPDK是什麼

Intel® DPDK全稱Intel Data Plane Development Kit,是intel提供的數據平面開發工具集,爲Intel architecture(IA)處理器架構下用戶空間高效的數據包處理提供庫函數和驅動的支持,它不同於Linux系統以通用性設計爲目的,而是專注於網絡應用中數據包的高性能處理。具體體現在DPDK應用程序是運行在用戶空間上利用自身提供的數據平面庫來收發數據包,繞過了Linux內核協議棧對數據包處理過程。

DPDK的優點

性能高
用戶態開發
死後易重啓

DPDK的缺點

無網絡協議棧
開發困難,週期長

DPDK架構

DPDK、網卡、用戶應用程序、內核之間的關係。DPDK在網卡收到包後繞過內核直達用戶空間。

這裏寫圖片描述

DPDK各個組件詳細的介紹

這裏寫圖片描述

DPDK核心思想

• 用戶態模式下的PMD Driver
– 去除了中斷影響,減少了操作系統內核的開銷,消除了IO吞吐瓶頸;
– 避免了內核態和用戶態的報文拷貝;用戶態下軟件崩潰,不會影響系統的穩
定性;
– Intel提供的PMD驅動,充分利用指令和網卡的性能;
• HugePage和m_buf管理
– 提供2M和1G的巨頁,減少了TLB Miss,TLB Miss嚴重影響報文轉發性能;
– 高效的m_buf管理,能夠靈活的組織報文,包括多buffer接收,分片/重組,
都能夠輕鬆應對;
• Ring
– 無鎖化的消息隊列,實際驗證,性能充足;
• 向量指令
– 明顯的降低內存等待開銷,提升CPU的流水線效率。

DPDK核心組件

這裏寫圖片描述

DPDK KNI模型

KNI(Kernel Interface)機制是爲了讓數據包重入內核協議棧,通過創建虛擬設備用於收發報文以達到利用內核本身已實現協議的目的。幾個例子。如果利用DPDK做DNS服務器,那麼對於TCP報文來說是沒有必要處理的。完全可以原有的內核協議棧來處理。如果自己實現TCP的協議棧會很複雜。

這裏寫圖片描述

其他好玩的東西

待補充。…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章