Vmware搭建DPDK測試平臺
虛擬機器硬體配置:
CPU: 4Core
記憶體: 4G
關機狀態下新增兩塊網絡卡
修改虛擬機器配置:
修改檔案:DPDK-FWD.vmx
hpet0.present = "true"
numa.vcpu.maxPerVirtualNode = "1"
ethernet1.virtualDev = "vmxnet3" #e1000e只支援網絡卡單佇列,vmxnet3支援網絡卡對佇列,DPDK_18_05_1也支援此網絡卡
ethernet1.wakeOnPcktRcv = "true"
ethernet2.virtualDev = "vmxnet3"
ethernet2.wakeOnPcktRcv = "true"
Linux版本需求:
Linux發行版本: CentOS Linux release 7.3.1611 (Core)
Linux核心版本:3.10.0-514.el7.x86_64
設定hugepage及隔離CPU:
檔案:/boot/grub2/grub.cfg
在linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=en_US.UTF-8這一行後新增隔離命令:
物理機:
default_hugepages=1G hugepagesz=1G hugepages=20 isolcpus=0-7
虛擬機器:
default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2
具體大小視情況而定。重啟虛擬機器,使得hugepage和isocpus配置生效。
DPDK l3fwd啟動測試:
1. 載入核心模組:
modprobe uio
insmod igb_uio.ko
2. 將網絡卡與原有驅動解綁:
./dpdk-devbind.py -u 03:00.0
./dpdk-devbind.py -u 0b:00.0
3. 將網絡卡繫結到IGB_UIO中:
./dpdk-devbind.py -b igb_uio 03:00.0
./dpdk-devbind.py -b igb_uio 0b:00.0
4. 啟動l3fwd
./build/l3fwd -c 0x7 -n 1 -w 03:00.0 -w 0b:00.0 -- -p0x3 --config "(0,0,1),(0,1,2),(1,0,1),(1,1,2)" -P --parse-ptype
e1000e網絡卡使用異常命令無法啟動的原因:
e1000e是單佇列的網絡卡,-c 0x7表示有3個核,需要建立三個tx佇列,因此會建立失敗。使用vmxnet3多佇列網絡卡即可。