2Sep

¿Por qué vaciar el espacio en disco acelera las computadoras?

Al aprender más sobre las computadoras y cómo funcionan, ocasionalmente se encontrará con algo que no parece tener sentido. Con eso en mente, ¿vaciar el espacio en disco realmente acelera las computadoras? La publicación SuperUser Q & A de hoy tiene la respuesta a la pregunta desconcertada de un lector.

Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad. Captura de pantalla de

cortesía de nchenga( Flickr).

El lector

SuperUser de Question Remi.b quiere saber por qué vaciar el espacio en disco parece acelerar una computadora:

He estado viendo muchos videos y ahora entiendo cómo las computadoras funcionan un poco mejor. Entiendo lo que es la memoria RAM, sobre la memoria volátil y no volátil, y el proceso de intercambio. También entiendo por qué aumentar la RAM acelera una computadora.

Lo que no entiendo es por qué la limpieza del espacio en disco parece acelerar una computadora.¿Realmente acelera una computadora? Si es así, ¿por qué lo hace?

¿Tiene algo que ver con buscar espacio en la memoria para guardar cosas o con mover cosas para hacer un espacio continuo lo suficientemente largo como para guardar algo?¿Cuánto espacio vacío debería dejar libre en un disco duro?

¿Por qué vaciar el espacio en disco parece acelerar una computadora?

La respuesta

SuperUser Contribuidor Jason C tiene la respuesta para nosotros:

"¿Por qué el vaciado del espacio en el disco acelera las computadoras?"

No lo hace, al menos por sí solo. Este es un mito muy común. La razón por la cual es un mito común es porque llenar su disco duro a menudo ocurre al mismo tiempo que otras cosas que tradicionalmente podrían ralentizar su computadora ( A) .El rendimiento de SSD tiende a degradarse a medida que se llenan, pero este es un problema relativamente nuevo, exclusivo de los SSD, y no es realmente notable para los usuarios ocasionales. En general, el bajo espacio libre en el disco es solo una pista falsa.

Por ejemplo, cosas como:

1. Fragmentación de archivos. La fragmentación de archivos es un problema ( B) , pero la falta de espacio libre, aunque definitivamente es uno de los muchos factores que contribuyen, no es la única causa. Algunos puntos clave aquí:

  • Las posibilidades de que un archivo se fragmente son y no relacionadas con la cantidad de espacio libre que queda en el disco. Se relacionan con el tamaño del bloque contiguo más grande de espacio libre en el disco( es decir, "agujeros" de espacio libre), que la cantidad de espacio libre pasa a poner un límite superior en .También están relacionados con la forma en que el sistema de archivos maneja la asignación de archivos( más debajo de ). Considere: Una unidad que está llena en un 95% con todo el espacio libre en un solo bloque contiguo tiene un cero por ciento de posibilidades de fragmentar un nuevo archivo ( C) ( y la posibilidad de fragmentar un archivo anexo es independiente del espacio libre)Una unidad que está llena en un cinco por ciento pero con datos repartidos uniformemente sobre la unidad tiene una gran posibilidad de fragmentación.
  • Tenga en cuenta que la fragmentación de archivos solo afecta el rendimiento cuando se accede a los archivos fragmentados . Considere: Tiene un buen disco desfragmentado que todavía tiene muchos "agujeros" libres en él. Un escenario común. Todo está funcionando sin problemas. Eventualmente, sin embargo, llegas a un punto donde no quedan más bloques grandes de espacio libre. Usted descarga una película enorme, el archivo termina siendo severamente fragmentado. Esto no ralentizará su de la computadora. Todos sus archivos de aplicación y aquellos que anteriormente estaban bien, de repente no se fragmentarán. Esto puede hacer que la película tarde más tiempo en cargarse( aunque las tasas de bits de películas típicas son tan bajas en comparación con las tasas de lectura del disco duro que probablemente no se notarán) y puede afectar el rendimiento vinculado a E / S mientras se carga la película, peroaparte de eso, nada cambia.
  • Si bien la fragmentación de archivos es ciertamente un problema, a menudo los efectos son mitigados por el sistema operativo y el almacenamiento en memoria intermedia y el almacenamiento en memoria caché a nivel de hardware. Las escrituras diferidas, las estrategias de lectura anticipada, como el prefetcher en Windows, etc., ayudan a reducir los efectos de la fragmentación. En general, no realmente experimenta un impacto significativo hasta que la fragmentación se vuelve severa( incluso me atrevo a decir que siempre que su archivo de intercambio no esté fragmentado, probablemente nunca lo note).

2. La indexación de búsqueda es otro ejemplo. Supongamos que tiene activada la indexación automática y un SO que no maneja esto correctamente. A medida que guarda más y más contenido indexable en su computadora( documentos y más), la indexación puede tomar más y más tiempo y puede comenzar a tener un efecto en la velocidad percibida de su computadora mientras se ejecuta, tanto en E / S como en CPU.Esto no está relacionado con el espacio libre, está relacionado con la cantidad de contenido indexable que tiene. Sin embargo, quedarse sin espacio libre va de la mano con el almacenamiento de más contenido, por lo tanto, se establece una conexión falsa.

3. Software antivirus ( similar al ejemplo de indexación de búsqueda).Supongamos que tiene un software antivirus configurado para realizar un análisis en segundo plano de su disco. Como tiene más y más contenido escaneado, la búsqueda requiere más recursos de E / S y CPU, lo que posiblemente interfiera con su trabajo. De nuevo, esto está relacionado con la cantidad de contenido escaneable que tiene. Más contenido a menudo equivale a menos espacio libre, pero la falta de espacio libre no es la causa.

4. Software instalado. Digamos que tiene un montón de software instalado que se carga cuando se inicia la computadora, lo que ralentiza los tiempos de inicio. Esta ralentización ocurre porque se está cargando un montón de software. Sin embargo, el software instalado ocupa espacio en el disco duro. Por lo tanto, el espacio libre en el disco duro disminuye al mismo tiempo que esto sucede, y nuevamente se puede hacer una conexión falsa.

5. Muchos otros ejemplos a lo largo de estas líneas que, cuando se toman en conjunto, aparecen para asociar estrechamente la falta de espacio libre con un rendimiento inferior.

Lo anterior ilustra otra razón de que este es un mito tan común: aunque la falta de espacio libre no es una causa directa de desaceleración, desinstalación de varias aplicaciones, eliminación de contenido indexado o escaneado, etc. a veces( pero no siempre; fuera del alcance)de esta respuesta) aumenta el rendimiento nuevamente por razones no relacionadas con la cantidad de espacio libre restante. Pero esto también libera naturalmente espacio en el disco duro. Por lo tanto, una vez más, se puede establecer una conexión aparente( pero falsa) entre "más espacio libre" y una "computadora más rápida".

Considere: Si tiene una máquina funcionando lentamente debido a un montón de software instalado, etc., clone su disco duro( exactamente) en un disco duro más grande, luego expanda sus particiones para ganar más espacio libre, la máquina no acelerará mágicamentearriba. El mismo software carga, los mismos archivos aún están fragmentados de la misma manera, el mismo indexador de búsqueda aún se ejecuta, nada cambia a pesar de tener más espacio libre.

"¿Tiene algo que ver con la búsqueda de espacio de memoria para guardar cosas?"

No. No es así.Hay dos cosas muy importantes que vale la pena mencionar aquí:

1. Su disco duro no busca alrededor para encontrar lugares donde poner cosas. Tu disco duro es estúpido. No es nada. Es un gran bloque de almacenamiento direccionado que pone ciegamente las cosas donde su SO lo dice y lee lo que se le pide. Las unidades modernas tienen sofisticados mecanismos de almacenamiento en memoria caché y almacenamiento en memoria intermedia diseñados para predecir lo que el sistema operativo va a pedir en función de la experiencia que hemos adquirido con el tiempo( algunas unidades incluso son conscientes del sistema de archivos), pero esencialmente, piense en sumaneje como un simple y enorme bloque de almacenamiento con características de rendimiento extra ocasionales.

2. Su sistema operativo tampoco busca lugares para poner cosas. No hay búsqueda Se han realizado muchos esfuerzos para resolver este problema, ya que es fundamental para el rendimiento del sistema de archivos. La forma en que los datos se organizan realmente en su unidad está determinada por su sistema de archivos. Por ejemplo, FAT32( PC viejas de DOS y Windows), NTFS( ediciones posteriores de Windows), HFS +( Mac), ext4( algunos sistemas Linux) y muchos otros. Incluso el concepto de "archivo" y "directorio" son meramente productos de los sistemas de archivos típicos: los discos duros no saben nada acerca de las bestias misteriosas llamadas archivos .Los detalles están fuera del alcance de esta respuesta. Pero esencialmente, todos los sistemas de archivos comunes tienen formas de rastrear dónde está el espacio disponible en un disco, por lo que una búsqueda de espacio libre, en circunstancias normales( es decir, sistemas de archivos en buen estado), es innecesaria. Ejemplos:

  • NTFS tiene una tabla de archivos maestros, que incluye los archivos especiales $ Bitmap , etc., y muchos metadatos que describen la unidad. Básicamente, realiza un seguimiento de dónde están los siguientes bloques libres para que los nuevos archivos puedan escribirse directamente en bloques libres sin tener que escanear el disco cada vez.
  • Otro ejemplo: Ext4 tiene lo que se denomina el asignador de mapa de bits, una mejora sobre ext2 y ext3 que básicamente lo ayuda a determinar directamente dónde están los bloques libres en lugar de escanear la lista de bloques libres. Ext4 también admite asignación retrasada , es decir, el almacenamiento en búfer de datos en la RAM por el sistema operativo antes de escribirlo en la unidad para tomar mejores decisiones sobre dónde colocarlo para reducir la fragmentación.
  • Muchos otros ejemplos.

"¿O con mover cosas para hacer un espacio continuo lo suficientemente largo como para guardar algo?"

No. Esto no sucede, al menos no con ningún sistema de archivos del que sea consciente. Los archivos simplemente terminan fragmentados.

El proceso de "mover cosas para crear un espacio contiguo suficientemente largo para guardar algo" se llama desfragmentando .Esto no ocurre cuando se escriben archivos. Esto sucede cuando ejecuta su desfragmentador de disco. En las ediciones más nuevas de Windows, al menos, esto sucede automáticamente según un cronograma, pero nunca se desencadena escribiendo un archivo.

Ser capaz de evitar mover las cosas de esta manera es clave para el rendimiento del sistema de archivos, y es por eso que ocurre la fragmentación y por qué la desfragmentación existe como un paso separado.

"¿Cuánto espacio vacío debería dejar libre en un disco duro?"

Esta es una pregunta más difícil de responder( y esta respuesta ya se ha convertido en un pequeño libro).

Reglas generales:

1. Para todos los tipos de unidades:

  • Lo más importante, deje suficiente espacio libre para que utilice su computadora de manera efectiva .Si se está quedando sin espacio para trabajar, querrá una unidad más grande.
  • Muchas herramientas de desfragmentación de disco requieren una cantidad mínima de espacio libre( creo que la que requiere Windows requiere 15 por ciento, el peor de los casos) para trabajar. Usan este espacio libre para contener temporalmente archivos fragmentados a medida que se reorganizan otras cosas.
  • . Deje espacio para otras funciones del sistema operativo. Por ejemplo, si su máquina no tiene mucha RAM física y tiene memoria virtual habilitada con un archivo de página de tamaño dinámico, querrá dejar suficiente espacio para el tamaño máximo del archivo de página. O si tiene una computadora portátil que pone en modo de hibernación, necesitará suficiente espacio libre para el archivo de estado de hibernación. Ese tipo de cosas.

2. Específico de SSD:

  • Para una confiabilidad óptima( y en menor medida, rendimiento), las SSD requieren algo de espacio libre, que, sin entrar en demasiados detalles, usan para distribuir datos alrededor del disco para evitar escribir constantemente enel mismo lugar( que los desgasta).Este concepto de dejar espacio libre se denomina sobreaprovisionamiento. Es importante, , pero en muchos SSD, el espacio obligatorio sobreaprovisionado ya existe .Es decir, las unidades a menudo tienen unas pocas docenas más de GB de las que informan al sistema operativo. Las unidades de nivel inferior a menudo requieren que deje manualmente el espacio sin particiones , pero para las unidades con OP obligatorio, no necesita dejar ningún espacio libre .Una cosa importante a tener en cuenta aquí es que el espacio sobreaprovisionado a menudo solo se toma del espacio no particionado .Entonces, si su partición ocupa todo su disco y deja espacio libre en él, no siempre cuenta .Muchas veces, el exceso de aprovisionamiento manual requiere que reduzca la partición para que sea más pequeño que el tamaño de la unidad. Consulte el manual de usuario de su SSD para obtener más información. TRIM, recolección de basura, y otros también tienen efectos, pero están fuera del alcance de esta respuesta.

Personalmente, usualmente tomo una unidad más grande cuando tengo entre 20 y 25 por ciento de espacio libre restante. Esto no está relacionado con el rendimiento, es solo que cuando llegue a ese punto, espero que probablemente me esté quedando sin espacio para datos pronto y que es hora de obtener un disco más grande.

Más importante que ver el espacio libre es asegurarse de que la desfragmentación programada esté habilitada cuando corresponda( no en SSD) para que nunca llegue al punto en que sea lo suficientemente grave como para afectarlo.

Hay una última cosa que vale la pena mencionar. Una de las otras respuestas aquí mencionó que el modo semidúplex de SATA evita la lectura y la escritura al mismo tiempo. Si bien es cierto, esto se simplifica en gran medida y en su mayoría no está relacionado con los problemas de rendimiento que se discuten aquí.Lo que esto significa, simplemente, es que los datos no se pueden transferir en ambas direcciones en el cable al mismo tiempo. Sin embargo, SATA tiene una especificación bastante compleja que involucra pequeños tamaños máximos de bloques( alrededor de 8kB por bloque en el cable, creo), colas de operación de lectura y escritura, etc., y no excluye escrituras en buffers que ocurren mientras las lecturas están en progreso, intercaladasoperaciones, etc.

Cualquier bloqueo que ocurra se deberá a la competencia por recursos físicos, generalmente mitigados por un montón de caché.El modo dúplex de SATA es casi completamente irrelevante aquí.

( A) "Reducir la velocidad" es un término amplio. Aquí lo uso para referirme a cosas que están vinculadas a E / S( es decir, si su computadora está allí procesando números, el contenido del disco duro no tiene ningún impacto) o vinculados a CPU y compitiendo con cosas tangencialmente relacionadas que tienen altoUso de la CPU( es decir, software antivirus que escanea toneladas de archivos).

( B) Las SSD se ven afectadas por la fragmentación porque las velocidades de acceso secuencial son generalmente más rápidas que el acceso aleatorio, a pesar de que las SSD no enfrentan las mismas limitaciones que un dispositivo mecánico( incluso entonces, la falta de fragmentación no garantiza el acceso secuencialetc.).Sin embargo, en prácticamente todos los escenarios de uso general, esto no es un problema. Las diferencias de rendimiento debidas a la fragmentación en las SSD suelen ser insignificantes para cosas como cargar aplicaciones, arrancar la computadora, etc.

( C) Asumir un sistema de archivos que no esté fragmentando los archivos a propósito.

¡Asegúrate de leer el resto de la animada discusión en SuperUser a través del siguiente enlace!

¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.