位置: IT常识 - 正文

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

发布时间:2023-12-26
多队列网卡是一种技术,很多的朋友对多队列网卡不了解!今天小编为大家分享的是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待机密码)

  • 苹果13promax有粉色吗(苹果13promax有粉红色吗)

    苹果13promax有粉色吗(苹果13promax有粉红色吗)

  • iwatch的录音怎么转到手机上(iwatch的录音怎么导入手机)

    iwatch的录音怎么转到手机上(iwatch的录音怎么导入手机)

  • oppoa5充电多少w(oppoa5充电器是多少瓦的)

    oppoa5充电多少w(oppoa5充电器是多少瓦的)

  • 如何在淘宝上买加油票(如何在淘宝上买王者荣耀皮肤)

    如何在淘宝上买加油票(如何在淘宝上买王者荣耀皮肤)

  • 关闭445端口(关闭445端口有什么影响)

    关闭445端口(关闭445端口有什么影响)

  • 支付宝小鸡怎么去别人家偷吃(支付宝小鸡怎么玩)

    支付宝小鸡怎么去别人家偷吃(支付宝小鸡怎么玩)

  • 华为watch3什么时候出

    华为watch3什么时候出

  • 苹果有锁无锁什么意思(苹果有锁无锁什么区别)

    苹果有锁无锁什么意思(苹果有锁无锁什么区别)

  • 手机酷狗怎么设置歌词背景(手机酷狗怎么设置下载mp3格式的歌曲)

    手机酷狗怎么设置歌词背景(手机酷狗怎么设置下载mp3格式的歌曲)

  • 小米手环黑屏没反应(小米手环黑屏没声音)

    小米手环黑屏没反应(小米手环黑屏没声音)

  • 腾讯会议电脑版和手机版有什么区别(腾讯会议电脑版共享屏幕)

    腾讯会议电脑版和手机版有什么区别(腾讯会议电脑版共享屏幕)

  • hdmi2.1和2.0的区别(hdmi2.1和2.0的区分)

    hdmi2.1和2.0的区别(hdmi2.1和2.0的区分)

  • qq怎么设置加我需要回答问题(qq怎么设置加我的方式)

    qq怎么设置加我需要回答问题(qq怎么设置加我的方式)

  • 进微信群群主能看到吗(进微信群群主能看见吗)

    进微信群群主能看到吗(进微信群群主能看见吗)

  • qq视频聊天可以录制吗(qq视频聊天可以截图吗)

    qq视频聊天可以录制吗(qq视频聊天可以截图吗)

  • 三星录音文件在哪(三星录音文件在哪里能找到)

    三星录音文件在哪(三星录音文件在哪里能找到)

  • 下划线怎么弄的一样长(下划线怎么弄的快一点)

    下划线怎么弄的一样长(下划线怎么弄的快一点)

  • 手提电脑关闭了无线功能怎样开启(手提电脑关闭了怎么开机)

    手提电脑关闭了无线功能怎样开启(手提电脑关闭了怎么开机)

  • 抖音怎么取消认证(抖音怎么取消认证不注销)

    抖音怎么取消认证(抖音怎么取消认证不注销)

  • 三星note10怎么关机(三星note10怎么关闭广告)

    三星note10怎么关机(三星note10怎么关闭广告)

  • ppt添加图表元素在哪里(ppt图表)

    ppt添加图表元素在哪里(ppt图表)

  • ipad微信版本低登录不了怎么办(iPad微信版本低.又不能升级新版本,怎么办?)

    ipad微信版本低登录不了怎么办(iPad微信版本低.又不能升级新版本,怎么办?)

  • 淘宝垫付退款会收回吗(淘宝垫付退款会被追回吗怎么办)

    淘宝垫付退款会收回吗(淘宝垫付退款会被追回吗怎么办)

  • 2.4a等于多少w(2.4a等于多少w跟2a)

    2.4a等于多少w(2.4a等于多少w跟2a)

  • ns怎么改dns最快(ns 改dns)

    ns怎么改dns最快(ns 改dns)

  • 验证是否信任开发者怎么操作(验证是否信任开发者怎么操作显示尚未验证)

    验证是否信任开发者怎么操作(验证是否信任开发者怎么操作显示尚未验证)

  • appdata文件夹被隐藏解决方法(app data文件夹)

    appdata文件夹被隐藏解决方法(app data文件夹)

  • 织梦dedecms显示当前时间日期的代码(将织梦dedecms转换到wordpress)

    织梦dedecms显示当前时间日期的代码(将织梦dedecms转换到wordpress)

  • 金税三期反映出来的是前几年的问题
  • 资金预算表编制依据
  • 跨月的增值税专用发票未抵扣怎么作废
  • 内账收入按实际收到确认吗
  • 收据税前扣除是多少
  • 房地产预售啥意思
  • 刷卡收手续费吗
  • 一般纳税人普票怎么做分录
  • 技改贴息资金的财务、会计及税收处理
  • 营改增前未完工的老项目可以开专票吗
  • 契税差别
  • 企业取得财产转让收入确认时间
  • 收到预付款项发票如何入账?
  • 网银 密码器
  • 预付账款下月做什么科目
  • 预付账款怎么做凭证
  • 营改增后房地产企业增值税税率
  • 补贴收入需要缴纳增值税吗为什么
  • 记账凭证按照填列方式的分类包括
  • 库存现金清查短款会计分录
  • etc充值发票可以抵扣税吗
  • 什么叫非成品油发票
  • 事业单位付银行贷款利息
  • 种植业土地租赁计入哪个科目
  • 购入的车辆入账包括哪些费用
  • php生成验证码的方法
  • 和linux
  • 汽车修理公司的成本怎么核算
  • 计提税金及附加的金额如何算
  • php数组函数实现机选双色球
  • wordpress功能介绍
  • 亚士顿森林薄雾日出,英国东萨塞克斯郡 (© Tim Stocker Photography/Getty Images)
  • 准备动作怎么做
  • 房屋出租房产税如何计算
  • 劳务派遣企业简易征收管理办法
  • unity常用脚本语言
  • 微信小程序人民法院审核通过多久立案
  • 导入vue.js
  • 转让金融商品应交增值税计算公式
  • 视同销售收入税法处理?
  • 建筑工程企业所得税预缴
  • 建设项目财务费用包括
  • wordpress怎么降级
  • 保函被索赔支付什么意思
  • python怎么用
  • mongodb的坑
  • 织梦怎么样
  • 织梦模板安装完整教程
  • 企业账户在银行买黄金可以开发票吗
  • db2 日期查询
  • 撤销税务局
  • mysql数据库操作中,use是用来做什么的?
  • 员工发放福利会计分录
  • 差额征税的账务处理教学视频
  • 分期收款定义
  • 转账显示未认证
  • 增值税发票未认证丢失怎么办
  • 净利润增长率的影响因素
  • 品种法案例分析
  • 新公司成立建账流程
  • window8更新
  • 重庆四日游最佳攻略超详细
  • win7系统怎么给C盘扩容
  • win8系统计算机在哪里
  • ubuntu怎么设置网络连接
  • win8.1卸载软件在哪里
  • win8系统蓝屏后无法修复
  • 两个linux系统之间如何传文件
  • mvp功能
  • react all in js
  • 利用python读取文件
  • jquery.handleerror
  • node.js连接mysql数据库的方法有哪些
  • javascript操作数组的方法
  • pjblog修改技巧汇总
  • 国家税务局网上电子税务局官网天津
  • 苏州税务实名认证流程小程序
  • 重庆电子税务局电话人工客服电话
  • 税控发票开票系统对电脑配置有要求吗?
  • 电子税务局网页版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号