Chapitre 32. Augmentation des tampons de l'anneau pour réduire un taux élevé de perte de paquets
Les tampons d'anneau de réception sont partagés entre le pilote du périphérique et le contrôleur d'interface réseau (NIC). La carte attribue un tampon circulaire de transmission (TX) et de réception (RX). Comme son nom l'indique, le ring buffer est un tampon circulaire dans lequel un débordement écrase les données existantes. Il existe deux façons de transférer des données de la carte d'interface réseau au noyau : les interruptions matérielles et les interruptions logicielles, également appelées SoftIRQ.
Le noyau utilise le tampon de l'anneau RX pour stocker les paquets entrants jusqu'à ce qu'ils puissent être traités par le pilote de périphérique. Le pilote de périphérique vide l'anneau RX, généralement à l'aide de SoftIRQ, ce qui place les paquets entrants dans une structure de données du noyau appelée sk_buff
ou skb
pour commencer son voyage à travers le noyau et jusqu'à l'application qui possède la prise correspondante.
Le noyau utilise le tampon circulaire TX pour contenir les paquets sortants destinés au réseau. Ces tampons en anneau se trouvent au bas de la pile et constituent un point crucial où des paquets peuvent être abandonnés, ce qui affecte négativement les performances du réseau.
Augmentez la taille des tampons en anneau d'un périphérique Ethernet si le taux de perte de paquets entraîne des pertes de données, des dépassements de délai ou d'autres problèmes pour les applications.
Procédure
Affiche les statistiques de chute de paquets de l'interface :
# ethtool -S enp1s0 ... rx_queue_0_drops: 97326 rx_queue_1_drops: 63783 ...
Notez que la sortie de la commande dépend de la carte réseau et du pilote.
Des valeurs élevées dans les compteurs
discard
oudrop
indiquent que le tampon disponible se remplit plus rapidement que le noyau ne peut traiter les paquets. L'augmentation des tampons de l'anneau peut aider à éviter de telles pertes.Affiche la taille maximale des tampons de l'anneau :
# ethtool -g enp1s0 Ring parameters for enp1s0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 16320 TX: 4096 Current hardware settings: RX: 255 RX Mini: 0 RX Jumbo: 0 TX: 255
Si les valeurs de la section
Pre-set maximums
sont plus élevées que celles de la sectionCurrent hardware settings
, vous pouvez modifier les paramètres dans les étapes suivantes.Identifier le profil de connexion NetworkManager qui utilise l'interface :
# nmcli connection show NAME UUID TYPE DEVICE Example-Connection a5eb6490-cc20-3668-81f8-0314a27f3f75 ethernet enp1s0
Mettez à jour le profil de connexion et augmentez les tampons de l'anneau :
Pour augmenter la mémoire tampon de l'anneau RX, entrez :
# nmcli connection modify Example-Connection ethtool.ring-rx 4096
Pour augmenter la mémoire tampon de l'anneau TX, entrez :
# nmcli connection modify Example-Connection ethtool.ring-tx 4096
Recharger la connexion au NetworkManager :
# nmcli connection up Example-Connection
ImportantSelon le pilote utilisé par votre carte d'interface réseau, un changement dans la mémoire tampon de l'anneau peut interrompre brièvement la connexion réseau.
Ressources supplémentaires