¿Cómo afecta la compresión NTFS al rendimiento?


57

He oído que la compresión NTFS puede reducir el rendimiento debido al uso adicional de la CPU, pero he leído informes de que en realidad puede aumentar el rendimiento debido a la reducción de las lecturas del disco. ¿Cómo afecta exactamente la compresión NTFS al rendimiento del sistema?

Notas:

  • Estoy ejecutando una computadora portátil con un disco duro de 5400 RPM, y muchas de las cosas que hago en él están vinculadas a E / S.
  • El procesador es un AMD Phenom II con cuatro núcleos funcionando a 2.0 GHz.
  • El sistema se desfragmenta regularmente utilizando UltraDefrag .
  • La carga de trabajo es de lectura y escritura mixta, con lecturas que ocurren con más frecuencia que las escrituras.
  • Los archivos que se van a comprimir incluyen un subconjunto seleccionado de documentos personales (no la carpeta de inicio completa) y programas, incluidos varios juegos (menos exigentes) y Visual Studio (que tiende a estar vinculado a E / S con mayor frecuencia).

12
Creo que la única respuesta correcta es "medirlo en su sistema".
Mehrdad

Creo que esto debería seguir siendo una pregunta genérica. La CPU es más rápida que la memoria. Hoy en día. Asumamos eso. Sobre el rendimiento? No tengo idea, pero también tengo curiosidad.
Apache

1
Que sistema es ¿Cuántos núcleos tienes? Al ser una operación intensiva de CPU, ¿tendrá un poco más de CPU adicional en relación con la velocidad del disco duro para las operaciones que va a realizar? El efecto sobre el consumo de energía y las temperaturas. La compresibilidad de los datos. ¿Cuánto cuesta Leer y cuánto escribir? Para empezar, comprimirlo es lento, pero leerlo de nuevo (dependiendo) debería ser más rápido con cantidades fácilmente medibles.
Psycogeek

Relacionados (pero con un poco diferentes circunstancias; específica a una carpeta con muchos iconos): superuser.com/questions/38605/...
bwDraco

1
Por cierto, una cosa que puedes probar es desfragmentar. Escuché maravillas sobre UltimateDefrag, pero nunca lo intenté hasta ahora. (Entre Diskeeper y PerfectDisk, utilizo este último, ya que Diskeeper dejó de lanzar nuevas versiones, etc.)
Apache

Respuestas:


36

He oído que la compresión NTFS puede reducir el rendimiento debido al uso adicional de la CPU, pero he leído informes de que en realidad puede aumentar el rendimiento debido a la reducción de las lecturas del disco.

Correcto. Asumiendo que su CPU, usando algún algoritmo de compresión, puede comprimir a C MB / sy descomprimir a D MB / s, y su disco duro tiene velocidad de escritura W y velocidad de lectura R. Siempre que C> W, obtenga una ganancia de rendimiento cuando escribiendo, y mientras D> R, obtienes un aumento de rendimiento al leer. Esta es una suposición drástica en el caso de escritura, ya que el algoritmo de Lempel-Ziv (como se implementa en el software) tiene una tasa de compresión no determinista (aunque puede restringirse con un tamaño de diccionario limitado).

¿Cómo afecta exactamente la compresión NTFS al rendimiento del sistema?

Bueno, es exactamente confiando en las desigualdades anteriores. Mientras su CPU pueda mantener una tasa de compresión / descompresión por encima de la velocidad de escritura de su HDD, debería experimentar una ganancia de velocidad. Sin embargo, esto tiene un efecto en archivos grandes, que pueden experimentar una gran fragmentación (debido al algoritmo), o no estar comprimidos en absoluto .

Esto puede deberse al hecho de que el algoritmo Lempel-Ziv se ralentiza a medida que avanza la compresión (ya que el diccionario continúa creciendo, lo que requiere más comparaciones a medida que entran los bits). La descompresión es casi siempre la misma velocidad, independientemente del tamaño del archivo, en el algoritmo Lempel-Ziv (ya que el diccionario solo se puede abordar usando un esquema base + offset).

La compresión también afecta cómo se distribuyen los archivos en el disco . Por defecto, una sola "unidad de compresión" tiene 16 veces el tamaño de un clúster (por lo que la mayoría de los sistemas de archivos NTFS de clúster de 4 kB requerirán fragmentos de 64 kB para almacenar archivos), pero no aumenta más allá de 64 kB. Sin embargo, esto puede afectar la fragmentación y los requisitos de espacio en el disco.

Como nota final, la latencia es otro valor interesante de discusión. Si bien el tiempo real que lleva comprimir los datos introduce latencia, cuando la velocidad del reloj de la CPU está en gigahercios (es decir, cada ciclo de reloj es inferior a 1 ns), la latencia introducida es insignificante en comparación con las velocidades de búsqueda del disco duro (que está en el orden de milisegundos, o millones de ciclos de reloj).


Para ver realmente si experimentarás una ganancia de velocidad, hay algunas cosas que puedes probar. El primero es comparar su sistema con un algoritmo de compresión / descompresión basado en Lempel-Ziv. Si obtiene buenos resultados (es decir, C> W y D> R), entonces debería intentar habilitar la compresión en su disco.

A partir de ahí, es posible que desee hacer más puntos de referencia sobre el rendimiento real del disco duro. Un punto de referencia verdaderamente importante (en su caso) sería ver qué tan rápido se cargan sus juegos y qué tan rápido se compilan sus proyectos de Visual Studio.

TL, DR: la compresión podría ser viable para un sistema de archivos que utiliza muchos archivos pequeños que requieren un alto rendimiento y una baja latencia. Los archivos grandes no se ven (y deberían ser) afectados por problemas de rendimiento y latencia.


¿Puede vincular cualquier buen punto de referencia basado en algoritmos de compresión / descompresión basados ​​en Lempel-Ziv?
user1075375

La fragmentación que crea la compresión NTFS (y que agrega cuando se modifica un archivo) eliminará fácilmente cualquier aumento de rendimiento. Si tiene un conjunto de datos muy compresible que no se modificará con frecuencia y desfragmenta después de la compresión, puede ser una ganancia neta. La modificación después de la compresión causará una fragmentación desagradable. Re: puntos de referencia: incluso las CPU lentas de hoy son rápidas en LZ. El problema de la fragmentación es el mayor problema con diferencia. Es un caso clásico en el que una optimización solo es útil en contextos limitados. Elija qué comprimir NTFS con mucho cuidado y será una victoria general.
Jody Lee Bruchon

1
¿Y qué hay de los SSD?
Violet Giraffe

¿Cómo podría medir C, D, W y R?
Geremia

Agradecería algunos ejemplos típicos prácticos para esas abstracciones "C> W y D> R"? ¿Es beneficioso, por ejemplo, comprimir "Archivos de programa" y / o "Windows" en una computadora portátil de 4 núcleos con HDD? y con SSD? ¿Se verá afectado significativamente el consumo de batería?
kxr

7

Tiene un disco bastante lento, por lo que su pregunta tiene mérito. La compresión NTFS requiere un procesador intensivo y está ajustada para la velocidad en lugar de la eficiencia de la compresión.

Esperaría que vea una (muy) pequeña mejora para las operaciones de lectura. Sin embargo, al acceder a un archivo que reside en la memoria caché del sistema, tendrá un impacto en el rendimiento, ya que tendrá que descomprimirse nuevamente en cada acceso.

Por supuesto, verá que las operaciones de escritura serán más lentas debido a la compresión adicional.

Copiar archivos en este mismo disco NTFS requiere descompresión y compresión, por lo que sufrirán más.

La compresión NTFS también puede aumentar significativamente la fragmentación, pero esto no es un problema para la mayoría de las computadoras 'típicas' bajo cargas de trabajo 'típicas'.

Muchos tipos de archivos, como imágenes JPEG o archivos de video o .zip, son básicamente incompresibles, por lo que estos archivos serán más lentos de usar y sin ningún espacio ahorrado.

Los archivos más pequeños que un clúster de disco (normalmente 4K) no están comprimidos, ya que no hay ganancia. Sin embargo, incluso a veces se aconseja un tamaño de clúster más pequeño al comprimir todo el volumen.

La compresión NTFS se recomienda para volúmenes o archivos relativamente estáticos. Nunca se recomienda para archivos del sistema o la carpeta Usuarios.

Pero como la configuración del hardware varía de un modelo de computadora a otro, dependiendo del disco, bus, RAM y CPU, solo las pruebas le dirán cuál será el efecto exacto de la compresión en su modelo de computadora.


5

Lo expliqué aquí en la entrada de Wikpedia para NTFS:


NTFS puede comprimir archivos usando el algoritmo LZNT1 (una variante del LZ77 [23]). Los archivos se comprimen en trozos de 16 clústeres. Con grupos de 4 kB, los archivos se comprimen en fragmentos de 64 kB. Si la compresión reduce 64 kB de datos a 60 kB o menos, NTFS trata las páginas innecesarias de 4 kB como grupos de archivos dispersos vacíos; no se escriben. Esto permite tiempos de acceso aleatorio no irrazonables. Sin embargo, los archivos comprimibles grandes se fragmentan mucho ya que cada fragmento de 64 kB se convierte en un fragmento más pequeño. [24] [25] Microsoft no recomienda la compresión para archivos de más de 30 MB debido al impacto en el rendimiento. [Cita requerida]

El mejor uso de la compresión es para archivos que son repetitivos, se escriben raramente, generalmente se accede secuencialmente y no se comprimen ellos mismos. Los archivos de registro son un ejemplo ideal. La compresión de archivos de menos de 4 kB o ya comprimidos (como .zip o .jpg o .avi) puede hacerlos más grandes y más lentos. [Cita requerida] Los usuarios deben evitar comprimir archivos ejecutables como .exe y .dll (pueden ser paginado dentro y fuera en páginas de 4 kB). La compresión de los archivos del sistema utilizados en el arranque como controladores, NTLDR, winload.exe o BOOTMGR puede evitar que el sistema se inicie correctamente. [26]

Aunque el acceso de lectura y escritura a los archivos comprimidos es a menudo, pero no siempre [27] transparente, Microsoft recomienda evitar la compresión en los sistemas de servidor y / o en los recursos compartidos de red que tienen perfiles móviles porque supone una carga considerable en el procesador. [28]

Los sistemas de usuario único con espacio limitado en el disco duro pueden beneficiarse de la compresión NTFS para archivos pequeños, de 4 kB a 64 kB o más, dependiendo de la compresibilidad. Los archivos de menos de 900 bytes se almacenan con la entrada del directorio en la MFT. [29]

El enlace más lento en una computadora no es la CPU sino la velocidad del disco duro, por lo que la compresión NTFS permite un mejor uso del espacio de almacenamiento lento y limitado, en términos de espacio y (a menudo) velocidad. [30] (Esto supone que los fragmentos de archivos comprimidos se almacenan consecutivamente).


Recomiendo la compresión solo para archivos que se comprimen a 64 KB o menos (es decir, 1 pieza). De lo contrario, su archivo constará de muchas fracciones de 64 K o menos.

MyDefrag hace un mejor trabajo de desfragmentación.


Mi experiencia con UltraDefrag es que hace un trabajo decente, dando una desfragmentación más completa que el desfragmentador incorporado de Windows, pero que yo sepa, no es exactamente tan inteligente como MyDefrag. Estoy usando la versión 6 beta, que tiene algunos errores y características no implementadas, pero es mucho más rápido que las versiones anteriores.
bwDraco

1

Hará las operaciones más lentas. Desafortunadamente, no podemos medir exactamente cuánto o qué poco afectará a su sistema. Cuando se abre un archivo comprimido, se necesita energía del procesador para descomprimir el archivo para que el sistema pueda usarlo; cuando haya terminado con él y presione Guardar, usa más potencia del procesador para comprimirlo nuevamente. Sin embargo, solo tú puedes medir el rendimiento.


44
Creo que te perdiste todo el punto de la pregunta. Existe una compensación entre tomar más tiempo para comprimir / descomprimir datos y tomar menos tiempo para leer datos del disco (en virtud de leer menos datos). Entonces su afirmación no está garantizada. Un ejemplo obvio donde la compresión puede ser fácilmente una victoria es cuando estás leyendo un sistema de archivos de red. Con un sistema de archivos local, es menos claro, pero no se garantiza que vaya de una manera u otra.
jjlin

@jjlin ¿Tienes ejemplos de cuándo es más rápido?
Canadian Luke REINSTATE MONICA

@Luke supongamos que su CPU, utilizando algún algoritmo de compresión, puede comprimir a C MB / sy descomprimir a D MB / s, y su disco duro tiene velocidad de escritura W y velocidad de lectura R. Siempre que C> W, obtenga un aumento de rendimiento al escribir, y siempre que D> R, obtenga un aumento de rendimiento al leer.
Avance

@Luke es más rápido cuando se usa en unidades lentas, como los controladores IDE antiguos o las unidades de memoria USB 1.0.
kurast 01 de

-1

Cualquiera que vea esto hoy debe ser consciente de que, en el caso de los videojuegos, sí, incluso los parcheados regularmente, lo que permite la compresión en el disco o la carpeta puede disminuir los tiempos de carga, incluso en los cpus más lentos de hoy, e incluso en los SSD (aparte de los las más rápidas que la mayoría de la gente no tiene), sin embargo, debe desfragmentar regularmente, y le recomiendo comprar un disco perfecto, una vez que use su desfragmentación "inteligente agresiva", DESPUÉS de la compresión, deje activada la función de prevención automática de frangificación, mantendrá un ojo en la actividad y la optimización automática para evitar la fragmentación, con muy poco o ningún impacto (probé todo esto desde los viejos cuádruples de primera generación de amd e intel en ventanas modernas recientemente)

muchos archivos de juegos se comprimen increíblemente bien, algunos juegos tienen archivos que ocupan espacio en disco, a pesar de estar en blanco en su mayoría ... un juego que comprimí hace un tiempo pasó de 6 gb en una de sus carpetas a menos de 16 mb ... (deseo bromeaba ... hablamos de espacio desperdiciado y E / S desperdiciadas ...)

comprimió una carpeta de vapor de amigos hace un tiempo, tardó 4 días en comprimir (está en una unidad de 4tb y comenzó a 3/4 lleno), cuando terminó ... estaba usando alrededor de 1/3 del total de la unidad, la desfragmentación tardó otro día (pero comenzó horriblemente fragmentada porque nunca la había defragmentado, nunca ... a pesar de tener varios MMO en ella ... y un montón de juegos de steam / uplay / origin / etc ... )

NO comprima sus carpetas de imágenes / imágenes, no servirá de nada, y solo hará que acceder a ellas sea más lento en sistemas lentos (aunque ni siquiera lo notará en una plataforma decente de 1/2 ...)

He comprimido mis unidades en todos los sistemas desde nt4, PERO, selectivamente, descomprimiré carpetas donde la compresión hace más daño que bien, son las "mejores prácticas" que surgieron en el pasado como jugadores, geeks " "muchachos (antes de eso era un término), y, se mantuvo fiel, sinceramente, desearía que tuvieran una forma más precisa de comprimir unidades / datos, solía haber una herramienta que no era gratuita pero asequible, que lo hizo mucho mejor resultados de compresión sin comprimir ningún dato que no deba comprimirse ...

de todos modos, incluso muchos sistemas antiguos de doble núcleo realmente se benefician en general si 1. ejecuta ccleaner 2. ejecuta chkdsk / f desde el símbolo del sistema elevado (escriba y luego reinicie y deje que ejecute la comprobación) 3. comprima la unidad. 4. desfragmentar con mydefrag o mejor, disco perfecto, esto llevará tiempo. 5. bien las carpetas que contengan archivos grandes o imágenes / otro contenido que no comprima bien / en absoluto, descomprima la carpeta o solo los archivos, mi exp aquí es decir, rara vez tiene que desfragmentar después de esta parte del proceso, pero es mejor verificarlo.

Entiendo por qué algunas personas están en contra de la compresión, pero, habiéndola probado, cuando se usa correctamente, ssd o hdd, y especialmente los discos duros y ssd viejos lentos, la compresión cuando se usa correctamente puede ayudar seriamente no solo a ahorrar espacio, sino también al rendimiento, incluso a la mayoría de las versiones anteriores. los núcleos pueden lidiar con los ciclos promedio de compresión / descompresión más rápido de lo que la unidad en esos sistemas puede moverse, después de probar esto, los SSD de diseño más antiguo de primera generación y más baratos, pueden beneficiarse de la compresión, no tanto como los discos duros más lentos en la mayoría de los casos, pero, un amigo tiene un netbook que tiene un ssd MUY lento, difícil de reemplazar, así como una ranura ssd mucho más fácil de reemplazar, pero, lo estúpido NO PUEDE arrancar desde el ssd agregado sin quitar físicamente el otro ... (Biografía horrible, pero ... por lo que es la unidad, es realmente agradable, más potente de lo que parece ...fuera del ssd lento que está instalado de tal manera que tienes que desarmar todo para llegar a él ......), comprimir esa unidad y solo tener ventanas y las aplicaciones más básicas (como la oficina) en el lento SSD en realidad lo aceleró, incluso en lectura / escritura, porque su CPU en realidad termina esperando el maldito SSD ... dosifica el más rápido que insaltó ... Sugerí simplemente poner el cargador de arranque en el SSD interno y el sistema operativo en el pero agregado ... espera matar eventualmente a la estupidez al usar la mayor parte para el archivo de página ... (es de 128 gb pero, muy lento, como si tuviera unidades flash usb3 que tienen mejor escritura ... que costó todo a la venta en newegg / amazon ......)comprimir esa unidad y solo tener ventanas y las aplicaciones más básicas (como la oficina) en el ssd lento en realidad lo aceleraron, incluso en lectura / escritura, porque su CPU en realidad termina esperando el maldito ssd ... su dosificación más rápida uno que insaló ... sugerí simplemente poner el gestor de arranque en el ssd interno y el sistema operativo en el agregado pero ... con la esperanza de acabar con la estupidez al usar la mayor parte para el archivo de página ... (su 128gb pero, terriblemente lento, como si tuviera unidades flash usb3 que tienen mejores escrituras ... que cuestan todo a la venta en newegg / amazon ......)comprimir esa unidad y solo tener ventanas y la más básica de las aplicaciones (como Office) en el SSD lento en realidad lo aceleró, incluso en lectura / escritura, porque su CPU en realidad termina esperando el maldito SSD ... su dosificación más rápida uno que insaló ... sugerí simplemente poner el gestor de arranque en el ssd interno y el sistema operativo en el agregado pero ... espera matar eventualmente la estupidez al usar la mayor parte para el archivo de página ... (su 128gb pero, terriblemente lento, como si tuviera unidades flash usb3 que tienen mejores escrituras ... que cuestan todo a la venta en newegg / amazon ......)Él espera matar eventualmente la estupidez al usar la mayor parte del mismo para el archivo de página ... (es de 128 gb, pero, muy lento, como si tuviera unidades flash usb3 que tienen mejores notas de escritura ... que cuestan todo a la venta en newegg / amazon ......)Él espera matar eventualmente la estupidez al usar la mayor parte del mismo para el archivo de página ... (es de 128 gb, pero, muy lento, como si tuviera unidades flash usb3 que tienen mejores notas de escritura ... que cuestan todo a la venta en newegg / amazon ......)

sugiero que comprima al menos la unidad / carpeta de sus juegos ... ¡Dios mío, la diferencia que puede hacer incluso en sistemas rápidos!


la mayoría de los juegos ya comprimen sus datos, que no pueden comprimirse aún más
M.kazem Akhgary

-2

Windows comprime datos no utilizados recientemente en RAM, incluso los SSD son una fracción de la velocidad, supongo que el impacto en el rendimiento no es un problema. Estoy más preocupado por los bloques comprimidos que desarrollan un error de 1-2 bits y no pueden recuperar algunos o todos los datos ... o un error de diccionario en el peor de los casos. Cualquier cosa que produzca un disco que no sea legible en sistemas operativos alternativos y que potencialmente reduzca la confiabilidad no vale la velocidad adicional que (podría) brindar, en mi humilde opinión. Los archivos de paquete de texturas de videojuegos y similares ya están generalmente comprimidos, por lo que no veo cómo la superposición de otro conjunto de compresión mejorará las cosas. Me gustaría ver un sistema operativo que admita marcar archivos como diseño lineal en la geometría del disco para que no se use r / w aleatorio. Acelera las cosas incluso en SSD para ciertos casos de uso. Mi otro problema con la compresión es que, dado que las imágenes y las películas ya están comprimidas, al igual que los documentos de MS Office y toneladas de otros formatos, estás atascado marcando los archivos como comprimibles y microadministrados. Para un árbol de código fuente de Linux o un gran proyecto de código abierto, podría ayudar mucho, ya que la compresión suele ser óptima en los archivos de texto.


1
Para aclarar la cuestión de la linealidad en la geometría, va a ayudar principalmente los discos duros y los archivos de más de 500 MB. He trabajado con archivos TIFF de 500 GB antes, eso se beneficiaría bastante con la carga. Windows intenta hacer esto, pero eso se basa en que la unidad se desfragmenta regularmente y en un tamaño de clúster adecuado que puede no ser óptimo para otras aplicaciones. Para solucionar este problema, utilizo un SSD para el arranque, una unidad de 2TB para proyectos de música / películas, otros 2TB para archivos RAW de DSLR y un 4TB que almacena grandes cantidades de código fuente que podría comprimir para obtener una ganancia bastante grande en espacio.
Guesty McGuesterson

1
Idealmente, me gustaría un segundo SSD solo para "archivos de programa" para limitar la contención entre los archivos del sistema y aquellos, pero Windows tiende a interrumpir los intentos de configurarlo después de unas pocas semanas. Puedo hacer D: \ Archivos de programa o lo que sea, pero demasiados programas están codificados para poner basura en la unidad del sistema literalmente en todas partes.
Guesty McGuesterson

-2

La compresión NTFS de Microsoft Windows no debe usarse para nada que no sean archivos de registro o, en general, archivos de texto o de otro modo archivos altamente comprimibles.

Considere esto: históricamente he visto el rendimiento de la compresión de archivos atascado en 20-25 MiB / s. Esta es la velocidad normal para comprimir un archivo con un procesador de 2.4-3.0Ghz. La compresión NTFS no es multiproceso. Este es un gran problema!

Considere que la velocidad decente para un disco duro hoy en día es de 100 MiB / s. Si no obtiene una compresión de 4-5x, está perdiendo enormemente el rendimiento tanto en lectura como en escritura. Esto es lo que pasa.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.