Réglage des performances pour les serveurs de fichiers SMB
Considérations relatives à la configuration de SMB
N’activez pas les services ou fonctionnalités dont votre serveur de fichiers et vos clients n’ont pas besoin. Les services ou fonctionnalités inutiles peuvent inclure la signature de SMB, la mise en cache côté client, les mini-filtres du système de fichiers, le service de recherche, les tâches planifiées, le chiffrement NTFS, la compression NTFS, IPSEC, les filtres de pare-feu, Teredo ou le chiffrement SMB.
Vérifiez que les modes de gestion de l’alimentation du BIOS et du système d’exploitation sont définis en fonction des besoins, ce qui peut inclure le mode Hautes performances ou l’état C modifié. Assurez-vous que les pilotes des périphériques de stockage et de mise en réseau les plus récents, les plus résilients et les plus rapides sont installés.
La copie de fichiers est une opération courante effectuée sur un serveur de fichiers. Windows Server dispose de plusieurs utilitaires de copie de fichiers intégrés que vous pouvez exécuter à l’aide d’une invite de commandes. Robocopy est recommandé. Introduite dans Windows Server 2008 R2, l’option /mt
de Robocopy peut améliorer considérablement la vitesse des transferts de fichiers distants en utilisant plusieurs threads lors de la copie de plusieurs petits fichiers. Nous vous recommandons également d’utiliser l’option /log
pour réduire la sortie de la console en redirigeant les journaux vers un appareil NULL ou vers un fichier. Lorsque vous utilisez Xcopy, nous vous recommandons d’ajouter les options /q
et /k
à vos paramètres existants. La première option réduit la surcharge du processeur en réduisant la sortie de la console, et la seconde réduit le trafic réseau.
Réglage des performances de SMB
Les performances du serveur de fichiers et les réglages disponibles dépendent du protocole SMB négocié entre chaque client et le serveur, et des fonctionnalités du serveur de fichiers déployées. La version de protocole la plus élevée actuellement disponible est SMB 3.1.1 dans Windows Server 2022, Windows Server 2016 et Windows 10. Vous pouvez vérifier quelle version de SMB est utilisée sur votre réseau en utilisant la cmdlet Windows PowerShell Get-SMBConnection
sur les clients et Get-SMBSession | FL
sur les serveurs.
Famille de protocoles SMB 3.0
SMB 3.0 a été introduit dans Windows Server 2012 et amélioré dans Windows Server 2012 R2 (SMB 3.02) et Windows Server 2016 (SMB 3.1.1). Cette version a introduit des technologies qui peuvent améliorer considérablement les performances et la disponibilité du serveur de fichiers. Pour plus d’informations, consultez SMB dans Windows Server 2012 et 2012 R2 2012, et Nouveautés de SMB 3.1.1.
SMB Direct
SMB Direct a introduit la possibilité d’utiliser des interfaces réseau RDMA pour un débit élevé avec une faible latence et une faible utilisation du processeur.
Chaque fois que SMB détecte un réseau compatible RDMA, il tente automatiquement d’utiliser la fonctionnalité RDMA. Toutefois, si, pour une raison quelconque, le client SMB ne parvient pas à se connecter à l’aide du chemin RDMA, il continue à utiliser les connexions TCP/IP à la place. Toutes les interfaces RDMA compatibles avec SMB Direct doivent implémenter également une pile TCP/IP, et SMB Multichannel en est conscient.
SMB Direct n’est requis dans aucune configuration SMB, mais est toujours recommandé pour ceux qui veulent une latence plus faible et une utilisation plus faible du processeur.
Pour plus d’informations sur SMB Direct, voir Améliorer les performances d’un serveur de fichiers avec SMB Direct.
SMB Multichannel
SMB Multichannel permet aux serveurs de fichiers d’utiliser plusieurs connexions réseau simultanément et fournit un débit augmenté.
Pour plus d’informations sur SMB Multichannel, consultez Déployer SMB Multichannel.
Montée en charge SMB
Le scale-out de SMB permet à SMB 3.0 dans une configuration de cluster d’afficher un partage dans tous les nœuds d’un cluster. Cette configuration active/active permet de mettre à l’échelle davantage les clusters de serveurs de fichiers, sans configuration complexe avec plusieurs volumes, partages et ressources de cluster. La bande passante maximale de partage correspond à la bande passante totale de tous les nœuds du cluster de serveur de fichiers. La bande passante totale n’est plus limitée à la bande passante d’un seul nœud du cluster, mais dépend plutôt de la capacité du système de stockage de secours. Vous pouvez augmenter la bande passante totale en ajoutant des nœuds.
Pour plus d’informations sur le scale-out SMB, consultez Vue d’ensemble d’un serveur de fichiers avec montée en puissance parallèle pour les données d’application et le billet de blog Monter en puissance, ou ne pas monter en puissance, là est la question.
Compteurs de performances pour SMB 3.0
Les compteurs de performances SMB suivants ont été introduits dans Windows Server 2012, et ils sont considérés comme un ensemble de compteurs de base lorsque vous surveillez l’utilisation des ressources de SMB 2 et versions ultérieures. Journalisez les compteurs de performances dans un journal de compteur de performances local brut (.blg). Il est moins coûteux de collecter toutes les instances à l’aide du caractère générique (*), puis d’extraire des instances particulières pendant le post-traitement à l’aide de Relog.exe.
Partages clients SMB
Ces compteurs affichent des informations sur les partages de fichiers sur le serveur auquel un client qui utilise SMB 2.0 ou une version ultérieure accède.
Si vous êtes familiarisé avec les compteurs de disque standard dans Windows, vous remarquerez peut-être une certaine ressemblance. Ce n’est pas un hasard. Les compteurs de performances des partages de clients SMB ont été conçus pour correspondre exactement aux compteurs de disque. De cette façon, vous pouvez facilement réutiliser n’importe quelle aide sur le réglage des performances du disque d’application dont vous disposez actuellement. Pour plus d’informations sur le mappage de compteurs, consultez le billet de blog Compteurs de performances client par partage.
Partages de serveur SMB
Ces compteurs affichent des informations sur les partages de fichiers SMB 2.0 ou ultérieur sur le serveur.
Sessions de serveur SMB
Ces compteurs affichent des informations sur les sessions serveur SMB qui utilisent SMB 2.0 ou version ultérieure.
L’activation des compteurs côté serveur (partages serveur ou sessions serveur) peut avoir un impact significatif sur les performances pour les charges de travail à E/S élevées.
Filtre de clé de reprise
Ces compteurs affichent des informations sur le filtre de clé de reprise.
Connexion directe SMB
Ces compteurs mesurent différents aspects de l’activité de connexion. Un ordinateur peut avoir plusieurs connexions SMB Direct. Les compteurs de connexion SMB Direct représentent chaque connexion sous la forme d’une paire d’adresses IP et de ports, où la première adresse IP et le premier port représentent le point de terminaison local de la connexion, tandis que la deuxième adresse IP et le port représentent le point de terminaison distant de la connexion.
Relations des compteurs de performances de disques physiques, SMB et CSV FS
Pour plus d’informations sur la façon dont les compteurs de disques physiques, SMB et CSV FS (système de fichiers) sont liés, consultez le billet de blog suivant : Compteurs de performances de volume partagé de cluster.
Réglage des paramètres pour les serveurs de fichiers SMB
Les paramètres de registre REG_DWORD
suivants peuvent affecter les performances des serveurs de fichiers SMB :
Smb2CreditsMin et Smb2CreditsMax
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\Smb2CreditsMin
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\Smb2CreditsMax
Les valeurs par défaut sont respectivement 512 et 8192 pour Windows Server. Ces paramètres permettent au serveur de limiter dynamiquement la concurrence des opérations clientes dans les limites spécifiées. Certains clients peuvent obtenir un débit accru avec des limites d’accès concurrentiel plus élevées, par exemple la copie de fichiers sur des liaisons à bande passante élevée et à latence élevée. Ces valeurs par défaut s’appliquent à Windows Server, et non à Windows.
Conseil
Avant Windows 10 et Windows Server 2016, le nombre de crédits accordés au client variait dynamiquement entre Smb2CreditsMin et Smb2CreditsMax en fonction d’un algorithme qui tentait de déterminer le nombre optimal de crédits à accorder en fonction de la latence du réseau et de l’utilisation des crédits. Dans Windows 10 et Windows Server 2016, le serveur SMB a été modifié pour accorder des crédits de manière inconditionnelle sur demande jusqu’au nombre maximal de crédits configuré. Dans le cadre de cette modification, le mécanisme de limitation de crédits, qui réduit la taille de la fenêtre de crédits de chaque connexion lorsque le serveur est soumis à une pression de mémoire, a été supprimé. L’événement de mémoire insuffisante du noyau qui a déclenché la limitation n’est signalé que lorsque le serveur est si faible en mémoire (< quelques Mo) qu’il est inutile. Étant donné que le serveur ne réduit plus les fenêtres de crédits, le paramètre Smb2CreditsMin n’est plus nécessaire et est maintenant ignoré.
Vous pouvez surveiller les partages clients SMB\Blocages de crédits/s pour voir s’il y a des problèmes avec les crédits.
AdditionalCriticalWorkerThreads
HKLM\System\CurrentControlSet\Control\Session Manager\Executive\AdditionalCriticalWorkerThreads
La valeur par défaut est 0, ce qui signifie qu’aucun thread de travail de noyau critique supplémentaire n’est ajouté. Cette valeur affecte le nombre de threads que le cache du système de fichiers utilise pour les demandes de lecture anticipée et d’écriture différée. L’augmentation de cette valeur peut permettre davantage d’E/S en file d’attente dans le sous-système de stockage, et améliorer les performances d’E/S, en particulier sur les systèmes avec de nombreux processeurs logiques et un matériel de stockage puissant.
Remarque
Ce paramètre s’applique principalement à Windows 7, Windows Server 2008 R2 et aux systèmes d’exploitation plus anciens. Dans les systèmes d’exploitation ultérieurs, tandis que Cache Manager consomme toujours indirectement cette valeur, Cache Manager ne crée pas de threads de travail dédiés dans les systèmes d’exploitation ultérieurs ; plutôt, cette valeur influence indirectement le nombre d’éléments de travail de chaque type (workers génériques, writers différés, etc.) Cache Manager allouera pour une soumission ultérieure au pool de threads de noyau.
Conseil
Il peut être nécessaire d’augmenter la valeur si la quantité de données incorrectes du gestionnaire de cache (Cache du compteur de performances\Pages incorrectes) augmente pour consommer une grande partie (plus de ~25 %) de mémoire ou si le système effectue un grand nombre d’E/S de lecture synchrones.
MaxThreadsPerNumaNode
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxThreadsPerNumaNode
Valeur par défaut : 20. L’augmentation de cette valeur augmente le nombre de threads que le serveur de fichiers peut utiliser pour traiter les demandes simultanées. Lorsqu’un grand nombre de connexions actives doivent être mises en service, l’augmentation de la valeur peut améliorer les performances lorsque les pilotes de filtre tiers inefficaces affectent les E/S. Il est préférable d’installer les pilotes de filtre tiers mis à jour et les pilotes d’impression qui traitent les E/S plus efficacement au lieu de modifier ce paramètre.
Conseil
La valeur peut avoir besoin d’être augmentée si les files d’attente de travail SMB2 deviennent de plus en plus volumineuses (le compteur de performances « Files d’attente de travail serveur\Longueur de file d’attente\SMB2 non bloquant * » est constamment supérieur à ~100).
Remarque
Dans SMB1 et dans Windows Server 2012 et Windows Server 2008, MaxThreadsPerQueue a été utilisé pour contrôler ce paramètre. SMB1 est déconseillé et n’est plus installé, et ce paramètre lui-même est désormais obsolète.
AsynchroneCredits
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AsynchronousCredits
La valeur par défaut est 512. Ce paramètre limite le nombre de commandes SMB asynchrones simultanées autorisées sur une seule connexion. Certains cas (par exemple, lorsqu’il existe un serveur frontal avec un serveur IIS principal) nécessitent une grande quantité d’accès concurrentiel (pour les demandes de notification de modification de fichier, en particulier). La valeur de cette entrée peut être augmentée pour prendre en charge ces cas. La valeur par défaut est pour Windows Server, et non Pour Windows.
RemoteFileDirtyPageThreshold
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\RemoteFileDirtyPageThreshold
La valeur par défaut est 5 Go. Cette valeur détermine le nombre maximal de pages incorrectes dans le cache (par fichier) pour une écriture distante avant qu’un vidage inline soit effectué. Nous vous déconseillons de modifier cette valeur, sauf si le système subit des ralentissements constants lors des écritures distantes intensives. Ce comportement de ralentissement est généralement observé lorsque le client a des performances d’E/S de stockage plus rapides que le serveur distant. La modification de paramètre est appliquée au serveur. Le client et le serveur font référence à l’architecture du système distribué, et non à des systèmes d’exploitation particuliers ; par exemple, un serveur Windows Server qui copie des données vers un autre serveur Windows Server sur SMB implique toujours un client SMB et un serveur SMB. Pour plus d’informations, consultez Résoudre les problèmes de performances du cache et du Gestionnaire de mémoire.
Exemple de réglage du serveur SMB
Les paramètres suivants peuvent optimiser un ordinateur pour les performances du serveur de fichiers dans de nombreux cas. Les paramètres ne sont pas optimaux ni appropriés sur tous les ordinateurs. Vous devez évaluer l’impact de ces paramètres spécifiques avant de les appliquer.
Paramètre | Valeur | Default |
---|---|---|
AdditionalCriticalWorkerThreads | 64 | 0 |
Compteurs de l’analyseur de performances du client SMB
Pour plus d’informations sur les compteurs clients SMB, consultez Conseil pour les serveurs de fichiers Windows Server 2012 : Les nouveaux compteurs de performances du client SMB par partage fournissent d’excellents insights.