一. 介绍
在DPDK中,多进程支持旨在允许一组DPDK进程以简单的透明方式协同工作,来处理数据包或其他工作负载。为了支持此功能,已经对核心DPDK环境抽象层(EAL)进行了一些增加。
EAL已被修改为允许不同类型的DPDK进程被产生,每个DPDK进程在应用程序使用的hugepage内存上具有不同的权限。 现在有两种类型的进程指定:
a.主进程,他能初始化和拥有共享内存的所有权限;
b.辅进程,不能初始化共享内存,但是能访问已初始化的共享内存和在其中创建对象。
独立DPDK进程是主进程,而辅助进程只能与主进程一起运行,或者主进程已经为其配置了hugepage共享内存。
为支持这两种进程类型,以及后面描述的多进程设置,EAL提供了附加的命令行:
--proc-type: 为进程指定类型,是主或辅。
--file-prefix:允许不想合作的进程有不同的内存区域。
1.共享内存
使用dpdk来开发多进程应用程序的关键是保证内存资源能够在多个进程之间正确的使用。一旦在多个进程间有共享的内存块访问,那面多个进程内部通讯(IPC)将变得相当简单。
在主进程或独立进程中的应用程序启动时,DPDK将内存配置文件的详细信息记录到内存映射文件 - 使用的hugepages,映射的虚拟地址,存在的内存通道数等。当从进程启动时,这些文件被读取,并且EAL在从进程中重新创建相同的内存配置,以便所有内存区域在进程之间共享,并且所有指向该内存的指针都是有效的,并且指向相同的处理对象。
2.开发模式
2.1对称/对等进程</