2012-01-24 10 views
10

estoy recibiendo miles de paquetes deja caer desde una tarjeta de red Broadcom:cómo encontrar los paquetes que nos dejó

eth1  Link encap:Ethernet HWaddr 01:27:B0:14:DA:FE 
      UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 
      RX packets:2746252626 errors:0 dropped:1151734 overruns:0 frame:0 
      TX packets:4109502155 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:427998700000 (408171.3 Mb) TX bytes:3530782240047 (3367216.3 Mb) 
      Interrupt:40 Memory:d8000000-d8012700 

Aquí es la versión instalada:

filename:  /lib/modules/2.6.27.54-0.2-default/kernel/drivers/net/bnx2.ko 
version:  1.8.0 
license:  GPL 
description: Broadcom NetXtreme II BCM5706/5708/5709 Driver 

Los paquetes se caen en bultos que van desde 500 a 5000 paquetes varias veces por hora. El Servidor (que ejecuta Postgres) se ejecuta correctamente, solo los dropps son molestos.

Después de probar un montón de cosas diferentes, lo que te pido: ¿En qué puedo averiguar dónde los paquetes vinieron y por qué se dejaron caer?

Respuesta

3

(Para el beneficio de los que vienen a este a través de una búsqueda) que he visto el mismo problema (también con un módulo bnx2, IIRC).

Puede intentar apagar el servicio irqbalance. En mi caso, detuvo por completo la solución.

Tenga en cuenta también que no hace mucho tiempo, había un montón de cambios (RHEL 6) para irqbalance. Las actualizaciones de firmware también deben verificarse tanto para el sistema principal como para la (s) placa (s) de ethernet.

que estábamos viendo esto sólo una subred muy grande con una gran cantidad de actividad de difusión/multidifusión. No estábamos viendo esto en el mismo equipo en una red menos ruidosa, pero aún muy activa.

Potencialmente, la configuración del tamaño del buffer de anillo de ethernet para la NIC también puede ser útil. Sé que hubo algunas alteraciones de sysctl en esa red ocupada ...

11

Un paquete descartado significa que el almacenamiento intermedio que se utiliza para almacenar el paquete para el reenvío/procesamiento está lleno. El hecho de mirar los datos del paquete para obtener información implica que usted tiene los datos para mirar desde el principio (y no es así, porque no había espacio para almacenarlos).

Una buena manera de evitar esto, para que pueda consultar los datos que se está eliminando, es mirar a través de un volcado de su tráfico para las solicitudes de retransmisión de TCP que salen de su servidor. Cuando falta un paquete TCP, por cualquier razón, su servidor va a solicitar que se lo vuelva a enviar. La retransmisión le brindará el contexto de conversación que está buscando.

Sugiero que eche un vistazo al interruptor/enrutador al que está conectado su servidor. Podrá darle una buena idea de la pérdida y el rendimiento en la interfaz de su servidor, permitiéndole diagnosticar, por ejemplo, si su tarjeta es demasiado lenta para el cable.

EDITAR

This blog post cita una herramienta llamada dropwatch, que le puede dar algunas pistas también.

+1

Vale la pena señalar que no hay versiones disponibles para Ubuntu en el momento de escribir esto - dropwatch se mantiene y se proporciona para fedora/redhat .. – rasjani

+1

e incluso entonces, nunca he encontrado que sea terriblemente útil (o en menos utilizable) –

+0

Si realmente necesitas Dropwatch, encuentras las rpm de tu arquitectura y la convierte haciendo un archivo deb con 'alien'. –

7

Es posible que se topó con https://www.novell.com/support/kb/doc.php?id=7007165.

cita:

Comenzando con el kernel 2.6.37, se ha cambiado el significado de recuento de paquetes caído. Antes, los paquetes descartados probablemente se debían a un error.Ahora, el contador rx_dropped muestra las estadísticas de fotogramas eliminados a causa de:

atraso Softnet completo - (Medido desde/proc/net/softnet_stat)

etiquetas VLAN no deseado Bad/

protocolos Desconocido/no registrados

IPv6 marcos cuando el servidor no está configurado para IPv6

Si cualquier trama cumplen esas condiciones, se dejan caer antes de la pila de protocolos y el contador se incrementa rx_dropped.

Cuestiones relacionadas