Uto*_*oah 4 networking linux tcp
我有一台运行 Linux(内核 2.6.18)的服务器,它正在大量丢弃传入的网络数据包。我认为这是因为该接口的接收队列长度太小(默认为 1000)而受到影响。我想通过修改/proc/sys/net/core/netdev_max_backlog(到 3000)的值来扩大这个队列 。但它似乎没有用。我用谷歌搜索,发现有人说这个值只适用于非 NAPI 设备,我认为我的设备不是因为 NAPI 是从内核 2.4.20 开始引入的。我不知道这是否属实并转向安装在该服务器上的内核文档,但该文档自内核 2.2 以来一直没有更新。
所以我想知道这是否是真的,如果是,我该如何更改 NAPI 设备的队列长度?
谢谢。冯
我终于发现接口正在丢弃数据包,因为驱动程序配置了一个太小的 Rx 描述符大小,在使用中断合并时,它决定了驱动程序在向内核发送中断之前可以容纳多少数据包。如果此值(显示为ethtool -g <interface>)太小,则在引发中断之前将丢弃数据包。在我用 放大后ethtool -G <interface> Rx <a some big value>,从那以后就没有粪便了。
谢谢大家。