DPDKL2fwd代码走读报告(代码流程分析)课件.docx

DPDKL2fwd代码走读报告(代码流程分析)课件.docx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DPDKL2fwd代码走读报告(代码流程分析)课件

****DPDK 学习L2 fwd代码走读报告导师:*** 学生:*** 2016-2-18  目录  TOC \o 1-3 \h \z \u  HYPERLINK \l _Toc443582088 一、对于DPDK的认识:  PAGEREF _Toc443582088 \h 2  HYPERLINK \l _Toc443582089 二、对L2 fwd的认识:  PAGEREF _Toc443582089 \h 3  HYPERLINK \l _Toc443582090 2.1运行配置  PAGEREF _Toc443582090 \h 3  HYPERLINK \l _Toc443582091 2.2运行环境搭建  PAGEREF _Toc443582091 \h 4  HYPERLINK \l _Toc443582092 2.3功能分析:  PAGEREF _Toc443582092 \h 6  HYPERLINK \l _Toc443582093 2.4详细流程图(调用关系)如下:  PAGEREF _Toc443582093 \h 6  HYPERLINK \l _Toc443582094 2.5运行截图  PAGEREF _Toc443582094 \h 8  HYPERLINK \l _Toc443582095 2.6详细代码注释分析:  PAGEREF _Toc443582095 \h 8  一、对于DPDK的认识: 主要应用x86通用平台,转发处理网络数据包,定位在不需要专用网络处理器,但通用网络处理器对数据处理性能又不能满足需求的客户。 DPDK,搭载x86服务器,成本变化不大,但对数据的处理性能又有非常显著的提高,对传统linux技术做一定的优化,特别之处在于:hugepage,uio,zero copy, cpu affinity等。 关于hugetlbpage(在这块大页面上做自己的内存管理系统),之前讲过,它的主要好处当然是通过利用大内存页提高内存使用效率,。由于DPDK是应用层平台,所以与此紧密相连的网卡驱动程序(当然,主要是intel自身的千兆igb与万兆ixgbe驱动程序)都通过uio(用户层驱动、轮询、0拷贝)机制运行在用户态下。cpu affinity(多核架构,核线程绑定物理核)机制是多核cpu发展的结果,,在越来越多核心的cpu机器上,如何提高外设以及程序工作效率的最直观想法就是让各个cpu核心各自干专门的事情,比如两个网卡eth0和eth1都收包,可以让cpu0专心处理eth0,cpu1专心处理eth1,没必要cpu0一下处理eth0,一下又处理eth1,还有一个网卡多队列的情况也是类似,等等,DPDK利用cpu affinity主要是将控制面线程以及各个数据面线程绑定到不同的cpu,省却了来回反复调度的性能消耗,各个线程一个while死循环,专心致志的做事,互不干扰(当然还是有通信的,比如控制面接收用户配置,转而传递给数据面的参数设置等)。 总结如下: 1、 使用大页缓存支持来提高内存访问效率。 2、 利用UIO支持,提供应用空间下驱动程序的支持,也就是说网卡驱动是运行在用户空间 的,减下了报文在用户空间和应用空间的多次拷贝。 3、 利用LINUX亲和性支持,把控制面线程及各个数据面线程绑定到不同的CPU核,节省了 线程在各个CPU核来回调度。 4、 提供内存池和无锁环形缓存管理,加快内存访问效率。 在x86服务器,1G/10G/40G网卡包转发,64Byte小包,基本能做到70%以上的转发,而传统linux系统只能达5%左右,在网络大数据流时代,DPDK加码,优势明显。 二、对L2 fwd的认识: 2.1运行配置 虚拟机软件:VMWare WorkStation?12.0.0 build-2985596 CPU: 2个CPU, 每个CPU 2个核心 内存: 1GB+ 网卡:intel网卡*2, 用于dpdk试验;另一块网卡用于和宿主系统进行通信 2.2运行环境搭建 在root权限下: 1)编译dpdk 进入dpdk主目录dpdk,输入 make install T=x86_64-native-linuxapp-gcc进行编译 2)配置大页内存(非NUMA) echo 128 /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages mkdir /mnt/huge mount -t hugetlbfs nodev /mnt/huge 可以用以下命令查看大页内存状态: cat /pro

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档