I am trying to debug some networking issue with one server. I monitor this machine with multiple monitors and I see that at times ping error rate jumps to 5/10%

I am running on ubuntu and I see that the output of ethtool -S eth0 shows positive values for rx_queue_*_csum_errboth rx_fifo_errors (a few thousands).

What do this counters actually track, are there any very well known causes for them to be non 0?


rx_fifo_errors = Total number of rx_queue_*_drops

rx_queue_*_drops = Number of dropped packets per queue

Sounds like the RX interrupts aren't allocating buffers fast enough, resulting in the adapter dropping packets.

Check and increase the ring buffer.

# 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

You can set your "Current Hardware Settings" for "RX" up to the limit shown in the "Pre-set maximums"

# ethtool -G eth0 rx 4096

NOTE: This setting will not survive a reboot. You may want to use rc.local (or something similar)

  • is the interface going to go down/up while changing this setting? i would run this on a production server so that would be quite inconvenient... Dec 11 '14 at 15:52
  • @TommasoBarbugli A Production server? I doubt the NIC will go down. But test it in Development/Non-Prod first should be done for anything you do.
    – Signal15
    Dec 11 '14 at 19:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.