Optimisation des performances réseau sur les instances Windows - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Optimisation des performances réseau sur les instances Windows

Pour optimiser les performances réseau de vos instances Windows grâce à une mise en réseau améliorée, vous devrez peut-être modifier la configuration par défaut du système d'exploitation. Nous recommandons les modifications de configuration suivantes pour les applications nécessitant des performances réseau élevées. D'autres optimisations (telles que l'activation du déchargement par checksum et l'activation du flux RSS, par exemple) sont déjà configurées sur les AMI Windows officielles.

Note

Le transfert de la charge TCP Chimney doit être désactivé dans la plupart des cas d’utilisation ; il est obsolète depuis Windows Server 2016.

Outre ces optimisations de système d’exploitation, vous devez également tenir compte de l’unité de transmission maximale (MTU) de votre trafic réseau et l’ajuster en fonction de votre charge de travail et de l’architecture réseau. Pour plus d’informations, consultez Unité de transmission maximale (MTU) du réseau pour votre instance EC2.

AWS mesure régulièrement les latences aller-retour moyennes entre les instances lancées dans un groupe de placement en cluster de 50 µs et les latences finales de 200 µs au 99,9 centile. Si vos applications nécessitent des temps de latence constamment faibles, nous vous recommandons d’utiliser la dernière version des pilotes ENA sur des instances à performances fixes et conçues sur le système Nitro.

Configuration de l’affinité d’UC RSS

La distribution de la charge de l’UC du trafic réseau sur plusieurs processeurs est exécutée à l’aide de la technologie RSS (Receive side scaling) Par défaut, les AMI officielles d’Amazon Windows sont configurées avec les RSS activés. Les ENI ENA fournissent jusqu’à huit files d’attente RSS. En paramétrant l’affinité de l’UC pour les files d’attente RSS, ainsi que d’autres processus, il est possible de répartir la charge de l’UC sur des systèmes multicœurs, permettant ainsi le traitement d’un trafic réseau plus important. Sur les types d'instance comportant plus de 16 vCPU, nous vous recommandons d'utiliser l'Set-NetAdapterRSS PowerShell applet de commande, qui exclut manuellement le processeur de démarrage (processeurs logiques 0 et 1 lorsque l'hyperthreading est activé) de la configuration RSS pour tous les ENI, afin d'éviter tout conflit avec les différents composants du système.

Windows prend en compte les hyper-threads et s’assure que les files d’attente RSS d’un même NIC sont toujours placées sur des cœurs physiques différents. Par conséquent, à moins que l’hyper-threading ne soit désactivé, afin d’éviter tout conflit avec d’autres cartes NIC, répartissez la configuration RSS de chaque carte NIC sur une plage de 16 processeurs logiques. L'Set-NetAdapterRssapplet de commande vous permet de définir la plage par carte réseau des processeurs logiques valides en définissant les valeurs de BaseProcessorGroup,, BaseProcessorNumber MaxProcessingGroup MaxProcessorNumber, et NumaNode (facultatif). S’il n’y a pas suffisamment de cœurs physiques pour éliminer complètement le conflit inter-NIC, minimiser le chevauchement des plages ou réduire le nombre de processeurs logiques dans les plages ENI en fonction de la charge de travail prévue de l’ENI (en d’autres termes, un réseau administratif à faible volume ENI peut ne pas avoir besoin d’autant de files RSS affectées). De plus, comme nous l’avons mentionné précedemment, divers composants doivent fonctionner sur le processeur 0, et nous recommandons donc de l’exclure de toutes les configurations RSS lorsque suffisamment de vCPU sont disponibles.

Par exemple, lorsqu’il y a trois ENI sur une instance de 72 vCPU avec 2 nœuds NUMA avec hyper-threading activé, les commandes suivantes répartissent la charge réseau entre les deux processeurs sans chevauchement et empêchent complètement l’utilisation du cœur 0.

Set-NetAdapterRss -Name NIC1 -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessorNumber 16 Set-NetAdapterRss -Name NIC2 -BaseProcessorGroup 1 -BaseProcessorNumber 0 -MaxProcessorNumber 14 Set-NetAdapterRss -Name NIC3 -BaseProcessorGroup 1 -BaseProcessorNumber 16 -MaxProcessorNumber 30

Notez que ces paramètres sont persistants pour chaque adaptateur réseau. Si une instance est redimensionnée avec un nombre différent de vCPU, vous devez réévaluer la configuration RSS pour chaque ENI activé. La documentation complète de Microsoft pour l’applet de commande Set-NetAdapterRss est disponible ici : https://docs.microsoft.com/en-us/powershell/module/netadapter/set-netadapterrss.

Remarque spécifique aux charges de travail SQL : nous vous recommandons également de revoir les paramètres d’affinité de vos threads d’I/O ainsi que votre configuration ENI RSS pour minimiser les conflits d’I/O et de réseau pour les mêmes processeurs. Consultez Option de configuration de serveur de masque d’affinité.