我试图用一台服务器调试一些网络问题.我用多台显示器监控这台机器,我看到有时ping错误率跳至5/10%
我在ubuntu上运行,我看到ethtool -S eth0的输出显示rx_queue _ * _ csum_errboth rx_fifo_errors(几千)的正值.
这个计数器实际跟踪的是什么,是否有任何众所周知的原因导致它们不为0?
解决方法
rx_fifo_errors = rx_queue _ * _ drop的总数
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”的“当前硬件设置”设置为“预设最大值”中显示的限制
# ethtool -G eth0 rx 4096
注意:此设置将无法在重新启动后继续存在.您可能想要使用rc.local(或类似的东西)