位置: IT常识 - 正文

Linux多队列网卡的硬件的实现详解(linux配置多网卡设置)

编辑:rootadmin
多队列网卡是一种技术,很多的朋友对多队列网卡不了解!今天小编为大家分享的是Linux多队列网卡的硬件的实现详解;感兴趣的朋友一起去看看吧... 17-03-15

推荐整理分享Linux多队列网卡的硬件的实现详解(linux配置多网卡设置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux多网卡组播,linux 多网卡配置,linux 网卡队列,linux多网卡聚合,linux 网卡队列,linux多网卡聚合,linux多网卡聚合,linux多网卡网络配置ip地址,内容如对您有帮助,希望把文章链接给更多的朋友!

多队列网卡是一种技术,最初是用来解决网络IO QoS(quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。

常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析一下多队列网卡的硬件的实现以及linux内核软件的支持。

1.多队列网卡硬件实现

图1.1是Intel 82575硬件逻辑图,有四个硬件队列。当收到报文时,通过hash包头的SIP、Sport、DIP、Dport四元组,将一条流总是收到相同的队列。同时触发与该队列绑定的中断。

图1.1 82575硬件逻辑图

2. 2.6.21以前网卡驱动实现

kernel从2.6.21之前不支持多队列特性,一个网卡只能申请一个中断号,因此同一个时刻只有一个核在处理网卡收到的包。如图2.1,协议栈通过NAPI轮询收取各个硬件queue中的报文到图2.2的net_device数据结构中,通过QDisc队列将报文发送到网卡。

图2.1 2.6.21之前内核协议栈

图2.2 2.6.21之前net_device

Linux多队列网卡的硬件的实现详解(linux配置多网卡设置)

3. 2.6.21后网卡驱动实现

2.6.21开始支持多队列特性,当网卡驱动加载时,通过获取的网卡型号,得到网卡的硬件queue的数量,并结合CPU核的数量,最终通过Sum=Min(网卡queue,CPU core)得出所要激活的网卡queue数量(Sum),并申请Sum个中断号,分配给激活的各个queue。

如图3.1,当某个queue收到报文时,触发相应的中断,收到中断的核,将该任务加入到协议栈负责收包的该核的NET_RX_SOFTIRQ队列中(NET_RX_SOFTIRQ在每个核上都有一个实例),在NET_RX_SOFTIRQ中,调用NAPI的收包接口,将报文收到CPU中如图3.2的有多个netdev_queue的net_device数据结构中。

这样,CPU的各个核可以并发的收包,就不会应为一个核不能满足需求,导致网络IO性能下降。

图3.1 2.6.21之后内核协议栈

图3.2 2.6.21之后net_device

4.中断绑定

当CPU可以平行收包时,就会出现不同的核收取了同一个queue的报文,这就会产生报文乱序的问题,解决方法是将一个queue的中断绑定到唯一的一个核上去,从而避免了乱序问题。同时如果网络流量大的时候,可以将软中断均匀的分散到各个核上,避免CPU成为瓶颈。

图4.1 /proc/interrupts

5.中断亲合纠正

一些多队列网卡驱动实现的不是太好,在初始化后会出现图4.1中同一个队列的tx、rx中断绑定到不同核上的问题,这样数据在core0与core1之间流动,导致核间数据交互加大,cache命中率降低,降低了效率。

图5.1不合理中断绑定

linux network子系统的负责人David Miller提供了一个脚本,首先检索/proc/interrupts文件中的信息,按照图4.1中eth0-rx-0($VEC)中的VEC得出中断MASK,并将MASK

写入中断号53对应的smp_affinity中。由于eth-rx-0与eth-tx-0的VEC相同,实现同一个queue的tx与rx中断绑定到一个核上,如图4.3所示。

图4.2 set_irq_affinity

图4.3合理的中断绑定

set_irq_affinity脚本位于http://mirror.oa.com/tlinux/tools/set_irq_affinity.sh。

上一页12 下一页 阅读全文
本文链接地址:https://www.jiuchutong.com/zhishi/278764.html 转载请保留说明!

上一篇:上网速度变慢甚至打不开网页如何防止别人蹭我们的网(网速变慢了)

下一篇:win10待机密码怎么设置(windows待机密码)

  • 酒店购买的空调折旧计入管理费用吗
  • 合并业务的好处
  • 外购固定资产的计税基础
  • 支付单位结算卡年费计入什么科目
  • 什么是差额增收
  • 分配辅助生产车间成本记账凭证
  • 工程改造合同印花税
  • 出口退税注销备注怎么填
  • 无偿赠送不得抵扣吗?
  • 接待客户的住宿费账务处理
  • 公账转私账用途怎么写
  • 行政事业性收费计入什么科目
  • 民办教育培训机构申请条件
  • 小规模纳税人开了3%的专票还能享受1%
  • 工程款主营业务成本
  • 以前年度城建税减免可以计去营业外收入嘛
  • 股权更改需要什么费用
  • 拆迁公司属于什么性质
  • 小轿车折旧年限规定
  • 给子公司拨款怎么记账
  • mac小技巧
  • 网卡运行异常
  • award bios设置详解
  • php开发常用技术
  • 基于中国国情的中国式现代化具有哪些特色
  • 公司每年都有什么费用
  • 残疾人取得房屋所有权
  • 破产企业发放工资怎么算
  • 备用金需要发票吗?收据可以报销吗
  • MAE详解
  • python web开发方向的第三方库有哪些
  • php的运算符主要包括哪些?
  • 已入账的发票跨年退回税务
  • 前期认证相符
  • 普通发票可以跨年报销吗
  • 公司交公积金可以上调吗
  • python解释器的多种使用
  • 独资企业和公司区别
  • sql游标用法
  • 在计算应纳税所得额时
  • 收回上年度拨款怎么做账
  • 计提的生产车间职工工资
  • 资产负债表里的固定资产是原值还是净值
  • 公司的装修费计入什么科目
  • 接待客人后的感受和过程
  • 高速过路费发票图片
  • 福利费列支范围及标准
  • 员工工资怎么核算
  • 车船税缴纳后有发票吗
  • 增值税是什么的抵减项目
  • 企业注销后账目如何处理
  • 差旅费一般包括往返及当地的交通费
  • 外经证核销反馈表写错了怎么办
  • Win10 Mobile 10563预览版微软官方模拟器下载
  • windows server 2003 standard
  • 用指定用户名访问网络
  • SmartExplorer.exe - SmartExplorer进程是什么意思
  • winxp资源管理器频繁无响应
  • centos libcrypto.so.1.0.0
  • win7系统安装ie11浏览器
  • windows 8
  • win8.1怎么优化才流畅
  • win10系统的文件夹选项在哪里
  • VS2012中C++,#include无法打开源文件
  • unity双击
  • android 快速开发
  • django模块详解
  • php autoload
  • vue项目中使用scss
  • vue中父子组件如何通信的
  • js设置标签内容
  • inputchange
  • js的类型有哪几种
  • javascript数据结构与算法
  • javascript的push方法
  • 江苏省税务局电子发票
  • 2020年税务口号
  • 河南省郑州市巩义市籍贯怎么写
  • 浙江国地税联合申报系统官网
  • 无锡第三税务分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设