rx_queue_*_csum_err 和 rx_fifo_errors 的含义

Tom*_*gli 6 networking linux ubuntu ethtool

我正在尝试使用一台服务器调试一些网络问题。我用多个显示器监控这台机器,我发现有时 ping 错误率会跳到 5/10%

我在 ubuntu 上运行,我看到 ethtool -S eth0 的输出显示 rx_queue_*_csum_errboth rx_fifo_errors(几千个)的正值。

这个计数器实际跟踪什么,是否有任何众所周知的原因使它们不为 0?

Sig*_*l15 9

rx_fifo_errors = rx_queue_*_drops 的总数

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
Run Code Online (Sandbox Code Playgroud)

您可以设置“ Current Hardware Settings”为“ RX”到了极限显示在“ Pre-set maximums

# ethtool -G eth0 rx 4096
Run Code Online (Sandbox Code Playgroud)

注:此设置将不会生存下来重新启动。您可能想要使用rc.local(或类似的东西)