从加载igb驱动引出一些想法

1.加载igb驱动的问题

今日加载igb驱动,自以为已经将其“折磨”得炉火纯青,可是在使用RSS=0参数加载igb的时候却发现只有eth0的队列是8个,而其他的网卡队列只有一个。查看其所有的参数都没有找到解决方案,最终只有看代码了。然而看完代码之后使用modinfo igb发现,其RSS参数后面有一个注释:array if int。这下就一目了然了,原来网卡的多队列是基于每一块网卡单独配置的。RSS参数是一个数组,和标准的linux内核模块数组参数一样以逗号分割,因此如果我们有4块网卡,分别要设置8,7,6,5,个队列,那么就要添加参数:RSS=8,7,6,5

     仅此!

2.再论队列的问题

网卡实现多队列是有开销的,这世上没有免费的午餐。付出之后,得到的好处是更好的支持虚拟化,注意,在操作系统的意义上,多队列并没有带来更高的性能,因为无论何时,你都要信任操作系统内核关于进程以及缓存的设计,否则这个内核就是一个失败的内核...然而在虚拟化的意义上,操作系统所作的优化就无能为力了,毕竟虚拟化所虚拟的就是操作系统本身。

     操作系统内核,网卡硬件,网卡驱动已经做完了几乎一半的工作,剩下的一半工作属于应用程序。

3.InterruptThrottleRate

这是一个经常被忽略的驱动选项,一般而言,很多人并不是很理解Intel千兆网卡的中断的工作方式,因此他们想当然的忽略了这个参数,而实际上,Intel的千兆卡的中断和常规的中断方式截然不同。对于小包而言-大多数的情况-,我还是建议使用0模式。虽然文档所示自适应是一种很有吸引力的模式,然而对于大多数的需求而言,这并不是真的。因为大多数的IP数据报需要跨越公网,而公网和千兆局域网的设计理念是不同的,在公网上,大多数的虚拟连接都不会达到千兆,甚至百兆都很难。

     要记住,由于TCP/UDP/IP的分组性质,加之大多数的MTU都有上限,大多数的节点上通过的都是“小包”!

4.假象

不要被文档所迷惑,要知道,你所看到的大多数都是假的。你所看到的很吸引你的东西十有八九是你目前不需要的,你用不到这些的可能性很大。你所需要的解决方案十有八九还要用传统的方式解决,而这些方案一般并不会出现在文档中。

     “眼见为实”,这正是问题所在。耳听为虚被大众所接受是因为它错的很明显,而眼见为实则迷惑了大多数人的眼睛,然而它却并不一定比耳听的更真实,这正说明眼睛比耳朵更容易被欺骗。视神经对大脑的刺激比听神经对大脑的刺激更大,因此虽说眼见为实,其真实性并不一定比耳听的更加真实!

原文链接: https://blog.csdn.net/dog250/article/details/6586707

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    从加载igb驱动引出一些想法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/409358

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午11:21
下一篇 2023年4月26日 上午11:21

相关推荐