stringtranslate.com

Desfragmentación

Visualización de fragmentación y luego desfragmentación.

En el mantenimiento de sistemas de archivos , la desfragmentación es un proceso que reduce el grado de fragmentación . Para ello, organiza físicamente el contenido del dispositivo de almacenamiento masivo utilizado para almacenar archivos en el menor número de regiones contiguas (fragmentos, extensiones ). También intenta crear regiones más grandes de espacio libre mediante la compactación para impedir el regreso de la fragmentación. Algunas utilidades de desfragmentación intentan mantener juntos los archivos más pequeños dentro de un solo directorio, ya que a menudo se accede a ellos en secuencia.

La desfragmentación es ventajosa y relevante para los sistemas de archivos en unidades de disco electromecánicas ( unidades de disco duro , unidades de disquete y medios de disco óptico ). El movimiento de los cabezales de lectura/escritura del disco duro sobre diferentes áreas del disco cuando se accede a archivos fragmentados es más lento, en comparación con acceder secuencialmente a todo el contenido de un archivo no fragmentado sin mover los cabezales de lectura/escritura para buscar otros fragmentos.

Causas de la fragmentación

La fragmentación ocurre cuando el sistema de archivos no puede o no quiere asignar suficiente espacio contiguo para almacenar un archivo completo como una unidad, sino que coloca partes del mismo en espacios entre archivos existentes (generalmente esos espacios existen porque anteriormente contenían un archivo que el sistema de archivos tiene). posteriormente eliminado o porque el sistema de archivos asignó exceso de espacio para el archivo en primer lugar). Los archivos que a menudo se agregan (como en el caso de los archivos de registro), así como la frecuente adición y eliminación de archivos (como en el caso de los correos electrónicos y la caché del navegador web), los archivos más grandes (como en el caso de los vídeos) y una mayor cantidad de archivos contribuyen a la fragmentación y el consiguiente rendimiento. pérdida. La desfragmentación intenta aliviar estos problemas.

Ejemplo

Ejemplos de cinco estados de fragmentación

Un disco que de otro modo estaría en blanco tiene cinco archivos, de la A a la E, cada uno de los cuales utiliza 10 bloques de espacio (para esta sección, un bloque es una unidad de asignación del sistema de archivos ; el tamaño del bloque se establece cuando se formatea el disco y puede tener cualquier tamaño admitido por el sistema de archivos). En un disco en blanco, todos estos archivos se asignarían uno tras otro (consulte el ejemplo 1 en la imagen). Si se eliminara el archivo B, habría dos opciones: marcar el espacio para el archivo B como vacío para usarlo nuevamente más tarde, o mover todos los archivos después de B para que el espacio vacío esté al final. Dado que mover los archivos puede llevar mucho tiempo si es necesario mover muchos archivos, normalmente el espacio vacío simplemente se deja allí, marcado en una tabla como disponible para archivos nuevos (consulte el ejemplo 2 en la imagen). [nb 1] Cuando se asigna un nuevo archivo, F, que requiere 6 bloques de espacio, se podría colocar en los primeros 6 bloques del espacio que anteriormente contenía el archivo B, y los 4 bloques siguientes permanecerán disponibles (ver ejemplo 3 en la imagen). Si se agrega otro archivo nuevo, G, y necesita solo 4 bloques, podría ocupar el espacio después de F y antes de C (ejemplo 4 en la imagen).

Sin embargo, si es necesario ampliar el archivo F, existen tres opciones, ya que el espacio inmediatamente posterior ya no está disponible:

  1. Mueva el archivo F a donde pueda crearse como un archivo contiguo del nuevo tamaño más grande. Esto no sería posible si el archivo fuera más grande que el espacio contiguo más grande disponible. El archivo también podría ser tan grande que la operación llevaría un período de tiempo indeseablemente largo.
  2. Mueva todos los archivos después de F hasta que uno abra suficiente espacio para volver a ser contiguo. Esto presenta el mismo problema que en el ejemplo anterior: si hay una pequeña cantidad de archivos o no hay muchos datos para mover, no es un gran problema, pero si hay miles o incluso decenas de miles de archivos, no hay problema. No hay tiempo suficiente para mover todos esos archivos.
  3. Agregue un nuevo bloque en otro lugar e indique que F tiene una segunda extensión (vea el ejemplo 5 en la imagen). Repita esto cientos de veces y el sistema de archivos tendrá una cantidad de pequeños segmentos libres dispersos en muchos lugares, y algunos archivos tendrán múltiples extensiones. Cuando un archivo tiene muchas extensiones como esta, el tiempo de acceso a ese archivo puede volverse excesivamente largo debido a toda la búsqueda aleatoria que tendrá que realizar el disco al leerlo.

Además, el concepto de "fragmentación" no se limita sólo a archivos individuales que tienen múltiples extensiones en el disco. Por ejemplo, un grupo de archivos que normalmente se leen en una secuencia particular (como archivos a los que accede un programa cuando se está cargando, que pueden incluir ciertas DLL , varios archivos de recursos, los archivos multimedia audiovisuales de un juego) se pueden considerar fragmentados si no están en orden de carga secuencial en el disco, incluso si estos archivos individuales no están fragmentados; los cabezales de lectura/escritura tendrán que buscar estos archivos (no fragmentados) aleatoriamente para acceder a ellos en secuencia. Es posible que algunos grupos de archivos se hayan instalado originalmente en la secuencia correcta, pero se separan con el tiempo a medida que se eliminan ciertos archivos dentro del grupo. Las actualizaciones son una causa común de esto, porque para actualizar un archivo, la mayoría de los actualizadores generalmente eliminan primero el archivo antiguo y luego escriben uno nuevo y actualizado en su lugar. Sin embargo, la mayoría de los sistemas de archivos no escriben el nuevo archivo en el mismo lugar físico del disco. Esto permite que archivos no relacionados llenen los espacios vacíos que quedan.

Mitigación

La desfragmentación es la operación de mover extensiones de archivos (bloques de asignación física) para que eventualmente se fusionen, preferiblemente en uno solo. Hacerlo generalmente requiere al menos dos operaciones de copia: una para mover los bloques a un espacio libre en el disco para que pueda ocurrir más movimiento, y otra para finalmente mover los bloques a su lugar previsto. En tal paradigma, nunca se eliminan datos del disco, por lo que la operación se puede detener de forma segura incluso en caso de un corte de energía. La imagen del artículo muestra un ejemplo.

Para desfragmentar un disco, el software de desfragmentación (también conocido como "desfragmentador") sólo puede mover archivos dentro del espacio libre disponible. Esta es una operación intensiva y no se puede realizar en un sistema de archivos con poco o ningún espacio libre. Durante la desfragmentación, el rendimiento del sistema se degradará y es mejor dejar la computadora en paz durante el proceso para que el desfragmentador no se confunda con cambios inesperados en el sistema de archivos. Dependiendo del algoritmo utilizado, puede resultar ventajoso o no realizar múltiples pasadas. La reorganización involucrada en la desfragmentación no cambia la ubicación lógica de los archivos (definida como su ubicación dentro de la estructura de directorios ).

Además de desfragmentar archivos de programa, la herramienta de desfragmentación también puede reducir el tiempo que lleva cargar programas y abrir archivos. Por ejemplo, el desfragmentador de Windows 9x incluía el Acelerador de inicio de aplicaciones Intel que optimizaba los programas en el disco colocando los archivos de programa desfragmentados y sus dependencias uno al lado del otro, en el orden en que el programa los carga, para cargar estos programas más rápido. [1] En Windows, un buen desfragmentador leerá los archivos de captación previa para identificar tantos grupos de archivos como sea posible y colocar los archivos dentro de ellos en secuencia de acceso.

Al principio del disco duro, las pistas exteriores tienen una velocidad de transferencia de datos más alta que las pistas interiores. Colocar los archivos a los que se accede con frecuencia en las pistas exteriores aumenta el rendimiento. [2] Los desfragmentadores de terceros, como MyDefrag, moverán los archivos a los que se accede con frecuencia a las pistas externas y los desfragmentarán. [3]

Las mejoras en los discos duros modernos, como la caché de RAM , la velocidad de rotación del plato más rápida, la cola de comandos ( SCSI / ATA TCQ o SATA NCQ ) y una mayor densidad de datos, reducen hasta cierto punto el impacto negativo de la fragmentación en el rendimiento del sistema, aunque aumentan los datos de uso común. cantidades compensan esos beneficios. Sin embargo, los sistemas modernos se benefician enormemente de las enormes capacidades de disco disponibles actualmente, ya que los discos parcialmente llenos se fragmentan mucho menos que los discos llenos, [4] y en un disco duro de alta capacidad, la misma partición ocupa un rango menor de cilindros, lo que resulta en búsquedas más rápidas. . Sin embargo, el tiempo medio de acceso nunca puede ser inferior a media rotación de los platos, y la rotación de los platos (medida en rpm) es la velocidad característica de los HDD que ha experimentado el crecimiento más lento a lo largo de las décadas (en comparación con la velocidad de transferencia de datos y el tiempo de búsqueda). ), por lo que minimizar el número de búsquedas sigue siendo beneficioso en la mayoría de las aplicaciones con mucho almacenamiento. La desfragmentación es sólo eso: garantizar que haya como máximo una búsqueda por archivo, contando sólo las búsquedas en pistas no adyacentes.

Fraccionamiento

Una estrategia común para optimizar la desfragmentación y reducir el impacto de la fragmentación es particionar los discos duros de una manera que separe las particiones del sistema de archivos que experimentan muchas más lecturas que escrituras de las zonas más volátiles donde se crean y eliminan los archivos. frecuentemente. Los directorios que contienen los perfiles de los usuarios se modifican constantemente (especialmente cuando el directorio Temp y el caché del navegador web crean miles de archivos que se eliminan en unos pocos días). Si los archivos de los perfiles de usuario se guardan en una partición dedicada (como se hace comúnmente en los sistemas de archivos recomendados por UNIX , donde normalmente se almacenan en la partición /var), el desfragmentador funciona mejor ya que no necesita manejar todos los archivos estáticos. de otros directorios. (Como alternativa, se le puede indicar al desfragmentador que simplemente excluya ciertas rutas de archivos). Para particiones con relativamente poca actividad de escritura, el tiempo de desfragmentación mejora enormemente después de la primera desfragmentación, ya que el desfragmentador necesitará desfragmentar solo una pequeña cantidad de archivos nuevos en el futuro. .

Desfragmentación sin conexión

La presencia de archivos de sistema inamovibles, especialmente un archivo de intercambio , puede impedir la desfragmentación. Estos archivos se pueden mover de forma segura cuando el sistema operativo no esté en uso. Por ejemplo, ntfsresize mueve estos archivos para cambiar el tamaño de una partición NTFS . La herramienta PageDefrag podría desfragmentar archivos del sistema de Windows, como el archivo de intercambio y los archivos que almacenan el registro de Windows , ejecutándolo en el momento del arranque antes de que se cargue la GUI. Desde Windows Vista, la función no es totalmente compatible y no se ha actualizado.

En NTFS, a medida que se agregan archivos al disco, la tabla maestra de archivos (MFT) debe crecer para almacenar la información de los nuevos archivos. Cada vez que el MFT no se pueda ampliar debido a que hay algún archivo en el camino, el MFT ganará un fragmento. En las primeras versiones de Windows, no se podía desfragmentar de forma segura mientras la partición estaba montada, por lo que Microsoft escribió un bloque duro en la API de desfragmentación . Sin embargo, desde Windows XP , un número cada vez mayor de desfragmentadores ahora pueden desfragmentar el MFT, porque la API de desfragmentación de Windows se ha mejorado y ahora admite esa operación de movimiento. [5] Incluso con las mejoras, los primeros cuatro grupos de MFT permanecen inamovibles por la API de desfragmentación de Windows, lo que resulta en el hecho de que algunos desfragmentadores almacenarán el MFT en dos fragmentos: Los primeros cuatro grupos dondequiera que estuvieran colocados cuando se colocó el disco formateado, y luego el resto del MFT al principio del disco (o donde la estrategia del desfragmentador considere el mejor lugar).

Discos de estado sólido

Al leer datos de una unidad de disco duro electromecánica convencional, el controlador de disco debe primero colocar el cabezal, relativamente lentamente, en la pista donde reside un fragmento determinado, y luego esperar mientras el plato del disco gira hasta que el fragmento llegue al cabezal. Una unidad de estado sólido (SSD) se basa en una memoria flash sin partes móviles, por lo que el acceso aleatorio a un fragmento de archivo en la memoria flash no sufre este retraso, lo que hace innecesaria la desfragmentación para optimizar la velocidad de acceso. Además, dado que sólo se puede escribir en la memoria flash un número limitado de veces antes de que falle, la desfragmentación es en realidad perjudicial (excepto para mitigar fallas catastróficas ). Sin embargo, Windows todavía desfragmenta un SSD automáticamente (aunque con menos fuerza) para evitar que el sistema de archivos alcance su máxima tolerancia a la fragmentación. Una vez que se alcanza el límite máximo de fragmentación, los intentos posteriores de escribir en el disco fallan. [6]

discos duros SMR

Aunque muchos discos duros SMR aceptan el comando TRIM , los discos duros SMR aún necesitan desfragmentación para mejorar el rendimiento. [ cita necesaria ]

Enfoque y desfragmentadores por tipo de sistema de archivos

Una utilidad de desfragmentación de Windows

Ver también

Notas

  1. ^ La práctica de marcar el espacio ahora no utilizado de un archivo eliminado en una tabla como disponible para su uso posterior (sin borrar su contenido) es la razón por la que los programas de recuperación pueden funcionar; recuperan archivos cuyos nombres han sido eliminados del directorio, pero cuyo espacio aún no ha sido reutilizado. [ cita necesaria ]

Referencias

  1. Cwdixon.com Archivado el 6 de octubre de 2010 en Wayback Machine . Cwdixon.com. Recuperado el 28 de julio de 2013.
  2. ^ El desfragmentador definitivo: LaRud's Place. Larud.net (19 de enero de 2012). Recuperado el 28 de julio de 2013.
  3. ^ "MyDefrag v4.2.8". Archivado desde el original el 16 de febrero de 2010 . Consultado el 14 de agosto de 2014 . En la mayoría de los discos duros, el comienzo del disco duro es considerablemente más rápido que el final, ¡a veces hasta un 200 por ciento! Puedes medirlo tú mismo con utilidades como *HD Tune. Por tanto, MyDefrag está orientado a mover todos los archivos al principio del disco.
  4. ^ Serdar Yegulalp (20 de septiembre de 2005). "Las nuevas unidades de disco duro reducen la necesidad de desfragmentar el disco". SearchWindowsServer.com: Guía rápida de desfragmentación de disco . Archivado desde el original el 3 de junio de 2008 . Consultado el 27 de diciembre de 2008 .
  5. ^ "Windows XP: las mejoras del kernel crean un sistema operativo más robusto, potente y escalable - MSDN Magazine, diciembre de 2001". Archivado desde el original el 24 de abril de 2003 . Consultado el 19 de diciembre de 2006 .msdn.microsoft.com: "La otra gran mejora [en Windows XP] es la compatibilidad con la desfragmentación en línea de MFT y la mayoría de los metadatos de directorios y archivos"
  6. ^ Hanselman, Scott (3 de diciembre de 2014). "La historia real y completa: ¿Windows desfragmenta su SSD?". Blog de Scott Hanselman . Microsoft . Archivado desde el original el 22 de diciembre de 2014.
  7. ^ Norton, Peter (octubre de 1994). Guía completa de Peter Norton para DOS 6.22 . Sam. pag. 521.
  8. ^ M. Kozierok, Charles (17 de abril de 2001). "Versiones NTFS". Guía de PC. Archivado desde el original el 24 de septiembre de 2015 . Consultado el 20 de febrero de 2015 .
  9. Herramientas desfragmentadoras de disco de terceros para Windows Archivado el 28 de noviembre de 2011 en Wayback Machine . Support.microsoft.com (23 de agosto de 2011). Recuperado el 28 de julio de 2013.
  10. ^ "Desfragmentación de disco: antecedentes y mejoras de ingeniería de Windows 7". Archivado desde el original el 13 de junio de 2014 . Consultado el 15 de junio de 2014 .
  11. ^ "Nuevas opciones de desfragmentación en Windows 8". 13 de noviembre de 2011. Archivado desde el original el 20 de febrero de 2015 . Consultado el 15 de junio de 2014 .
  12. ^ "Páginas de manual de FreeBSD". El proyecto FreeBSD. Archivado desde el original el 21 de febrero de 2015 . Consultado el 21 de febrero de 2015 .
  13. ^ "Linux kernel 3.0, Sección 1.1. Btrfs: desfragmentación automática, depuración y mejoras de rendimiento". kernelnewbies.org . 2011-07-21. Archivado desde el original el 30 de marzo de 2016 . Consultado el 5 de abril de 2016 .
  14. ^ "HTG explica: por qué Linux no necesita desfragmentar". Cómo hacerlo geek . Archivado desde el original el 19 de julio de 2013 . Consultado el 1 de agosto de 2013 .
  15. ^ 5.10. Sistemas de archivos Archivado el 27 de mayo de 2013 en Wayback Machine . Tldp.org (9 de noviembre de 2002). Recuperado el 22 de junio de 2013.
  16. ^ Erik Bärwaldt: Optimización de la organización de datos en disco Archivado el 6 de septiembre de 2014 en Wayback Machine.
  17. ^ "Soporte del sistema de archivos de registro". Estación electrónica . Archivado desde el original el 8 de diciembre de 2008 . Consultado el 27 de diciembre de 2008 .
  18. ^ "Fragmentation in HFS Plus Volumes". Archived from the original on 18 November 2012. Retrieved 2 September 2020. As we have seen, an HFS+ volume seems to resist fragmentation rather well on Mac OS X 10.3.x, and I don't envision fragmentation to be a problem bad enough to require proactive remedies (such as a defragmenting tool).
  19. ^ "Detecting a file fragmentation point for reconstructing fragmented files using sequential hypothesis testing". US8407192 B2. Archived from the original on 21 February 2015. Retrieved 21 February 2015.
  20. ^ Reeves, Nick (26 October 1990). "E format design document". Archived from the original on 7 April 2013. Retrieved 24 May 2013.

Sources

External links