Défragmenteur Windows 8?

17

Il semble que la defragcommande de Windows 8 dispose de nouvelles options, notamment:

/K Effectuez la consolidation de la dalle sur les volumes spécifiés.

Est-ce que quelqu'un sait ce que cela signifie en anglais?

user541686
la source

Réponses:

7

Ce PDF semble avoir une explication à cela, ainsi que de nouvelles fonctionnalités NTFS.

Ça dit:

  • Consolidation des dalles

    • Défragmente efficacement les fichiers pour minimiser le nombre de dalles allouées

    • Une dalle est l'unité d'allocation sur un volume alloué fin

    • Nécessite une assistance pour IOCTL_STORAGE_QUERY_PROPERTYdemander un ID de propriété de:StorageDeviceLBProvisioningProperty

      • Récupère la taille de la dalle d'un volume
user541686
la source
3

Je n'ai rien trouvé expliquant spécifiquement ce que cela signifie dans le contexte du défragmenteur de Windows 8. Mais la "consolidation de dalle" fait généralement référence à des objets en mouvement afin que les objets qui arrondissent à la même taille d'allocation soient placés ensemble.

L'avantage de faire cela est généralement assez minime. Mais cela a tendance à réduire le temps de recherche moyen lorsqu'un grand nombre de petits objets sont accessibles.

David Schwartz
la source
0

En fait, je ne pense pas que les dalles soient conçues pour régler l'allocation de nombreux fichiers de même taille afin de réduire le temps de recherche moyen.

Mon avis est qu'il est utilisé pour réduire la latence pour les allocations sur de gros volumes qui autrement provoqueraient trop d'accès simultanés par des threads parallèles lorsqu'ils ont besoin d'allouer de l'espace sur le volume, car cela mettrait un verrou sur la même partie de l'allocation de volume bitmap. Pour éviter de traiter des bitmaps volumineux, il peut être subdivisé en "dalles" dont la taille en bits représente des zones contiguës sur le disque en utilisant le même fragment de bitmap (occupant au moins 1 cluster ou plus; si la taille de votre cluster est de 4 Ko, son cluster dans le bitmap représente 4K * 8 = 32K clusters allouables, c'est-à-dire 128 Mo de stockage os; la taille réelle de la dalle dans un volume est réglée pour être comprise entre 33 et 64, permettant à environ 33 threads simultanés d'allouer de l'espace dans le bitmap sur dist sans se bloquer les uns les autres)

Les dalles sont donc utilisées pour accélérer l'allocation d'espace sur le volume, en supposant qu'un thread créant de nombreux fichiers le fera le plus souvent dans sa propre dalle, avant de le déverrouiller et d'essayer une autre dalle, ou d'essayer en allouant de plus petites quantités dans la dalle actuelle, avant d'essayer une autre dalle non verrouillable disponible, puis en essayant d'obtenir simultanément un accès fulgurant à la dalle actuellement utilisée par un autre thread.

Cela explique pourquoi l'allocation sur disque est "répartie" sur le volume. Cela explique également pourquoi le MFT sur le NTFS a au moins 2 fragments, appartenant à d'autres dalles, car il évite les verrous sévères entre de nombreux threads utilisant le volume. Vous pouvez défragmenter le MFT mais il restera au moins un fragment conservé dans sa "zone réservée" pour les allocations simultanées qui doivent éviter d'effectuer des blocages d'E / S sur le volume NTFS).

Dans le passé, le volume NTFS n'était pas divisé en plusieurs tranches, et il y avait une énorme pénalité de performance avec de nombreux blocages de threads et trop de commutateurs de threads dans le noyau en attente d'achèvement des E / S (même si l'allocation dans le bitmap est en fait extrêmement rapide et prend des nanosecondes car la majeure partie de la partie intéressante du bitmap est déjà en mémoire cache). Lorsque les écritures sur les volumes sont ensuite vidées et journalisées, un autre verrou se produit en raison de l'allocation sur le journal, de sorte que le journal utilise désormais également une dalle distincte sur le volume (si possible).

Mais je ne pense pas que NTFS dédie une dalle aux fichiers pour des tailles spécifiques. NTFS en interne défragmentera légèrement les dalles lorsque les données seront supprimées et que leur taille allouée tombera en dessous d'un certain seuil et deux de ces dalles pourront être fusionnées.

Vous pouvez obtenir des informations sur les tailles de dalles avec:

fsutil fsinfo ntfsinfo c:

Il est clair que les dalles sont des paramètres de réglage destinés aux performances. Mais de nombreux outils de défragmentation tiers ignorent ce paramètre et n'utilisent pas un placement optimal. Idéalement, vous devez disposer d'un espace libre dans chaque dalle du volume, sauf si les dalles sont remplies de fichiers et d'index non réalloués et doivent rester stables. Pour de nombreux petits fichiers temporaires et transactions qui sont constamment créés et recyclés, vous devez les placer dans suffisamment de dalles en fonction du nombre de threads simultanés et éviter de les placer trop loin des autres clusters qui doivent être lus si le volume est un disque dur ou matrice RAID (cela n'a pas d'importance sur SSD).

Les dalles peuvent également être utiles pour les systèmes de fichiers distants, mais leur taille optimale est difficile à prévoir. Les dalles à l'opposé sont très petites pour les volumes diférentiels de volumes virtualisés hiérarchiques et il y a une stratégie de placement très différente, donnez que l'allocation est virtuelle et remappée à différents endroits physiques.

Nous avons toujours besoin d'informations de Microsoft sur les paramètres de réglage suivants dans le registre:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\SlabifyFunction]
MinimumReclaimSlabsMB      = REG_DWORD: 10240
MinimumReclaimSlabsPercent = REG_DWORD: 10
SlabEvictUpperBoundKB      = REG_DWORD: 204800
SlabEvictUpperBoundPercent = REG_DWORD: 20

Je pense que ceux-ci sont laissés sans papiers à dessein parce que Microsoft pense toujours à changer les stratégies de placement et pourrait les changer au fil du temps. Ils ne sont pas exposés par l'API, vous ne trouvez leurs preuves que dans le registre et dans l'implémentation du code source interne du pilote NTFS.

Tout ce que nous savons, c'est que les dalles sont exposées brièvement par le paramètre "/ K" de l'outil de ligne de commande DEFRAG.EXE, qui ne les détaille pas beaucoup. Mais il est facile d'observer que l'optimisation / K donne d'énormes gains de performances après l'installation initiale de Windows (avant même que l'optimisation Bootvis ne soit effectuée après 6 redémarrages et mesures). Il existe également les paramètres / L liés au découpage sur les SSD.

verdy_p
la source