Fsutil : optimiser NTFS pour les disques HDD ou SSD

Fsutil est une command CMD en invite de commandes pratique qui permet de gérer beaucoup d'éléments sur la configuration des volumes de disque ainsi que certains paramètres du système de fichiers NTFS.

Ce tutoriel vous donne quelques astuces de configuration NTFS afin d'optimiser ses disques HDD ou SSD.

Fsutil : optimiser ses disques HDD ou SSD

Introduction à Fsutil

Cet utilitaire de ligne de commande de Windows puissant peut, s'il est mal utilisé, provoquer des dysfonctionnements de Windows.
Son utilisation est donc plutôt réservée à des utilisateurs avancés.
Pour les autres, si vous cherchez à optimiser votre configuration SSD, vous pouvez suivre ces articles beaucoup plus simples

Comme souvent avec ce type de modifications, il est conseillé de créer un point de restauration système ou encore mieux, créer une image système de Windows.

A noter que la configuration NTFS est stockée dans la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem du registre Windows.
Fsutil permet de modifier ces valeurs directement.

La configuration NTFS dans le registre Windows

Optimisation disque avec Fsutil

L'optimisation SSD avec Fsutil tourne autour de deux logiques :

  • Désactiver certains réglages pour diminuer l'écriture disque. Moins d'écriture disque signifie plus de vitesse.
  • Optimiser certains réglages comme le cache.

Encore une fois, rappelons que les utilitaires précédents modifient la plupart de ces configurations.

Désactiver le format de nom 8.3

Il s'agit de la compatibilité des noms de fichiers descente pour FAT qui n'est plus trop utilisée de nos jours.
La création de fichiers peut consommer plus d'accès disques car Windows créé un alias du fichier (avec un nom ~).

Vous pouvez désactiver le support de nom 8.3 comme ceci :

Fsutil behavior set disable8dot3 1

Désactiver l'horodatage des fichiers

Ce dernier stocke le dernier accès aux fichiers.
Cela génère donc des accès disques et peut considérablement ralentir l'accès à un dossier comportant beaucoup de fichiers.
Pour désactiver ce dernier :

FSUTIL behavior set disablelastaccess 1

Activer TRIM

Pour les SSD, il faut ensuite vérifier que TRIM est activé.
Lorsque c'est le cas, Windows va envoyer une instruction à votre SSD à chaque suppression de fichiers ce qui fait gagner du temps.

Pour vérifier que TRIM est bien activé, vous devez utiliser la commande suivante :

fsutil behavior query DisableDeleteNotify

Les valeurs retournées doivent être à 0 comme c'est le cas dans la capture d'écran ci-dessous.

Si la valeur est à 1 alors TRIM est désactivé, il vous faudra passer la commande suivante.

fsutil behavior set DisableDeleteNotify 0

Mémoire de réserve paginée

Ce premier réglage consiste à augmenter la limite de mémoire de réserve paginée.

Cela pourrait améliorer les performances si votre système ouvre et ferme de nombreux fichiers du même ensemble de fichiers et n'utilise pas déjà une grande quantité de mémoire système pour d'autres applications ou pour la mémoire cache. Si votre ordinateur utilise déjà de grandes quantités de mémoire système pour d'autres applications ou pour la mémoire cache, augmenter la limite de mémoire en pool paginée et non paginée NTFS réduit la mémoire en pool disponible pour d'autres processus. Cela pourrait réduire les performances globales du système.

Pour lever cette limite, il faut utiliser la commande fsutil de cette manière :

fsutil.exe behavior set memoryusage 2

Par défaut, le réglage est à 1.

Modifier la taille de la MFT

L'option suivante permet d'optimiser la zone MFT que l'on retrouve dans beaucoup de tutoriel.
Celle-ci stocke les données sur les fichiers et les dossiers d'une partition, il s'agit en partie d'un index.

En effet, cette zone peut devenir trop petite si vous avez beaucoup de petits fichiers car il faut stocker l'information pour chacun.
Dans ce cas là, Windows peut tenter de placer les informations dans un autre élément ce qui peut provoquer des accès disques supplémentaires.

fsutil behavior query mftzone

On peut donc voir ici que la taille de la zone MFT est fixée à 200 Mo.

Si vous désirez connaître l'occupation disque et l'espace libre de votre zone MFT, plusieurs méthodes sont possibles.
La première méthode la plus compliquée consiste à utiliser la commande suivante :

fsutil fsinfo ntfsinfo c:

Ensuite, on récupère la taille du champs Longueur de données valide MFT.
Celle-ci est en hexadécimal, en utilisant la calculatrice de Windows en programmeur, il est possible d'obtenir la taille en décimale.
Dans mon cas, on obtient 405 798 912 octets soit donc 405 Mo.

Vérifier l'occupation disque de la MFT

Dans cette seconde méthode, on utilise la commande suivante :

fsutil volume filelayout c:\$mft

La partie $DATA donne les informations de la taille de la MFT.
Comme vous pouvez le constater cela est cohérent puisque l'on retrouve alors la même valeur que précédemment.

Vérifier l'occupation disque de la MFT

Enfin dernière méthode avec l'utilitaire NTFSInfo où le champs MFT size donne la taille de celle-ci.

Vérifier l'occupation disque de la MFT

En clair donc, on peut très bien agrandir la zone mft.
Pour se faire, il faut utiliser la commande suivante en remplaçant X par la valeur souhaitée.

fsutil behavior set mftzone <valeur>

La valeurs possibles pour régler la taille de la MFT sont les suivantes :

  • 1 - 12.5% (par défaut)
  • 2 - 25%
  • 3 - 37.5%
  • 4 - 50%

D'après cet article de Microsoft, il semblerait toutefois que modifier la valeur après le formatage soit sans effet.

Il s'agit d'un paramètre d'exécution qui n'affecte pas le format réel d'un volume. Au contraire, cela affecte la façon dont NTFS alloue de l'espace sur tous les volumes d'un système donné. Par conséquent, pour être totalement efficace, le paramètre doit être en vigueur à partir du moment où le volume est formaté et pendant toute la durée de vie du volume. Si le paramètre de registre est ajusté à la baisse ou supprimé, la zone MFT sera réduite en conséquence, mais cela n'aura aucun effet sur l'espace MFT déjà alloué et utilisé."