Wie kann ich feststellen, ob in einem Verzeichnis APFS Fast Directory Sizing aktiviert ist?

10

In der technischen Dokumentation von Apple im Apple File System Guide wird beschrieben, dass einige Verzeichnisse wie diese /tmpkeine guten Kandidaten für die Funktion zur schnellen Größenänderung von Verzeichnissen sind.

Die schnelle Verzeichnisgröße berechnet die Größe des Verzeichnisses vorab, wenn Inhalte hinzugefügt und entfernt werden. Daher ist es am besten für Verzeichnisse geeignet, die viele Dateien enthalten und relativ wenig Abwanderung aufweisen. Beispielsweise ist der Ordner "Dokumente" eines Benutzers ein guter Kandidat für eine schnelle Verzeichnisgröße, während das /tmpVerzeichnis dies nicht tun würde.

Wie kann ich feststellen, ob in einem bestimmten Verzeichnis dies aktiviert oder deaktiviert ist, damit ich auswählen kann, wo geschwindigkeitsintensive "Abwanderungsarbeiten" ausgeführt werden sollen und wo diese Art von Arbeiten nicht ausgeführt werden sollen?

bmike
quelle

Antworten:

1

Wir wissen jetzt, dass die vorherige Antwort etwas falsch ist, da Apple kürzlich weitere technische Details zu APFS veröffentlicht hat. Die schnelle Verzeichnisgröße wird tatsächlich auf Verzeichnisbasis aktiviert und kann vom Benutzer überprüft werden (wenn auch nicht einfach). Es kann nur aktiviert werden, wenn ein Verzeichnis leer ist, und muss auch für jedes neue Unterverzeichnis aktiviert werden. Details: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Relevantes Zitat

Sie können die schnelle Verzeichnisgröße nicht für Verzeichnisse aktivieren, die Dateien oder andere Verzeichnisse direkt enthalten. Sie müssen stattdessen zuerst ein neues Verzeichnis erstellen, die schnelle Verzeichnisgröße aktivieren und dann den Inhalt des vorhandenen Verzeichnisses in das neue Verzeichnis verschieben

Wir wissen jetzt, dass Sie dieses Flag setzen müssen, um FDS zu aktivieren

INODE_MAINTAIN_DIR_STATS: Der Inode verfolgt die Größe aller seiner untergeordneten Elemente

Obwohl mir immer noch unklar ist, ob macOS dieses Flag gegebenenfalls automatisch aktiviert oder nicht, lässt mich ein erstes Experimentieren glauben, dass es noch nicht verwendet wird. Ich gehe davon aus, dass es in kommenden macOS-Updates verwendet wird.

Chris
quelle
0

Kurze Antwort

FDS ist ein wesentlicher Bestandteil des Dateisystems in APFS-formatierten Laufwerken. Es ist nicht etwas, das Benutzer aktivieren / deaktivieren müssen, und es kann nicht auf ein Verzeichnis und nicht auf ein anderes angewendet werden.

Da es sich um ein All-in-Szenario handelt, gibt es keine Terminalbefehle, mit denen festgestellt werden kann, ob in einem Verzeichnis FDS aktiviert ist. Wenn stattdessen ein Laufwerk im APFS-Format formatiert ist, ist FDS aktiviert. Wenn es nicht im APFS-Format formatiert ist, ist FDS nicht verfügbar.

Lange Antwort

Leider sind die Informationen, die Sie aus der technischen Dokumentation von Apple zitiert haben, schlecht formuliert, daher der Grund für Ihre Frage.

Wenn ein Laufwerk im APFS-Format formatiert ist, wird Fast Directory Sizing auf der ganzen Linie angewendet. FDS kann ein Benutzer nicht pro Verzeichnis aktivieren / deaktivieren.

Aus diesem Grund kann ein Benutzer den Status auch nicht verzeichnisweise ermitteln. Wenn das Laufwerk als APFS formatiert ist, ist für alle Verzeichnisse FDS aktiviert .

Woher die Verwirrung kommt (und in diesem Fall verständlicherweise), ist die schlechte Wortwahl in der Apple-Dokumentation und die dadurch entstandene Mehrdeutigkeit. Mit diesen Informationen wurde versucht zu vermitteln, dass ein Benutzer am meisten von FDS in Verzeichnissen profitiert, die viele Dateien enthalten, aber nur wenig ändern (z. B. den Ordner "Dokumente" eines Benutzers), während FDS in Verzeichnissen (falls vorhanden) nicht viel davon profitiert wie der /tmpOrdner.

Abgesehen davon wurde die Dokumentation, auf die Sie verwiesen haben, inzwischen durch die Seite " Über das Apple-Dateisystem" ersetzt . Die einzige Erwähnung von FDS auf dieser Seite lautet wie folgt:

Apple File System bietet verbesserte Grundlagen des Dateisystems sowie verschiedene neue Funktionen, darunter Klonen, Snapshots, Speicherplatzfreigabe, schnelle Verzeichnisgröße, atomare sichere Speicherung und spärliche Dateien.

Es gibt keinen Versuch, weiter zu erklären, was FDS bedeutet, außer der Tatsache, dass es sich um ein grundlegendes (gelesenes zugrunde liegendes ) Merkmal handelt. Wenn Sie jedoch an Hintergrundinformationen interessiert sind:

In komplexen und tiefen Verzeichnisstrukturen in HFS + kennen wir die Zeit, die das Dateisystem für die Berechnung der Größe des Dateisystembaums aufwenden kann. Dies ist einer der häufigsten Gründe, warum das System hängen bleibt. Apple hat mit APFS das Fast Directory Sizing (FDS) eingeführt, bei dem das Dateisystem den von einer Verzeichnishierarchie verwendeten Speicherplatz schnell berechnen kann, um dieses Problem zu beheben.

Quelle: Hansen, KH, Toolan, F., Dekodierung des APFS-Dateisystems, Digital Investigation (2017)

Monomeeth
quelle
Stimmt es, dass für alle Verzeichnisse FDS aktiviert ist, wenn ein Laufwerk als APFS formatiert ist? Dieser Kommentar legt nahe, dass er pro Inode festgelegt wird und dass Sie zuerst ein solches Verzeichnis erstellen und dann Elemente in dieses Verzeichnis verschieben müssen. Auf meinem eigenen System scheinen die Ordnergrößen im Finder nicht sehr schnell angezeigt zu werden (dies war ein aktualisiertes System; keine Neuinstallation).
wincent
Leider ist dies einfach falsch und sollte aktualisiert werden. Weitere Informationen finden Sie j_inode_flagsin der Dokumentation in der Apple File System Reference . Die Verzeichnis-Inode-Datenstruktur ermöglicht es tatsächlich, diese Funktion auf einer Instanz pro Verzeichnis zu aktivieren oder zu deaktivieren. Nichts dort besagt, dass diese Funktion für alle Verzeichnisse automatisch aktiviert wird, wie in dieser Antwort angegeben.
Feuermurmel
Dieser Kommentar wiederholt sich, ist etwas herablassend und völlig falsch. Die Zitate in der Frage sind nicht „schlecht formuliert“. Sie sind offensichtlich mit dieser Antwort nicht kompatibel.
Matthias Winkelmann