Wie kann ich feststellen, ob für ein Verzeichnis APFS Fast Directory Sizing aktiviert ist?

Die technische Dokumentation von Apple im Apple File System Guide beschreibt, dass einige Verzeichnisse wie /tmpkeine guten Kandidaten für die schnelle Verzeichnisgrößenanpassung sind.

Die schnelle Verzeichnisgröße funktioniert, indem die Größe des Verzeichnisses vorab berechnet wird, 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 wäre.

Wie kann ich feststellen, ob dies in einem bestimmten Verzeichnis aktiviert oder deaktiviert ist, damit ich auswählen kann, wo ich geschwindigkeitsintensive "Churn" -Arbeiten ausführen möchte und wo diese Art von Arbeit nicht ausgeführt werden soll?

Antworten (2)

Wir wissen jetzt, dass die vorherige Antwort etwas daneben liegt, da Apple kürzlich weitere technische Details zu APFS veröffentlicht hat. Die schnelle Verzeichnisgröße ist tatsächlich pro Verzeichnis 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. Einzelheiten: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Relevantes Zitat

Sie können Fast Directory Sizing nicht direkt für Verzeichnisse aktivieren, die Dateien oder andere Verzeichnisse enthalten; Sie müssen stattdessen zuerst ein neues Verzeichnis erstellen, die schnelle Verzeichnisgröße darauf 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 Kinder

Obwohl mir immer noch unklar ist, ob macOS dieses Flag gegebenenfalls automatisch aktiviert oder nicht, aber einige anfängliche Experimente lassen mich glauben, dass es noch nicht verwendet wird. Ich gehe davon aus, dass es in kommenden macOS-Updates verwendet wird.

Kurze Antwort

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

Da es sich um ein All-in-Szenario handelt, gibt es keine Terminalbefehle, um festzustellen, ob für ein Verzeichnis FDS aktiviert ist. Wenn ein Laufwerk stattdessen im APFS-Format formatiert ist, wird 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 durchgängig angewendet. FDS kann ein Benutzer nicht pro Verzeichnis aktivieren/deaktivieren.

Aus diesem Grund kann ein Benutzer den Status auch nicht auf Verzeichnisbasis ermitteln. Das heißt, wenn das Laufwerk als APFS formatiert ist, haben alle Verzeichnisse FDS aktiviert .

Woher die Verwirrung kommt (und in diesem Fall verständlicherweise), ist die schlechte Wortwahl in Apples Dokumentation und die daraus resultierende Mehrdeutigkeit. Was diese Informationen vermitteln wollten, ist, dass ein Benutzer in den Verzeichnissen, die viele Dateien haben, aber wenig ändern (z. B. der Dokumentenordner eines Benutzers), am meisten von FDS profitiert, während er in Verzeichnissen nicht viel (wenn überhaupt) von FDS profitiert wie der /tmpOrdner.

Nebenbei bemerkt, die Dokumentation, auf die Sie verwiesen haben, wurde inzwischen durch die Seite About Apple File System ersetzt . Die einzige Erwähnung von FDS auf dieser Seite lautet wie folgt:

Apple File System bietet verbesserte Dateisystemgrundlagen sowie mehrere neue Funktionen, darunter Klonen, Snapshots, Speicherplatzfreigabe, schnelle Verzeichnisgröße, Atomic Safe-Save und Sparse-Dateien.

Es gibt keinen Versuch, weiter zu erklären, was FDS bedeutet, abgesehen von der Tatsache, dass es sich um eine grundlegende (lesen Sie zugrunde liegende ) Funktion handelt. Wenn Sie jedoch an Hintergrundinformationen interessiert sind:

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

Quelle: Hansen, KH, Toolan, F., Decoding the APFS file system, Digital Investigation (2017)

Stimmt es, dass, wenn ein Laufwerk als APFS formatiert ist, alle Verzeichnisse FDS aktiviert haben? Dieser Kommentar deutet darauf hin, dass es pro Inode festgelegt wird und dass Sie zuerst ein solches Verzeichnis erstellen und dann Elemente dorthin verschieben müssen. Auf meinem eigenen System scheinen die Ordnergrößen im Finder überhaupt nicht sehr schnell angezeigt zu werden (dies war ein aktualisiertes System; keine Neuinstallation).
Leider ist dies schlicht falsch und sollte aktualisiert werden. Siehe die Dokumentation j_inode_flagsin der Apple File System Reference . Die Verzeichnis-Inode-Datenstruktur ermöglicht es tatsächlich, diese Funktion auf einer verzeichnisspezifischen Instanz zu aktivieren oder zu deaktivieren. Nichts dort besagt, dass diese Funktion automatisch für alle Verzeichnisse aktiviert ist, wie in dieser Antwort angegeben.
Dieser Kommentar wiederholt sich, ist etwas herablassend und völlig falsch. Die Anführungszeichen in der Frage sind nicht „schlecht formuliert“; sie sind mit dieser Antwort offensichtlich unvereinbar.