¿Cómo solucionar problemas de rx_missed_errors?

8

Al migrar del servidor antiguo al nuevo, después de configurar todos los servicios, noto una gran caída de paquetes rx en mi NIC:

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

Pero /sys/class/net/eth2/statistics/rx_droppedno muestres nada:

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

Entonces, veo que rx_missed_errors:

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

¿Cómo puedo solucionar problemas y averiguar qué causa rx_missed_errors?


Estoy ejecutando 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
Cuonglm
fuente
¿Qué marca / modelo NIC es?
Geraint Jones
@GeraintJones: Actualicé la pregunta.
Cuonglm
¿Has seguido esto? sourceforge.net/p/e1000/bugs/383/#fb68
Geraint Jones
@GeraintJones: Gracias por el enlace, lo he leído pero parece que el problema no se mostró.
Cuonglm
Asociación libre aquí: ¿Posibilidad de incompatibilidad de configuración para sus NIC entre los dos servidores (y, por lo tanto, entre el nuevo servidor y su infraestructura de red)? ¿Hay alguna diferencia al ejecutar ethtool contra NIC en el servidor anterior (si es una opción)? Además, ¿hay alguna diferencia al conectar un puerto diferente en la NIC del servidor o un puerto diferente en el conmutador al que está conectado? Para la comparación entre las dos NIC, use ethtool -k eth2 (en lugar de -i).
Mary

Respuestas:

8

La mayoría de los conductores intercambian su uso de los contadores rx_missed_errors, rx_fifo_errorsy rx_over_errors, pero generalmente configuran uno o más de estos contadores en el contador MPC (conteo de paquetes perdidos), que se incrementa cuando llega un paquete y se pierde porque la cola FIFO de la tarjeta está llena.

Este es el caso del controlador 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;

Entonces rx_missed_errorspara ixgbe es el MPC.

Hay una gran publicación de blog en el sitio web de Intel que describe las causas de las caídas de MPC utilizando una gran analogía: https://communities.intel.com/community/tech/wired/blog/2009/11/04/how-the-kitchen -sink-and-statistics-explica-y-trata-paquetes-descartados

Además, asegúrese de que no haya una coincidencia de velocidad y dúplex entre su NIC y el conmutador. Si su conmutador piensa que su NIC es más rápida de lo que realmente es, entonces tendrá problemas en el lado de la NIC.

Finalmente, maximizar el tamaño del búfer de anillo de su NIC podría ayudar si la causa raíz termina siendo el rendimiento frente a las explosiones. Puede encontrar el valor máximo con ethtool -g eth2y luego configurarlo con ethtool -G.

Christopher Neylan
fuente
El enlace ya no está, pero Google todavía lo tiene en caché: webcache.googleusercontent.com/…
Theuni
Y si el caché de Google no funciona, está en la máquina del camino: web.archive.org/web/20141220043139/https://…
claymation