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


He estado viendo un montón de videos y ahora entiendo un poco mejor cómo funcionan las computadoras. Entiendo mejor qué RAM es, 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 del disco acelera una computadora. ¿Lo hace? ¿Por qué? ¿Tiene que ver con buscar 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 debería dejar libre?


188


origen


en realidad no acelera las PC, solo reduce las posibilidades de fragmentación de archivos que hace que los discos duros sean más lentos. Este es uno de los mayores mitos de PC que todo el mundo repite. Para encontrar los cuellos de bota en la PC, rastrearlos con xperf / WPA. - magicandre1981
FWIW speeds up the experience of using a PC. - edthethird
@ magicandre1981: hay un minúsculo joya de la verdad Cuantas más cosas haya en cada carpeta, más lento es el recorrido del archivo, lo que afecta cualquier cosa con un archivo de ruta, que es ... todo. Pero eso es minúsculo. - Mooing Duck
@MooingDuck Si bien es cierto, 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 el alcance a la carpeta en sí, no "ralentizará" toda la computadora. Algunos sistemas de archivos, ext3 / 4 por ejemplo, usan árboles de directorios hash para hacer búsquedas (incluido el acceso a la subcarpeta) rápidamente, lo que limita aún más el alcance del efecto, p. sólo cuando listado contenido de un directorio. - Jason C
¿Qué videos estabas viendo exactamente? - Loko


Respuestas:


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 solo. Este es un mito muy común. La razón por la cual es un mito común es porque llenar tu disco duro a menudo ocurre al mismo tiempo que otras cosas que tradicionalmente podría Ve más despacio tu computadora. El rendimiento SSD tiende a degradarse a medida que la unidad se llena, pero este es un problema relativamente nuevo, exclusivo de las SSD, y no es realmente notable para los usuarios ocasionales. En general, el bajo espacio libre en el disco es solo una cortina de humo.

Por ejemplo, cosas como:

  • Fragmentación de archivos Fragmentación de archivos es un problema††, pero la falta de espacio libre, mientras que definitivamente uno de muchos factores contribuyentes, no es lo único causa de eso Algunos puntos clave aquí:

    • Las posibilidades de que un archivo se fragmente son no relacionado 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 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 abajo). Considerar: Una unidad que está 95% llena con todo el espacio libre en un solo bloque contiguo tiene 0% de probabilidad 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 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. Considerar: Tienes 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á tu computadora. Todos sus archivos de aplicaciones y aquellos que anteriormente estaban bien, de repente no se fragmentarán. Esto puede hacer que película tardan más 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 pueden afectar el rendimiento vinculado a E / S mientras el películaestá cargando, pero aparte de eso, nada cambia.

    • Si bien la fragmentación de archivos es ciertamente un problema, a menudo los efectos se mitigan mediante el sistema operativo y el almacenamiento en memoria intermedia y el almacenamiento en memoria caché a nivel de hardware. Escritura tardía, lectura anticipada, estrategias como la prefetcher en Windows, etc., todos ayudan a reducir los efectos de la fragmentación. Generalmente no lo haces actualmente experimentar un impacto significativo hasta que la fragmentación se vuelva severa (incluso me atrevería a decir que mientras tu archivo de intercambio no esté fragmentado, probablemente nunca lo notarás).

  • 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 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.

  • 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.

  • Software instalado. Digamos que tienes un montón de software instalado que se carga cuando tu computadora arranca, 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 toma 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.

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

Lo anterior ilustra otra razón por la cual este es un mito tan común: mientras que 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 este responder) aumenta rendimiento de nuevo 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 "computadora más rápida".

Considerar: Si tiene una máquina funcionando lentamente debido a un montón 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. 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 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 mencionar aquí:

  1. Su disco duro no busca lugares para 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 sistema operativo 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 que contienen), pero esencialmente, su disco como solo un gran bloque de almacenamiento con ocasionales características de bonificación de rendimiento.

  2. Tu 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 están realmente organizados en su disco está determinada por su sistema de archivos. Por ejemplo, FAT32 (PC viejas de DOS y Windows), NTFS (más adelante Windows), HFS + (Mac), ext4 (algunos Linuxes) y muchos otros. Incluso el concepto de "archivo" y "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 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 un 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 pueden escribir directamente en bloques libres sin tener que escanear el disco 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 es compatible con la "asignación retrasada", es decir, el almacenamiento en búfer de los datos en la memoria RAM 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 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 versiones más recientes de Windows, al menos, esto sucede automáticamente según un cronograma, pero nunca se desencadena escribiendo un archivo.

Siendo 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 en el disco duro debería dejar libre?

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

Reglas de juego:

  • Para todos los tipos de unidades:

    • Lo más importante es dejar suficiente espacio libre para usted para usar su computadora de manera efectiva. Si se está quedando sin espacio para trabajar, querrá un disco 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 el 15% de las peores condiciones) para trabajar. Usan este espacio libre para contener temporalmente archivos fragmentados a medida que otras cosas se reorganizan.
    • 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.
  • Específico de SSD:

    • Para una confiabilidad óptima (y en menor medida, rendimiento), las SSD requieren algo de espacio libre, el cual, sin entrar en demasiados detalles, sirve para distribuir datos alrededor del 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 un espacio obligatorio sobreaprovisionado. Es decir, las unidades a menudo tienen unas pocas docenas más de GB de las que informan al sistema operativo. Las unidades de baja frecuencia a menudo requieren que se vaya manualmente sin particionar espacio, pero para unidades con OP obligatorio, no necesitas 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 dividido. Entonces, si su partición ocupa todo su disco y deja espacio libre en él, eso no significa siempre contar. 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. La RECUPERACIÓN y la recolección de basura y otras tienen también efectos, pero están fuera del alcance de esta respuesta.

Personalmente, normalmente agarro una unidad más grande cuando tengo aproximadamente 20-25% 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 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 se vuelva lo suficientemente grave como para afectarlo. Igualmente importante es evitar los ajustes equivocados y dejar que su sistema operativo haga su trabajo, p. no deshabilite el prefetcher de Windows (a excepción de las 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 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 alambre al mismo tiempo. Sin embargo, SATA tiene un especificación bastante compleja involucrando pequeños tamaños máximos de bloques (alrededor de 8kB por bloque en el cable, creo), leer y escribir colas de operación, etc., y no impide que las escrituras en buffers ocurran mientras las lecturas están en progreso, operaciones intercaladas, etc.

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


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

†† SSD son afectados por la fragmentación en que 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 secuencial, debido a la nivelación del desgaste, etc., como 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 las SSD suelen ser insignificantes para cosas como cargar aplicaciones, arrancar la computadora, etc.

††† Asumiendo un sistema de archivos que no esté fragmentando archivos a propósito.


310



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


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 SSD típico es de 0.1 ms frente a un tiempo de acceso de disco duro 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 HDD tradicionales que pueden sobreescribir datos existentes, un SSD necesita espacio completamente vacío para escribir datos. Esto se lleva a cabo mediante funciones llamadas Trim y Garbage Collection, que purgan los datos marcados como eliminados. Garbage Collection funciona mejor en combinación con una cierta cantidad de espacio libre en el SSD. Por lo general, se recomienda 15% a 25% de espacio libre.

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

Aquí está un excelente artículoeso explica el funcionamiento de Trim y Garbage Collection


22



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 hacer eso solo cuando es inevitable. Esto, por supuesto, también es bastante lento, y generalmente indica que el disco está tan mal fragmentado que le tomará bastante tiempo volver a escribir rápidamente. - fluffy
Eso también dependerá del controlador. Y dado que hay tantas variaciones, no quería entrar en ese nivel de detalle. - whs
El 15-25% del que habla se llama "sobreaprovisionamiento". Algunas unidades tienen espacio obligatorio asignado para esto (por ejemplo, el 1TB EVO 840 tiene un 9% de reserva 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 lo reduce, tendría que dejar espacio sin asignar. - Jason C
El exceso de aprovisionamiento es otra cosa. Esas son las nands en stand-by para reemplazar las nands defectuosas. El 15-25% son necesarios para liberar bloques (páginas) y nivelar el desgaste. Puede 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. Espacio sobreaprovisionado (ver también fuentes citadas en esa sección, o Google) es el conjunto de bloques libres, los bloques en este conjunto se usan para recolección de basura / escrituras rápidas, nivelación de desgaste y reemplazo de celdas defectuosas. En cuanto a reemplazar celdas defectuosas, todo está en el mismo grupo; una vez que está lleno de celdas defectuosas, comienzas a ver los errores consistentes. Ver también diapositiva 12 en esta presentación de LSI; todo vale la pena, aborda el tema directamente. - Jason C


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

Con esto en mente, hay dos efectos que hacen que el rendimiento del disco disminuya a medida que el disco se llena: Tiempos de búsqueda y Velocidad rotacional.

Tiempos de búsqueda

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 en general solo son unos pocos milisegundos. Puede que no parezca mucho, pero para una computadora es una eternidad. Si tiene que leer o escribir en un mucho de diferentes ubicaciones de disco para completar una tarea (que es común), aquellos tiempos de búsqueda pueden sumar un retraso o latencia notable.

Un disco casi vacío tendrá la mayoría de sus datos en la misma posición o cerca de ella, generalmente en el borde exterior cerca de la posición de reposo del cabezal de lectura / escritura. Esto reduce la necesidad de buscar en el disco, lo que reduce en gran medida el tiempo de búsqueda. Una unidad que está casi llena no solo tendrá que buscar en el disco más a menudo y con movimientos de búsqueda mayores o más largos, sino que puede tener problemas para mantener los datos relacionados en el mismo sector, lo que aumenta aún más las búsquedas de disco. Se llama fragmentado datos.

Liberar 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 también mover los archivos hacia el exterior del disco, de modo que el tiempo promedio de búsqueda sea más corto.

Velocidad rotacional

Los discos duros giran a una tasa fija (típicamente 5400 rpm o 7200 rpm para su computadora, y 10000 rpm o incluso 15000 rpm en un servidor). También toma 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, la parte exterior del disco tendrá una velocidad lineal más rápida que la del interior del disco. Esto significa que los bits cerca del borde externo del disco se mueven más allá del cabezal de lectura a una velocidad mayor que los bits cerca del centro del disco, y así el cabezal de lectura / escritura puede leer o escribir bits más rápido cerca del borde externo del disco que el interior.

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

Nuevamente, vaciar el espacio en 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.

En ocasiones, un disco se moverá demasiado rápido para la cabeza de lectura, y este efecto se reduce porque los sectores cercanos al borde externo se escalonarán ... se escribirá fuera de orden para que la cabeza de lectura pueda seguir el ritmo. Pero en general esto es válido.

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

Los efectos también se aplican a las nuevas unidades. Siendo todo lo demás igual, una nueva unidad de 1TB es más rápida que una nueva unidad de 200GB, porque el 1TB almacena los bits más juntos y no se llenará con las pistas internas tan rápido. Sin embargo, intentar usar esto para informar las decisiones de compra raramente es útil, ya que los fabricantes pueden usar múltiples fuentes para alcanzar el tamaño de 1TB, discos más pequeños para limitar un sistema de 1TB a 200GB, restricciones del controlador de software / disco para limitar un disco de 1TB a solo 200GB espacio, o venda una unidad con platos parcialmente completados / imperfectos de una unidad de 1TB con muchos sectores defectuosos como una unidad de disco de 200GB.

Otros factores

Vale la pena señalar aquí que los efectos anteriores son bastante pequeños. Los ingenieros de hardware invierten mucho tiempo trabajando en cómo minimizar estos problemas, y cosas como los almacenamientos intermedios del disco duro, el almacenamiento en caché Superfetch y otros sistemas funcionan para minimizar el problema. En un saludable sistema con mucho espacio libre, es probable que ni siquiera lo note. Además, las SSD tienen características de rendimiento completamente diferentes. Sin embargo, los efectos sí existen, y una computadora legítimamente se vuelve más lenta a medida que se llena el disco. En una insalubre sistema, donde el espacio en disco es muy bajo, estos efectos pueden crear una situación de distorsión del disco, donde el disco busca constantemente información fragmentada, y liberando espacio en el disco puede solucionar esto, lo que resulta en mejoras más notables y dramáticas.

Además, agregar datos al disco significa que otras operaciones, como la indexación o los escaneos AV y los procesos de defragmentación, simplemente están haciendo Más trabaje en segundo plano, incluso si lo hace a la misma velocidad que antes o cerca de ella.

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


12



El aumento del tiempo de búsqueda no es el resultado de un espacio libre bajo, es el resultado de la organización de datos. Liberar espacio en disco no reducirá los tiempos de búsqueda si sus datos ya están en toda la unidad. 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 vas a navegar por la web más rápido solo porque el ejecutable de tu navegador no está fragmentado y está en el exterior de una unidad mecánica, y tus MP3 todavía se reproducirán sin problemas incluso en el peor de los casos. - Jason C
@JasonC Cada uno de esos puntos es verdadero en forma aislada, pero tomado como parte de todo el sistema puede sumarse a desaceleraciones reales. Un ejemplo es este reclamo: "Freeing disk space won't decrease seek times if your data is already all over the drive."No puedo discutir eso solo, pero puedo señalar que el servicio de desfragmentación ahora puede mover esta información hacia el frente del disco, 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 se mantengan organizados. - Joel Coehoorn
@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 la ralentización es una consecuencia de algo más, aunque el espacio libre bajo puede ser uno de muchos factores, y 2) hay que ser muy cuidadoso con este tema, es uno de esos a los que la gente se agarra muy rápidamente. Si un usuario casual nota que su computadora es lenta, en realidad es muy raro 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 muchos ajustes de registro incorrectos, etc. Necesitan atender a las masas aquí; el más sabio no necesita nuestras respuestas. - Jason C
Esta respuesta hace alusión a las caricias cortas (limitando artificialmente el tamaño HD para mantener los datos en las regiones exteriores más rápidas) y algunos problemas potenciales con ella. 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 vuelve más fragmentada a medida que se llena. Si bien vale la pena señalar que el espacio libre no es el real problema, es inútil obtuso ignorar la experiencia general del usuario cuando se trata de una pregunta general sobre la experiencia del usuario. - Smithers


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

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

Este clásico "15 rompecabezas"es complicado / consume mucho tiempo porque solo tienes 1 casilla libre para barajar las fichas para obtener el orden correcto de 1-15.

hard 15 puzzle

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

easy 15 puzzle

Para cualquiera que haya jugado con este rompecabezas ... entender la analogía parece venir de forma natural. ;-)


6



Sin embargo, esto no es análogo a ningún comportamiento del sistema de archivos. Eso algo se asemeja al proceso general de defragmentación, supongo, aunque desfragmente, en relación con esta analogía del rompecabezas, le permite eliminar números del tablero y ubicarlos en cualquier lugar que desee a medida que lo resuelve. - Jason C
Además del comentario anterior de Jason, quiero señalar lo obvio: esta respuesta se relaciona con clasificación (desfragmentación), pero no explica por qué accediendo 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. - Michael Kjörling
Porque no estás accediendo solo a "3". Estás accediendo a "1-15". Aunque admito que no es claro en el ejemplo, lo interpreté como tal. Puede valer la pena anotar específicamente algo como "este rompecabezas es análogo a un solo archivo fragmentado". ¡Gran respuesta, hace las cosas bastante accesibles mentalmente! - Smithers
Para aclarar: el problema principal con la analogía aquí es que, en el rompecabezas real, solo puedes mover las 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 moverse, p. 4 al espacio vacío, 1 a su ubicación correcta, y así sucesivamente, bastante fácil de resolver, en exactamente tantos movimientos como el caso con mucho espacio. Entonces la analogía realmente se descompone, 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 no se está limitando la desfragmentación de la forma en que se desarrolla el rompecabezas, sino que la desfragmentación "complicada / lenta" no tiene relación con el rendimiento del sistema. - Jim Balter


Una computadora que tiene muy poco espacio en el disco, en un disco duro mecánico giratorio, durante un tiempo significativo, generalmente se volverá más lenta a medida que la fragmentación de archivos crezca. Mayor fragmentación significa lecturas lentas muy lento en casos extremos

Una vez que una computadora se encuentra en este estado, liberar espacio en el disco realmente no solucionará el problema. También necesitarías desfragmentar el disco. Antes de que una computadora se encuentre 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 las SSD.


5



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


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

  1. Lee una página flash.
  2. Escribir en una página flash en blanco.
  3. Borre 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 energía entre el momento en que se inició el borrado y se completó la reescritura. Además, las partes del disco que se escriben con frecuencia se desgastarán extremadamente rápido. Si los primeros 128 sectores de la FAT se almacenaran en un bloque de flash, por ejemplo, la unidad estaría muerta después de que el número total de escrituras en todos esos sectores alcanzara unos 100.000, lo que no es mucho, especialmente teniendo en cuenta que 128 sectores tendría alrededor de 16,384 entradas FAT.

Debido a que el enfoque anterior funcionaría de forma horrible, Drive hará que identifique una página en blanco, escriba allí los datos y de alguna forma registre el hecho de que el sector lógico en cuestión se almacena en esa ubicación. Mientras haya suficientes páginas en blanco disponibles, esta operación puede avanzar rápidamente. Sin embargo, si las páginas en blanco son escasas, es posible que el disco necesite encontrar bloques que contengan relativamente pocas páginas "en vivo", mueva las páginas activas de esos bloques a algunas de las restantes en blanco y marque las copias antiguas como " muerto"; Una vez hecho esto, la unidad podrá borrar bloques que contengan solo páginas "muertas".

Si una unidad está solo medio llena, seguramente habrá al menos un bloque que está como máximo 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 completos contienen 64 páginas activas (un caso moderadamente malo), entonces, por cada 192 sectores solicitados, el disco tendrá que realizar 64 copias sectoriales adicionales y un borrado en bloque (por lo que el costo promedio de cada sector de escritura sería aproximadamente 1.34 páginas escritas y 0.005 bloque borradas). Incluso en el peor de los casos, cada 128 sectores de escritura requerirían 128 copias de sectores adicionales y un borrado de bloques (el costo promedio por escritura de 2 páginas escritas y 0.01 bloque elimina)

Si un disco está lleno al 99% y los bloques menos completos tienen 248/256 páginas activas, entonces cada 8 sectores de escritura requerirán 248 escrituras de página adicionales y un borrado de bloques, lo que arrojará un costo por escritura de 32 páginas escritas y 0.125 bloqueadas borra - una desaceleración muy severa.

Dependiendo de la cantidad de almacenamiento "extra" que tenga un disco, 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 peor de los casos cuando está lleno al 50%.


4





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 ambos), por lo que cuando la unidad se mantiene durante un tiempo prolongado, busca una ubicación libre para escribir a, no puede leer ningún dato para usted. Como regla general, no debe cargar sus unidades por encima del 80% de su capacidad por este motivo. Cuanto más completo sea, cuanto más alto sea, más probable es fragmentar los archivos, lo que hace que la unidad se vincule durante las solicitudes de lectura (bloqueando así las solicitudes de escritura).

Hay una serie de cosas que puede hacer para ayudar con estos problemas:

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

3



Al usar el flash, la unidad puede leer o escribir (otra vez, no ambas) casi instantáneamente (9ms es un tiempo de búsqueda bastante estándar en una HDD donde las SSD suelen tener un "tiempo de búsqueda" en el dominio de pico y nano segundos) a cualquier ubicación en el disco. en.wikipedia.org/wiki/... - Nathanial Meek
Continuando poing 2: Esto es lo que p. el $Bitmap el archivo es para NTFS, o el asignador de mapa de bits en ext4. Es decir. esta respuesta está diseminando información errónea. 3. Hay mucho búfer de lectura y escritura y almacenamiento en caché que hace que gran parte de este debate. Esta respuesta describe de alguna manera los efectos de la fragmentación, e incluso se limita a sistemas de archivos más antiguos, ciertamente no es precisa en el espacio libre. Liberar espacio en el disco no acelera una computadora. - Jason C
@JasonC, debes convertir tus comentarios en una respuesta. - Celos
Esta No sucede: "Así que cuando la unidad se mantiene durante un tiempo prolongado buscando 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. Por favor, edite su respuesta para dejar de difundir información errónea. - RomanSt
@NathanialMeek Estás mezclando capas un poco. :) El modo semidúplex de SATA significa que solo puede transmitir datos En el alambre en una dirección. Las lecturas y escrituras de nivel superior se realizan en bloques pequeños (llamados FIS), en colas de operaciones especificadas por SATA. Pueden ser asíncronos, y se pueden realizar lecturas y escrituras rápidas desde y hacia la memoria caché incorporada y directamente a la memoria del sistema a través de DMA. Los controladores SATA también pueden 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