Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Optimiser le partage et transfert de fichiers sur réseau Windows (SMB)

Le Server Message Block (SMB) est un protocole essentiel pour le partage de fichiers et d’imprimantes sur un réseau Windows. Cependant, les performances du transfert de fichiers via SMB peuvent être affectées par divers facteurs tels que la configuration du réseau, les paramètres du serveur et les limitations matérielles

Voici plusieurs méthodes pour optimiser SMB et améliorer la vitesse et la stabilité du transfert de fichiers.
Ces dernières s’appliquent essentiellement pour Windows 11 et Windows 10.

Optimiser le partage et transfert de fichiers sur réseau Windows (SMB)

Comment a le partage de transfert de fichiers sur réseau Windows

Choisir la bonne version de SMB

Windows utilise différentes versions du protocole SMB, et chaque version apporte des améliorations en matière de performances et de sécurité :

  • SMB 1.0 : Obsolète et vulnérable (à désactiver).
  • SMB 2.0 et 2.1 : Améliorations significatives des performances par rapport à SMB 1.0.
  • SMB 3.0, 3.1.1 : Optimisations avancées (compression SMB, multicanal, chiffrement).

Pour vérifier et activation de SMB 3.0 ou 3.1.1 :

  • Appuyez sur le raccourci clavier + X ou cliquez avec le bouton droit de la souris sur le menu Démarrer puis sélectionnez “Terminal Windows (admin)“. Plus d’informations : Comment ouvrir Windows Terminal
  • Passez la commande suivante :
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
  • Si SMB1 est activé, désactivez-le :
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
  • Activez SMB 3.0 si nécessaire :
Set-SmbServerConfiguration -EnableSMB2Protocol $true

Augmenter la compression SMB

Depuis Windows Server 2022 et Windows 11, la compression SMB réduit l’utilisation du réseau en compressant les fichiers transférés.

Pour Activer la compression SMB sur le serveur :

Set-SmbServerConfiguration -EnableCompression $true

Pour vérifier si un partage spécifique utilise la compression :

Get-SmbShare -Name "NomDuPartage" | Select CompressData

Si ce n’est pas activé, vous pouvez l’activer :

Set-SmbShare -Name "NomDuPartage" -CompressData $true

Activer le SMB Multichannel pour améliorer la bande passante

SMB Multichannel permet d’utiliser plusieurs connexions réseau pour accélérer le transfert de fichiers, surtout sur les serveurs avec plusieurs cartes réseau.

Vérifier et activer SMB Multichannel :

Get-SmbServerConfiguration | Select EnableMultiChannel
Set-SmbServerConfiguration -EnableMultiChannel $true

Vous pouvez aussi vérifier si SMB Multichannel fonctionne :

Get-SmbMultichannelConnection

Désactiver la signature SMB

La signature SMB ajoute une empreinte cryptographique (HMAC-MD5 ou AES) à chaque paquet de données échangé. Cela empêche les attaques de type “man-in-the-middle”, où un attaquant pourrait modifier les données en transit.

  • Avantages : Sécurise les transferts SMB contre les manipulations et attaques réseau.
  • Inconvénients : Introduit une surcharge CPU, car chaque paquet doit être signé et vérifié, ce qui peut ralentir le transfert de fichiers, surtout sur des réseaux rapides.

Désactiver la signature SMB si ce n’est pas nécessaire (elle peut ralentir les transferts) :

Set-SmbServerConfiguration -RequireSecuritySignature $false -Force

Activer le cache côté client pour améliorer les performances :

Set-SmbClientConfiguration -DirectoryCacheLifetime 600

D’autres éléments à prendre en compte :

  • Utiliser des disques SSD/NVMe sur le serveur pour des accès plus rapides aux fichiers
  • Attribuer des priorités QoS aux transferts SMB sur le réseau pour éviter la congestion

Smb2CreditsMin and Smb2CreditsMax

Les paramètres Smb2CreditsMin et Smb2CreditsMax sont utilisés par le protocole SMB 2.0 et supérieur pour gérer les crédits accordés aux clients SMB afin d’optimiser la bande passante et le débit des transferts de fichiers. Ces crédits définissent le nombre de requêtes simultanées que le client SMB peut envoyer au serveur avant de devoir attendre une réponse.

  • Smb2CreditsMin : Définit le nombre minimum de crédits qu’un client SMB peut recevoir du serveur.
  • Smb2CreditsMax : Définit le nombre maximum de crédits qu’un client SMB peut obtenir. Plus cette valeur est élevée, plus le client peut envoyer de requêtes en parallèle, améliorant ainsi les performances du transfert de fichiers.

Pour vérifier les valeurs actuelles :

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name Smb2CreditsMin, Smb2CreditsMax

Pour augmenter les valeurs :

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name Smb2CreditsMin -Value 512
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name Smb2CreditsMax -Value 2048

Redémarrez ensuite le service SMB :

Restart-Service LanmanServer

Voici les valeurs recommandées :

Scénario Smb2CreditsMin Smb2CreditsMax
Réseau standard 1 Gbps 128 1024
Réseau rapide 10 Gbps 512 2048
Réseau très haut débit (25/40 Gbps) 1024 4096
Nombre élevé de clients SMB 256 1024

AdditionalCriticalWorkerThreads (si beaucoup d’utilisateurs)

Le paramètre AdditionalCriticalWorkerThreads est une clé de registre utilisée dans Windows Server pour optimiser la gestion des threads critiques du système. Il est particulièrement utile pour améliorer la gestion des requêtes SMB, ainsi que les charges de travail réseau et disque sur des serveurs fortement sollicités.
Windows utilise des threads de travail (worker threads) pour exécuter des tâches en arrière-plan, telles que le traitement des requêtes SMB et d’autres services système.

  • Par défaut, le nombre de threads critiques est ajusté dynamiquement par le système.
  • AdditionalCriticalWorkerThreads permet d’ajouter des threads supplémentaires pour accélérer le traitement des requêtes lorsque le serveur est sous forte charge.
Cette valeur du serveur SMB est à modifier seulement pour des transferts de fichiers volumineux, environnements avec plusieurs milliers de connexions simultanées ou encore des serveurs de bases de données ou de virtualisation nécessitant des I/O intensifs.
Ne modifiez pas la valeur pour les serveurs peux sollicités.

Si vous constatez un ralentissement des transferts SMB, une augmentation de ce paramètre peut aider. Voici comment l’ajuster :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Executive
  • Si AdditionalCriticalWorkerThreads n’existe pas, créez une nouvelle valeur DWORD (32 bits) nommée AdditionalCriticalWorkerThreads.
  • Définissez la valeur en décimal selon les besoins :
    • 0 (par défaut) : Windows ajuste dynamiquement les threads.
    • 2 à 4 : Serveur avec charge modérée (100-500 utilisateurs SMB).
    • 6 à 8 : Serveur sous forte charge ou avec des disques NVMe ultra-rapides.
    • 10+ : Pour des environnements très sollicités avec des connexions SMB massives (>1000 utilisateurs).
  • Appliquez et redémarrez votre PC

MaxThreadsPerQueue (si beaucoup d’utilisateurs)

Le paramètre MaxThreadsPerQueue est une clé de registre utilisée pour contrôler le nombre maximum de threads de travail que Windows peut allouer à chaque file d’attente de traitement des requêtes. Il est particulièrement pertinent pour les serveurs Windows exécutant SMB, IIS, et d’autres services à forte sollicitation.

L’augmentation de MaxThreadsPerQueue permet de traiter plus de requêtes simultanément, ce qui peut être bénéfique pour les serveurs avec de nombreux clients SMB ou des transferts massifs.

  • Accédez à la clé suivante :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Si MaxThreadsPerQueue n’existe pas, créez une nouvelle valeur DWORD (32 bits) nommée MaxThreadsPerQueue.
  • Définissez une valeur en décimal selon les besoins :
Scénario Valeur (décimal)
Serveur SMB standard (1 Gbps, < 100 utilisateurs) 32
Serveur SMB sous charge modérée (10 Gbps, 100-500 utilisateurs) 64
Serveur haute performance (25 Gbps, 500+ utilisateurs) 128
Serveur très sollicité (>1000 utilisateurs, 40 Gbps+) 256

AsynchronousCredits (si forte charge)

Le paramètre AsynchronousCredits est une clé de registre qui détermine le nombre maximum de requêtes asynchrones SMB qu’un serveur Windows peut traiter simultanément. Ce paramètre est essentiel pour les environnements où de nombreuses requêtes non bloquantes sont envoyées au serveur SMB, comme les applications qui effectuent des lectures/écritures en parallèle ou les transferts de fichiers massifs.
Ce paramètre est particulièrement utile sur les serveurs de fichiers SMB sous forte charge, notamment ceux utilisés pour le partage de fichiers entre applications ou le streaming de données.

  • Ouvrir l’Éditeur du Registre (regedit)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Si AsynchronousCredits n’existe pas, créez une nouvelle valeur DWORD (32 bits) nommée AsynchronousCredits.
  • Définissez une valeur en décimal en fonction des scénarios suivants :
Scénario Valeur (décimal)
Serveur SMB standard (1 Gbps, < 100 utilisateurs) 64
Serveur sous charge modérée (10 Gbps, 100-500 utilisateurs) 128
Serveur haute performance (25 Gbps, 500+ utilisateurs) 256
Serveur très sollicité (>1000 utilisateurs, 40 Gbps+) 512
  • Après modification, appliquez les changements en redémarrant le service SMB :
Restart-Service LanmanServer
  • Ou redémarrez le serveur :
Restart-Computer

Optimiser le réseau de Windows

Un réseau lent peut limiter la vitesse des transferts SMB. Assurez-vous que :

  • Les câbles et switches supportent au moins 1 Gbps (idéalement 10 Gbps pour les gros transferts).
  • Les cartes réseau sont bien configurées en mode full-duplex.
  • Le serveur SMB et les clients ne sont pas saturés par d’autres tâches.

Enfin pour optimiser votre réseau en Windows, consultez ces guides :

L’article Optimiser le partage et transfert de fichiers sur réseau Windows (SMB) est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires