stringtranslate.com

Desfragmentación

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

En el mantenimiento de sistemas de archivos , la desfragmentación es un proceso que reduce el grado de fragmentación . Esto se logra organizando 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 retorno 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 por diferentes áreas del disco al acceder a archivos fragmentados es más lento, en comparación con el acceso a todo el contenido de un archivo no fragmentado de forma secuencial sin mover los cabezales de lectura/escritura para buscar otros fragmentos.

Causas de la fragmentación

La fragmentación se produce 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 de él en espacios entre archivos existentes (normalmente, esos espacios existen porque antes contenían un archivo que el sistema de archivos ha eliminado posteriormente o porque el sistema de archivos asignó espacio sobrante para el archivo en primer lugar). Los archivos que se suelen añadir a otros archivos (como los archivos de registro), así como la adición y eliminación frecuente de archivos (como los correos electrónicos y la memoria caché del navegador web), los archivos más grandes (como los vídeos) y una mayor cantidad de archivos contribuyen a la fragmentación y la consiguiente pérdida de rendimiento. La desfragmentación intenta aliviar estos problemas.

Ejemplo

Ejemplos de cinco estados de fragmentación

Un disco en blanco tiene cinco archivos, A a 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 ser cualquier tamaño admitido por el sistema de archivos). En un disco en blanco, todos estos archivos se asignarían uno después del otro (ver 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 volver a usarlo 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 podría llevar mucho tiempo si hubiera muchos archivos que se debieran mover, generalmente el espacio vacío simplemente se deja allí, marcado en una tabla como disponible para nuevos archivos (ver 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 solo necesita 4 bloques, entonces podría ocupar el espacio después de F y antes de C (ejemplo 4 en la imagen).

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

  1. Mueva el archivo F a un lugar donde pueda crearse como un archivo contiguo del nuevo tamaño más grande. Esto no sería posible si el archivo es más grande que el espacio contiguo más grande disponible. El archivo también podría ser tan grande que la operación demoraría un período de tiempo indeseablemente largo.
  2. Mueva todos los archivos después de F hasta que uno libere suficiente espacio para que vuelva 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 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 todas las búsquedas aleatorias que el disco tendrá que hacer al leerlo.

Además, el concepto de “fragmentación” no se limita únicamente 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 los archivos a los que accede un programa cuando se está cargando, que pueden incluir ciertas DLL , varios archivos de recursos, los archivos multimedia de audio/video en 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. Algunos grupos de archivos pueden haberse instalado originalmente en la secuencia correcta, pero se van distanciando 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 en el 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 finalmente se fusionen, preferiblemente en uno solo. Para ello, normalmente se requieren al menos dos operaciones de copia: una para mover los bloques a algún espacio libre en el disco para que se puedan realizar más movimientos, y otra para mover finalmente los bloques a su lugar previsto. En este paradigma, nunca se eliminan datos del disco, de modo 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. Se trata de 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. Según el algoritmo utilizado, puede ser ventajoso o no realizar varias 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 los 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 Intel Application Launch Accelerator, 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 Prefetch para identificar tantos de estos grupos de archivos como sea posible y colocará los archivos dentro de ellos en secuencia de acceso.

Al principio del disco duro, las pistas externas tienen una velocidad de transferencia de datos mayor que las pistas internas. Colocar los archivos a los que se accede con frecuencia en las pistas externas 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 memoria caché de RAM , una mayor velocidad de rotación de los platos, 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 los aumentos en las cantidades de datos de uso común 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 HDD de alta capacidad, la misma partición ocupa un rango menor de cilindros, lo que da como resultado búsquedas más rápidas. Sin embargo, el tiempo de acceso promedio nunca puede ser inferior a la mitad de la rotación de los platos, y la rotación del plato (medida en rpm) es la característica de velocidad 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 gran capacidad de almacenamiento. La desfragmentación es justamente eso: garantizar que haya como máximo una búsqueda por archivo, contando solo las búsquedas de pistas no adyacentes.

Particionado

Una estrategia común para optimizar la desfragmentación y reducir el impacto de la fragmentación es particionar el disco duro de forma que se separen 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 archivos con frecuencia. Los directorios que contienen los perfiles de los usuarios se modifican constantemente (especialmente con el directorio Temp y la caché del navegador web, que 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 habitualmente 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 tratar con todos los archivos estáticos de otros directorios. (Alternativamente, se le puede indicar a un desfragmentador que simplemente excluya ciertas rutas de archivo). Para particiones con relativamente poca actividad de escritura, el tiempo de desfragmentación mejora en gran medida 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 de sistema de Windows, como el archivo de intercambio y los archivos que almacenan el registro de Windows , ejecutándose 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 la MFT no se puede ampliar debido a que algún archivo está en el camino, la 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 bloqueo duro en la API de desfragmentación . Sin embargo, desde Windows XP , un número cada vez mayor de desfragmentadores ahora pueden desfragmentar la 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 clústeres de la MFT permanecen inamovibles por la API de desfragmentación de Windows, lo que da como resultado el hecho de que algunos desfragmentadores almacenarán la MFT en dos fragmentos: los primeros cuatro clústeres donde sea que se colocaron cuando se formateó el disco, y luego el resto de la MFT al comienzo del disco (o donde sea que la estrategia del desfragmentador considere que es el mejor lugar).

Discos de estado sólido

Al leer datos de una unidad de disco duro electromecánica convencional, el controlador del disco primero debe posicionar 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 llega 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 la memoria flash solo se puede escribir un número limitado de veces antes de que falle, la desfragmentación es realmente perjudicial (excepto en la mitigación de fallas catastróficas ). Sin embargo, Windows todavía desfragmenta un SSD automáticamente (aunque con menos vigor) para evitar que el sistema de archivos alcance su tolerancia máxima de fragmentación (cuando los metadatos no pueden representar más fragmentos de archivos). 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 , aún necesitan desfragmentación para mejorar el rendimiento. [ cita requerida ]

Enfoque y desfragmentadores por tipo de sistema de archivos

Una utilidad de desfragmentación de Windows

Véase 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 requerida ]

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). Consultado 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 en un 200 por ciento! Puede medir esto usted mismo con utilidades como *HD Tune. Por lo tanto, MyDefrag está orientado a mover todos los archivos al comienzo 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 núcleo crean un sistema operativo más sólido, potente y escalable - Revista MSDN, 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 el soporte para la desfragmentación en línea de la 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 para PC. Archivado desde el original el 24 de septiembre de 2015. Consultado el 20 de febrero de 2015 .
  9. ^ Herramientas de desfragmentación de disco de terceros para Windows Archivado el 28 de noviembre de 2011 en Wayback Machine . Support.microsoft.com (23 de agosto de 2011). Consultado el 28 de julio de 2013.
  10. ^ "Desfragmentación de disco: antecedentes y mejoras de ingeniería en 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 del manual de FreeBSD". El proyecto FreeBSD. Archivado desde el original el 21 de febrero de 2015 . Consultado el 21 de febrero de 2015 .
  13. ^ "Desfragmentación". Documentación de BTRFS . Consultado el 26 de julio de 2024 .{{cite web}}: CS1 maint: estado de la URL ( enlace )
  14. ^ "Administración". Documentación de BTRFS . Consultado el 26 de julio de 2024 .{{cite web}}: CS1 maint: estado de la URL ( enlace )
  15. ^ "HTG explica por qué Linux no necesita desfragmentación". How-To Geek . Archivado desde el original el 19 de julio de 2013. Consultado el 1 de agosto de 2013 .
  16. ^ 5.10. Sistemas de archivos Archivado el 27 de mayo de 2013 en Wayback Machine . Tldp.org (9 de noviembre de 2002). Consultado el 22 de junio de 2013.
  17. ^ Erik Bärwaldt: Optimización de la organización de datos en el disco Archivado el 6 de septiembre de 2014 en Wayback Machine.
  18. ^ "Compatibilidad con sistemas de archivos de registro". eComStation . Archivado desde el original el 8 de diciembre de 2008 . Consultado el 27 de diciembre de 2008 .
  19. ^ "Fragmentación en volúmenes HFS Plus". Archivado desde el original el 18 de noviembre de 2012. Consultado el 2 de septiembre de 2020. Como hemos visto, un volumen HFS+ parece resistir bastante bien la fragmentación en Mac OS X 10.3.x, y no creo que la fragmentación sea un problema lo suficientemente grave como para requerir soluciones proactivas (como una herramienta de desfragmentación).
  20. ^ "Detección de un punto de fragmentación de archivos para reconstruir archivos fragmentados mediante pruebas de hipótesis secuenciales". US8407192 B2. Archivado desde el original el 21 de febrero de 2015. Consultado el 21 de febrero de 2015 .
  21. ^ Reeves, Nick (26 de octubre de 1990). «Documento de diseño en formato E». Archivado desde el original el 7 de abril de 2013. Consultado el 24 de mayo de 2013 .

Fuentes

Enlaces externos