Comment savoir si un répertoire a le dimensionnement de répertoire rapide APFS activé?

10

La documentation technique d'Apple dans le Guide du système de fichiers Apple décrit que certains répertoires comme /tmpne sont pas de bons candidats pour la fonction de dimensionnement de répertoire rapide.

Le dimensionnement rapide des répertoires fonctionne en précalculant la taille du répertoire lorsque le contenu est ajouté et supprimé. Par conséquent, il est plus approprié pour les répertoires contenant de nombreux fichiers et ayant un taux de désabonnement relativement faible. Par exemple, le dossier Documents d'un utilisateur est un bon candidat pour le dimensionnement rapide du répertoire, contrairement au /tmprépertoire.

Comment puis-je savoir si un répertoire donné a cette fonction activée ou désactivée pour que je puisse choisir où faire le travail de "baratte" à grande vitesse et où ne pas faire ce genre de travail?

bmike
la source

Réponses:

1

Nous savons maintenant que la réponse précédente est un peu décalée depuis qu'Apple a récemment publié plus de détails techniques sur APFS. Le dimensionnement rapide des répertoires est en effet activé sur une base par répertoire et cela peut être vérifié par l'utilisateur (mais pas facilement). Il ne peut être activé que lorsqu'un répertoire est vide et doit également être activé pour chaque nouveau sous-répertoire. Détails: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Devis pertinent

Vous ne pouvez pas activer Fast Directory Sizing sur les répertoires contenant des fichiers ou d'autres répertoires directement; vous devez d'abord créer un nouveau répertoire, activer le dimensionnement rapide du répertoire, puis déplacer le contenu du répertoire existant vers le nouveau répertoire

Nous savons maintenant que vous devez définir ce drapeau pour activer FDS

INODE_MAINTAIN_DIR_STATS: l'inode suit la taille de tous ses enfants

Bien que je ne sache toujours pas si macOS active automatiquement ce drapeau, le cas échéant ou non, mais certaines expérimentations initiales me font penser qu'il n'est pas encore utilisé. Je suppose qu'il sera utilisé dans les prochaines mises à jour de macOS.

Chris
la source
0

Réponse courte

FDS est une partie fondamentale du système de fichiers dans les lecteurs formatés APFS. Ce n'est pas quelque chose que les utilisateurs doivent activer / désactiver, et ce n'est pas quelque chose qui peut s'appliquer à un répertoire et pas à un autre.

Comme il s'agit d'un scénario «tout compris», il n'y a pas de commandes de terminal pour déterminer si un répertoire a activé FDS. Au lieu de cela, si un lecteur est formaté au format APFS, FDS est activé. S'il n'est pas formaté au format APFS, alors FDS n'est pas disponible.

Longue réponse

Malheureusement, les informations que vous avez citées dans la documentation technique d'Apple sont mal formulées, d'où la raison de votre question.

Si un lecteur est formaté au format APFS, le dimensionnement rapide du répertoire est appliqué à tous les niveaux. Le FDS n'est pas quelque chose qu'un utilisateur peut activer / désactiver par répertoire.

Pour cette raison, ce n'est pas non plus quelque chose qu'un utilisateur peut déterminer l'état d'un annuaire par annuaire. Autrement dit, si le lecteur est formaté en APFS, tous les répertoires ont FDS activé .

D'où vient la confusion (et c'est compréhensible dans ce cas-ci) est le mauvais choix de mots dans la documentation d'Apple et l'ambiguïté qui a créé. Ce que ces informations tentaient de transmettre, c'est qu'un utilisateur bénéficiera le plus des FDS dans les répertoires qui contiennent beaucoup de fichiers mais qui changent peu (par exemple le dossier Documents d'un utilisateur), alors qu'ils ne tireront pas beaucoup d'avantages (le cas échéant) des FDS dans les répertoires comme le /tmpdossier.

En passant, la documentation à laquelle vous avez fait référence a depuis été remplacée par la page À propos du système de fichiers Apple . La seule mention de FDS sur cette page est la suivante:

Apple File System offre des bases de système de fichiers améliorées ainsi que plusieurs nouvelles fonctionnalités, y compris le clonage, les instantanés, le partage d'espace, le dimensionnement rapide des répertoires, la sauvegarde atomique et les fichiers épars.

Il n'y a aucune tentative d'expliquer davantage ce que signifie FDS, au-delà du fait qu'il s'agit d'une caractéristique fondamentale (lire sous-jacente ). Cependant, si vous êtes intéressé par certains antécédents:

Dans les structures de répertoires complexes et profondes de HFS +, nous connaissons le temps que le système de fichiers pourrait consacrer au calcul de la taille de l'arborescence du système de fichiers. C'est l'une des raisons courantes pour lesquelles le système se bloque. Apple, avec APFS, a introduit Fast Directory Sizing (FDS), où le système de fichiers peut rapidement calculer l'espace utilisé par une hiérarchie de répertoires, afin d'éliminer ce problème.

Source: Hansen, KH, Toolan, F., Décodage du système de fichiers APFS, Digital Investigation (2017)

Monomeeth
la source
Est-il vrai que si un lecteur est formaté en APFS, tous les répertoires ont FDS activé? Ce commentaire suggère qu'il est défini sur une base par inode et que vous devez d'abord créer un tel répertoire, puis y déplacer des éléments. Certainement sur mon propre système, la taille des dossiers ne semble pas du tout s'afficher très rapidement dans le Finder (c'était un système mis à niveau, pas une installation propre).
wincent
Malheureusement, c'est tout à fait faux et devrait être mis à jour. Voir la documentation j_inode_flagsdans le Apple File System Reference . La structure de données de l'inode de répertoire permet en effet d'activer ou de désactiver cette fonctionnalité sur une instance par répertoire. Rien dans ce document n'indique que cette fonctionnalité est activée pour tous les répertoires automatiquement, comme indiqué dans cette réponse.
Feuermurmel
Ce commentaire est répétitif, quelque peu condescendant et tout à fait faux. Les citations de la question ne sont pas «mal formulées»; ils sont évidemment incompatibles avec cette réponse.
Matthias Winkelmann