DPDK网卡多队列
2019-07-29 本文已影响0人
VChao
2019/07/29
对于网卡开启多队列的流程:
- 启动时进行端口的配置,这部分需要配置的内容包括设置收包的模式,同时指定收包时使用的哈希函数作用的地方,两者缺一不可;
- 启动多个队列,这个肯定没问题;
- 利用DPDK自带的统计工具无法显示相关的队列的数据,这个不知道为什么,需要后续进行源码的阅读后做定夺。
所以,测试时只需要从多个队列上进行取数据即可,发现不同队列上都有数据。
- 查看网卡是否支持多队列,利用工具
ethtool -l
,同时可以利用DPDK中API获取网卡信息,获取最大队列数。 - 参考文献[1]中,提到了如何配置多队列成功,并提到了对称RSS,业界普遍统一是,采用一个预设的哈希键值来实现,我理解的就是,四元组两个方向上,如果不采用对称的键值,可能导致分发到不同的核上,文献[1]中对这部分进行了解释,但具体的哈希函数如何运作,需要进一步研究。
- 对于哈希函数作用的地方,并没有进行研究,只是简单采用了宏中的一个值,所以这个需要进一步代码实现
- 对于RSS的内容,文献[2]进行了相关的介绍,但他出发的视角是正常网卡的功能;同时这篇文章属于微软的技术文章,他还有很多其他的科普文章介绍。
- 最开始进行实验的时候,进行相关的配置,参考了[3],对他他选择的宏,不太了解
- 文献[4]算是个文献[1]的中文版把,
- 文献[5]是一个intel对哈希和过滤的介绍
参考文献
[1]DPDK Design Tips (Part 1 - RSS)
[2]Introduction to Receive Side Scaling
[3]dpdk-18.11网卡多队列RSS设置
[4]dpdk-多队列机制
[5]ntel-ethernet-controller-700-series-hash-and-flow-director-filters