11
votes

Comment trouver quels paquets ont été supprimés

Je reçois des milliers de packages abandonnés à partir d'une carte réseau Broadcom: xxx

voici la version installée: xxx

le Les paquets sont tombés en vrac allant de 500 à 5000 paquets plusieurs fois par heure. Le serveur (en cours d'exécution postgres) fonctionne bien - juste les gouttes tombées sont ennuyeuses.

Après avoir essayé beaucoup de choses différentes, je demande: comment puis-je découvrir où les paquets sont venus et pourquoi ont-ils été abandonnés ?


0 commentaires

3 Réponses :


12
votes

Un paquet abandonné signifie que le tampon utilisé pour stocker le paquet pour le transfert / traitement est plein. L'acte de regarder dans les données de la paquette pour des informations implique que vous disposez des données à examiner en premier lieu (que vous ne le faites pas, car il n'y avait pas de place pour la stocker).

Un bon moyen autour de cela, vous pouvez donc voir quelles données sont supprimées, consiste à examiner une vidage de votre trafic pour les demandes de retransmission TCP laissant votre serveur. Lorsqu'un paquet TCP manque, pour une raison quelconque, votre serveur va demander à ce qu'il soit renvoyé. Le retransmit vous donnera le contexte de conversation que vous recherchez.

Je suggérerais de jeter un coup d'œil à l'interrupteur / routeur que votre serveur est connecté. Il sera capable de vous donner une bonne idée de la perte et du débit sur l'interface à votre serveur, vous permettant de diagnostiquer, par exemple, si votre carte est trop lente pour le fil.

Modifier

ce blog post cite un outil appelé DropWatch , qui peut vous donner des indices également.


3 commentaires

Il convient de souligner qu'il n'y a pas de constructions disponibles pour Ubuntu au moment de la rédaction de cet article - Dropwatch est maintenu et fourni à Fedora / Redhat ..


Et même alors, je n'ai jamais trouvé cela terriblement utile (ou au moins utilisable)


Si vous avez vraiment besoin de DropWatch, vous trouvez le RPM pour votre architecture et convertissez-le faire un fichier deb avec Alien .



4
votes

(au profit de ceux qui arrivent à cette via une recherche) J'ai vu le même problème (aussi avec un module BNX2, IIRC).

Vous pouvez essayer d'éteindre le service IRQBALANCE. Dans mon cas, il arrêta complètement la solution.

Veuillez également noter que cela n'existe pas si longtemps, il y avait beaucoup de mises à jour (Rhel 6) pour IRQBALANCE. Les mises à jour du micrologiciel doivent également être vérifiées à la fois pour le système principal et la (les) carte Ethernet.

Nous voyions cela seulement un très grand sous-réseau avec une très grande quantité d'activité de diffusion / de multidiffusion. Nous ne voyissions pas cela sur le même équipement sur une partie moins bruyante - mais toujours très active - une partie du réseau.

Potentiellement, régler la taille de la mémoire tampon Ethernet pour la carte réseau peut également être utile. Je sais qu'il y avait quelques altérations pour SYSCTL sur ce réseau occupé ...


0 commentaires

8
votes

Vous pouvez courir dans https://www.novell.com/support/kb/doc .php? id = 7007165 .

Quote:

Commencer avec le noyau 2.6.37, il a été modifié la signification du nombre de paquets abandonnés. Auparavant, les paquets abandonnés étaient probablement dues à une erreur. Maintenant, le compteur RX_Drapped affiche des statistiques pour les cadres abandonnés en raison de:

Backlog SoftNet Full - (mesuré de / proc / net / softnet_stat)

Tags VLAN mauvais / non invoqué

Protocoles inconnus / non enregistrés

Cadres IPv6 Lorsque le serveur n'est pas configuré pour IPv6

Si des cadres répondent à ces conditions, ils sont déposés avant la pile de protocoles et le compteur RX_Dropped est incrémenté.


0 commentaires