虚拟机硬件配置:
CPU: 4Core内存: 4G关机状态下新增两块网卡修改虚拟机配置:
修改文件:DPDK-FWD.vmxhpet0.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 uioinsmod igb_uio.ko2. 将网卡与原有驱动解绑:
./dpdk-devbind.py -u 03:00.0./dpdk-devbind.py -u 0b:00.03. 将网卡绑定到IGB_UIO中:
./dpdk-devbind.py -b igb_uio 03:00.0./dpdk-devbind.py -b igb_uio 0b:00.04. 启动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-ptypee1000e网卡使用异常命令无法启动的原因:
e1000e是单队列的网卡,-c 0x7表示有3个核,需要建立三个tx队列,因此会建立失败。使用vmxnet3多队列网卡即可。