Partager via


Performances dans les cartes réseau

Il existe toujours des compromis dans le choix des fonctions matérielles à implémenter sur une carte réseau. Il devient de plus en plus important d’envisager d’ajouter des fonctionnalités de déchargement des tâches qui permettent la modération des interruptions, le réglage dynamique sur le matériel, l’amélioration de l’utilisation du bus PCI et la prise en charge des trames Jumbo. Celles-ci sont particulièrement importantes pour la carte réseau haut de gamme qui sera utilisée dans les configurations nécessitant des performances optimales.

Prise en charge du déchargement de la somme de contrôle TCP et IP

Pour le trafic réseau le plus courant, le déchargement du calcul de la somme de contrôle sur le matériel de la carte réseau offre un avantage significatif en termes de performances en réduisant le nombre de cycles d’UC requis par octet. Le calcul de la somme de contrôle est la fonction la plus coûteuse de la pile réseau pour deux raisons :

  • Il contribue à la longueur du chemin.
  • Il provoque des effets d’attrition du cache (généralement sur l’expéditeur).

Le déchargement du calcul de la somme de contrôle à l’expéditeur améliore les performances globales du système en réduisant la charge sur le processeur hôte et en augmentant l’efficacité du cache.

Dans le Laboratoire de performances Windows, nous avons mesuré des améliorations de débit TCP de 19 % lorsque la somme de contrôle a été déchargée pendant les charges de travail nécessitant beaucoup de réseau. L’analyse de cette amélioration montre que 11 % de l’amélioration totale est due à la réduction de la longueur du chemin et 8 % à l’augmentation de l’efficacité des caches.

Le déchargement de la somme de contrôle sur le récepteur présente les mêmes avantages que le déchargement de la somme de contrôle sur l’expéditeur. Un avantage accru peut être observé sur les systèmes qui agissent à la fois comme client et serveur, comme un serveur proxy de sockets. Sur les systèmes où le processeur n’est pas nécessairement occupé, comme un système client, l’avantage du déchargement de la somme de contrôle peut être observé dans de meilleurs temps de réponse réseau, plutôt que dans un débit sensiblement amélioré.

Prise en charge du déchargement d’envoi volumineux (LSO)

Windows offre la possibilité pour la carte réseau/le pilote de publier une taille maximale de segment (MSS) supérieure à celle du MTU pour TCP jusqu’à 64 Ko. Cela permet à TCP d’allouer une mémoire tampon allant jusqu’à 64 000 au pilote, ce qui divise la mémoire tampon volumineuse en paquets qui s’intègrent dans le MTU réseau.

Le travail de segmentation TCP est effectué par le matériel de la carte réseau/du pilote au lieu du processeur hôte . Cela entraîne une amélioration significative des performances si le processeur de la carte réseau est en mesure de gérer le travail supplémentaire.

Pour la plupart des cartes réseau testées, peu d’améliorations ont été observées pour les activités réseau pures lorsque le processeur hôte était plus puissant que le matériel de la carte réseau. Toutefois, pour les charges de travail métier classiques, une amélioration globale des performances du système allant jusqu’à 9 % du débit a été mesurée, car le processeur hôte utilise la plupart de ses cycles pour exécuter des transactions. Dans ce cas, le déchargement de la segmentation TCP sur le matériel libère le processeur hôte de la charge de segmentation, ce qui lui permet d’effectuer des cycles supplémentaires pour effectuer davantage de transactions.

Prise en charge du déchargement de la sécurité IP (IPSec)

Windows offre la possibilité de décharger le travail de chiffrement d’IPSec sur le matériel de la carte réseau. Le chiffrement, en particulier 3 DES (également appelé triple DES), a un rapport cycles/octets très élevé. Par conséquent, il n’est pas surprenant que le déchargement d’IPSec sur le matériel de la carte réseau ait mesuré une amélioration des performances de 30 % dans les tests Internet et VPN sécurisés.

Amélioration de la modération des interruptions

Une carte réseau simple génère une interruption matérielle sur l’hôte à l’arrivée d’un paquet ou pour signaler l’achèvement d’une demande d’envoi de paquets. La latence des interruptions et les effets d’attrition du cache qui en résultent ajoutent une surcharge aux performances réseau globales. Dans de nombreux scénarios (par exemple, une utilisation intensive du système ou un trafic réseau important), il est préférable de réduire le coût de l’interruption matérielle en traitant plusieurs paquets pour chaque interruption.

Avec les charges de travail réseau lourdes, l’amélioration des performances du débit a été mesurée jusqu’à 9 % par rapport aux charges de travail nécessitant beaucoup de réseau. Toutefois, le paramétrage des paramètres de modération d’interruption uniquement pour les améliorations du débit peut entraîner un impact sur les performances du temps de réponse. Pour maintenir des paramètres optimaux et prendre en charge différentes charges de travail, il est préférable d’autoriser les paramètres ajustés dynamiquement, comme décrit dans le paramétrage automatique plus loin dans cet article.

Utilisation efficace du bus PCI

L’un des facteurs les plus importants dans les performances matérielles de la carte réseau est l’efficacité de l’utilisation du bus PCI. En outre, les performances DMA de la carte réseau affectent les performances de toutes les cartes PCI qui se trouvent sur le même bus PCI. Les instructions suivantes doivent être prises en compte lors de l’optimisation de l’utilisation de PCI :

  • Rationalisez les transferts DMA en agrégeant les pages cibles le cas échéant.

  • Réduisez la surcharge du protocole PCI en exécutant DMA en blocs volumineux (au moins 256 octets). Dans la mesure du possible, chronomettez le flux de données afin que des paquets entiers soient transférés en une seule transaction PCI. Toutefois, réfléchissez à la façon dont le transfert doit avoir lieu. Par exemple, n’attendez pas que toutes les données arrivent avant de lancer les transferts, car l’attente augmente la latence et consomme de l’espace tampon supplémentaire.

  • Il est préférable de compléter le transfert de paquets DMA avec des octets supplémentaires, plutôt que d’exiger un transfert supplémentaire court vers « propre haut » en transférant les derniers octets du paquet.

  • Utilisez les transactions Lecture de mémoire, Ligne de lecture de mémoire et Lecture de mémoire multiples, comme recommandé par la spécification PCI.

  • Le matériel d’interface de bus de carte réseau doit détecter les limitations dans le contrôleur de mémoire hôte et ajuster le comportement en conséquence. Par exemple, le matériel d’interface de bus de carte réseau doit détecter les limitations de pré-extraction du contrôleur de mémoire sur les lectures de mémoire DMA et attendre une courte période avant de réessayer la transaction. Le matériel doit détecter les nouvelles tentatives excessives sur la partie de la carte réseau et augmenter le temps avant la première nouvelle tentative sur les transactions futures en cas de coupure par l’hôte. Il est inutile de continuer à envoyer des transactions au contrôleur de mémoire quand vous êtes certain qu’il est toujours occupé à extraire le jeu séquentiel suivant de données.

  • Réduisez l’insertion d’états d’attente, en particulier pendant les transferts de données. Il est préférable d’abandonner le bus et de laisser un autre adaptateur PCI à l’aide du bus faire du travail si plusieurs états d’attente sont insérés.

  • Utilisez les E/S mappées à la place des E/S programmées. Cela est également vrai pour les pilotes.

Prise en charge des images jumbo

La prise en charge des unités de transmission maximales (MTU) plus grandes et donc des tailles d’images plus grandes, en particulier des images Jumbo, réduit la surcharge de la pile réseau encourue par octet. Une augmentation du débit TCP de 20 % a été mesurée lorsque le MTU est passé de 1514 à 9 000. En outre, une réduction significative de l’utilisation du processeur est obtenue en raison du nombre réduit d’appels de la pile réseau vers le pilote réseau.