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

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

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

No entiendo por qué limpiar espacio en disco acelera una computadora. ¿Lo hace? ¿Por qué lo hace? ¿Tiene que ver con buscar espacio disponible para guardar cosas? ¿O mover cosas para crear un espacio continuo lo suficientemente largo como para guardar algo? ¿Cuánto espacio vacío en el disco duro debo dejar libre?

Respuesta1

Aquí escribí un libro por accidente. Primero tómate un café.

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

No es así, al menos no por sí solo. Este es un mito muy común. La razón por la que es un mito común es que llenar el disco duro a menudo ocurre al mismo tiempo que otras cosas que tradicionalmentepodríaralentizar su computadora. El rendimiento del SSD tiende adegradarse a medida que la unidad se llena, pero este es un problema relativamente nuevo, exclusivo de los SSD y no es realmente perceptible para los usuarios ocasionales. Generalmente, un poco de espacio libre en disco es sólo unacortina de humo.

Por ejemplo, cosas como:

  • Fragmentación de archivos. Fragmentación de archivosesun problema †† , pero la falta de espacio libre, aunque definitivamente es uno demuchosfactores contribuyentes, no esel únicocausa de ello. Algunos puntos clave aquí:

    • Las posibilidades de que un archivo se fragmente sonnorelacionado con la cantidad de espacio libre que queda en el disco. Están relacionados con el tamaño del bloque contiguo más grande de espacio libre en la unidad (por ejemplo, "agujeros" de espacio libre), que la cantidad de espacio librepasa a poner un límite superior en. También están relacionados con cómo el sistema de archivos maneja la asignación de archivos (más información a continuación).Considerar:Una unidad que está llena en un 95 % con todo el espacio libre en un solo bloque contiguo tiene un 0 % de posibilidades de fragmentar un archivo nuevo ††† (y la posibilidad de fragmentar un archivo adjunto es independiente del espacio libre). Una unidad que está llena al 5% pero con datos distribuidos uniformemente en la unidad tiene una probabilidad muy alta de fragmentarse.

    • Tenga en cuenta que la fragmentación de archivossólo afecta el rendimiento cuando se accede a los archivos fragmentados.Considerar:Tienes un buen disco desfragmentado que todavía tiene muchos "agujeros" libres. Un escenario común. Todo va bien. Sin embargo, eventualmente llegas a un punto en el que no quedan más bloques grandes de espacio libre. Descargas una película enorme, el archivo termina severamente fragmentado.Esto no ralentizará su computadora.Todos los archivos de su aplicación y similares que antes estaban bien no se fragmentarán repentinamente. Esto puede hacer que elpelículatardar más en cargarse (aunque las velocidades de bits típicas de una película son tan bajas en comparación con las velocidades de lectura del disco duro que probablemente pasarán desapercibidas) y puede afectar el rendimiento de E/S mientras la cargapelículase está cargando, pero aparte de eso, nada cambia.

    • Si bien la fragmentación de archivos es ciertamente un problema, muchas veces los efectos se mitigan mediante el almacenamiento en caché y el almacenamiento en caché a nivel del sistema operativo y del hardware. Escrituras retrasadas, lectura anticipada, estrategias como lacaptador previoen Windows, etc., todos ayudan a reducir los efectos de la fragmentación. Generalmente no lo hacesde hechoexperimentará un impacto significativo hasta que la fragmentación se vuelva severa (incluso me atrevería a decir que mientras su archivo de intercambio no esté fragmentado, probablemente nunca lo notará).

  • La indexación de búsqueda es otro ejemplo. Digamos que tiene activada la indexación automática y un sistema operativo que no maneja esto correctamente. A medida que guarda más y más contenido indexable en su computadora (documentos y demás), la indexación puede tardar cada vez más y puede comenzar a tener un efecto en la velocidad percibida de su computadora mientras está en funcionamiento, tanto en E/S como en el uso de la CPU. . Esto no está relacionado con el espacio libre, está relacionado con la cantidad de contenido indexable que tienes. Sin embargo, quedarse sin espacio libre va de la mano con almacenar más contenido, de ahí que se establezca una conexión falsa.

  • 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. A medida que tiene más y más contenido escaneable, la búsqueda requiere más recursos de E/S y CPU, lo que posiblemente interfiera con su trabajo. Nuevamente, esto está relacionado con la cantidad de contenido escaneable que tienes. Más contenido suele equivaler a menos espacio libre, pero la falta de espacio libre no es la causa.

  • Software instalado. Digamos que tiene una gran cantidad de software instalado que se carga cuando su computadora arranca, lo que ralentiza los tiempos de inicio. Esta desaceleración ocurre porque se está cargando una gran cantidad 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 realizar fácilmente una conexión falsa.

  • Muchos otros ejemplos en ese sentido que, tomados en conjunto,aparecerasociar estrechamente la falta de espacio libre con un menor rendimiento.

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

Considerar:Si tiene una máquina funcionando lentamente debido a una gran cantidad de software instalado, etc., y clona, ​​exactamente, su disco duro en un disco duro más grande y luego expande sus particiones para ganar más espacio libre, la máquina no se acelerará mágicamente. Se carga el mismo software, los mismos archivos siguen fragmentados de la misma manera, el mismo indexador de búsqueda sigue ejecutándose, nada cambia a pesar de tener más espacio libre.

¿Tiene que ver con buscar un espacio de memoria donde guardar cosas?

No, no lo hace. Hay dos cosas muy importantes que vale la pena señalar aquí:

  1. Su disco duro no busca lugares para guardar cosas.Tu disco duro es estúpido. No es nada. Es un gran bloque de almacenamiento direccionado que coloca ciegamente las cosas donde su sistema operativo le indica y lee todo lo que se le pide. Las unidades modernas tienen mecanismos sofisticados de almacenamiento en caché y almacenamiento en búfer diseñados para predecir lo que el sistema operativo solicitará en función de la experiencia que hemos adquirido con el tiempo (algunas unidades incluso conocen el sistema de archivos que tienen), pero esencialmente, piense en su disco como un gran bloque de almacenamiento con características de rendimiento adicionales ocasionales.

  2. Su sistema operativo tampoco busca lugares para guardar 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 se organizan realmente los datos en su disco está determinada por susistema de archivos. Por ejemplo, FAT32 (PC antiguas con DOS y Windows), NTFS (posteriormente Windows), HFS+ (Mac), ext4 (algunos Linux) y muchos otros. Incluso el concepto de "archivo" y "directorio" son meros productos de sistemas de archivos típicos: los discos duros no conocen las misteriosas bestias 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 una unidad, de modo que una búsqueda de espacio libre es, en circunstancias normales (es decir, sistemas de archivos en buen estado), innecesaria. Ejemplos:

    • NTFStiene untabla maestra de archivos, que incluye 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, de modo que se pueden escribir nuevos archivos directamente en los bloques libres sin tener que escanear la unidad cada vez.

    • Otro ejemplo,ext4tiene lo que se llama"asignador de mapas de bits", una mejora con respecto a ext2 y ext3 que básicamente le ayuda a determinar directamente dónde están los bloques libres en lugar de escanear la lista de bloques libres. Ext4 también admite la "asignación retrasada", es decir, el almacenamiento en búfer de los datos en la RAM por parte del sistema operativo antes de escribirlos en la unidad para tomar mejores decisiones sobre dónde colocarlos para reducir la fragmentación.

    • Muchos otros ejemplos.

¿O mover cosas para crear un espacio continuo lo suficientemente largo para guardar algo?

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

El proceso de "mover cosas para crear un espacio contiguo lo suficientemente largo para guardar algo" se llamadesfragmentando. Esto no sucede cuando se escriben archivos. Esto sucede cuando ejecuta su desfragmentador de disco. En Windows más nuevo, al menos, esto sucede automáticamente según una programación, pero nunca se activa al escribir un archivo.

Siendo capaz deevitarmover cosas de esta manera es clave para el rendimiento del sistema de archivos y es la razón por la que ocurre la fragmentación y la desfragmentación existe como un paso separado.

¿Cuánto espacio vacío en el disco duro debo dejar libre?

Ésta es una pregunta más complicada de responder y esta respuesta ya se ha convertido en un pequeño libro.

Reglas de juego:

  • Para todo tipo de unidades:

    • Lo más importante es dejar suficiente espacio libre paraque utilices tu 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 de Windows requiere un 15% en el peor de los casos) para funcionar. Usan este espacio libre para guardar temporalmente archivos fragmentados mientras 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 puso en modo de hibernación, necesitará suficiente espacio libre para el archivo de estado de hibernación. Ese tipo de cosas.
  • Específico de SSD:

    • Para una confiabilidad óptima (y, en menor medida, rendimiento), los SSD requieren algo de espacio libre que, sin entrar en demasiados detalles, utilizan para distribuir datos por el disco para evitar escribir constantemente en el mismo lugar (lo que los desgasta). Este concepto de dejar espacio libre se llamasobreaprovisionamiento. Es importante,pero en muchos SSD ya existe un exceso de espacio obligatorio. Es decir, las unidades suelen tener unas pocas docenas de GB más de los que informan al sistema operativo. Las unidades de gama baja a menudo requieren que usted deje manualmentesin particionarespacio, pero para unidades con OP obligatorio,no es necesario dejar ningún espacio libre. Una cosa importante a tener en cuenta aquí es queEl espacio sobreaprovisionado a menudo solo se toma del espacio no particionado.. Entonces, si su partición ocupa todo el disco y deja algo de espacio libre en ella, eso no significasiemprecontar. Muchas veces, el sobreaprovisionamiento manual requiere que reduzca su partición para que sea más pequeña que el tamaño de la unidad. Consulte el manual de usuario de su SSD para obtener más detalles. TRIM y recolección de basura y demás también tienen efectos, pero están fuera del alcance de esta respuesta.

Personalmente, suelo coger un disco más grande cuando me queda entre un 20 y un 25 % de espacio libre. Esto no está relacionado con el rendimiento, es sólo que cuando llegue a ese punto, espero que pronto me quede sin espacio para los datos y será hora de conseguir un disco más grande.

Más importante que vigilar el espacio libre es asegurarse de que la desfragmentación programada esté habilitada cuando corresponda (no en los SSD), para que nunca llegue al punto en que se vuelva lo suficientemente grave como para afectarlo. Igualmente importante es evitar ajustes equivocados y dejar que su sistema operativo haga su trabajo, por ejemplono desactives el buscador previo de Windows(excepto para SSD), etc.


Hay una última cosa que vale la pena mencionar. Una de las otras respuestas aquí mencionó que el modo semidúplex de SATA impide leer y escribir al mismo tiempo. Si bien es cierto, esto está muy simplificado y en su mayor parte no tiene relación con los problemas de rendimiento que se analizan aquí. Lo que esto significa, simplemente, es que los datos no se pueden transferir en ambas direcciones.En el alambreal mismo tiempo. Sin embargo, SATA tiene unespecificación bastante complejaque involucra tamaños de bloque máximos pequeños (creo que alrededor de 8 kB por bloque en el cable), colas de operaciones de lectura y escritura, etc., y no impide que las escrituras en los buffers ocurran mientras las lecturas están en progreso, operaciones entrelazadas, etc.

Cualquier bloqueo que se produzca se debe a la competencia por los recursos físicos, normalmente mitigado por una gran cantidad de caché. El modo dúplex de SATA es aquí casi totalmente irrelevante.


"Reducir la velocidad" es un término amplio. Aquí lo uso para referirme a cosas que están ligadas a E/S (por ejemplo, si su computadora está ahí procesando números, el contenido del disco duro no tiene impacto), o ligadas a la CPU y compitiendo con cosas relacionadas tangencialmente que tienen Uso elevado de CPU (por ejemplo, software antivirus que analiza toneladas de archivos).

†† SSDsonSe ve afectado por la fragmentación en el sentido de que las velocidades de acceso secuencial son generalmente más rápidas que las del acceso aleatorio, a pesar de que los SSD no enfrentan las mismas limitaciones que un dispositivo mecánico (aún así, la falta de fragmentación no garantiza el acceso secuencial, debido a la nivelación del desgaste, etc., como dice James Snell notas en comentarios). 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 los SSD suelen ser insignificantes para cosas como cargar aplicaciones, iniciar la computadora, etc.

††† Suponiendo un sistema de archivos sensato que no fragmente archivos a propósito.

Respuesta2

Además deLa explicación de Nathanial MeekPara los HDD, existe un escenario diferente para los SSD.

Los SSD no son sensibles a los datos dispersos porque el tiempo de acceso a cualquier lugar del SSD es el mismo. El tiempo de acceso típico a una SSD es de 0,1 ms frente a un tiempo de acceso típico a una HDD de 10 a 15 ms. Sin embargo, es sensible a los datos que ya están escritos en el SSD.

A diferencia de los HDD tradicionales que pueden sobrescribir los datos existentes, un SSD necesita un espacio completamente vacío para escribir datos. Esto se hace mediante funciones llamadas Recorte y recolección de basura que purgan los datos marcados como eliminados. La recolección de basura funciona mejor en combinación con una cierta cantidad de espacio libre en el SSD. Normalmente se recomienda entre el 15% y el 25% del espacio libre.

Si la recolección de basura no puede completar su trabajo a tiempo, entonces cada operación de escritura está precedida por una limpieza del espacio donde se supone que se deben escribir los datos. Eso duplica el tiempo de cada operación de escritura y degrada el rendimiento general.

Aquí estáun excelente articuloque explica el funcionamiento de Trim and Garbage Collection

Respuesta3

En algún lugar dentro de un disco duro tradicional hay un plato metálico giratorio donde se codifican los bits y bytes individuales. A medida que se agregan datos al plato, el controlador del disco los almacena primero en el exterior del disco. A medida que se agregan nuevos datos, se utiliza espacio moviéndose hacia el interior del disco en último lugar.

Teniendo esto en cuenta, existen dos efectos que hacen que el rendimiento del disco disminuya a medida que se llena:Buscar tiemposyVelocidad de rotación.

Buscar tiempos

Para acceder a los datos, un disco duro tradicional debe mover físicamente un cabezal de lectura/escritura a la posición correcta. Esto lleva tiempo, llamado "tiempo de búsqueda". Los fabricantes publican los tiempos de búsqueda de sus discos y, por lo general, son sólo unos pocos milisegundos. Puede que no parezca mucho, pero para una computadora es una eternidad. Si tienes que leer o escribir en unlotede diferentes ubicaciones de disco para completar una tarea (lo cual es común), esos tiempos de búsqueda pueden generar un retraso o latencia notable.

Una unidad que está casi vacía tendrá la mayoría de sus datos en o cerca de la misma posición, generalmente en el borde exterior cerca de la posición de reposo del cabezal de lectura/escritura. Esto reduce la necesidad de buscar a través del disco, lo que reduce en gran medida el tiempo dedicado a la búsqueda. Una unidad que está casi llena no sólo necesitará buscar en el disco con más frecuencia y con movimientos de búsqueda más grandes o más largos, sino que también puede tener problemas para mantener los datos relacionados en el mismo sector, lo que aumentará aún más las búsquedas en el disco. Se llamafragmentadodatos.

Liberar espacio en el disco puede mejorar los tiempos de búsqueda al permitir que el servicio de desfragmentación no solo limpie más rápidamente los archivos fragmentados, sino que también mueva los archivos hacia el exterior del disco, de modo que el tiempo promedio de búsqueda sea más corto.

Velocidad de rotación

Los discos duros giran a una velocidad fija (normalmente 5400 rpm o 7200 rpm para su computadora, y 10000 rpm o incluso 15000 rpm en un servidor). También se necesita una cantidad fija de espacio en la unidad (más o menos) para almacenar un solo bit. Para un disco que gira a una velocidad de rotación fija, el exterior del disco tendrá una velocidad lineal más rápida que el interior del disco. Esto significa que los bits cerca del borde exterior del disco pasan por el cabezal de lectura a un ritmo más rápido que los bits cerca del centro del disco y, por lo tanto, el cabezal de lectura/escritura puede leer o escribir bits más rápido cerca del borde exterior del disco que el interno.

Una unidad que está casi vacía pasará la mayor parte del tiempo accediendo a bits cerca del borde exterior más rápido del disco. Una unidad que está casi llena pasará más tiempo accediendo a bits cerca de la parte interna más lenta del disco.

Nuevamente, vaciar espacio en el disco puede hacer que la computadora sea más rápida al permitir que el servicio de desfragmentación mueva los datos hacia el exterior del disco, donde las lecturas y escrituras son más rápidas.

A veces, un disco se mueve demasiado rápido para el cabezal de lectura, y este efecto se reduce porque los sectores cerca del borde exterior estarán escalonados... escritos fuera de orden para que el cabezal de lectura pueda seguir el ritmo. Pero en general esto se mantiene.

Ambos efectos se reducen a un controlador de disco que agrupa los datos primero en la parte más rápida del disco y no utiliza las partes más lentas del disco hasta que es necesario. A medida que el disco se llena, se pasa cada vez más tiempo en la parte más lenta del disco.

Los efectos también se aplican a las unidades nuevas. En igualdad de condiciones, una nueva unidad de 1 TB es más rápida que una nueva unidad de 200 GB, porque la de 1 TB almacena bits más juntos y no se llenará hasta las pistas internas tan rápido. Sin embargo, intentar utilizar esto para informar las decisiones de compra rara vez es útil, ya que los fabricantes pueden usar múltiples platos para alcanzar el tamaño de 1 TB, platos más pequeños para limitar un sistema de 1 TB a 200 GB, restricciones de software/controlador de disco para limitar un plato de 1 TB a solo 200 GB de espacio, o vender una unidad con platos parcialmente completados o defectuosos de una unidad de 1 TB con muchos sectores defectuosos como una unidad de 200 GB.

Otros factores

Vale la pena señalar aquí que los efectos anteriores son bastante pequeños. Los ingenieros de hardware informático dedican mucho tiempo a trabajar en cómo minimizar estos problemas, y cosas como los buffers del disco duro, el almacenamiento en caché Superfetch y otros sistemas funcionan para minimizar el problema. En unsaludablesistema con mucho espacio libre, es probable que ni siquiera lo notes. Además, los SSD tienen características de rendimiento completamente diferentes. Sin embargo, los efectos existen y es legítimo que una computadora se vuelva más lenta a medida que se llena el disco. En unainsalubresistema, donde el espacio en disco es muy bajo, estos efectos pueden crear una situación de agitación del disco, donde el disco busca constantemente hacia adelante y hacia atrás a través de datos fragmentados, y liberar espacio en el disco puede solucionar este problema, lo que resulta en mejoras más dramáticas y notables.

Además, agregar datos al disco significa que otras operaciones, como indexación o escaneos AV y procesos de desfragmentación, simplemente están funcionando.mástrabajar en segundo plano, incluso si lo hace a la misma velocidad o casi a la misma que antes.

Finalmente, el rendimiento del disco esenormeindicador del rendimiento general de la PC en estos días... un indicador aún mayor que la velocidad de la CPU. Incluso una pequeña caída en el rendimiento del disco a menudo equivaldrá a una caída real percibida en el rendimiento general del PC. Esto es especialmente cierto porque el rendimiento del disco duro no ha seguido el ritmo de las mejoras de la CPU y la memoria; El disco de 7200 RPM ha sido el estándar de escritorio durante más de una década. Más que nunca, ese disco giratorio tradicional es el cuello de botella de su computadora.

Respuesta4

Una computadora que ha tenido muy poco espacio en disco, en un disco duro mecánico giratorio, durante un período de tiempo significativo, generalmente se volverá más lenta a medida que aumenta la fragmentación de archivos. Una mayor fragmentación significa lecturas lentas.muylento en casos extremos.

Una vez que una computadora se encuentra en este estado, liberar espacio en el disco en realidad no solucionará el problema. También necesitarías desfragmentar el disco. Antes de que una computadora esté en este estado, liberar espacio no la acelerará; simplemente reducirá las posibilidades de que la fragmentación se convierta en un problema.

Esto sólo se aplica a ordenadores con discos duros mecánicos giratorios, porque la fragmentación tiene un efecto insignificante en la velocidad de lectura de los SSD.

información relacionada