Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1502112
  • 博文数量: 228
  • 博客积分: 1698
  • 博客等级: 上尉
  • 技术积分: 3241
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-24 21:49
个人简介

Linux

文章分类

全部博文(228)

文章存档

2017年(1)

2016年(43)

2015年(102)

2014年(44)

2013年(5)

2012年(30)

2011年(3)

分类: LINUX

2012-03-28 20:18:20

转载请保留地址: />
Intel
Intel DPDK的介绍没讲,但它的技术点却想讲一下,因为这些技术点并没有什么特别,所以虽然我们也许无法使用DPDK,但可以使用这些技术点,DPDK主要用到三个技术点分别为hugetlbpage、uio以及cpu affinity。

关于hugetlbpage,之前讲过,它的主要好处当然是通过利用大内存页提高内存使用效率;而uio是实现用户空间下驱动程序的支撑机制,由于DPDK是应用层平台,所以与此紧密相连的网卡驱动程序(当然,主要是intel自身的千兆igb与万兆ixgbe驱动程序)都通过uio机制运行在用户态下。

cpu affinity机制是多核cpu发展的结果,在越来越多核心的cpu机器上,如何提高外设以及程序工作效率的最直观想法就是让各个cpu核心各自干专门的事情,比如两个网卡eth0和eth1都收包,可以让cpu0专心处理eth0,cpu1专心处理eth1,没必要cpu0一下处理eth0,一下又处理eth1,还有一个网卡多队列的情况也是类似,等等;扯远了,后续再写专篇来总结CPU亲和性问题。回到DPDK这里,DPDK利用cpu affinity主要是将控制面线程以及各个数据面线程绑定到不同的cpu,省却了来回反复调度的性能消耗,各个线程一个while死循环,专心致志的做事,互不干扰(当然还是有通信的,比如控制面接收用户配置,转而传递给数据面的参数设置等),该干啥干撒。

所以,这样看来,DPDK并不高深,用到的东西也都是Linux本身提供的特性,还有额外的内存池、环形缓存等,虽然封装得很好,但的确都是非常熟悉的东东,至少我目前了解到的情况是如此。


阅读(22234) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

choumin2014-02-24 14:47:56

楼主,能否给我一些DPDK的中文资料。