¿Cómo puedo saber si un directorio tiene habilitado APFS Fast Directory Sizing?

La documentación técnica de Apple en la Guía del sistema de archivos de Apple describe que algunos directorios /tmpno son buenos candidatos para la función de tamaño de directorio rápido.

El dimensionamiento rápido de directorios funciona calculando previamente el tamaño del directorio a medida que se agrega y elimina contenido. Por lo tanto, es más apropiado para directorios que contienen muchos archivos y tienen relativamente poca rotación. Por ejemplo, la carpeta Documentos de un usuario es una buena candidata para un tamaño de directorio rápido, mientras que el /tmpdirectorio no lo sería.

¿Cómo puedo saber si un directorio dado tiene esto habilitado o deshabilitado para poder elegir dónde hacer el trabajo de "abandono" intensivo de velocidad y dónde no hacer ese tipo de trabajo?

Respuestas (2)

Ahora sabemos que la respuesta anterior está un poco fuera de lugar ya que Apple ha publicado recientemente más detalles técnicos sobre APFS. De hecho, el tamaño rápido de directorios está habilitado por directorio y esto puede ser verificado por el usuario (aunque no fácilmente). Solo se puede habilitar cuando un directorio está vacío y también se debe activar para cada nuevo subdirectorio. Detalles: https://developer.apple.com/support/apple-file-system/Apple-File-System-Reference.pdf

Cita relevante

No puede habilitar el tamaño rápido de directorios en directorios que contienen archivos u otros directorios directamente; en su lugar, primero debe crear un nuevo directorio, habilitar el tamaño rápido del directorio y luego mover el contenido del directorio existente al nuevo directorio

Ahora sabemos que debe configurar este indicador para habilitar FDS

INODE_MAINTAIN_DIR_STATS: el inodo rastrea el tamaño de todos sus hijos

Aunque todavía no me queda claro si macOS está activando este indicador automáticamente cuando corresponde o no, algunos experimentos iniciales me hacen pensar que aún no se está utilizando. Supongo que se usará en las próximas actualizaciones de macOS.

Respuesta corta

FDS es una parte fundamental del sistema de archivos en las unidades con formato APFS. No es algo que los usuarios necesiten habilitar o deshabilitar, y no es algo que pueda aplicarse a un directorio y no a otro.

Como es un escenario 'todo incluido', no hay ningún comando de terminal para determinar si un directorio tiene FDS habilitado. En cambio, si una unidad está formateada en formato APFS, FDS está habilitado. Si no está formateado en formato APFS, entonces FDS no está disponible.

Respuesta larga

Desafortunadamente, la información que ha citado de la documentación técnica de Apple está mal redactada, de ahí el motivo de su pregunta.

Si una unidad está formateada en formato APFS, el tamaño rápido de directorio se aplica en todos los ámbitos. FDS no es algo que un usuario pueda habilitar/deshabilitar por directorio.

Debido a esto, tampoco es algo de lo que un usuario pueda determinar el estado directorio por directorio. Es decir, si la unidad está formateada como APFS, todos los directorios tienen FDS habilitado .

De donde proviene la confusión (y comprensiblemente en este caso) es la mala elección de palabras en la documentación de Apple y la ambigüedad que creó. Lo que esta información intentaba transmitir es que un usuario se beneficiará más de FDS en aquellos directorios que tienen muchos archivos pero cambian poco (por ejemplo, la carpeta Documentos de un usuario), mientras que no obtendrán muchos beneficios (si los hay) de FDS en directorios. como la /tmpcarpeta.

Aparte, la documentación a la que hizo referencia ha sido reemplazada desde entonces por la página Acerca del sistema de archivos de Apple . La única mención de FDS en esta página es la siguiente:

Apple File System ofrece fundamentos mejorados del sistema de archivos, así como varias características nuevas, que incluyen clonación, instantáneas, uso compartido de espacio, tamaño rápido de directorios, almacenamiento seguro atómico y archivos dispersos.

No hay ningún intento de explicar más lo que significa FDS, más allá del hecho de que es una característica fundamental (léase subyacente ). Sin embargo, si estás interesado en algunos antecedentes:

En estructuras de directorios complejas y profundas en HFS+, estamos familiarizados con el tiempo que el sistema de archivos podría dedicar a calcular el tamaño del árbol del sistema de archivos. Esta es una de las razones comunes por las que el sistema se cuelga. Apple, con APFS, introdujo Fast Directory Sizing (FDS), donde el sistema de archivos puede calcular rápidamente el espacio utilizado por una jerarquía de directorios, para eliminar este problema.

Fuente: Hansen, KH, Toolan, F., Decodificación del sistema de archivos APFS, Investigación digital (2017)

¿Es cierto que si una unidad está formateada como APFS, todos los directorios tienen FDS habilitado? Este comentario sugiere que se configura por inodo y que primero debe crear dicho directorio y luego mover los elementos a él. Ciertamente, en mi propio sistema, los tamaños de las carpetas no parecen mostrarse muy rápido en el Finder (este era un sistema actualizado, no una instalación limpia).
Lamentablemente, esto es simplemente incorrecto y debe actualizarse. Consulte la documentación j_inode_flagsen la Referencia del sistema de archivos de Apple . De hecho, la estructura de datos del inodo del directorio permite habilitar o deshabilitar esta función en una instancia por directorio. Nada allí indica que esta función esté habilitada para todos los directorios automáticamente como se indica en esta respuesta.
Este comentario es repetitivo, algo condescendiente y totalmente erróneo. Las citas en la pregunta no están "mal redactadas"; obviamente son incompatibles con esta respuesta.