然后根据服务器类型和网卡类型选择就可以
第一步: x86_64-native-linuxapp-gcc
第二步: Insert IGB UIO module
第三步: Setup hugepage mappings for NUMA systems
第四步: Bind Ethernet/Crypto device to IGB UIO module
但是遇到问题1:
/bin/sh: cc: 未找到命令 ,已解决
原因 没有安装gcc
在线安装gcc即可
然后就可以继续安装了
遇到问题2: 安装IGB UIO module遇到的问题
kernel版本不匹配
查看安装的kernel版本:
查看我的版本 uname -r
rpm命令查看我所安装的内核版本 rpm -qa kernel
然后进行调整,具体可以 参考
然后就可以运行dpdk自带的example中的样例了
如何运行example中的样例呢:
DPDK主要使用了UIO、HUGEPAGE和CPU Affinity机制三个技术点来提高高速网络数据的处理性能。UIO是实现用户空间下驱动程序的支撑机制,DPDK使用UIO机制使网卡驱动程序(主要是intel自身的千兆igb与万兆ixgbe驱动程序)运行在用户态,并采用轮询和零拷贝方式从网卡收取报文,提高收发报文的性能。
HUGEPAGE的主要好处是通过利用大内存页提高内存的使用效率,DPDK在HUGEPAGE机制上构建内存管理系统,提高应用程序处理报文的性能。
CPU Affinity机制主要是让各个CPU各自干自己的事情,DPDK使用CPU Affinity机制将控制面线程以及各个数据面线程绑定到不同的CPU核,节省反复调度的性能消耗。其工作模式类似于一个CPU核绑定一个死循环线程,专心处理各自的业务。比如两个网卡eth0和eth1都收包,可以让cpu0专心处理eth0,cpu1专心处理eth1,没必要cpu0一下处理eth0,一下又处理eth1,这样就提高了多核CPU的使用效率。
所以,这样看来,DPDK并不高深,用到的东西也都是Linux本身提供的特性,还有额外的内存池、环形缓存等,虽然封装得很好,但都是比较常用经常接触的技术。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)