Wie behebe ich rx_missed_errors?

8

Bei der Migration vom alten auf den neuen Server stelle ich nach dem Festlegen aller Dienste fest, dass in meiner Netzwerkkarte große Empfangspakete verworfen wurden:

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

Aber /sys/class/net/eth2/statistics/rx_droppedzeig nichts:

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

Dann sehe ich das rx_missed_errors:

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

Wie kann ich Fehler beheben und herausfinden, welche Ursache vorliegt rx_missed_errors?


Ich verwende Ubuntu 12.04.5 LTS mit:

$ 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
quelle
Um welche Marke / Modell-NIC handelt es sich?
Geraint Jones
@GeraintJones: Ich habe die Frage aktualisiert.
Cuonglm
Hast du das befolgt? sourceforge.net/p/e1000/bugs/383/#fb68
Geraint Jones
@GeraintJones: Danke für den Link, ich habe ihn gelesen, aber es scheint, dass das Problem nicht angezeigt wurde?
Cuonglm
Kostenlose Zuordnung hier: Möglichkeit der Nichtübereinstimmung der Konfiguration für Ihre Netzwerkkarten zwischen den beiden Servern (und damit zwischen dem neuen Server und Ihrer Netzwerkinfrastruktur)? Gibt es einen Unterschied beim Ausführen von ethtool gegen NIC auf dem älteren Server (wenn dies eine Option ist)? Gibt es auch einen Unterschied beim Einstecken eines anderen Ports auf der Netzwerkkarte im Server oder eines anderen Ports auf dem Switch, mit dem er verbunden ist? Verwenden Sie für den Vergleich zwischen den beiden Netzwerkkarten ethtool -k eth2 (anstelle von -i).
Mary

Antworten:

8

Die meisten Treiber tauschen ihre Verwendung der Zähler aus rx_missed_errors, rx_fifo_errorsund rx_over_errors, aber sie setzen normalerweise einen oder mehrere dieser Zähler auf den MPC-Zähler (Missed Packet Count), der erhöht wird, wenn ein Paket ankommt und verloren geht, weil die FIFO-Warteschlange der Karte voll ist.

Dies ist beim ixgbe-Treiber der Fall:

$ 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;

Also rx_missed_errorsfür ixgbe ist der MPC.

Auf der Intel-Website gibt es einen großartigen Blog-Beitrag, der die Ursachen von MPC-Abfällen anhand einer großartigen Analogie beschreibt: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen -senken-und-Statistiken-erklären-und-behandeln-verworfene-Pakete

Stellen Sie außerdem sicher, dass zwischen Ihrer Netzwerkkarte und dem Switch keine Geschwindigkeits- und Duplex-Fehlanpassung besteht. Wenn Ihr Switch der Meinung ist, dass Ihre Netzwerkkarte schneller ist als sie wirklich ist, haben Sie Probleme mit der Netzwerkkarte.

Schließlich kann es hilfreich sein, die Größe des Ringpuffers Ihrer Netzwerkkarte zu maximieren, wenn die Hauptursache die Leistung angesichts von Bursts ist. Sie können den Maximalwert mit finden ethtool -g eth2und dann mit einstellen ethtool -G.

Christopher Neylan
quelle
Der Link ist inzwischen verschwunden, aber Google hat ihn immer noch im Cache: webcache.googleusercontent.com/…
Theuni
Und wenn der Cache von Google nicht funktioniert, befindet er sich auf dem Wayback-Computer: web.archive.org/web/20141220043139/https://…
Claymation