编辑:问题已解决.有问题的队列已用于流控制数据包.为什么igb驱动程序传播FC数据包以使其丢弃(并计数)是另一个问题.但解决方案是,数据丢失的方式没有任何损失.

非常感谢syneticon-dj,你指向dropwatch的指针是黄金!

===原始问题供进一步参考===

我们有以下情况:

系统:

有问题的服务器是dell poweredge,带有4个四核氙气,128GB ECC RAM,运行debian linux.内核是3.2.26.

有问题的接口是特殊的iSCSI卡,有四个接口,每个接口使用Intel 82576千兆以太网控制器.

背景:在我们的一台服务器上,很多NAS(Thecus N5200和Thecus XXX)在专用的1GB / s接口上使用iSCSI连接.我们有5张卡,每张卡有4个端口. NAS文件管理器直接连接,两者之间无切换.

两周前,我们设法清除了四个NAS文件管理器,并使用它们使用mdadm构建raid6.使用LVM,我们可以为各种项目动态创建,缩小和/或增加存储空间,而不是每隔一段时间就搜索所有NAS文件管理器以获取可用空间.

然而,我们在几乎每个接口上都有很多超支,并且丢失了很多数据包.调查显示,必须增加网络堆栈的默认设置.我使用sysctl来调整所有设置,直到不再发生溢出.

不幸的是,用于NAS raid的接口仍然丢弃了很多数据包,但只有RX.

在搜索之后(这里,google,Metager,intel,无处不在,无处不在),我们发现有关intel igb驱动程序的信息存在一些问题,并且必须完成一些工作.

因此我下载了最新版本(igb-4.2.16),用LRO编译模块并支持单独的队列,并安装了新模块.

使用此驱动程序的所有20(!)接口现在都有8个RxTx队列(未配对)并启用了LRO.具体的选项是:

options igb InterruptThrottleRate=1 RSS=0 QueuePairs=0 LRO=1

irqbalancer很好地分配了所有接口的队列,一切都很棒.

那我为什么要写作呢?我们有以下奇怪的情况,根本无法解释:

NAS raid的五个接口中的三个(我们已经添加了一个备用NAS,并且一旦mdadm完成其当前重新形成就应该进行raid)显示大量(数百万!)的数据包丢弃.

使用ethtool的调查现在显示,由于新的多队列启用驱动程序,每个接口大量使用一个队列,这将是我们猜测的重塑.

但是有三个使用另一个队列,其中包含数百万个崩溃的数据包.至少展示了利用“监视”的调查,这些队列上的数据包号码与丢弃的包裹相关联.

我们将NAS上的MTU和接口从9000更改为1500,但丢包率增加,mdadm性能下降.因此它看起来不像MTU问题.此外,网络堆栈具有疯狂的内存量,这也不应该是一个问题.积压足够大(实际上很大)我们完全在海上.

这里有示例输出:

~ # for nr in 2 3 4 5 9 ; do eth="eth1${nr}" ; echo " ==== $eth ==== " ; ethtool -S $eth | \

> grep rx_queue_._packet | grep -v " 0" ; ifconfig $eth | grep RX | grep dropped ; \

> echo "--------------" ; done

==== eth12 ====

rx_queue_0_packets: 114398096

rx_queue_2_packets: 189529879

RX packets:303928333 errors:0 dropped:114398375 overruns:0 frame:0

--------------

==== eth13 ====

rx_queue_0_packets: 103341085

rx_queue_1_packets: 163657597

rx_queue_5_packets: 52

RX packets:266998983 errors:0 dropped:103341256 overruns:0 frame:0

--------------

==== eth14 ====

rx_queue_0_packets: 106369905

rx_queue_4_packets: 164375748

RX packets:270745915 errors:0 dropped:106369904 overruns:0 frame:0

--------------

==== eth15 ====

rx_queue_0_packets: 161710572

rx_queue_1_packets: 10

rx_queue_2_packets: 10

rx_queue_3_packets: 23

rx_queue_4_packets: 10

rx_queue_5_packets: 9

rx_queue_6_packets: 81

rx_queue_7_packets: 15

RX packets:161710730 errors:0 dropped:4504 overruns:0 frame:0

--------------

==== eth19 ====

rx_queue_0_packets: 1

rx_queue_4_packets: 3687

rx_queue_7_packets: 32

RX packets:3720 errors:0 dropped:0 overruns:0 frame:0

--------------

新的备用驱动器连接到eth15.

如您所见,没有超支,也没有错误.并且适配器报告,他们没有丢弃一个数据包.因此,内核将数据丢弃.但为什么?

编辑:我忘了提到eth12到eth15都位于同一张卡片上. eth19对另一个.

有没有人见过这种奇怪的行为,是否有解决问题的办法?

即使没有,有没有人知道一种方法,我们至少可以找出哪个进程占用了丢弃的队列?

非常感谢你提前!

linux开机自动加载igb模块,linux – 使用intel igb(已解决)在3/5 raid6 iSCSI NAS设备上的第一个RX队列上丢弃100%数据包...相关推荐

  1. linux 开机自动加载mod,linux 添加elasticsearch 开机重启(自启动)

    在 /etc/init.d 文件夹下建立脚本 eg:data.sh #chkconfig: 2345 80 90 #description:auto_run #!bin/bash export JAV ...

  2. tx2 can通信之开机自动加载can模块

    最近有个新项目使用了TX2及开发板,因地盘通信采用CAN总线,初步查了手册,TX2自身就带了两路CAN外设,于是就放弃了之前USB2CAN的方案,直接使用TX2的CANBUS:特将操作步骤记录在此. ...

  3. Android 开机自动加载新wifi模块驱动

    在android ROM 开发中经常会遇到产品更换wifi模块的情况,一般常见的wifi驱动android内核中自带都有,无需过多调试,要是碰上内核中没有的就需要根据厂商提供的驱动进行移植. wifi ...

  4. Linux模块加载流程及如何让系统开机自动加载模块

    Linux模块加载 Linux系统加载哪些内核模块,和配置文件有关系. 模块保存在/lib/modules/下. 使用/etc/modules-load.d/来配置系统启动时加载哪些模块. 使用/et ...

  5. linux modprobe自动加载,modprobe 开机自动加载模块的方法 亲测成功

    再次鄙视那些凭空臆测就发表技术文章和那些不分好坏疯狂采集的人.浪费大家的时间,你们罪当诛杀! 添加开机自动加载模块,在各大搜索引擎发现很多误导的技术文章,浪费我的时间,气死了. 下面是本人测试成功的. ...

  6. Linux内核模块自动加载机制 .

    标题http://www.osplay.org/modules/article/view.article.php?7 思考 如果想让内核启动过程中自动加载某个模块该怎么做呢?最容易想到的方法就是到/e ...

  7. Ubuntu开机自动加载驱动模块

    目前我知道有两种方式来实现开机自动加载驱动模块,一种是将驱动模块放到 /lib/modules/uname -r/ 中,然后在修改 /etc 下的 modules 等文件:另一种是编写开启自启脚本,将 ...

  8. 计算机管理中没有vhd,电脑重启后新建的VHD虚拟硬盘不见了怎么办|如何设置使VHD硬盘开机自动加载...

    ‍ 我们可以通过系统自带的磁盘功能创建VHD虚拟硬盘,但是有用户发现电脑在重启之后,资源管理器中的VHD虚拟硬盘就不见了.对于这种现象,应该是电脑系统在开机后没有自动加载VHD硬盘的原因.那么,如何使 ...

  9. ThreeJS FBXLoader 加载3D文件,材质消失,已解决

    ThreeJS FBXLoader 加载3D文件,材质消失,已解决 ThreeJS FBXLoader 加载3D文件,材质消失 直接贴代码 ThreeJS FBXLoader 加载3D文件,材质消失 ...

最新文章

  1. c语言建立线性表(顺序储存,链式储存,循环,双向)全
  2. leetcode之Climbing Stairs爬楼梯
  3. 网络工程:1.2 CISCO 路由设备登录命令
  4. Netty之有效规避内存泄漏
  5. 动态规划训练11 [String painter HDU - 2476]
  6. poj2975——Caesar密码
  7. 完美解决html中select的option不能隐藏的问题。
  8. const 与 readonle 的异同
  9. 还在用tm?你OUT啦!
  10. Java UDP小结
  11. C++中析构函数的作用,
  12. javascript ajax 脚本跨域调用全解析
  13. php大马程序_php大马是什么
  14. 哔哩哔哩电脑网页版怎么下载视频
  15. Android蓝牙4.0之传输速率的提升
  16. 黑客组织Anonymous(匿名者)
  17. 世界上云平台有很多,但叫机智云的只有一个。
  18. Windows 下 Quartus 检测不到 USB-Blaster 终极解决办法
  19. 算法设计与分析: 4-3 磁带最优存储问题
  20. RabbitMQ简介及其六种工作模式

热门文章

  1. Vue获取当前的实时时间+Vue生成计数器
  2. 免费的Photoshop自定义形状图片集合分享
  3. 高可用集群解决方案(证券交易系统)
  4. Docker虚拟化容器技术(用在虚拟机上),VirtualBox中linux虚拟机联网的问题
  5. SpringMVC(2)
  6. AXI总线性能监测和FPGA调试:VARONVSTAR
  7. 2022年天猫年货节活动时间以及天猫年货节招商规则
  8. 解决eclipse web项目前面出现红色感叹号和红色叉号等错误
  9. USB声卡芯片DP108的基础上,推出优化升级版DP108T
  10. solidworks零件原点与装配原点重合