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

9

Apple la documentazione tecnica nella Guida al file system Apple descrive che alcune directory come /tmp non sono buone candidate per la funzionalità di dimensionamento rapida delle directory.

Fast directory sizing works by precomputing the size of directory as content is added and removed. Therefore, it is most appropriate for directories that contain many files and have relatively little churn. For example, a user’s Documents folder is a good candidate for fast directory sizing, whereas the /tmp directory would not.

Come posso sapere se una determinata directory ha questa abilitazione o disabilitazione, così posso scegliere dove lavorare a velocità intensiva "churn" e dove non fare quel tipo di lavoro?

    
posta bmike 27.02.2018 - 20:59
fonte

2 risposte

2

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ò applicarsi a una directory e non a un'altra.

Poiché si tratta di uno scenario "tutto incluso", non ci sono comandi da terminale per determinare se una directory ha FDS abilitato. Invece, se un'unità è formattata nel formato APFS, 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 mal formulate, quindi il motivo della tua domanda.

Se un'unità è formattata nel formato APFS, il ridimensionamento delle directory rapide viene applicato su tutta la linea. FDS non è qualcosa che un utente può abilitare / disabilitare su una base per directory.

Per questo motivo, non è nemmeno qualcosa che un utente può determinare lo stato di una directory per directory. Cioè, se l'unità è formattata come APFS allora 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 questa informazione stava cercando di trasmettere è che un utente trarrà il massimo vantaggio da FDS in quelle directory che hanno molti file ma cambiano poco (ad esempio la cartella Documenti dell'utente), mentre non otterranno molti benefici (se ce ne sono) da FDS nelle directory come la cartella /tmp .

Per inciso, la documentazione che hai fatto riferimento è stata successivamente sostituita dalla pagina Informazioni sul file system Apple . L'unica menzione di FDS in questa pagina è la seguente:

Apple File System offers improved file system fundamentals as well as several new features, including cloning, snapshots, space sharing, fast directory sizing, atomic safe-save, and sparse files.

Non c'è alcun tentativo di spiegare ulteriormente che FDS significa, al di là del fatto che si tratta di una funzionalità fondamentale (leggi sottostante ). Tuttavia, se sei interessato a qualche background:

In complex and deep directory structures in HFS+, we are familiar with the time the file system could spend on calculating the size of the file system tree. This is one of the common reasons that the system would hang. Apple, with APFS, introduced Fast Directory Sizing (FDS), where the file system can quickly compute the space used by a directory hierarchy, in order to remove this problem.

Fonte: Hansen, K.H., Toolan, F., Decodifica del file system APFS, Digital Investigation (2017)

    
risposta data 18.07.2018 - 06:00
fonte
0

Ora sappiamo che la risposta precedente è un po 'off poiché Apple ha recentemente rilasciato maggiori dettagli tecnici su APFS. Il dimensionamento rapido delle directory è infatti abilitato su una base per directory e questo può essere controllato dall'utente (anche se non facilmente). Può essere abilitato solo quando una directory è vuota e deve essere attivata anche per ogni nuova sottodirectory. Dettagli: link

Citazione pertinente

You cannot enable Fast Directory Sizing on directories containing files or other directories directly; you must instead first create a new directory, enable fast directory sizing on it, and then move the contents of the existing directory to the new directory

Ora sappiamo che è necessario impostare questo flag per abilitare FDS

INODE_MAINTAIN_DIR_STATS: The inode tracks the size of all of its children

Anche se ancora non mi è chiaro se macOS stia attivando questo flag automaticamente o meno, ma alcune sperimentazioni iniziali mi fanno pensare che non sia ancora stato utilizzato. Presumo che verrà utilizzato nei prossimi aggiornamenti macOS.

    
risposta data 29.11.2018 - 04:26
fonte

Leggi altre domande sui tag