可以参考pktgen源码中的pktgen-master.sh pktgen-slave.sh脚本
假设服务器中绑定dpdk驱动的有两个网卡
Network devices using DPDK-compatible driver
============================================
0000:88:00.0 'Ethernet Connection X722 for 10GbE SFP+ 37d3' drv=vfio-pci unused=i40e
0000:99:00.0 'Ethernet Controller X710 for 10GbE SFP+ 1572' drv=vfio-pci unused=i40e
pktgen -l 2-10 -n 3 --proc-type auto \
--socket-mem 512,512 --file-prefix pg1 \
-b 0000:99:00.0 -- \
-T -P -m "[4:6].0" \
-f themes/black-yellow.theme
pktgen -l 11-20 -n 3 --proc-type auto \
--socket-mem 512,512 --file-prefix pg2 \
-b 0000:88:00.0 -- \
-T -P -m "[12:16].0" \
-f themes/black-yellow.theme
重点关注--proc-type auto和-b 0000:88:00.0( -w 白名单指定你要使用的网卡也是可以的),--file-prefix
--proc-type auto 是dpdk支持同时运行多进程的配置
-b 0000:88:00.0的意思是黑名单,就是不用这个网卡,上面第一条命令其实用的0000:88:00.0这个网卡,第二条命令用的是0000:99:00.0这个网卡
--file-prefix:这个参数在多进程时(多个primary),参数必须不一样
pktgen多实例其实用的就是dpdk的多进程原理,详细参考https://blog.csdn.net/shaoyunzhe/article/details/78840419