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


191

He estado mirando un montón de videos y ahora entiendo un poco mejor cómo funcionan las computadoras. Entiendo mejor qué es RAM, 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 el espacio en disco acelera una computadora. ¿Lo hace? Por que lo hace ¿Tiene que ver con la búsqueda de espacio disponible para guardar cosas? ¿O con mover cosas para hacer un espacio continuo lo suficientemente largo como para guardar algo? ¿Cuánto espacio vacío en el disco duro debo dejar libre?


37
en realidad no acelera las PC, solo reduce las posibilidades de fragmentación de archivos que hacen que los HDD sean más lentos. Este es uno de los mayores mitos de PC que todos repiten. Para encontrar bootlenecks en la PC, rastrearlo con xperf / WPA.
magicandre1981

99
FWIW it speeds up the experience of using a PC.
edthethird

44
@ magicandre1981: Hay una pequeña joya de verdad. Cuantas más cosas hay en cada carpeta, más lento es el recorrido del archivo, que impacta cualquier cosa usando una ruta de archivo, que es ... todo. Pero eso es pequeño .
Mooing Duck

44
@MooingDuck Si bien es cierto, eso está relacionado con la cantidad de archivos en una carpeta, no con el tamaño de los archivos o la cantidad de espacio restante en la unidad. Ese efecto no está relacionado con el espacio restante en el disco. El efecto también está limitado en alcance a la carpeta en sí, no "ralentizará" toda la computadora. Algunos sistemas de archivos, ext3 / 4, por ejemplo, usan árboles de directorio hash para realizar búsquedas (incluido el acceso a subcarpetas) rápidamente, lo que limita aún más el alcance del efecto, por ejemplo, solo cuando se enumeran los contenidos de un directorio.
Jason C

44
¿Qué videos estabas viendo exactamente?
Loko

Respuestas:


313

Aquí, escribí un libro por accidente. Toma un café primero.

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

No lo hace, al menos no por sí solo. Este es un mito realmente común. La razón por la que 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. El rendimiento de SSD tiende a degradarse a medida que la unidad se llena , 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:

  • Fragmentación de archivos. La fragmentación de archivos es un problema †† , 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 no están relacionadas con la cantidad de espacio libre que queda en la unidad. 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), sobre el cual la cantidad de espacio libre pone un límite superior . También están relacionados con la forma en que el sistema de archivos maneja la asignación de archivos (más abajo). Considere: una unidad que está 95% llena con todo el espacio libre en un solo bloque contiguo tiene 0% de probabilidad de fragmentar un nuevo archivo ††† (y la posibilidad de fragmentar un archivo adjunto es independiente del espacio libre). Una unidad que está llena en un 5% pero con datos distribuidos uniformemente en la unidad tiene una probabilidad muy alta 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 disco bonito y desfragmentado que todavía tiene muchos "agujeros" libres. Un escenario común. Todo funciona sin problemas. Eventualmente, sin embargo, llega a un punto donde no quedan más bloques grandes de espacio libre. Si descargas una gran película, el archivo termina estando muy fragmentado. Esto no ralentizará su computadora. Todos sus archivos de aplicaciones y otros que antes estaban bien no se fragmentarán repentinamente. Esto puede hacer que la películademora más en cargarse (aunque las velocidades de bits de película típicas son tan bajas en comparación con las velocidades de lectura del disco duro que probablemente pasarán desapercibidas), y puede afectar el rendimiento vinculado a E / S mientras se carga la película , pero aparte de eso, nada cambia.

    • Si bien la fragmentación de archivos es ciertamente un problema, a menudo los efectos son mitigados por el almacenamiento en caché y el almacenamiento en caché a nivel de sistema operativo y hardware. Las escrituras retrasadas, la lectura anticipada, las estrategias como el prefetcher en Windows, etc., ayudan a reducir los efectos de la fragmentación. Por lo general no realmente experimenta un impacto significativo hasta que la fragmentación se convierte en grave (Incluso me atrevo a decir que el tiempo que su archivo de intercambio no está fragmentado, es probable que nunca se nota).

  • 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 con gracia. A medida que guarda más y más contenido indexable en su computadora (documentos y demás), la indexación puede tardar más y 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 uso de 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 dibuja una conexión falsa.

  • Software antivirus. Similar al ejemplo de indexación de búsqueda. Supongamos que tiene un software antivirus configurado para escanear en segundo plano su unidad. A medida que tiene más y más contenido escaneable, la búsqueda requiere más recursos de E / S y CPU, posiblemente interfiriendo con su trabajo. Nuevamente, 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.

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

  • Muchos otros ejemplos en ese sentido que, cuando se toman juntos, parecen asociar estrechamente la falta de espacio libre con un rendimiento inferior.

Lo anterior ilustra otra razón por la que 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; fuera del alcance de esto respuesta) aumenta el rendimiento nuevamente por razones ajenas a la cantidad de espacio libre restante. Pero esto, naturalmente, 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".

Considere: 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 acelerará mágicamente arriba. Se carga el mismo software, 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 que ver con la búsqueda de 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 para encontrar lugares donde colocar cosas. Tu disco duro es estúpido. No es nada. Es un gran bloque de almacenamiento direccionado que oculta cosas donde su sistema operativo se lo indica y lee 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 va a pedir en función de la experiencia que hemos adquirido con el tiempo (algunas unidades incluso son conscientes del sistema de archivos que está en ellos), pero esencialmente, piense en su disco como un gran bloque de almacenamiento tonto con características de rendimiento de bonificación ocasionales.

  2. Su sistema operativo tampoco busca lugares para colocar cosas. No hay "búsqueda". Se ha hecho un gran esfuerzo para resolver este problema, ya que es fundamental para el rendimiento del sistema de archivos. La forma en que los datos están realmente organizados en su disco está determinada por su sistema de archivos. Por ejemplo, FAT32 (PC antiguas con DOS y Windows), NTFS (luego Windows), HFS + (Mac), ext4 (algunos Linux) y muchos otros. Incluso el concepto de un "archivo" y un "directorio" son meramente 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 la búsqueda de espacio libre es, en circunstancias normales (es decir, sistemas de archivos en buen estado), innecesaria. Ejemplos:

    • NTFS tiene una tabla maestra de archivos , 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, de modo que los nuevos archivos se puedan escribir directamente en los bloques libres sin tener que escanear la unidad cada vez.

    • Otro ejemplo, ext4 tiene lo que se llama 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 la "asignación retrasada", es decir, el almacenamiento en el búfer de datos en la RAM por parte del sistema operativo antes de escribirlos en el disco para tomar mejores decisiones sobre dónde colocarlos para reducir la fragmentación.

    • Muchos otros ejemplos.

o con mover cosas para crear un espacio continuo lo suficientemente largo como para guardar algo?

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

El proceso de "mover cosas para crear un espacio contiguo lo suficientemente largo como para guardar algo" se llama desfragmentación . Esto no sucede cuando se escriben archivos. Esto sucede cuando ejecuta su desfragmentador de disco. En Windows más nuevos, al menos, esto sucede automáticamente en un horario, pero nunca se activa escribiendo un archivo.

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

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

Esta es una pregunta difícil de responder, y esta respuesta ya se ha convertido en un pequeño libro.

Reglas de juego:

  • Para todo tipo de unidades:

    • Lo que es más importante, deje suficiente espacio libre para que pueda usar 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 tiene Windows requiere un 15% en el peor de los casos) para trabajar. Utilizan 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 puso en modo de hibernación, necesitará suficiente espacio libre para el archivo de estado de hibernación. Ese tipo de cosas.
  • SSD específico:

    • Para obtener una fiabilidad óptima (y, en menor medida, rendimiento), los SSD requieren algo de espacio libre, que, sin entrar en demasiados detalles, lo utilizan para distribuir los datos por el disco para evitar escribir constantemente en el mismo lugar (lo que los desgasta). Este concepto de dejar espacio libre se llama sobreaprovisionamiento . Es importante, pero en muchos SSD, ya existe espacio obligatorio sobreaprovisionado . Es decir, las unidades a menudo tienen unas pocas docenas de GB más de lo que informan al sistema operativo. Las unidades de gama baja 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 queel espacio sobreaprovisionado a menudo solo se toma del espacio no particionado . Entonces, si su partición ocupa todo su disco y deja algo de espacio libre, eso no siempre cuenta. 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 más detalles. TRIM y la recolección de basura y tales también tienen efectos, pero están fuera del alcance de esta respuesta.

Personalmente, generalmente tomo un disco más grande cuando me queda aproximadamente un 20-25% de espacio libre. Esto no está relacionado con el rendimiento, es solo que cuando llegue a ese punto, espero que pronto me quede sin espacio para datos, y es hora de obtener una unidad más grande.

Más importante que mirar el espacio libre es asegurarse de que la desfragmentación programada esté habilitada cuando sea apropiado (no en 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 lo suyo, por ejemplo , no deshabilite el prefetcher de Windows ( excepto los 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 la lectura y escritura al mismo tiempo. Si bien es cierto, esto se simplifica enormemente 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 pueden transferirse en ambas direcciones en el cable al mismo tiempo. Sin embargo, SATA tiene una especificación bastante compleja que involucra tamaños de bloque máximos minúsculos (aproximadamente 8kB por bloque en el cable, creo), colas de operación de lectura y escritura, etc., y no impide que las escrituras en buffers ocurran mientras las lecturas están en progreso, intercaladas operaciones, etc.

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


"Disminuir la velocidad" es un término amplio. Aquí lo utilizo para referirme a cosas que están vinculadas a E / S (por ejemplo, si su computadora está sentada con números crujientes, los contenidos del disco duro no tienen impacto), o están vinculadas a la CPU y compiten con cosas relacionadas tangencialmente que tienen alto uso de CPU (por ejemplo, software antivirus que escanea toneladas de archivos).

†† Los SSD se ven afectados por la fragmentación, ya que las velocidades de acceso secuencial son generalmente más rápidas que el acceso aleatorio, a pesar de que los SSD no enfrentan las mismas limitaciones que un dispositivo mecánico (incluso entonces, la falta de fragmentación no garantiza el acceso secuencial, debido a la nivelación del desgaste, etc. , como James Snell señala en los comentarios). Sin embargo, en prácticamente todos los escenarios de uso general, esto no es un problema. Las diferencias de rendimiento debido a la fragmentación en los SSD son generalmente insignificantes para cosas como cargar aplicaciones, iniciar la computadora, etc.

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


Respuesta muy completa, gracias. También gracias por el recordatorio de tomar un café, fue muy apreciado.
Hashim

22

Además de la explicación de Nathanial Meek para HDD, hay un escenario diferente para SSD.

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

A diferencia de los discos duros tradicionales que pueden sobrescribir los datos existentes, un SSD necesita un espacio completamente vacío para escribir datos. Esto se realiza mediante funciones llamadas Recorte y Recolección de basura que purgan los datos que se marcaron como eliminados. La recolección de basura funciona mejor en combinación con una cierta cantidad de espacio libre en el SSD. Por lo general, se recomienda del 15% al ​​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 escribirán los datos. Eso duplica el tiempo para cada operación de escritura y degrada el rendimiento general.

Aquí hay un excelente artículo que explica el funcionamiento de Recorte y Recolección de Basura


Tenga en cuenta que los SSD PUEDEN escribir en celdas parcialmente llenas, leyendo los datos parciales y escribiendo de nuevo con más escritos, pero tiende a hacerlo solo cuando es inevitable. Por supuesto, esto también es bastante lento, y generalmente indica que la unidad está tan fragmentada que se necesitará mucho tiempo para que vuelva a escribir rápidamente.
esponjoso

Eso también dependerá del controlador. Y dado que hay tantas variaciones, no quise entrar en ese nivel de detalle.
whs

El 15-25% del que habla se llama "sobreaprovisionamiento". Algunas unidades ya tienen espacio obligatorio asignado para esto (por ejemplo, el EVO 840 de 1 TB tiene un 9% reservado y no se informa al sistema operativo como gratuito), para aquellos que no necesitan dejar espacio libre. Creo que, en algunos casos, el espacio sobreaprovisionado también debe estar sin particiones, y simplemente dejar espacio libre en su sistema de archivos no es suficiente, necesitaría dejar espacio sin asignar.
Jason C

El exceso de aprovisionamiento es otra cosa. Esas son las arenas en espera para reemplazar las arenas defectuosas. Se requiere el 15-25% para liberar bloques (páginas) y para nivelar el desgaste. Es posible que desee leer aquí para más detalles ==> thessdreview.com/daily-news/latest-buzz/…
whs

@whs No lo es, y el artículo al que se vincula no implica que lo sea. El espacio sobreaprovisionado (consulte también las fuentes citadas en esa sección, o Google) es el conjunto de bloques libres, los bloques en este grupo se utilizan para la recolección de basura / escrituras rápidas, nivelación de desgaste y reemplazo de celdas defectuosas. En cuanto a la sustitución de células defectuosas, todo está en el mismo grupo; una vez que está lleno de celdas defectuosas, comienza a ver los errores consistentes. Vea también la diapositiva 12 en esta presentación de LSI ; todo el asunto vale la pena, aborda el tema directamente.
Jason C

12

En algún lugar dentro de un disco duro tradicional hay una bandeja de metal giratoria donde los bits y bytes individuales están realmente codificados. A medida que se agregan datos al plato, el controlador de disco los almacena primero en el exterior del disco. A medida que se agregan nuevos datos, se utiliza el espacio que se mueve hacia el interior del disco al final.

Con esto en mente, hay dos efectos que hacen que el rendimiento del disco disminuya a medida que se llena: Seek Times y Rotational Velocity .

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 el "tiempo de búsqueda". Los fabricantes publican los tiempos de búsqueda para sus discos, y generalmente son solo unos pocos milisegundos. Puede que eso no parezca mucho, pero para una computadora es una eternidad. Si tiene que leer o escribir en muchas ubicaciones de disco diferentes para completar una tarea (lo cual es común), esos tiempos de búsqueda pueden sumarse a 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 en todo el disco, lo que reduce en gran medida el tiempo dedicado a buscar. Una unidad que está casi llena no solo necesitará buscar a través del disco con mayor frecuencia y con movimientos de búsqueda más grandes / largos, sino que también puede tener problemas para mantener los datos relacionados en el mismo sector, aumentando aún más las búsquedas de disco. Esto se llama datos fragmentados .

La liberación de espacio en 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 (típicamente 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 el disco (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 se mueven más allá del cabezal de lectura a una velocidad mayor 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 interior.

Una unidad que está casi vacía pasará la mayor parte del tiempo accediendo a bits cerca del borde externo 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 el 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 moverá demasiado rápido para el cabezal de lectura, y este efecto se reduce porque los sectores cercanos al borde exterior se escalonan ... se escriben fuera de orden para que el cabezal de lectura pueda seguir el ritmo. Pero en general esto se cumple.

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

Los efectos también se aplican a las nuevas unidades. En igualdad de condiciones, una nueva unidad de 1TB es más rápida que una nueva unidad de 200GB, porque la unidad de 1TB está almacenando bits más juntos y no se llenará a las pistas internas tan rápido. Sin embargo, intentar usar 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 1TB, platos más pequeños para limitar un sistema de 1TB a 200GB, restricciones de software / controlador de disco para limitar un plato de 1TB a solo 200GB de espacio, o venda una unidad con platos parcialmente completados / defectuosos de una unidad de 1TB con muchos sectores defectuosos como una unidad de 200GB.

Otros factores

Vale la pena señalar aquí que los efectos anteriores son bastante pequeños. Los ingenieros de hardware de computadoras pasan mucho tiempo trabajando en cómo minimizar estos problemas, y cosas como los búferes de disco duro, el almacenamiento en caché Superfetch y otros sistemas funcionan para minimizar el problema. En un sistema saludable 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 una computadora legítimamente se vuelve más lenta a medida que la unidad se llena. En un sistema poco saludable , donde el espacio en disco es muy bajo, estos efectos pueden crear una situación de agitación del disco, donde el disco está constantemente buscando datos fragmentados, y liberar espacio en el disco puede solucionar esto, lo que resulta en mejoras más dramáticas y notables .

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

Finalmente, el rendimiento del disco es un gran indicador 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 equivale a una caída general percibida real en el rendimiento de la PC. Esto es especialmente cierto ya que el rendimiento del disco duro realmente no ha seguido el ritmo de las mejoras de CPU y 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 en su computadora.


1
El aumento del tiempo de búsqueda no es el resultado de poco espacio libre, es el resultado de la organización de datos. La liberación de espacio en disco no disminuirá los tiempos de búsqueda si sus datos ya están en todo el disco. Del mismo modo, quedarse sin espacio en el disco no aumentará repentinamente los tiempos de búsqueda de datos no relacionados que ya estaban bien organizados. Más importante aún, tenga mucho cuidado de asociar cualquiera de estos con "una computadora lenta". Por ejemplo, no va a navegar por la web más rápido solo porque el archivo ejecutable de su navegador no está fragmentado y está fuera de una unidad mecánica, y sus MP3 seguirán reproduciéndose sin problemas incluso en el peor de los casos.
Jason C

2
@JasonC Cada uno de esos puntos es cierto de forma aislada, pero tomado como parte de todo el sistema puede sumar una desaceleración real. Un ejemplo es esta afirmación: " Freeing disk space won't decrease seek times if your data is already all over the drive." No puedo negar que por sí mismo, pero puedo señalar el servicio de desfragmentación puede ahora mover estos datos hacia la parte delantera de la unidad, y ahora esas cosas será mejorar los tiempos de búsqueda. Otros puntos en su comentario tienen contadores similares: quedarse sin espacio en el disco no aumentará las búsquedas de datos bien organizados, pero hace que sea menos probable que los datos permanezcan organizados.
Joel Coehoorn

1
@JasonC Sin embargo, agregué un par de líneas a mi respuesta en función de su comentario, para abordar más directamente la pregunta del título.
Joel Coehoorn

Por supuesto; pero mis puntos principales son 1) que reducir la velocidad es una consecuencia de algo más , aunque el espacio libre bajo puede ser uno de los muchos factores, y 2) hay que tener mucho cuidado con este tema, es uno de esos aspectos a los que la gente se aferra muy rápidamente. Si un usuario ocasional se da cuenta de que su computadora es lenta, en realidad es muy inusual que, por ejemplo, la fragmentación (por ejemplo) sea la causa real. Pero luego leen un montón de cosas en Internet, instalan ccleaner, 50 desfragmentadores de disco, hacen un montón de ajustes de registro incorrectos, etc. Necesito atender a las masas aquí; los más sabios no necesitan nuestras respuestas.
Jason C

Esta respuesta sugiere golpes cortos (limitación artificial del tamaño de HD para mantener los datos en las regiones externas más rápidas) y algunos problemas potenciales con ellos. También me gusta, ya que no niega que en la mayoría de los casos, para la mayoría de los usuarios, una unidad se fragmenta más a medida que se llena más. Si bien vale la pena señalar que el espacio libre no es el problema real , es inútilmente obtuso ignorar la experiencia general del usuario cuando se trata de una pregunta general de experiencia del usuario.
Smithers

6

Todas las otras respuestas son técnicamente correctas; sin embargo, siempre he descubierto que este simple ejemplo lo explica mejor.

Ordenar cosas es realmente fácil si tienes mucho espacio ... pero difícil si no tienes espacio ... ¡las computadoras también lo necesitan !

Este clásico " 15 rompecabezas " es complicado / requiere mucho tiempo porque solo tienes 1 cuadrado libre para mezclar las fichas y colocarlas en el orden correcto de 1-15.

Duro 15 rompecabezas

Sin embargo, si el espacio era mucho más grande, podría resolver este rompecabezas en menos de 10 segundos.

fácil 15 rompecabezas

Para cualquiera que haya jugado con este rompecabezas ... comprender la analogía parece ser algo natural. ;-)


2
Sin embargo, esto no es análogo a ningún comportamiento del sistema de archivos. Se parece un poco al proceso general de desfragmentación, supongo, aunque la desfragmentación, en relación con esta analogía de rompecabezas, le permite eliminar números del tablero y volver a colocarlos en cualquier lugar que desee a medida que lo resuelve.
Jason C

2
Además del comentario anterior de Jason, quiero señalar lo obvio: esta respuesta se relaciona con la clasificación (desfragmentación), pero no explica por qué acceder a un mosaico aleatorio específico (por ejemplo, el mosaico "3") sería más rápido en el segundo caso que en el primer caso.
un CVn

Porque no estás accediendo solo a "3". Estás accediendo a "1-15". Si bien admito que no está claro en el ejemplo, lo tomé como lo entendí. Podría valer la pena señalar específicamente algo como "este rompecabezas es análogo a un solo archivo fragmentado". ¡Gran respuesta, hace que las cosas sean mentalmente accesibles!
Smithers

1
Para aclarar: El problema principal con la analogía aquí es que, en el rompecabezas real, solo puedes mover fichas a espacios vacíos adyacentes. Es decir, en el pequeño ejemplo, solo 6 o 13 podrían moverse al espacio vacío. Eso es lo que hace que el rompecabezas sea desafiante; Es el punto del juego de fichas. Sin embargo, al desfragmentar un disco duro, puede mover, por ejemplo, 4 al espacio vacío, 1 a su ubicación correcta, y así sucesivamente, bastante fácil de resolver, en exactamente tantos movimientos como sea el caso con mucho espacio . Entonces, la analogía realmente se rompe, ya que el quid del rompecabezas no se aplica: ningún sistema de archivos funciona de esta manera.
Jason C

'Porque no estás accediendo solo a "3". Estás accediendo a "1-15" ', esto no tiene sentido. La respuesta no explica por qué acceder a un mosaico aleatorio específico sería más rápido en el segundo caso que en el primer caso porque la respuesta es completamente incorrecta. No solo la desfragmentación no está limitada en la forma en que está el rompecabezas, sino que la desfragmentación "difícil / que consume mucho tiempo" no tiene relación con el rendimiento del sistema.
Jim Balter

5

Una computadora que tiene 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 crezca la fragmentación de archivos. El aumento de la fragmentación significa lecturas lentas, muy lentas en casos extremos.

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

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


Una respuesta buena, limpia y simple que también aborda el problema central principal.
Smithers

4

Los discos flash definitivamente pueden volverse más lentos cuando están llenos o fragmentados, aunque los mecanismos de desaceleración son diferentes a los que ocurrirían con un disco duro físico. Un chip de memoria flash típico se dividirá en cierto número de bloques de borrado, cada uno de los cuales consta de un gran número (cientos, si no miles) de páginas de escritura, y admitirá tres operaciones principales:

  1. Leer una página flash.
  2. Escriba en una página flash que antes estaba en blanco.
  3. Borra todas las páginas flash en un bloque.

Si bien, en teoría, sería posible hacer que cada escritura en una unidad flash lea todas las páginas de un bloque, cambie una en el búfer, borre el bloque y luego vuelva a escribir el búfer en el dispositivo flash, tal enfoque sería extremadamente lento; También es probable que cause pérdida de datos si se pierde la energía entre el momento en que se inició el borrado y se completó la reescritura. Además, las partes del disco escritas con frecuencia se desgastarían extremadamente rápido. Si los primeros 128 sectores de la FAT se almacenaran en un bloque flash, por ejemplo, la unidad estaría muerta después de que el número total de escrituras en todos esos sectores alcanzara alrededor de 100,000, lo cual no es mucho, especialmente dado que 128 sectores contendría alrededor de 16,384 entradas FAT.

Debido a que el enfoque anterior funcionaría horriblemente, la unidad hará que identifique alguna página en blanco, escriba los datos allí y de alguna manera registre el hecho de que el sector lógico en cuestión está almacenado en esa ubicación. Mientras haya suficientes páginas en blanco disponibles, esta operación puede continuar rápidamente. Sin embargo, si las páginas en blanco escasean, es posible que la unidad necesite encontrar bloques que contengan relativamente pocas páginas "en vivo", mover las páginas en vivo de esos bloques a algunas de las restantes en blanco y marcar las copias antiguas como " muerto"; Una vez hecho esto, la unidad podrá borrar bloques que solo contienen páginas "muertas".

Si una unidad está llena hasta la mitad, entonces seguramente habrá al menos un bloque que está a lo sumo medio lleno de páginas en vivo (y es muy probable que haya algunos bloques que contengan pocos o ninguno). Si cada bloque contiene 256 páginas y los bloques menos llenos contienen 64 páginas en vivo (un caso moderadamente malo), entonces por cada 192 escrituras de sector solicitadas, la unidad tendrá que realizar 64 copias de sector adicionales y un bloque de borrado (por lo que el costo promedio de cada sector de escritura sería aproximadamente 1,34 páginas escritas y 0,005 borrados de bloque). Incluso en el peor de los casos, cada 128 escrituras de sector requerirían 128 copias de sector adicionales y un borrado en bloque (costo promedio por escritura de escrituras de 2 páginas y borrados de bloque de 0.01)

Si una unidad está llena al 99%, y los bloques menos llenos tienen 248/256 páginas activas, entonces cada 8 sectores de escritura requerirán 248 páginas adicionales y un bloque de borrado, lo que arroja un costo por escritura de 32 páginas escritas y 0,125 bloques borra - una desaceleración muy severa.

Dependiendo de cuánto almacenamiento "extra" tenga una unidad, es posible que no permita que las cosas se pongan tan mal. No obstante, incluso en el punto donde una unidad está llena al 75%, el rendimiento en el peor de los casos puede ser más del doble que el rendimiento en el peor de los casos cuando está lleno al 50%.


3

Prácticamente has acertado. Puede pensar en una unidad de disco duro SATA como un medio de comunicación semidúplex (es decir, solo puede aceptar o transmitir datos a la vez. No ambas cosas), de modo que cuando la unidad se sostiene durante un tiempo prolongado en busca de una ubicación libre para escribir a, no puede leerle ningún dato. Como regla general, no debe cargar sus unidades con más del 80% de capacidad por este motivo. Cuanto más lleno esté, mayor será la probabilidad de fragmentar archivos, lo que hace que la unidad se bloquee durante las solicitudes de lectura (bloqueando así las solicitudes de escritura).

Hay varias cosas que puede hacer para ayudar con estos problemas:

  • Reduzca la cantidad de datos que ha almacenado y desfragmente regularmente su unidad.
  • Cambiar a almacenamiento basado en flash.
  • Mantenga los datos masivos almacenados en una unidad separada de su sistema operativo.
  • Y así sucesivamente ...

1
Cuando se usa flash, el disco puede leer o escribir (de nuevo, no ambos) casi instantáneamente (9 ms es un tiempo de búsqueda bastante estándar en un HDD donde los SSD generalmente tienen un "tiempo de búsqueda" en el ámbito de pico y nano segundos) a cualquier ubicación en el disco. en.wikipedia.org/wiki/…
Nathanial Meek

77
Continuación de poing 2: esto es, por ejemplo, para qué sirve el $Bitmaparchivo en NTFS o el asignador de mapa de bits en ext4. Es decir, esta respuesta está difundiendo información falsa grave. 3. Hay un montón de almacenamiento en caché de lectura y escritura y almacenamiento en caché que hace que gran parte de este debate no sea posible. Esta respuesta describe de alguna manera los efectos de la fragmentación, e incluso limitada a sistemas de archivos más antiguos, ciertamente no es un espacio libre de wrt preciso. Liberar espacio en disco no acelera una computadora.
Jason C

44
@JasonC, deberías convertir tus comentarios en una respuesta.
Celos

66
Esto no sucede : "por lo tanto, cuando la unidad se detiene durante un tiempo prolongado en busca de una ubicación libre para escribir, no puede leerle ningún dato" , simplemente no lo hace. Así no es como funcionan los sistemas de archivos. Edite su respuesta para dejar de difundir información errónea.
RomanSt

2
@NathanialMeek Estás mezclando capas un poco. :) El modo semidúplex de SATA significa que solo puede transmitir datos en el cable en una dirección. Las lecturas y escrituras de nivel superior se realizan en pequeños bloques (llamados FIS), en colas de operación especificadas por SATA. Pueden ser asíncronos y se pueden realizar lecturas y escrituras rápidas desde y hacia la memoria caché integrada y directamente a la memoria del sistema a través de DMA. Los controladores SATA también son libres de reordenar comandos para optimizar la eficiencia. El punto es: la línea no se mantiene ocupada mientras se completan las operaciones físicas, y el modo semidúplex de SATA no tiene el efecto que usted cree que tiene.
Jason C

3

Siguiendo el enfoque breve y dulce, mi respuesta simplificada (estrictamente restringida a su confusión principal) es:

Mientras tu

  1. El sistema operativo tiene suficiente espacio (en el peor de los casos) para cumplir con sus deberes como paginación / intercambio / etc.
  2. Otro software también tiene espacio suficiente para sus respectivas necesidades.
  3. El disco duro está desfragmentado.

Entonces no se puede notar la diferencia en el rendimiento de un disco vacío del 80% frente al disco vacío del 30%, y no debe preocuparse por nada más que almacenar cada vez más datos nuevos.

Cualquier otra cosa que necesite más almacenamiento conducirá a un bajo rendimiento, ya que ahora puede haber una escasez de espacio disponible.

Por supuesto, la limpieza del disco a través de una herramienta es buena como:

  1. Los archivos temporales deben limpiarse regularmente para ganar un valioso espacio en disco.
  2. Los archivos de registro antiguos no son más que una pérdida de espacio.
  3. Las sobras del software instalado / desinstalado son muy desagradables.
  4. Las cookies deben borrarse si valora su privacidad en línea.
  5. Atajos inválidos, etc.

Todas estas (y muchas más) razones conducen a un peor rendimiento ya que todas estas siguen confundiendo al sistema operativo al encontrar el conjunto correcto de bits para trabajar.


Un resumen decente, pero no estoy tan seguro sobre la sección "PERO". En particular: 3) Generalmente no tiene un impacto notable en el rendimiento, a pesar de los fenómenos comunes 4) Las cookies no son intrínsecamente problemáticas y, independientemente de la opinión, la privacidad no está relacionada con el rendimiento o el espacio en el disco duro, 5) Los accesos directos rotos son feos, pero generalmente intrascendente de lo contrario. Nada de esto realmente "confunde" ningún sistema operativo común. Tenga mucho cuidado con los "consejos" y "ajustes" que sigue. Tenga cuidado con las herramientas de limpieza innecesarias también, en particular los limpiadores de registro a menudo corren el riesgo de sufrir un beneficio cero.
Jason C

2

Un efecto en las unidades giratorias que no he visto mencionado: la velocidad de acceso y la velocidad de transferencia de datos es diferente en diferentes partes de un disco.

Un disco gira a velocidad fija. Las pistas en el exterior de un disco son más largas y, por lo tanto, pueden contener más datos por pista que las pistas en el interior. Si su unidad puede leer 100 MB / seg de las pistas más externas, la velocidad en las pistas más internas será inferior a 50 MB / seg.

Al mismo tiempo, hay menos pistas entre 1 GB de datos en las pistas externas del disco que entre 1 GB de datos en las pistas más internas. Entonces, en promedio, para los datos almacenados en el exterior se necesitará menos movimiento de la cabeza que para los datos en las pistas más internas.

El sistema operativo intentará utilizar las pistas más externas, si es posible. Por supuesto, no es posible si el disco está lleno. La eliminación de datos hará que el espacio esté disponible donde la velocidad de transferencia sea mayor y que las cosas funcionen más rápido. Por la misma razón, debe comprar discos duros giratorios que sean más grandes de lo necesario si desea velocidad (siempre que sea asequible), porque terminará usando solo las partes más rápidas del disco.


Agregando: en.wikipedia.org/wiki/Zone_bit_recording , que trata esto con algunos detalles. Vale la pena señalar: los datos existentes no se moverán. Esto puede afectar el almacenamiento de nuevos datos (dependiendo de la ubicación en la unidad, no directamente en el espacio libre), pero no "ralentizará" los archivos existentes a los que se accedía felizmente antes de las escrituras en el interior. Fwiw, la unidad de 1TB 7200RPM 3.5 "más barata que encontré en Amazon, tiene una tasa de lectura promedio de 144MB / s, comparada con el usuario; incluso teniendo en cuenta las diferencias en las pistas internas y externas, esto puede no ser un cuello de botella durante el uso casual.
Jason C

El rendimiento de @JasonC I / O en términos de rendimiento secuencial casi nunca es una preocupación en la práctica; incluso un disco lento de 4900 rpm será lo suficientemente rápido para casi cualquier usuario individual. El rendimiento de E / S en términos de operaciones de lectura / escritura por segundo será lo que mata el rendimiento en la mayoría de los casos; pregúntele a su administrador de sistemas favorito local sobre IOPS de almacenamiento rotativo en sistemas multiusuario, si lo desea. Esa es la gran razón por la que prácticamente nadie está implementando almacenamiento rotativo para sistemas multiusuario en estos días; simplemente nunca puedes acercarte a los IOPS de los SSD.
un CVn
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.