
【嵌牛导读】DPDK是INTEL公司开发的一款高性能的网络驱动组件,旨在为数据面应用程序提供一个简单方便的,完整的,快速的数据包处理解决方案,主要技术有用户态、轮询取代中断、零拷贝、网卡RSS、访存DirectIO等
【嵌牛鼻子】计算机网络,高性能网络,DPDK
【嵌牛提问】读完本文,对DPDK技术的skeleton程序有所认识了吗?
【嵌牛正文】
在rte_mempool_create创建内存池时,还会创建一个ring,这个ring队列用来管理内存池中的每个对象元素的:记录内存池中哪些对象使用了,哪些对象没有被使用
当初始化好一个对象元素后,会将这个对象元素放到这个ring队列中,在所有元素都初始化完成后,此时ring队列存放了内存池上所有的对象元素
需要注意的是ring队列存放的是对象元素的指针而已,而不是对象元素本身的拷贝
本地缓存策略:mempool的对象存放在rte_ring中,当mempool所在NUMA节点上的多个lcore都需要通过这个ring来访问内存对象时,CAS(compare-and-set) *** 作会影响效率。为了解决这个问题,mempool为每个lcore维护了一个本地缓存(local cache),lcore需要取出对象时,优先在这个cache取,如果不够,再从ring上拿
DPDK为多核设计,但skeleton为单核实例,设计初衷是实现一个最简单的报文收发示例,程序可用于平台的单核报文出入性能测试。对收入报文不做任何处理直接发送,是基础的二层转发工具:将偶数个网口进行配对,从0接收到的包转发到1口中,从1接收到的包转发到0口中,以此类推
入口main函数调用rte_eal_init初始化运行环境,检查网络接口数,据此调用rte_pktmbuf_pool_create分配内存池,随后调用port_init初始化网卡并配置,最后调用lcore_main进行主处理流程
对指定端口设置队列数,在本程序示例中,只指定单队列。随后,在收发两个方向上,基于端口与队列进行配置设置,缓冲区进行关联设置
具体 *** 作如下:1.把win7的ISO解压到硬盘里,然后把里面的三个文件“boot,bootmgr,sources”复制到C盘里。2.然后开始菜单-运行-输入命令cmd。3.然后再输入“c:\boot\bootsect.exe/nt60c:”注意exe和nt60后面有空格,然后回车重启电脑从硬盘启动。4.装好后有个windows设置启动,以管理员身份打开命令提示符输入msconfig打开系统配置对话框,选择引导标签,选择要删除的引导项目删除即可。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)