A maioria dos drivers troca seu uso dos contadores rx_missed_errors
, rx_fifo_errors
e rx_over_errors
, mas eles geralmente definem um ou mais desses contadores para o contador MPC (contagem de pacotes perdidos), que é incrementado quando um pacote chega e é perdido porque a fila FIFO do cartão está cheia.
Este é o caso do driver ixgbe:
$ 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;
Então rx_missed_errors
para ixgbe é o MPC.
Há uma ótima postagem no blog do site da Intel que descreve as causas da queda do MPC usando uma ótima analogia: link
Além disso, verifique se não há diferença de velocidade e duplex entre a NIC e o switch. Se o seu switch achar que sua NIC está mais rápida do que realmente é, você terá problemas no lado da NIC.
Finalmente, maximizar o tamanho do buffer de toque da sua NIC pode ajudar se a causa raiz acabar sendo o desempenho em face de rajadas. Você pode encontrar o valor máximo com ethtool -g eth2
e depois defini-lo com ethtool -G
.