¿Por qué la compresión NTFS ocupa mucho espacio?

¿Por qué la compresión NTFS ocupa mucho espacio?

Para ahorrar algo de espacio en el disco, pensé que podría ser una buena idea comprimir el cliente VMware vSphere que instalé porque casi nunca lo uso.

Me sorprendió descubrir que tenía exactamente el efecto contrario en el espacio libre en disco. Lo rastreé más a fondo y descubrí que está relacionado con la compresión de la Helpcarpeta. La pérdida de espacio en disco no se refleja en el tamaño de la carpeta.

Repetí el ciclo de comprimir/descomprimir tres veces para asegurarme de que otro programa no ocupara coincidentemente el espacio en el disco. Puede ser notable que la carpeta contenga una gran cantidad de archivos pequeños (≈ 30k).

¿Por qué es así? ¿Puedo de alguna manera encontrar otras carpetas que deberíadescomprimirpara ahorrar espacio en disco?


Sin compresión:

tamaño de carpeta sin compresión espacio libre sin compresión

Con compresión:

tamaño de carpeta con compresión espacio libre con compresión

Respuesta1

Un poco de conocimiento previo sobre las capturas de pantalla del tamaño de la carpeta que proporcionó:

Sin comprimir

Como era de esperar, con muchos archivos pequeños hay muchos gastos generales. Su disco duro está particionado con un tamaño de bloque determinado: 4 KB de forma predeterminada para NTFS.

Cada archivo debe asignar un múltiplo de 4 KB, lo que significa que no importa si tiene un archivo de 1 KB o de 3,5 KB, ambos ocuparán 4 KB de espacio. Si tiene un archivo de 13 KB, utilizará 16 KB en su disco. La diferencia entre "Tamaño" y "Tamaño en disco" es la sobrecarga introducida por el espacio no utilizado en los bloques, el llamadoconsejos de grupo.

Comprimido

Después de la compresión, el "Tamaño" sigue siendo el mismo ya que la cantidad de datos netos no ha cambiado en absoluto. Sin embargo, la compresión pudo reducir el tamaño total en unos 130 MB. De hecho, aún más porque aquí también se aplican los gastos generales.Entonces, la compresión en realidad ahorró algo de espacio en esa carpeta y eso también se muestra en el tamaño de la carpeta.

Ahora, con respecto al comportamiento que observa con la reducción del espacio libre en disco en la unidad C: Esto puede tener varias razones. Una cosa que hay que entender es que el espacio libre en disco siempre será menor que

<Disk size> - <total size of all files>

Esto se debe a que hay muchos metadatos que también consumen espacio (instantáneas VSS, puntos de restauración del sistema, MFT, etc.).

Durante la compresión de archivos individuales, NTFS mantendrá temporalmente el archivo original hasta que se complete la compresión. Esto es para garantizar que aún le quede una versión válida del archivo en caso de que su computadora falle. Sin embargo, esto debería ser sólo temporal. Sin embargo, todo apunta a que los metadatos NTFS causan esto.

Para verificar con mayor precisión los resultados, puede hacer lo siguiente:

  • Comience con una carpeta sin comprimir
  • Deshabilite la Protección del sistema para cada volumen (Propiedades de la computadora/Protección del sistema)
  • Elimine los puntos de restauración para cada volumen en el mismo cuadro de diálogo
  • Utilice "Liberador de espacio en disco" en las propiedades de su volumen C: para eliminar archivos temporales
  • Tenga en cuenta el espacio libre en disco
  • Comprimir la carpeta
  • Reinicia tu computadora
  • Utilice la limpieza del disco nuevamente
  • Comprueba el espacio libre en tu disco

En teoría deberías poder ver un aumento en el espacio libre.

Respuesta2

Habiendo investigado recientemente un problema similar, también puedo decir que un archivo comprimido ocupa al menos 4 kilobytes de espacio por archivo y un espacio temporal de 64 kilobytes, que es el tamaño de una "Unidad de compresión" para NTFS con un tamaño de clúster de 4 kb.El artículo en blogs.msdn.comTambién menciona que cuando se comprime el archivo, el espacio en disco se asigna para contener una CU completa y se libera en un momento indeterminado. Esta debería ser la razón por la que está experimentando la pérdida de 5 GB, aunque sea temporal (un reinicio definitivamente debería solucionar esa pérdida, algún otro medio debería hacerlo también, pero no desfragmentar; lo intenté y fallé). Aparentemente, lo asignado parece ser mucho más grande (64 kb*(31048+582) = 2072903680 o 1,93 GB), pero esto se explica porque NTFS tiene transacciones que requieren tiempo y unidades de procesador para confirmarse en datos sin procesar, y cuándo se ejecutará ese proceso. Cuando termine, obtendrá todos los 5 GB más 150 MB de espacio liberado debido a la compresión.

En resumen, sólo pierde espacio temporalmente si comprime una gran cantidad de archivos. Pero, si esos archivos se modifican con frecuencia, su espacio en disco se asigna para almacenar datos sin comprimir para esos archivos en caso de que su contenido alterado no pueda comprimirse para caber en cualquier espacio que ese clúster hubiera ocupado antes de la acción de escritura.

Respuesta3

Tuve los mismos fenómenos:

Migración del servidor, copié las carpetas de datos de una unidad del antiguo Windows Server 2012R2 (con 2 carpetas comprimidas) en una unidad de centro de datos de Windows Server 2016 más nueva del mismo tamaño donde creé la estructura de carpetas y configuré los indicadores comprimidos en estas dos carpetas. previamente al proceso de copia. Durante la copia me quedo sin espacio en el disco y en cualquier lugar que miré solo se usan 3 GB de 20 GB, pero la unidad en sí me dice que se usan 19,x GB. Un colega me dijo que quitara el indicador de compresión y, milagrosamente, reaparecieron los 17 GB perdidos.

Luego leí su artículo y decidí volver a aplicar la bandera e intentar reiniciar, pero curiosamente el espacio en disco utilizado no aumentó esta vez.

Supongo que podría haber un problema en Windows Server 2016 (tal vez desde siempre) de que los archivos temporales generados internamente no se limpian correctamente cuando los archivos se copian a una carpeta comprimida (a diferencia de cuando el indicador de compresión se aplica a archivos ya existentes).

Respuesta4

Adjunto: Además de las explicaciones anteriores, una carpeta de aplicación puede contener archivos que simplemente no se comprimen bien: formatos multimedia que ya tienen una gran reducción de datos (imágenes jpeg, archivos de vídeo, audio mp3...), archivos ya comprimidos (muchos ¡Los formatos de datos actuales se construyen como archivos ZIP!), archivos con datos realmente aleatorios o algo parecido a datos aleatorios, archivos cifrados; esto podría dar como resultado que se utilicen más datos para la contabilidad de lo que se ha comprimido que los que se guardaron mediante la compresión. ...

información relacionada