Migrating from old server to new one, after setting all services, I notice a big dropped rx packets in my NIC:

$ ifconfig eth2 | grep 'RX.*drop'
          RX packets:2059646370 errors:0 dropped:7142467 overruns:0 frame:0

But /sys/class/net/eth2/statistics/rx_dropped show nothing:

$ cat /sys/class/net/eth2/statistics/rx_dropped

Then, I see that rx_missed_errors:

$ cat /sys/class/net/eth2/statistics/rx_missed_errors

How can I troubleshoot and find out what cause rx_missed_errors?

I'm running Ubuntu 12.04.5 LTS, with:

$ ethtool -i eth2
driver: ixgbe
version: 3.15.1-k
firmware-version: 0x800003e1
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
  • What make/model NIC is it? Jun 30, 2015 at 10:23
  • @GeraintJones: I updated question.
    – cuonglm
    Jun 30, 2015 at 10:28
  • Have youu followed this ? sourceforge.net/p/e1000/bugs/383/#fb68 Jun 30, 2015 at 10:31
  • @GeraintJones: Thanks for the link, I have read it but it seem that the issue wasn't shown?
    – cuonglm
    Jun 30, 2015 at 10:43
  • Free associating here: Possibility of configuration mismatch for your NICs between the two servers (and therefore between new server and your network infrastructure)? Any difference running ethtool against NIC on the older server (if that is an option)? Also, any difference plugging in a different port on the NIC in the server, or different port on the switch to which it is connected? For the comparison between the two NICs, use ethtool -k eth2 (instead of -i).
    – Mary
    Aug 5, 2015 at 21:16

1 Answer 1


Most drivers interchange their use of the counters rx_missed_errors, rx_fifo_errors, and rx_over_errors, but they typically set one or more of these counters to the MPC (missed packet count) counter, which is incremented when a packet arrives and is lost because the card's FIFO queue is full.

This is the case for the ixgbe driver:

$ grep rx_missed_errors drivers/net/ixgbe/*
drivers/net/ixgbe/ixgbe_ethtool.c:      {"rx_missed_errors", IXGBE_STAT(net_stats.rx_missed_errors)},
drivers/net/ixgbe/ixgbe_main.c: adapter->net_stats.rx_missed_errors = total_mpc;

So rx_missed_errors for ixgbe is the MPC.

There's a great blog post on the Intel website that describes the causes of MPC drops using a great analogy: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen-sink-and-statistics-explain-and-treat-dropped-packets

Also, make sure there isn't a speed and duplex mis-match between your NIC and the switch. If your switch thinks your NIC is faster than it really is, then you'll have problems on the NIC side of things.

Finally, maxing the size of your NIC's ring buffer might help if the root cause ends up being performance in the face of bursts. You can find the max value with ethtool -g eth2 and then set it with ethtool -G.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .