Partager via


Présentation de la mise à l’échelle côté réception

La mise à l’échelle côté réception (RSS) est une technologie de pilote réseau qui permet une distribution efficace du traitement des réceptions réseau entre plusieurs processeurs dans les systèmes multiprocesseurs.

Notes

Étant donné que les processeurs hyperthread sur le même processeur de cœur partagent le même moteur d’exécution, l’effet n’est pas le même que d’avoir plusieurs processeurs à cœurs. Pour cette raison, RSS n’utilise pas de processeurs hyperthread.

Pour traiter efficacement les données reçues, la fonction de service d’interruption de réception d’un pilote miniport planifie un appel de procédure différée (DPC). Sans RSS, un DPC classique indique toutes les données reçues dans l’appel DPC. Par conséquent, tout le traitement de réception associé à l’interruption s’exécute sur le processeur où l’interruption de réception se produit. Pour obtenir une vue d’ensemble du traitement des réceptions non RSS, consultez Traitement des réceptions non RSS.

RSS permet à la carte réseau et au pilote miniport de planifier les DPC de réception sur d’autres processeurs. La conception RSS garantit que le traitement associé à une connexion donnée reste sur un processeur affecté. La carte réseau implémente une fonction de hachage, et la valeur de hachage obtenue permet de sélectionner un processeur.

La figure suivante illustre le mécanisme RSS pour déterminer un processeur.

Diagramme montrant le processus du mécanisme RSS dans la détermination d’un processeur.

Une carte réseau utilise une fonction de hachage pour calculer une valeur de hachage sur une zone définie (type de hachage) dans les données réseau reçues. La zone définie peut être non incohérente.

Un certain nombre de bits les moins significatifs (LSB) de la valeur de hachage sont utilisés pour indexer une table d’indirection. Les valeurs de la table d’indirection sont utilisées pour affecter les données reçues à un processeur.

Pour plus d’informations sur la spécification des tables d’indirection, des types de hachage et des fonctions de hachage, consultez Configuration RSS.

Avec la prise en charge de l’interruption signalée par message (MSI), une carte réseau peut également interrompre le processeur associé. Pour plus d’informations sur la prise en charge de NDIS pour les IMS, consultez NDIS MSI-X.

Prise en charge matérielle pour RSS

La figure suivante illustre les niveaux de prise en charge matérielle pour RSS.

Diagramme montrant les différents niveaux de prise en charge matérielle pour RSS.

Il existe trois niveaux de prise en charge matérielle possibles pour RSS :

La carte réseau transmet toujours la valeur de hachage 32 bits.

Comment RSS améliore les performances du système

RSS peut améliorer les performances du système réseau en réduisant :

  • Retards de traitement en distribuant le traitement de réception à partir d’une carte réseau sur plusieurs processeurs.

    La distribution du traitement des réceptions permet de s’assurer qu’aucun processeur n’est lourdement chargé alors qu’un autre processeur est inactif.

  • Surcharge de verrouillage de rotation en augmentant la probabilité que les algorithmes logiciels qui partagent des données s’exécutent sur le même processeur.

    Une surcharge de verrouillage de rotation se produit, par exemple, lorsqu’une fonction s’exécutant sur CPU0 possède un verrou de rotation sur les données auxquelles une fonction s’exécutant sur CPU1 doit accéder. CPU1 tourne (attend) jusqu’à ce que CPU0 libère le verrou.

  • Rechargement des caches et d’autres ressources en augmentant la probabilité que les algorithmes logiciels qui partagent des données s’exécutent sur le même processeur.

    Ce rechargement se produit, par exemple, lorsqu’une fonction qui s’exécute et accède à des données partagées sur CPU0 s’exécute sur CPU1 dans une interruption suivante.

Pour obtenir ces améliorations des performances dans un environnement sécurisé, RSS fournit les mécanismes suivants :

  • Traitement distribué

    RSS distribue le traitement des indications de réception d’une carte réseau donnée dans les contrôleurs de carte d’interface réseau à plusieurs processeurs.

  • Traitement dans l’ordre

    RSS conserve l’ordre de livraison des paquets de données reçus. Pour chaque connexion réseau, les processus RSS reçoivent des indications sur un processeur associé. Pour plus d’informations sur le traitement des réceptions RSS, consultez Indication des données de réception RSS.

  • Équilibrage de charge dynamique

    RSS fournit un moyen de rééquilibrer la charge de traitement réseau entre les processeurs à mesure que la charge du système hôte varie. Pour rééquilibrer la charge, les pilotes sur-ment peuvent modifier la table d’indirection. Pour plus d’informations sur la spécification de tables d’indirection, de types de hachage et de fonctions de hachage, consultez Configuration RSS.

  • Mise à l’échelle côté envoi

    RSS permet aux piles de pilotes de traiter les données côté envoi et réception pour une connexion donnée sur le même processeur. En règle générale, un pilote overlying (par exemple, TCP) envoie une partie d’un bloc de données et attend un accusé de réception avant d’envoyer le solde des données. L’accusé de réception déclenche ensuite les demandes d’envoi suivantes. La table d’indirection RSS identifie un processeur particulier pour le traitement des données de réception. Par défaut, le traitement d’envoi s’exécute sur le même processeur s’il est déclenché par l’accusé de réception. Un pilote peut également spécifier le processeur (par exemple, si un minuteur est utilisé).

  • Hachage sécurisé

    RSS inclut une signature qui offre une sécurité supplémentaire. Cette signature protège le système contre les hôtes distants malveillants qui peuvent tenter de forcer le système à un état déséquilibré.

  • Prise en charge de MSI-X

    RSS, avec prise en charge de MSI-X, exécute la routine de service d’interruption (ISR) sur le même processeur que celui qui exécute ultérieurement le DPC. Cela réduit la surcharge de verrouillage de rotation et le rechargement des caches.