DPDK 多进程支持总结
来源:互联网 发布:大观园网络电视 编辑:程序博客网 时间:2024/06/03 22:30
DPDK库里是支持多进程和多线程,本文主要总结多进程的相关的操作。
DPDK多进程使用的关键启动参数:
- --proc-type:指定一个dpdk进程是主进程还是副进程(参数值就用上面的primary或是secondary,或者是auto)
- --file-prefix:允许非合作的进程拥有不同的内存区域。主副进程默认文件路径/var/run/.rte_config,同一个处理组的主副进程使用相同的参数,
如果想运行多个主进程,这个参数就必须指定! - --socket-mem:设置从hugepages分配多大的存储空间。默认会用掉所有的hugepages,所以建议指定这个参数,不管是单cpu还是在NUMA中。
eg:单socket,--socket-mem=512;在numa中,--socket-mem=512,512;多个socket间用‘,’号隔开; - -w : 后面跟网卡的PCI号,指定使用网卡。设置了这参数,DPDK只会使用这个参数对应的网卡,不会初始化其他的。
在Multi-process Sample Application中介绍了4种使用场景:
- Basic Multi-process Example,DPDK进程间通过ring,内存池,队列,进行信息交互。
- Symmetric Multi-process Example,主进程初始化所有资源,副进程直接获取资源进行数据包处理,副进程除了不初始化资源,数据包处理和主进程是一样的。每个进程获取每个端口的一个RX, TX队列。
- Client-Server Multi-process Example,主进程初始化资源和接收所有收到的数据包并轮询分发给副进程处理。
- Master-slave Multi-process Example,这个模式主要是介绍各进程之间存在依赖关系,主进程和副进程,副进程和副进程之间。
但是根据业务需要,还要支持一种场景,就是在一个服务器里,需要启动多个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
阅读全文
0 0
- DPDK 多进程支持总结
- DPDK-MULTI-PROCESS SUPPORT 多进程支持
- dpdk支持的网卡
- dpdk支持的网卡
- dpdk多进程示例解读(examples/multi_process/simple_mp)
- dpdk多进程示例解读(examples/multi_process/simple_mp)
- 用DPDK rte_ring实现多进程间通信
- ovs+dpdk测试总结
- ovs+dpdk测试总结
- dpdk LRO功能总结
- dpdk cache 总结
- dpdk总结【持续更新】
- DPDK中文-查看dpdk是否支持该网卡
- SharedPreferences支持多进程
- ovs+dpdk bond功能总结
- dpdk对虚拟化支持研究
- dpdk学习之多进程simple_mp源代码分析
- dpdk之多进程client_server_mp源代码分析
- Grafana最新版本4.3.1安装(后端使用mysql)
- java注解
- database:mysql.h: No such file or directory
- 实时改变配置文件的思路
- 蓝桥杯 特殊回文数
- DPDK 多进程支持总结
- 理解spring父子容器
- RPN 区域推荐网络
- leetcode 670. Maximum Swap
- String、StringBuffer、StringBuilder区别
- 显示调用动态链接库
- tensorflow API: tf.concat
- 首届“奥威杯”大数据创新应用大赛圆满举行!
- K近邻算法