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

从加载igb驱动引出一些想法1.加载igb驱动的问题今日加载igb驱动,自以为已经将其“折磨”得炉火纯青,可是在使用RSS=0参数加载igb的时候却发现只有eth0的队列是8个,而其他的网卡队列只有一个。查看其所有的参数都没有找到解决方案,最终只有看代码了。然而看完代码之后使用modinfoigb发现,其RSS参数后面有一个注释:arrayifint。这下就一目了然了,原来网…

大家好,欢迎来到IT知识分享网。从加载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.假象


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

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


 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1270991

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12721.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信