1. 程式人生 > >使用DPDK l3fwd測試硬體吞吐效能

使用DPDK l3fwd測試硬體吞吐效能

作業系統版本:centOS6.4

DPDK版本:2.2.0

硬體裝置:某硬體廠商,四顆物理CPU,16個萬兆光口。

一:編譯l3fwd

官網下載dpdk-2.2.0.tar.gz,解壓 tar xvf dpdk-2.2.0.tar.gz

進入DPDK目錄,cd dpdk-2.2.0/

首先編譯x86_64-native-linuxapp-gcc,進入dpdk-2.2.0/tools,執行setup.sh,選擇14  [14] x86_64-native-linuxapp-gcc,這一步是為了生成igb_uio.ko,和後續編譯l2fwd/l3fwd準備。

編譯完成後,進入dpdk-2.2.0/examples/l3fwd,執行make即可生成可執行檔案l3fwd

二:執行l3fwd

編譯完成後,並不能立即執行l3fwd,首先需要載入dpdk的驅動igb_uio.ko,配置大頁記憶體的操作。

(1)載入igb_uio.ko,進入dpdk-2.2.0/x86_64-native-linuxapp-gcc/kmod,執行命令

         modprobe uio

         insmod igb_uio.ko

(2)配置大頁記憶體:執行命令

       mkdir -p /mnt/huge

       mount -t hugetlfbs nodev /mnt/huge

       echo 1024 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages

   可以通過cat /proc/meminfo 檢視大頁記憶體是否配置成功,另外也可以通過vi /etc/grub.conf來配置大頁記憶體

(3)繫結網口,可以通過dpdk-2.2.0/tools/dpdk_nic_bind.py檢視哪些網口被DPDK驅動使用,哪些被核心驅動使用,

可以看到igb_uio已經綁定了四個網口

可以執行l3fwd了,輸入命令

./l3fwd -c fffffffffff -n4 -- -p 0xf -P --config="(0,0,1)(0,1,2)(1,0,8)(1,1,9)(2,0,16)(2,1,17)(3,0,24)(3,1,25)" 

引數說明:該硬體裝置有四個CPU socket,使四個網口繫結到四個不同的CPU socket上,每個網口起兩個佇列,繫結兩個CPU的核。

        注意:PCI插槽對應不同的socket,如果綁錯了,會導致測試效能降低

也可以使用l3fwd進行一個網口的自發自收,命令:l3fwd -cff -n 4 -- -p0x1 -P --config=“(0,0,1),(0,1,2),(0,2,3),(0,3,4)”

三:打流量測試

    本次測試使用思博倫測試儀,2544測試用例,使用萬兆光口測試,連線到四個網口上。

    思博倫配置說明:選擇自發自收,因為之前網絡卡綁到了不同的CPU上,跨CPU轉發包會導致測試效能降低。

 

測試結果,可以看到使用DPDK後,硬體轉發報文的效能得到極大提升