Rechercher

31.12. Réglage de la coalescence d'interruption

download PDF

La coalescence des interruptions est un mécanisme permettant de réduire le nombre d'interruptions générées par une carte réseau. En règle générale, la réduction du nombre d'interruptions permet d'améliorer la latence et les performances globales de votre réseau.

Le réglage de la coalescence d'interruption implique l'ajustement des paramètres qui la contrôlent :

  • Le nombre de paquets qui sont combinés en une seule interruption.
  • Délai avant la génération d'une interruption.
Important

Les paramètres optimaux de coalescence dépendent des conditions spécifiques du réseau et du matériel utilisé. Par conséquent, il faudra peut-être plusieurs tentatives pour trouver les paramètres qui conviennent le mieux à votre environnement et à vos besoins.

31.12.1. Optimisation de RHEL pour les services sensibles à la latence ou au débit

L'objectif du réglage de la coalescence est de minimiser le nombre d'interruptions nécessaires pour une charge de travail donnée. Dans les situations de haut débit, l'objectif est d'avoir le moins d'interruptions possible tout en maintenant un débit de données élevé. Dans les situations de faible latence, davantage d'interruptions peuvent être utilisées pour gérer rapidement le trafic.

Vous pouvez ajuster les paramètres de votre carte réseau pour augmenter ou diminuer le nombre de paquets qui sont combinés en une seule interruption. Vous pouvez ainsi améliorer le débit ou la latence de votre trafic.

Procédure

  1. Identifiez l'interface réseau qui subit le goulot d'étranglement :

    # ethtool -S enp1s0
    NIC statistics:
         rx_packets: 1234
         tx_packets: 5678
         rx_bytes: 12345678
         tx_bytes: 87654321
         rx_errors: 0
         tx_errors: 0
         rx_missed: 0
         tx_dropped: 0
         coalesced_pkts: 0
         coalesced_events: 0
         coalesced_aborts: 0

    Identifier les compteurs de paquets dont le nom contient "drop", "discard" ou "error". Ces statistiques particulières mesurent la perte réelle de paquets au niveau du tampon de paquets de la carte d'interface réseau (NIC), qui peut être causée par la coalescence de la NIC.

  2. Surveillez les valeurs des compteurs de paquets que vous avez identifiés à l'étape précédente.

    Comparez-les aux valeurs attendues pour votre réseau afin de déterminer si une interface particulière présente un goulot d'étranglement. Les signes les plus courants d'un goulot d'étranglement dans le réseau sont, entre autres, les suivants

    • Nombreuses erreurs sur une interface réseau
    • Perte de paquets élevée
    • Utilisation intensive de l'interface réseau

      Note

      D'autres facteurs importants sont par exemple l'utilisation de l'unité centrale, l'utilisation de la mémoire et les entrées/sorties du disque lorsqu'il s'agit d'identifier un goulot d'étranglement dans le réseau.

  3. Visualiser les paramètres de coalescence actuels :

    # ethtool enp1s0
    Settings for enp1s0:
            Supported ports: [ TP ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Full
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Full
            Advertised pause frame use: No
            Advertised auto-negotiation: Yes
            Speed: 1000Mb/s
            Duplex: Full
            Port: Twisted Pair
            PHYAD: 0
            Transceiver: internal
            Auto-negotiation: on
            MDI-X: Unknown
            Supports Wake-on: g
            Wake-on: g
            Current message level: 0x00000033 (51)
                                   drv probe link
            Link detected: yes

    Dans cette sortie, surveillez les champs Speed et Duplex. Ces champs affichent des informations sur le fonctionnement de l'interface réseau et indiquent si les valeurs attendues sont respectées.

  4. Vérifier les paramètres actuels de coalescence d'interruption :

    # ethtool -c enp1s0
    Coalesce parameters for enp1s0:
            Adaptive RX: off
            Adaptive TX: off
            RX usecs: 100
            RX frames: 8
            RX usecs irq: 100
            RX frames irq: 8
            TX usecs: 100
            TX frames: 8
            TX usecs irq: 100
            TX frames irq: 8
    • Les valeurs de usecs se réfèrent au nombre de microsecondes que le récepteur ou l'émetteur attend avant de générer une interruption.
    • Les valeurs de frames se réfèrent au nombre de trames que le récepteur ou l'émetteur attend avant de générer une interruption.
    • Les valeurs de irq sont utilisées pour configurer la modération d'interruption lorsque l'interface réseau gère déjà une interruption.

      Note

      Toutes les cartes d'interface réseau ne permettent pas de signaler et de modifier toutes les valeurs de l'exemple de sortie.

    • La valeur Adaptive RX/TX représente le mécanisme adaptatif de coalescence des interruptions, qui ajuste les paramètres de coalescence des interruptions de manière dynamique. En fonction de l'état des paquets, le pilote du NIC calcule automatiquement les valeurs de coalescence lorsque Adaptive RX/TX est activé (l'algorithme diffère d'un pilote de NIC à l'autre).
  5. Modifiez les paramètres de coalescence si nécessaire. Par exemple :

    • Lorsque ethtool.coalesce-adaptive-rx est désactivé, configurez ethtool.coalesce-rx-usecs pour que le délai avant la génération d'une interruption soit de 100 microsecondes pour les paquets RX :

      # nmcli connection modify enp1s0 ethtool.coalesce-rx-usecs 100
    • Activer ethtool.coalesce-adaptive-rx alors que ethtool.coalesce-rx-usecs est réglé sur sa valeur par défaut :

      # nmcli connection modify enp1s0 ethtool.coalesce-adaptive-rx on

      Red Hat recommande de modifier le paramètre Adaptive-RX comme suit :

      • Les utilisateurs soucieux d'une faible latence (inférieure à 50us) ne doivent pas activer Adaptive-RX.
      • Les utilisateurs soucieux du débit peuvent probablement activer Adaptive-RX sans problème. S'ils ne veulent pas utiliser le mécanisme de coalescence adaptative des interruptions, ils peuvent essayer de fixer des valeurs importantes comme 100us ou 250us à ethtool.coalesce-rx-usecs.
      • Les utilisateurs qui ne sont pas sûrs de leurs besoins ne devraient pas modifier ce paramètre jusqu'à ce qu'un problème survienne.
  6. Réactiver la connexion :

    # nmcli connection up enp1s0

Verification steps

  • Surveillez les performances du réseau et vérifiez si des paquets ont été perdus :

    # ethtool -S enp1s0
    NIC statistics:
         rx_packets: 1234
         tx_packets: 5678
         rx_bytes: 12345678
         tx_bytes: 87654321
         rx_errors: 0
         tx_errors: 0
         rx_missed: 0
         tx_dropped: 0
         coalesced_pkts: 12
         coalesced_events: 34
         coalesced_aborts: 56
    ...

    La valeur des champs rx_errors, rx_dropped, tx_errors, et tx_dropped doit être égale à 0 ou proche de cette valeur (jusqu'à quelques centaines, en fonction du trafic réseau et des ressources du système). Une valeur élevée dans ces champs indique un problème de réseau. Vos compteurs peuvent avoir des noms différents. Surveillez de près les compteurs de paquets dont le nom contient "drop", "discard" ou "error".

    Les valeurs de rx_packets, tx_packets, rx_bytes, et tx_bytes devraient augmenter avec le temps. Si les valeurs n'augmentent pas, il peut y avoir un problème de réseau. Les compteurs de paquets peuvent avoir des noms différents, selon le pilote de votre carte d'interface réseau.

    Important

    La sortie de la commande ethtool peut varier en fonction du NIC et du pilote utilisés.

    Les utilisateurs qui se concentrent sur une latence extrêmement faible peuvent utiliser des mesures au niveau de l'application ou l'API d'horodatage des paquets du noyau à des fins de surveillance.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.