DPDK库里是支持多进程和多线程,本文主要总结多进程的相关的操作。
DPDK多进程使用的关键启动参数:
在Multi-process Sample Application中介绍了4种使用场景:
但是根据业务需要,还要支持一种场景,就是在一个服务器里,需要启动多个DPDK主进程(primary),每个DPDK进程绑定一个网卡(可以是VF)。DPDK进程之间没有关系。
假如在单CPU上启动三个DPDK程序,启动参数示例:
#./dpdk -c 1 -n 4 --proc-type=primary --socket-mem=512 --file-prefix=var/run/.test1_config -w 0000:01:00.0
#./dpdk -c 2 -n 4 --proc-type=primary --socket-mem=512 --file-prefix=var/run/.test2_config -w 0000:01:00.1
#./dpdk -c 4 -n 4 --proc-type=primary --socket-mem=512 --file-prefix=var/run/.test3_config -w 0000:01:00.2
在NUMA中(两个CPU)
#./dpdk -c 1 -n 4 --proc-type=primary --socket-mem=512,512 --file-prefix=var/run/.test1_config -w 0000:01:00.0
#./dpdk -c 2 -n 4 --proc-type=primary --socket-mem=512,512 --file-prefix=var/run/.test2_config -w 0000:01:00.1
#./dpdk -c 4 -n 4 --proc-type=primary --socket-mem=512,512 --file-prefix=var/run/.test3_config -w 0000:01:00.2