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

10

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

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 un buen candidato para un tamaño de directorio rápido, mientras que el /tmpdirectorio no lo haría.

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

bmike
fuente

Respuestas:

1

Ahora sabemos que la respuesta anterior está un poco fuera de lugar ya que Apple ha lanzado recientemente más detalles técnicos sobre APFS. El dimensionamiento rápido de directorios está habilitado por directorio y el usuario puede verificarlo (aunque no fácilmente). Solo se puede habilitar cuando un directorio está vacío y también se debe activar para cada subdirectorio nuevo. 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 directorio 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 los contenidos del directorio existente al nuevo directorio

Ahora sabemos que debe establecer este indicador para habilitar FDS

INODE_MAINTAIN_DIR_STATS: el inodo rastrea el tamaño de todos sus elementos secundarios

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

Chris
fuente
0

Respuesta corta

FDS es una parte fundamental del sistema de archivos en unidades formateadas APFS. No es algo que los usuarios necesiten habilitar / 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 el formato APFS, entonces FDS está habilitado. Si no está formateado en el formato APFS, 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í la razón de su pregunta.

Si una unidad está formateada en el 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 que un usuario pueda determinar el estado de un directorio por directorio. Es decir, si la unidad está formateada como APFS, todos los directorios tienen FDS habilitado .

De dónde viene la confusión (y es comprensible 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 del usuario), mientras que no obtendrán muchos beneficios (si los hay) de FDS en directorios como la /tmpcarpeta

Además, la documentación a la que hizo referencia ha sido reemplazada 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, espacio compartido, cambio rápido de tamaño de directorio, guardado seguro atómico y archivos dispersos.

No hay ningún intento de explicar más qué significa FDS, más allá del hecho de que es una característica fundamental (lectura subyacente ). Sin embargo, si está 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 colgaría. 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)

Monomeeth
fuente
¿Es cierto que si una unidad está formateada como APFS que todos los directorios tienen FDS habilitado? Este comentario sugiere que se establece por inodo, y que primero debe crear dicho directorio y luego mover elementos a él. Ciertamente, en mi propio sistema, los tamaños de carpeta no parecen mostrarse muy rápidamente en el Finder (este era un sistema actualizado; no una instalación limpia).
Wincent
Lamentablemente, esto es completamente incorrecto y debe actualizarse. Consulte la documentación j_inode_flagsen la Referencia del sistema de archivos de Apple . La estructura de datos del inodo del directorio permite que esta característica se habilite o deshabilite 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.
Feuermurmel
Este comentario es repetitivo, algo condescendiente y completamente erróneo. Las citas en la pregunta no están "mal redactadas"; obviamente son incompatibles con esta respuesta.
Matthias Winkelmann