我正在尝试用一台服务器debugging一些networking问题。 我用多台显示器监视这台机器,我发现有时ping错误率跳到5/10%
我在ubuntu上运行,我看到ethtool -S eth0的输出显示rx_queue _ * _ csum_errboth rx_fifo_errors(几千)的正值。
这个计数器实际跟踪的是什么,有没有非常有名的原因,他们是非0?
rx_fifo_errors = rx_queue _ * _下降的总数
rx_queue_*_drops =每个队列丢弃的数据包数量
听起来像RX中断不足够快地分配缓冲区,导致适配器丢弃数据包。
检查并增加环形缓冲区。
# ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 256 RX Mini: 0 RX Jumbo: 0 TX: 256
您可以将“ RX ”的“ Current Hardware Settings ” Current Hardware Settings为“ Pre-set maximums ”
# ethtool -G eth0 rx 4096
注意:此设置将无法在重新启动后存活。 你可能想使用rc.local (或类似的东西)