服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

在3/5 raid6的第一个RX队列上丢弃了100%数据包使用intel igb的iSCSI NAS设备(已解决)

编辑 :问题已解决。 有问题的队列已被用于stream量控制包。 为什么igb驱动程序传播FC数据包,让他们丢弃(和计数)是另一个问题。 但是解决scheme是,没有什么东西丢掉了数据丢失的方式。 非常感谢你,syneticon-dj,你的dropwatch的指针是黄金! === 原始问题的进一步参考 === 我们有以下情况: 系统:有问题的服务器是一个带有4个四核氙气CPU,128GB ECC内存的dell供电,正在运行debian linux。 内核是3.2.26。 有问题的接口是特殊的iSCSI卡,每个接口使用Intel 82576千兆位以太网控制器。 背景:在我们的一台服务器上,很多NAS(Thecus N5200与Thecus XXX)都是使用iSCSI连接至专用的1GB / s介面。 我们有5张卡,每张卡有4个端口。 NAS文件pipe理器直接连接,两者之间没有切换。 两个星期前,我们设法清除了四个NAS文件pipe理器,并使用它们来构build一个使用mdadm的raid6。 通过使用LVM,我们可以dynamic创build,缩小和/或扩展我们各种项目的存储空间,而无需每隔一段时间search一次所有NAS文件pipe理器的空闲空间。 但是,几乎每一个接口都有很多超限,很多数据包都被丢弃了。 调查显示,networking堆栈的默认设置必须增加。 我用sysctl来调整所有的设置,直到没有超出发生。 不幸的是,用于NAS raid的接口仍然会丢失很多数据包,但只有RX。 经过search(这里,谷歌,metager,英特尔,任何地方,任何地方),我们发现有关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的调查现在显示,由于新的多队列驱动程序,每个接口大量使用一个队列,这将是我们猜测的重塑。 但是,三个使用另一个队列与数百万收件包,都被丢弃。 至less表明利用“监视”的调查,这些队列上的包号码与丢弃的包裹相关联。 我们将NAS上的MTU和接口从9000改为1500,但丢包率增加,mdadm性能下降。 因此它看起来不像MTU问题。 而且networking堆栈的内存数量非常大,这也不成问题。 积压足够大(实际上是巨大的),我们完全在海上。 这里有个例子输出: ~ […]