Comment dépanner rx_missed_errors?

8

Migration de l'ancien serveur vers le nouveau, après avoir configuré tous les services, je remarque un gros paquet rx perdu dans ma carte réseau:

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

Mais /sys/class/net/eth2/statistics/rx_droppedne montre rien:

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

Ensuite, je vois que rx_missed_errors:

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

Comment puis-je dépanner et trouver la cause rx_missed_errors?


J'utilise Ubuntu 12.04.5 LTS, avec:

$ 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
cuonglm
la source
De quelle marque / modèle NIC s'agit-il?
Geraint Jones
@GeraintJones: J'ai mis à jour la question.
cuonglm
Avez-vous suivi cela? sourceforge.net/p/e1000/bugs/383/#fb68
Geraint Jones
@GeraintJones: Merci pour le lien, je l'ai lu mais il semble que le problème n'ait pas été signalé?
cuonglm
Association libre ici: Possibilité de non-concordance de configuration pour vos NIC entre les deux serveurs (et donc entre le nouveau serveur et votre infrastructure réseau)? Y a-t-il une différence en exécutant ethtool contre NIC sur l'ancien serveur (si c'est une option)? De même, y a-t-il une différence entre le branchement d'un port différent sur la carte réseau du serveur ou un port différent du commutateur auquel il est connecté? Pour la comparaison entre les deux cartes réseau, utilisez ethtool -k eth2 (au lieu de -i).
Mary

Réponses:

8

La plupart des pilotes échangent leur utilisation des compteurs rx_missed_errors, rx_fifo_errorset rx_over_errors, mais ils définissent généralement un ou plusieurs de ces compteurs sur le compteur MPC (nombre de paquets manqués), qui est incrémenté lorsqu'un paquet arrive et est perdu car la file d'attente FIFO de la carte est pleine.

C'est le cas pour le pilote 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;

Donc rx_missed_errorspour ixgbe, c'est le MPC.

Il y a un excellent article de blog sur le site Web d'Intel qui décrit les causes des baisses de MPC en utilisant une grande analogie: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen -sink-and-statistics-expliquer-et-traiter-abandonnés-paquets

Assurez-vous également qu'il n'y a pas de correspondance de vitesse et de duplex entre votre carte réseau et le commutateur. Si votre commutateur pense que votre carte réseau est plus rapide qu'elle ne l'est vraiment, vous aurez des problèmes du côté de la carte réseau.

Enfin, l'optimisation de la taille de la mémoire tampon en anneau de votre carte réseau peut être utile si la cause principale finit par être des performances face aux rafales. Vous pouvez trouver la valeur maximale avec ethtool -g eth2puis la définir avec ethtool -G.

Christopher Neylan
la source
Le lien a disparu, mais Google l'a toujours dans le cache: webcache.googleusercontent.com/…
Theuni
Et si le cache de Google ne fonctionne pas, c'est sur la machine de retour: web.archive.org/web/20141220043139/https://…
claymation