我有一台运行
Linux(内核2.6.18)的服务器,它正在大幅丢弃传入的网络数据包.我认为它正在遭受这种情况,因为该接口的接收队列的长度太小(默认为1000).我想通过修改/ proc / sys / net / core / netdev_max_backlog(到3000)的值来扩大此队列.但它似乎没有用.我搜索了它,发现有人说这个值只适用于非NAPI设备,我认为我的设备不是因为内核2.4.20引入了NAPI.我不知道这是否属实,并转向安装在该服务器上的内核doc,但该文档自内核2.2以来尚未更新.
所以我想知道这是否属实,如果是,我如何更改NAPI设备的队列长度?
谢谢.
丰
解决方法
我终于发现接口正在丢弃数据包,因为驱动程序配置了太小的Rx描述符大小,在使用中断合并时,决定驱动程序在向内核发送中断之前可以保留多少数据包.如果此值(以ethtool -g< interface>显示)太小,则在引发中断之前将丢弃数据包.用ethtool -G< interface>放大后Rx< a some large value>,此后没有出现粪便.
谢谢大家.