7

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?

1 Answers1

10

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)

Signal15
  • 943
  • 7
  • 27
  • 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... – Tommaso Barbugli 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