Come posso sapere se una directory ha abilitato il dimensionamento rapido della directory APFS?


10

La documentazione tecnica di Apple nella Guida al file system Apple descrive che alcune directory come /tmpnon sono buone candidate per la funzione di dimensionamento rapido delle directory.

Il dimensionamento rapido delle directory funziona precompilando la dimensione della directory man mano che il contenuto viene aggiunto e rimosso. Pertanto, è più appropriato per le directory che contengono molti file e hanno un churn relativamente piccolo. Ad esempio, la cartella Documenti di un utente è un buon candidato per il dimensionamento rapido delle directory, mentre la /tmpdirectory no.

Come posso sapere se una determinata directory ha abilitato o disabilitato questa opzione in modo da poter scegliere dove eseguire il lavoro "churn" ad alta velocità e dove non fare quel tipo di lavoro?

Risposte:


1

Ora sappiamo che la risposta precedente è un po 'fuori da quando Apple ha recentemente rilasciato ulteriori dettagli tecnici su APFS. Il dimensionamento rapido delle directory è infatti abilitato su una base per directory e questo può essere verificato dall'utente (anche se non facilmente). Può essere abilitato solo quando una directory è vuota e deve essere attivata anche per ogni nuova sottodirectory. Dettagli: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Citazione pertinente

Non è possibile abilitare il ridimensionamento rapido delle directory su directory contenenti file o altre directory direttamente; devi invece creare prima una nuova directory, abilitare il ridimensionamento rapido della directory su di essa, quindi spostare il contenuto della directory esistente nella nuova directory

Ora sappiamo che è necessario impostare questo flag per abilitare FDS

INODE_MAINTAIN_DIR_STATS: l'inode tiene traccia delle dimensioni di tutti i suoi figli

Anche se non mi è ancora chiaro se macOS sta attivando automaticamente questo flag laddove appropriato o meno, ma alcune sperimentazioni iniziali mi fanno pensare che non sia ancora in uso. Presumo che verrà utilizzato nei prossimi aggiornamenti di macOS.


0

Risposta breve

FDS è una parte fondamentale del file system nelle unità formattate APFS. Non è qualcosa che gli utenti devono abilitare / disabilitare e non è qualcosa che può essere applicato a una directory e non a un'altra.

Essendo uno scenario "tutto compreso", non ci sono comandi di terminale per determinare se una directory ha abilitato FDS. Invece, se un'unità è formattata nel formato APFS, allora FDS è abilitato. Se non è formattato nel formato APFS, FDS non è disponibile.

Risposta lunga

Sfortunatamente, le informazioni che hai citato dalla documentazione tecnica di Apple sono scritte male, quindi il motivo della tua domanda.

Se un'unità è formattata nel formato APFS, il dimensionamento rapido della directory viene applicato su tutta la linea. FDS non è qualcosa che un utente può abilitare / disabilitare in base alla directory.

Per questo motivo, non è nemmeno qualcosa che un utente può determinare lo stato di una directory in base alla directory. Cioè, se l'unità è formattata come APFS, tutte le directory hanno FDS abilitato .

Da dove viene la confusione (e comprensibilmente in questo caso) è la cattiva scelta delle parole nella documentazione di Apple e l'ambiguità che ha creato. Ciò che queste informazioni stavano cercando di comunicare è che un utente trarrà il massimo beneficio da FDS in quelle directory che hanno molti file ma cambiano poco (ad esempio la cartella Documenti di un utente), mentre non trarranno molto beneficio (se presente) da FDS nelle directory come la /tmpcartella.

A parte questo, la documentazione a cui hai fatto riferimento è stata sostituita dalla pagina Informazioni sul file system Apple . L'unica menzione di FDS in questa pagina è la seguente:

Il file system Apple offre nozioni di base sul file system migliorate e numerose nuove funzionalità, tra cui clonazione, istantanee, condivisione dello spazio, dimensionamento rapido delle directory, salvataggio atomico sicuro e file sparsi.

Non v'è alcun tentativo di spiegare ulteriormente ciò FdS mezzi, al di là del fatto che è un elemento fondamentale (leggi sottostante ) caratteristica. Tuttavia, se sei interessato ad alcuni retroscena:

In strutture di directory complesse e profonde in HFS +, abbiamo familiarità con il tempo che il sistema di file potrebbe impiegare per calcolare la dimensione dell'albero del file system. Questo è uno dei motivi comuni per cui il sistema si bloccherebbe. Apple, con APFS, ha introdotto Fast Directory Sizing (FDS), in cui il file system può calcolare rapidamente lo spazio utilizzato da una gerarchia di directory, al fine di rimuovere questo problema.

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


È vero che se un'unità è formattata come APFS, tutte le directory hanno FDS abilitato? Questo commento suggerisce che è impostato su una base per-inode e che è necessario prima creare una tale directory e quindi spostare gli elementi in essa. Certamente sul mio sistema, le dimensioni della cartella non sembrano essere visualizzate molto rapidamente nel Finder (questo era un sistema aggiornato; non un'installazione pulita).
Wincent,

Purtroppo, questo è chiaramente sbagliato e dovrebbe essere aggiornato. Consultare la documentazione per j_inode_flagsnel Riferimento al file system Apple . La struttura dei dati dell'inode della directory consente infatti di abilitare o disabilitare questa funzione su un'istanza per directory. Non c'è nulla che indichi che questa funzione è abilitata automaticamente per tutte le directory come indicato in questa risposta.
Feuermurmel,

Questo commento è ripetitivo, in qualche modo condiscendente e del tutto sbagliato. Le virgolette nella domanda non sono "mal scritte"; sono ovviamente incompatibili con questa risposta.
Matthias Winkelmann il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.