Come risolvere rx_missed_errors?


8

Migrando dal vecchio server a quello nuovo, dopo aver impostato tutti i servizi, noto un grosso pacchetto di pacchetti rx nella mia scheda di rete:

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

Ma /sys/class/net/eth2/statistics/rx_droppednon mostrare nulla:

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

Quindi vedo che rx_missed_errors:

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

Come posso risolvere i problemi e scoprire quale causa rx_missed_errors?


Sto eseguendo Ubuntu 12.04.5 LTS, con:

$ 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

Che marca / modello NIC è?
Geraint Jones,

@GeraintJones: ho aggiornato la domanda.
cuonglm,


@GeraintJones: Grazie per il link, l'ho letto ma sembra che il problema non sia stato mostrato?
cuonglm,

Associazione gratuita qui: possibilità di mancata corrispondenza della configurazione per le schede NIC tra i due server (e quindi tra il nuovo server e l'infrastruttura di rete)? Qualche differenza nell'esecuzione di ethtool rispetto alla scheda NIC sul server precedente (se questa è un'opzione)? Inoltre, c'è qualche differenza nel collegare una porta diversa sulla scheda NIC nel server o un'altra porta sullo switch a cui è connessa? Per il confronto tra le due schede NIC, utilizzare ethtool -k eth2 (anziché -i).
Mary,

Risposte:


8

La maggior parte dei piloti di interscambio il loro uso dei contatori rx_missed_errors, rx_fifo_errorserx_over_errors , ma in genere impostate uno o più di questi contatori per il contatore MPC (numero di pacchetti perse), che viene incrementato quando un pacchetto arriva e viene perso a causa della coda FIFO della scheda è piena.

Questo è il caso del 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;

Quindi rx_missed_errorsper ixgbe è il MPC.

C'è un ottimo post sul blog sul sito Web di Intel che descrive le cause dei cali di MPC usando una grande analogia: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen pacchetti -sink-e-statistica-spiegare-and-treat-caduto-

Inoltre, assicurarsi che non vi sia una corrispondenza errata di velocità e duplex tra la scheda di rete e lo switch. Se il tuo switch ritiene che la tua NIC sia più veloce di quanto non sia in realtà, allora avrai problemi sul lato NIC delle cose.

Infine, massimizzare le dimensioni del buffer dell'anello della scheda NIC potrebbe essere utile se la causa principale finisce per essere la prestazione di fronte agli scoppi. È possibile trovare il valore massimo con ethtool -g eth2e quindi impostarlo con ethtool -G.


Il collegamento è ormai passato, ma Google lo ha ancora nella cache: webcache.googleusercontent.com/…
Theuni,

E se la cache di Google non funziona, è sulla macchina del ritorno: web.archive.org/web/20141220043139/https://…
claymation
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.