UIO是在用戶空間實現驅動程序的支持機制。DPDK使用UIO機制,使網卡驅動(主要是intel自己的千兆igb和萬兆ixgbe驅動)運行在用戶態,通過輪詢和零拷貝的方式從網卡收集消息,從而提高發送和接收消息的性能。
HUGEPAGE的主要好處是通過使用大內存頁來提高內存使用效率。DPDK構建了壹個基於HUGEPAGE機制的內存管理系統,以提高應用程序處理消息的性能。
CPU親和機制主要是讓每個CPU做自己的事。DPDK使用CPU親和機制將控制平面線程和各個數據平面線程綁定到不同的CPU內核,節省了重復調度的性能消耗。它的工作模式類似於壹個CPU核綁定壹個無限循環的線程專註於自己的事業。比如eth0和eth1兩個網卡接收數據包,可以讓cpu0集中在eth0,cpu1集中在eth1。cpu0不需要壹次處理eth0,壹次處理eth1,提高了多核cpu的使用效率。
所以從這個角度來說,DPDK並不深刻,用的東西都是Linux本身提供的特性,還有額外的內存池和環形緩存。雖然包裝的很好,但是都是常用的,經常接觸的技術。