Réglage des performances des cartes réseau

Utilisez les informations de cette rubrique pour optimiser les cartes réseau de performances pour les ordinateurs qui exécutent Windows Server 2016 et versions ultérieures. Si vos cartes réseau fournissent des options de paramétrage, vous pouvez utiliser ces options pour optimiser le débit réseau et l’utilisation des ressources.

Les variables suivantes déterminent les paramètres de réglage adéquats de vos adaptateurs réseau :

  • La carte réseau et son jeu de fonctionnalités
  • Le type de charge de travail que le serveur réalise
  • Les ressources matérielles et logicielles du serveur
  • Vos objectifs de performances pour le serveur

Les sections qui suivent décrivent certaines options de réglage des performances.

Activation des fonctionnalités de déchargement

L'activation des fonctionnalités de déchargement de la carte réseau est souvent bénéfique. Toutefois, l’adaptateur réseau n'est pas toujours suffisamment puissant pour gérer les capacités de déchargement lorsque le débit est élevé.

Important

N’utilisez pas les fonctionnalités de déchargement IPsec Task Offload ou TCP Chimney Offload. Ces technologies sont déconseillées dans Windows Server 2016 et peuvent nuire aux performances du serveur et du réseau. En outre, ces technologies risquent de ne pas être prises en charge par Microsoft à l’avenir.

Par exemple, considérez une carte réseau qui a des ressources matérielles limitées. Dans ce cas, l’activation des fonctionnalités de déchargement de segmentation peut réduire le débit maximal durable de l’adaptateur. Toutefois, si le débit réduit est acceptable, vous devez activer les fonctionnalités de déchargement de segmentation.

Notes

Certains adaptateurs réseau exigent que vous activiez les fonctionnalités de déchargement indépendamment pour les chemins d’envoi et de réception.

Activation du partage du trafic entrant (RSS) pour les serveurs web

RSS peut améliorer l'extensibilité web et les performances lorsque le serveur comprend moins de cartes réseau que de processeurs logiques. Lorsque l'ensemble du trafic web passe par les adaptateurs réseau, le serveur peut prendre en charge les demandes web entrantes provenant de connexions différentes peuvent être traitées simultanément dans différents processeurs.

Important

Évitez d’utiliser des adaptateurs réseau non RSS et des adaptateurs réseau compatibles RSS sur le même serveur. En raison de la logique de distribution de charge dans RSS et du protocole HTTP (Hypertext Transfer Protocol), les performances peuvent être fortement dégradées si un adaptateur réseau ne prenant pas en charge RSS accepte le trafic sur un serveur équipé d’une ou plusieurs adaptateurs réseau prenant en charge RSS. Dans cette situation, vous devez utiliser les cartes prenant en charge RSS ou désactiver RSS sous l'onglet Propriétés avancées dans les propriétés de la carte réseau.

Pour déterminer si une carte réseau prend en charge RSS, vous pouvez consulter l'onglet Propriétés avancées dans les propriétés de la carte réseau.

Profils RSS et Files d'attente RSS

Le profil RSS prédéfini par défaut est NUMAStatic, qui diffère de la valeur par défaut utilisée par les versions précédentes de Windows. Avant de commencer à utiliser les profils RSS, passez en revue les profils existants pour comprendre quand ils sont bénéfiques et comment ils s'appliquent à votre environnement et matériel réseau.

Par exemple, si en ouvrant le Gestionnaire des tâches et en passant en revue les processeurs logiques de votre serveur, il vous semble que ces derniers sont sous-utilisés pour le trafic de réception, vous pouvez essayer de passer le nombre de files d'attente de deux au maximum que votre adaptateur réseau prend en charge. Votre carte réseau peut proposer des options permettant de changer le nombre de files d'attente RSS dans le pilote.

Augmentation des ressources des adaptateurs réseau

Pour les adaptateurs réseau qui autorisent la configuration manuelle des ressources, comme les tampons de réception et d'envoi, vous devez augmenter les ressources allouées.

Certaines cartes réseau définissent des tampons de réception faibles afin de conserver la mémoire allouée depuis l'hôte. Cela conduit à des paquets ignorés et des performances réduites. Par conséquent, dans les scénarios de réception intensive, nous vous recommandons d'augmenter la valeur du tampon de réception à son maximum.

Remarque

Si un adaptateur réseau ne propose pas la configuration manuelle des ressources, soit il configure les ressources de manière dynamique, soit les ressources sont définies sur une valeur fixe qui ne peut pas être modifiée.

Activation de Modération de l’interruption

Pour contrôler la modération de l'interruption, certains adaptateurs réseau proposent différents niveaux de modération de l'interruption, des paramètres de fusion de tampons différents (parfois séparément pour les tampons d'envoi et de réception), ou les deux.

Vous devez envisager la modération des interruptions pour les charges de travail liées au processeur. Lors de l’utilisation de la modération de l'interruption, réfléchissez au compromis entre les ressources processeur économisées côté hôte et la latence, versus les ressources processeur supplémentaires économisées côté hôte en raison des interruptions plus nombreuses et de la latence plus faible. Si l’adaptateur réseau n’effectue pas de modération des interruptions, mais qu’il expose la coalescence des tampons, vous pouvez améliorer les performances en augmentant le nombre de tampons fusionnés pour permettre un plus grand nombre de tampons par envoi ou réception.

Réglage des performances pour le traitement à latence faible des paquets

De nombreuses cartes réseaux proposent des options permettant d'optimiser la latence induite par le système d'exploitation. La latence est la durée qui sépare le traitement d'un paquet entrant par le pilote réseau et le renvoi du paquet par ce pilote. Cette durée est généralement mesurée en microsecondes. À titre de comparaison, la durée de transmission de paquets sur de longues distances est généralement mesurée en millisecondes (un ordre de magnitude plus grand). Ce réglage ne réduira pas la durée de transit d'un paquet.

Voici quelques suggestions de réglage des performances pour les réseaux sensibles à la microseconde.

  • Définissez le BIOS de l'ordinateur sur Performances élevées et désactivez les états C. Notez toutefois que cela dépend du système et du BIOS et que les performances de certains systèmes seront meilleures si le système d'exploitation contrôle la gestion de l'alimentation. Vous pouvez vérifier et ajuster les paramètres de gestion de l'alimentation dans Paramètres ou à l'aide de la commande powercfg. Pour plus d’informations, voir Options de ligne de commande Powercfg.

  • Définissez le profil de gestion de l'alimentation du système d'exploitation sur Système hautes performances.

    Remarque

    Ce paramètre ne fonctionnera pas correctement si le BIOS système a été défini pour désactiver le contrôle de la gestion de l'alimentation par le système d'exploitation.

  • Activez les déchargements statiques. Par exemple, activez les paramètres Sommes de contrôle UDP, Sommes de contrôle TCP et Envoyer un déchargement volumineux (LSO).

  • Si le trafic est multi-diffusé, par exemple lors de la réception d’un trafic multidiffusion à volume élevé, activez RSS.

  • Désactivez le paramètre Modération de l'interruption pour les pilotes de carte réseau qui requièrent la latence la plus faible possible. Rappelez-vous que cette configuration peut utiliser plus de temps processeur et qu'il représente un compromis.

  • Gérez les interruptions de carte réseau et les appels de procédure différés (DPC) sur un processeur cœur qui partage le cache d'UC avec le cœur qui est utilisé par le programme (thread utilisateur) qui traite le paquet. Le réglage de l'affinité de l'UC peut être utilisé pour diriger un processus vers certains processeurs logiques, conjointement avec la configuration RSS. L'utilisation du même cœur pour le thread d'interruption, le thread DPC et le thread de mode utilisateur réduit les performances à mesure que la charge augmente du fait de la compétition entre ISR, DPC et le thread pour utiliser le cœur.

Interruptions d'administration système

De nombreux systèmes matériels utilisent Interruptions d’administration système (SMI) pour différentes fonctions de maintenance, notamment le signalement des erreurs mémoire ECC (Error Correction Code), la maintenance de la compatibilité USB héritée, le contrôle du ventilateur et la gestion des paramètres de l’alimentation contrôlée par le BIOS.

L’interface SMI est l’interruption de priorité la plus élevée sur le système et place le processeur en mode de gestion. Ce mode préempte toute autre activité alors que SMI exécute une routine de service d’interruption, généralement contenue dans le BIOS.

Malheureusement, ce comportement peut conduire à des pointes de latence de 100 microsecondes ou davantage.

Si vous avez besoin d'une latence très faible, demandez à votre fournisseur de matériel une version du BIOS qui réduit au maximum les SMI. Ces versions du BIOS sont fréquemment appelées « BIOS à faible latence » ou « BIOS libre SMI ». Dans certains cas, il n’est pas possible pour une plateforme matérielle d’éliminer complètement l’activité SMI, car elle est utilisée pour contrôler les fonctions essentielles (par exemple, les ventilateurs de refroidissement).

Notes

Le système d'exploitation ne peut pas contrôler les SMI car le processeur logique s'exécute dans un mode de maintenance spécial qui empêche l'intervention du système d'exploitation.

Réglage des performances de TCP

Vous pouvez utiliser les éléments suivants pour optimiser les performances TCP.

Réglage automatique de la fenêtre de réception TCP

Dans Windows Vista, Windows Server 2008 et les versions ultérieures de Windows, la pile réseau Windows utilise une fonctionnalité nommée Réglage automatique de la fenêtre de réception TCP pour négocier la taille de la fenêtre de réception TCP. Cette fonctionnalité peut négocier une taille de fenêtre de réception définie pour chaque communication TCP pendant l’établissement de liaison TCP.

Dans les versions antérieures de Windows, la pile réseau Windows utilisait une fenêtre de réception de taille fixe (65 535 octets) qui limitait le débit potentiel global pour les connexions. Le débit total réalisable des connexions TCP peut limiter les scénarios d’utilisation du réseau. Le réglage automatique de la fenêtre de réception TCP permet à ces scénarios d’utiliser entièrement le réseau.

Pour une fenêtre de réception TCP qui a une taille particulière, vous pouvez utiliser l’équation suivante pour calculer le débit total d’une seule connexion.

Débit total réalisable en octets = Taille de la fenêtre de réception TCP en octets * (1 / latence de connexion en secondes)

Par exemple, pour une connexion dont la latence est de 10 ms, le débit total réalisable n’est que de 51 Mbits/s. Cette valeur est raisonnable pour une infrastructure réseau d’entreprise volumineuse. Toutefois, en utilisant le réglage automatique pour ajuster la fenêtre de réception, la connexion peut atteindre le taux de ligne complet d’une connexion de 1 Gbits/s.

Certaines applications définissent la taille de la fenêtre de réception TCP. Si l’application ne définit pas la taille de la fenêtre de réception, la vitesse de liaison détermine la taille comme suit :

  • Moins de 1 mégabit par seconde (Mbits/s) : 8 kilo-octets (Ko)
  • 1 Mbits/s à 100 Mbits/s : 17 Ko
  • 100 Mbits/s à 10 gigabits par seconde (Gbits/s) : 64 Ko
  • 10 Gbits/s ou plus : 128 Ko

Par exemple, sur un ordinateur sur lequel une carte réseau de 1 Gbit/s est installée, la taille de la fenêtre doit être de 64 Ko.

Cette fonctionnalité utilise également pleinement d’autres fonctionnalités pour améliorer les performances réseau. Ces fonctionnalités incluent le reste des options TCP définies dans RFC 1323. À l’aide de ces fonctionnalités, les ordinateurs Windows peuvent négocier des tailles de fenêtre de réception TCP plus petites, mais mises à l’échelle à une valeur définie, en fonction de la configuration. Ce comportement est plus facile à gérer pour les appareils réseau.

Remarque

Vous pouvez rencontrer un problème dans lequel l’appareil réseau n’est pas conforme à l’option de mise à l’échelle de la fenêtre TCP, comme défini dans RFC 1323 et, par conséquent, ne prend pas en charge le facteur de mise à l’échelle. Dans ce cas, reportez-vous à l’article 934430 de la base de connaissances, la connectivité réseau échoue lorsque vous essayez d’utiliser Windows Vista derrière un appareil de pare-feu ou contactez l’équipe de support technique de votre fournisseur de périphériques réseau.

Vérifier et configurer le niveau de mise en forme automatique de la fenêtre de réception TCP

Vous pouvez utiliser des commandes netsh ou des applets de commande Windows PowerShell pour passer en revue ou modifier le niveau de mise en forme automatique de la fenêtre de réception TCP.

Notes

Contrairement aux versions de Windows antérieures à Windows 10 ou Windows Server 2019, vous ne pouvez plus utiliser le Registre pour configurer la taille de la fenêtre de réception TCP. Pour plus d’informations sur les paramètres déconseillés, consultez Paramètres TCP dépréciés.

Notes

Pour plus d’informations sur les niveaux de réglage automatique disponibles, consultez Niveaux de réglage automatique.

Pour utiliser netsh pour passer en revue ou modifier le niveau de réglage automatique

Pour passer en revue les paramètres actuels, ouvrez une fenêtre d’invite de commandes et exécutez la commande suivante :

netsh interface tcp show global

La sortie de cette commande doit ressembler à ce qui suit :

Querying active state...

TCP Global Parameters
-----
Receive-Side Scaling State : enabled
Chimney Offload State : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : default
ECN Capability : disabled
RFC 1323 Timestamps : disabled
Initial RTO : 3000
Receive Segment Coalescing State : enabled
Non Sack Rtt Resiliency : disabled
Max SYN Retransmissions : 2
Fast Open : enabled
Fast Open Fallback : enabled
Pacing Profile : off

Pour modifier le paramètre, exécutez la commande suivante à l’invite de commandes :

netsh interface tcp set global autotuninglevel=<Value>

Notes

Dans la commande précédente, <Valeur> représente la nouvelle valeur pour le niveau de réglage automatique.

Pour plus d’informations sur cette commande, consultez Commandes Netsh pour le protocole de contrôle de transmission d’interface.

Pour utiliser PowerShell pour passer en revue ou modifier le niveau de mise en forme automatique

Pour passer en revue les paramètres actuels, ouvrez une fenêtre PowerShell et exécutez l’applet de commande suivante.

Get-NetTCPSetting | Select SettingName,AutoTuningLevelLocal

La sortie de cette applet de commande doit ressembler à ce qui suit.

SettingName           AutoTuningLevelLocal
-----------          --------------------
Automatic
InternetCustom       Normal
DatacenterCustom     Normal
Compat               Normal
Datacenter           Normal
Internet             Normal

Pour modifier le paramètre, exécutez l’applet de commande suivante à l’invite de commandes PowerShell.

Set-NetTCPSetting -AutoTuningLevelLocal <Value>

Remarque

Dans la commande précédente, <Valeur> représente la nouvelle valeur pour le niveau de réglage automatique.

Pour plus d’informations sur ces applets de commande, consultez les articles suivants :

Niveaux de réglage automatique

Vous pouvez définir la mise en forme automatique de fenêtre sur l’un des cinq niveaux. Le niveau par défaut est Normal. Le tableau ci-dessous décrit les niveaux.

Level Valeur hexadécimale Commentaires
Normale (par défaut) 0x8 (facteur d’échelle 8) Définissez la fenêtre de réception TCP pour qu’elle augmente pour prendre en charge presque tous les scénarios.
Désactivé Aucun facteur d’échelle disponible Définissez la fenêtre de réception TCP à sa valeur par défaut.
Limitées 0x4 (facteur d’échelle 4) Définissez la fenêtre de réception TCP pour qu’elle augmente au-delà de sa valeur par défaut, mais limitez cette croissance dans certains scénarios.
Très restreinte 0x2 (facteur d’échelle 2) Définissez la fenêtre de réception TCP pour qu’elle augmente au-delà de sa valeur par défaut, mais faites-le de manière très prudente.
Expérimental 0xE (facteur d’échelle 14) Définissez la fenêtre de réception TCP pour augmenter pour répondre aux scénarios extrêmes.

Si vous utilisez une application pour capturer des paquets réseau, l’application doit signaler des données qui ressemblent à ce qui suit pour différents paramètres de niveau de réglage automatique des fenêtres.

  • Niveau de réglage automatique : Normal (état par défaut)

    Frame: Number = 492, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2667, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60975, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=4075590425, Ack=0, Win=64240 ( Negotiating scale factor 0x8 ) = 64240
    SrcPort: 60975
    DstPort: Microsoft-DS(445)
    SequenceNumber: 4075590425 (0xF2EC9319)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0x8 ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0x8 Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 8 -----------------------------> Scale factor, defined by AutoTuningLevel
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Niveau de réglage automatique : Désactivé

    Frame: Number = 353, Captured Frame Length = 62, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2576, Total IP Length = 48
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60956, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=2315885330, Ack=0, Win=64240 ( ) = 64240
    SrcPort: 60956
    DstPort: Microsoft-DS(445)
    SequenceNumber: 2315885330 (0x8A099B12)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 112 (0x70)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( ) = 64240 ----------------------------------------> TCP Receive Window set as 64K as per NIC Link bitrate. Note there is no Scale Factor defined. In this case, Scale factor is not being sent as a TCP Option, so it will not be used by Windows.
    Checksum: 0x817E, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Niveau de réglage automatique : Restreint

    Frame: Number = 3, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2319, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60890, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1966088568, Ack=0, Win=64240 ( Negotiating scale factor 0x4 ) = 64240
    SrcPort: 60890
    DstPort: Microsoft-DS(445)
    SequenceNumber: 1966088568 (0x75302178)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0x4 ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0x4 Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 4 -------------------------------> Scale factor, defined by AutoTuningLevel.
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Niveau de réglage automatique : Très restreint

    Frame: Number = 115, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2388, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60903, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1463725706, Ack=0, Win=64240 ( Negotiating scale factor 0x2 ) = 64240
    SrcPort: 60903
    DstPort: Microsoft-DS(445)
    SequenceNumber: 1463725706 (0x573EAE8A)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0x2 ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0x2 Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 2 ------------------------------> Scale factor, defined by AutoTuningLevel
    + NoOption:
    + NoOption:
    + SACKPermitted:
    
  • Niveau de réglage automatique : Expérimental

    Frame: Number = 238, Captured Frame Length = 66, MediaType = ETHERNET
    + Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[D8-FE-E3-65-F3-FD],SourceAddress:[C8-5B-76-7D-FA-7F]
    + Ipv4: Src = 192.169.0.5, Dest = 192.169.0.4, Next Protocol = TCP, Packet ID = 2490, Total IP Length = 52
    - Tcp: [Bad CheckSum]Flags=......S., SrcPort=60933, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=2095111365, Ack=0, Win=64240 ( Negotiating scale factor 0xe ) = 64240
    SrcPort: 60933
    DstPort: Microsoft-DS(445)
    SequenceNumber: 2095111365 (0x7CE0DCC5)
    AcknowledgementNumber: 0 (0x0)
    + DataOffset: 128 (0x80)
    + Flags: ......S. ---------------------------------------------------------> SYN Flag set
    Window: 64240 ( Negotiating scale factor 0xe ) = 64240 ---------> TCP Receive Window set as 64K as per NIC Link bitrate. Note it shows the 0xe Scale Factor.
    Checksum: 0x8182, Bad
    UrgentPointer: 0 (0x0)
    - TCPOptions:
    + MaxSegmentSize: 1
    + NoOption:
    + WindowsScaleFactor: ShiftCount: 14 -----------------------------> Scale factor, defined by AutoTuningLevel
    + NoOption:
    + NoOption:
    + SACKPermitted:
    

Paramètres TCP dépréciés

Les paramètres de registre suivants de Windows Server 2003 ne sont plus pris en charge et sont ignorés dans les versions ultérieures.

  • TcpWindowSize
  • NumTcbTablePartitions
  • MaxHashTableSize

Tous ces paramètres se trouvaient dans la sous-clé de Registre suivante :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Plateforme de filtrage Windows

Windows Vista et Windows Server 2008 ont introduit la plateforme de filtrage Windows (PAM). Le WPF fournit des API aux éditeurs de logiciels indépendants (ISV) non-Microsoft pour créer des filtres de traitement de paquets. Les logiciels pare-feu et antivirus en sont des exemples.

Remarque

Un filtre WFP mal écrit peut réduire significativement les performances de mise en réseau d'un serveur. Pour plus d’informations, consultez Portage de paquets - Transférer les pilotes et applications vers le PAM dans le Centre de développement Windows.

Pour obtenir des liens vers toutes les rubriques de ce guide, consultez Réglage des performances du sous-système réseau.