Ir al contenido

Diferencia entre revisiones de «Desfragmentación»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 187.146.184.154 a la última edición de AVBOT
Línea 1: Línea 1:
{{fusionar desde|defragmentación de archivos}}
{{fusionar a|desfragmentación}}
[[Archivo:Defragmenting disk.gif|thumb|250px|Esquema que muestra cómo se desfragmenta un disco. Los archivos se representan con colores diferentes, y en un principio están fragmentados (regados por todo el disco). Luego el proceso de desfragmentación va acomodando los archivos de tal manera que cada uno quede en un área contigua y no hayan espacios entre ellos.]]


En el contexto de la administración de sistemas de computadores, la '''defragmentación''' es un proceso que reduce la cantidad de fragmentación en los [[sistema de archivos|sistemas de archivos]]. Se realiza reorganizando físicamente el contenido del [[Disco duro|disco]] para almacenar los trozos de cada archivo juntos y de manera contigua. También trata de crear regiones de mayor espacio libre por medio de la ''compactación'', para dificultar la fragmentación. Algunos defragmentadores también tratan de mantener los archivos más pequeños juntos dentro un solo [[directorio]], pues a menudo se accede a ellos en secuencia.
La '''desfragmentación''' es el proceso mediante el cual se acomodan los archivos de un disco de tal manera que cada uno quede en un área contigua y sin espacios sin usar entre ellos. Al irse escribiendo y borrando archivos continuamente en el disco duro, éstos tienden a no quedar en áreas contiguas, así, un archivo puede quedar "partido" en muchos pedazos a lo largo del disco, se dice entonces que el archivo está "fragmentado". Al tener los archivos esparcidos por el disco, se vuelve ineficiente el acceso a ellos.


El problema de almacenamiento no contiguo de archivos se denomina ''fragmentación'', se produce debido al almacenamiento de archivos en dispositivos como [[disco duro]] y [[memoria RAM]] por el uso del computador.


== <nowiki>Texto de titular</nowiki>
La fragmentación es un problema que surge debido al ordenamiento interno de los datos en algunos [[sistema de archivos]]. Se da muy comúnmente en el sistema operativo [[Windows]] aunque también afecta a otras plataformas pero en una escala mucho menor. También se produce fragmentación dentro de la memoria del computador ([[memoria RAM]]) cuando se asignan los procesos a los diferentes bloques de memoria. Existen dos tipos de fragmentación: interna y externa.
----
[[Título del enlace]] ==
== Motivación ==
La lectura y escritura secuenciales de sistemas de archivos fuertemente fragmentados se ralentiza, debido a que aumenta el tiempo necesario para que los cabezales del disco se muevan entre los fragmentos y esperen a que el disco gire hasta la posición de lectura (véase tiempo de búsqueda y retardo rotacional). Para muchas operaciones comunes, el cuello de botella en la operación de todo el computador es el disco duro; de ahí que el deseo de [[Procesamiento|procesar]] más eficientemente anime a la defragmentación. Los vendedores de [[Sistema operativo|sistemas operativos]] a menudo recomiendan la defragmentación periódica para evitar que la velocidad de acceso al disco se degrade con el tiempo.


Los datos fragmentados también se extienden por el disco más de lo necesario. Por lo tanto, uno puede defragmentar para agrupar los datos en una zona, antes de dividir una partición en dos o más (por ejemplo, con [[GNU Parted]] o [[PartitionMagic]]).
Desfragmentar no hace que el ordenador trabaje más rapido, sino que hace que la navegación por los archivos sea mas rápida.


La defragmentación puede aumentar la propia vida del disco duro, al minimizar el movimiento de los cabezales y simplificar las operaciones de acceso a los datos.
== Fragmentación ==
[[Archivo:File system fragmentation.svg|right|300px]]


== Causas ==
=== Fragmentación interna ===
La fragmentación ocurre cuando el sistema operativo no asigna suficiente espacio contiguo para almacenar un archivo completo como una unidad, sino que, en cambio, pone partes de él en huecos entre otros archivos (usualmente estos huecos existen porque antes contuvieron un archivo que posteriormente fue borrado por el sistema operativo, o porque éste en primer lugar asignó demasiado espacio para un archivo). Los archivos más grandes y el mayor número de archivos también contribuyen a la fragmentación y en consecuencia a la pérdida de rendimiento. La defragmentación intenta aliviar estos problemas.
La fragmentación interna es la pérdida de espacio en disco debido al hecho de que el tamaño de un determinado archivo sea inferior al tamaño del [[cluster]], ya que teóricamente el archivo estaría obligado a ser referenciado como un cluster completo. Los cluster(s) son contiguos de forma que desde el último bit del archivo situado en el cluster "a" hasta el primer bit del archivo situado en el cluster contiguo (es decir "b") queda un espacio sobrante siempre teniendo la condición de que el archivo del cluster "a" fuera más pequeño que el cluster en sí.


;Ejemplo:
[[File:Fragmentacionpng.png|right|300px]]
Consideremos el siguiente escenario, como se muestra en la imagen de la derecha:


[[Archivo:File system fragmentation.svg|right|410px]]
Por eso se sugiere no disponer de un gran tamaño de partición en los discos nuevos donde la capacidad es muy importante.
Por ejemplo si nuestro clúster es de 18KB (18.432 bytes) por más que un archivo ocupe menos, en nuestro disco ocupara 18KB. Esto sugiere una pérdida de ese espacio que dice utilizar pero no utiliza.


Sea un disco que estaba vacío y ahora contiene cinco archivos, A, B, C, D y E, y cada uno usa 10 bloques de espacio (en esta sección un ''bloque'' es una unidad de asignación de ese sistema, que podría ser de 1 [[Kb]], 100 Kb o 1 [[Mb]], sin un tamaño específico).
Por eso, en nuestro ejemplo, un archivo de 3KB ocupara en nuestro disco lo mismo que uno de 10KB, o sea 18 KB. Esa pérdida de espacio se denomina fragmentación interna, y no se corrige con el desfragmentador, sino disminuyendo el tamaño de la partición.


En un disco vacío, todos estos archivos se asignarán uno detrás del otro. (Ejemplo (1) de la imagen.) Si se borra el archivo B, hay dos posibilidades: dejar vacío el espacio que dejó B y usarlo posteriormente, o comprimir todos los archivos después de B, de manera que el espacio vacío quede después de los archivos. Esto consumiría demasiado tiempo si hubiera que mover cientos o miles de archivos, así que, en general, simplemente se deja ese espacio, marcándolo en la tabla como disponible para un uso posterior, en que será ocupado cuando se necesite.[1] (Ejemplo (2) de la imagen.)
=== Fragmentación externa ===
Este tipo de fragmentación aparece como consecuencia de las distintas políticas de ajuste de bloques que tiene un sistema de ficheros, o al utilizar asignaciones dinámicas de bloques en el caso de la memoria. En el sistema de ficheros, la sucesiva creación y eliminación de ficheros de distintos tamaños puede conducir al aislamiento de los bloques libres de un [[Disco duro|disco]] y, dependiendo de la política de ajuste, su no elección para futuros ficheros.


Ahora, si a un nuevo archivo, F, se le asignan 7 bloques de espacio, se puede colocar en los primeros 7 bloques del espacio anteriormente ocupado por B, y los 3 bloques restantes seguirán disponibles. (Ejemplo (3) de la imagen.)
En la memoria del sistema la fragmentación se produce cuando los procesos asignados han ocupado posiciones no contiguas de memoria dejando demasiados bloques libres de pequeño tamaño, en los que no "caben" nuevos procesos.


Si se añadiera un nuevo archivo, G, que sólo necesitara 3 bloques, entonces podría ocupar el espacio libre entre F y C. (Ejemplo (4) de la imagen.) Si ahora fuera necesario expandir F, como el espacio que le sigue ya no está disponible, hay dos posibilidades: (1) añadir un nuevo bloque en otro lugar e indicar que F tiene una segunda ''[[extensión]]'', o (2) mover el archivo F a otro lugar donde pueda ocupar una zona contigua del nuevo tamaño aumentado. Esta última operación puede no ser posible si el archivo es mayor que cualquier espacio libre contiguo, o si se prevé que el archivo podría ser tan grande que tal operación tomaría un tiempo excesivo, por lo tanto la práctica usual es simplemente crear una ''extensión'' en otro lugar y encadenar la nueva extensión con la anterior. (Ejemplo (5) de la imagen.)
En sistemas de ficheros la desfragmentación trata de resolver este problema, alineando los bloques de datos contiguos y juntando los bloques libres, produciendo así fragmentos mayores que sí serán elegidos para futuros ficheros. En la memoria principal se soluciona compactando los procesos para que estos ocupen posiciones contiguas y dejar los bloques libres juntos, o también se soluciona con la paginación de memoria.


Al repetir esta práctica cientos o miles de veces, el sistema de archivos eventualmente tendrá muchos segmentos libres en muchos lugares, y muchos archivos tendrán muchas extensiones. Si, como resultado de la fragmentación del espacio libre, un nuevo archivo (o uno que se ha extendido) tiene que colocarse en un gran número de extensiones, el tiempo de acceso a ese archivo (o a todos los archivos) puede llegar a ser excesivamente largo.
== Desfragmentación ==
Este proceso consta de ordenar los trozos de información distribuida a través de todo el disco, para mejorar la velocidad de acceso y distribuir de mejor forma el espacio libre del dispositivo. Como este proceso consta en la reorganización de partes de archivos, requiere de suficiente memoria para realizar los movimientos de los trozos de información. Al mover en forma física la información, la estructura lógica no sufre alteraciones.


El proceso de crear nuevos archivos, y el borrado y expansión de los archivos existentes, puede ocurrir en el sistema general de archivos, pero también en los subdirectorios. A veces nos referimos coloquialmente a este proceso con la expresión ''churn'' ("mantequera"). La fragmentación puede ocurrir no sólo en los archivos individuales, sino también cuando diferentes archivos en un directorio (y quizás en sus subdirectorios) que a menudo son leídos en secuencia, comienzan a separarse por el efecto ''churn''.
=== Aspectos de la desfragmentación ===
En [[Windows]] la presencia de archivos inamovibles del sistema, o que el desfragmentador no moverá para simplificar su tarea (sobre todo con el [[espacio de intercambio|archivo de intercambio]], o ''swap file''), puede impedir un buen porcentaje de desfragmentación en el disco.


Un programa de defragmentación debe mover los archivos dentro del espacio disponible para deshacer la fragmentación. Esta operación usa intensamente la [[memoria]] y no se puede realizar en un sistema de archivos sin espacio libre. La reorganización involucrada en la defragmentación no cambia la ubicación lógica de los archivos (definida como su ubicación dentro de la estructura de directorios).
Ciertos sistemas de archivos son más susceptibles a cambios por desfragmentación que otros. Por ejemplo, una partición del tipo [[FAT]] se fragmenta más rápido que una de partición del tipo [[NTFS]], ambos propios del sistema Windows. Todo lo contrario ocurre en muchos sistemas de archivos del tipo [[Unix]] que no requieren desfragmentaciones en general, debido a que buscan que la fragmentación se mantenga en un punto donde no sea necesario desfragmentar mediante el uso de nodos de posición.


== Utilidades ==
== Contramedidas comunes ==
;Particionado
Los programas de desfragmentación, por lo general, vienen incorporados al [[sistema operativo]] (excepto en [[Windows NT|Windows NT 4]]). También existen aplicaciones externas, las cuales poseen opciones más avanzadas que las propuestas por los fabricantes del sistema operativo.
Una estrategia común para optimizar la defragmentación y reducir el impacto de la fragmentación es particionar el/los disco(s) duro(s) para separar las particiones del sistema de archivos que experimentan muchas más lecturas y escrituras, de las zonas más volátiles, donde se crean y borran frecuentemente los archivos. En [[Windows]] de Microsoft, el contenido de directorios tales como "\Archivos de programas" o "\Windows" se modifica con mucha menor frecuencia que la de sus lecturas. Los directorios que contienen los perfiles de los usuarios se modifican constantemente (especialmente el directorio Temp y el ''cache'' del [[Explorador de Internet]], que crea miles de archivos que se borran en unos cuantos días). Si los archivos de los perfiles de los usuarios se mantienen en una partición dedicada (como se hace comúnmente en los sistemas [[UNIX]]), el defragmentador funciona mejor, pues no tiene que tratar con todos los archivos estáticos de los otros directorios. En las particiones con relativamente poca actividad, el rendimiento de la defragmentación mejora grandemente después de la primera de ellas, pues en el futuro el defragmentador sólo tendrá que defragmentar un pequeño número de nuevos archivos.


== Problemas ==
El desfragmentador más conocido es el [[Defrag]], que es usado en [[MS-DOS]] y en las plataformas de [[Windows]] (en estas últimas con el nombre de "Desfragmentador de disco"). Puede ser encontrado en las versiones de Windows en ''Inicio -> Programas -> Accesorios -> Herramientas de Sistema''.
=== Archivos inamovibles ===
La presencia de archivos de sistema inamovibles, especialmente un archivo de intercambio, puede dificultar la defragmentación. Estos archivos se pueden mover con seguridad cuando el sistema operativo no está funcionando. Por ejemplo, [[ntfsresize]] mueve estos archivos para cambiar el tamaño de una partición NTFS.


=== Crecimiento de la fragmentación ===
[[Categoría:Discos duros]]
En sistemas sin resistencia a la fragmentación, ésta crece por sí misma si no se hace nada, así que es necesaria la defragmentación periódica para mantener el rendimiento del disco al máximo y evitar la sobrecarga de defragmentaciones menos frecuentes.
[[Categoría:Software de desfragmentación]]


== Problemas de rendimiento y del usuario ==
En una amplia gama de sistemas operativos multiusuario, un usuario ordinario no puede defragmentar los discos del sistema pues se requiere el acceso del ''superusuario'' (o "Administrador") para mover los archivos del sistema. Además, los sistemas de archivos tales como el [[NTFS]] (y la mayoría de los sistemas de archivos [[Unix]]/[[Linux]]) están diseñados para reducir la probabilidad de la fragmentación.[2][3] Las mejoras en los discos duros modernos, tales como ''cache'' en [[RAM]], mayor velocidad de rotación del disco y mayor densidad de datos, reducen en algún grado el impacto negativo de la fragmentación en el rendimiento del sistema, aunque los aumentos en las cantidades de datos usados comúnmente compensan estos efectos.

No obstante, los sistemas modernos se benefician en gran medida de las enormes capacidades de disco disponibles actualmente, pues los discos parcialmente ocupados se fragmentan mucho menos que los discos llenos.[4] En cualquier caso, estas limitaciones de la defragmentación han llevado a decisiones de diseño en los sistemas operativos modernos, tales como el Mac OS X basado en Unix, el cual se introdujo en 1999 y eliminó la necesidad, en la utilización normal, de que el usuario tenga que defragmentar una unidad. Ocho años después, en 2007, [[Windows Vista]] también introdujo la capacidad de defragmentar automáticamente en un proceso en segundo plano --aunque no intenta defragmentar completamente un volumen, pues hacerlo sólo produciría aumentos de rendimiento despreciables.[5]

== Aproximación y desfragmentadores según el tipo de sistema ==
* [[FAT]]: Los sistemas DOS 6.x y Windows 9x vienen con una utilidad de defragmentación llamada Defrag. La de DOS es una versión limitada de SpeedDisk de Norton[6], y la de Windows es una versión con licencia de [[Diskeeper]].
* [[NTFS]]: Windows 2000 y posteriores incluyen una herramienta de defragmentación basada en [[Diskeeper]]. NT 4 y anteriores no incorporan utilidades de defragmentación. Desafortunadamente, el defragmentador integrado no consolida el espacio libre. Por lo tanto una unidad fuertemente fragmentada con muchos archivos pequeños puede no tener grandes espacios libres consecutivos después de la defragmentación. Así, cualquier nuevo archivo grande instantáneamente será dividido en fragmentos pequeños, con un impacto inmediato en el rendimiento. Esto puede ocurrir incluso si el espacio usado en el disco es inferior al 60%.[7]
* [[ext2]] (Linux) usa un defragmentador externo llamado <tt>e2defrag</tt>, el cual no funciona con su sucesor [[ext3]], a menos que este sistema de archivos se convierta temporalmente en ext2. En su lugar se puede usar un defragmentador independiente del sistema de archivos, tal como Shake[http://vleu.net/shake/].
* [[vxfs]] tiene una utilidad, [[fsadm]], pensada para realizar también operaciones de defragmentación.
* [[JFS]] tiene una utilidad, [[defragfs]],[http://www.ecomstation.com/support/index.phtml?url=content/support-faq-jfs.html&title=Journaling%20File%20System] en los sistemas operativos de IBM.
*[[ HFS Plus]] (MAC OS X) introdujo en 1998 un número de optimizaciones a los algoritmos de asignación, en un intento de defragmentar los archivos mientras se accedía a ellos, sin un defragmentador separado. Si el sistema de archivos ''se vuelve'' fragmentado, la única manera de defragmentarlo es adquirir iDefrag de Coriolis System.
* [[WAFL]] en el sistema operativo ONTAP 7.2 de [[NetApp]] tiene un comando llamado <tt>reallocate</tt>, diseñado para defragmentar archivos grandes.
* [[XFS]] proporciona una utilidad de defragmentación en línea, llamada <tt>xfs_fsr</tt>.
* SFS procesa la característica de defragmentación de manera casi completamente desnacionalizada (aparte de la ubicación donde está funcionando), así que la defragmentación se puede detener e iniciar instantáneamente.

== Véase también ==
* [[Fragmentación]]
* [[Fragmentación de sistemas de archivos]]
* [[Lista de programas de defragmentación]]
* [[Programas de optimización]]

== Referencias ==
{{Listaref}}

== Fuentes ==
* Norton, Peter (1994). ''Peter Norton's Complete Guide to DOS 6.22'', página 521 - Sams (ISBN 067230614X).
* Woody Leonhard, Justin Leonhard (2005). ''Windows XP Timesaving Techniques For Dummies, Second Edition'', página 456 - For Dummies (ISBN 0-764578-839).
* Jensen, Craig (1994). ''Fragmentation: The Condition, the Cause, the Cure''. Executive Software International (ISBN 0-9640049-0-9).
* [[Dave Kleiman]], Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G. Altholz, Lawrence Abrams, Darren Windham, Tony Bradley y Brian Barber (2006). ''Winternals: Defragmentation, Recovery, and Administration Field guide'' - Syngress (ISBN 1-597490-792).
* Robb, Drew (2003). ''Server disk Management in a Windows Environment'', Chapter 7 - AUERBACH (ISBN 0849324327).

[[Categoría:Software de defragmentación]]

[[cs:Defragmentace]]
[[de:Fragmentierung (Dateisystem)#Defragmentierung in Betriebssystemen]]
[[en:Defragmentation]]
[[en:Defragmentation]]
[[fa:یکپارچه‌سازى دیسک سخت]]
[[fi:Eheyttäminen]]
[[fi:Eheyttäminen]]
[[fr:Défragmentation (informatique)]]
[[fr:Défragmentation (informatique)]]
Línea 60: Línea 98:
[[sl:Defragmentacija]]
[[sl:Defragmentacija]]
[[sq:Defragmentacion]]
[[sq:Defragmentacion]]
[[sv:Defragmentering]]
[[tr:Defragmentasyon]]
[[uk:Дефрагментація]]
[[uk:Дефрагментація]]

Revisión del 19:06 26 feb 2010

En el contexto de la administración de sistemas de computadores, la defragmentación es un proceso que reduce la cantidad de fragmentación en los sistemas de archivos. Se realiza reorganizando físicamente el contenido del disco para almacenar los trozos de cada archivo juntos y de manera contigua. También trata de crear regiones de mayor espacio libre por medio de la compactación, para dificultar la fragmentación. Algunos defragmentadores también tratan de mantener los archivos más pequeños juntos dentro un solo directorio, pues a menudo se accede a ellos en secuencia.


== Texto de titular


Título del enlace ==

Motivación

La lectura y escritura secuenciales de sistemas de archivos fuertemente fragmentados se ralentiza, debido a que aumenta el tiempo necesario para que los cabezales del disco se muevan entre los fragmentos y esperen a que el disco gire hasta la posición de lectura (véase tiempo de búsqueda y retardo rotacional). Para muchas operaciones comunes, el cuello de botella en la operación de todo el computador es el disco duro; de ahí que el deseo de procesar más eficientemente anime a la defragmentación. Los vendedores de sistemas operativos a menudo recomiendan la defragmentación periódica para evitar que la velocidad de acceso al disco se degrade con el tiempo.

Los datos fragmentados también se extienden por el disco más de lo necesario. Por lo tanto, uno puede defragmentar para agrupar los datos en una zona, antes de dividir una partición en dos o más (por ejemplo, con GNU Parted o PartitionMagic).

La defragmentación puede aumentar la propia vida del disco duro, al minimizar el movimiento de los cabezales y simplificar las operaciones de acceso a los datos.

Causas

La fragmentación ocurre cuando el sistema operativo no asigna suficiente espacio contiguo para almacenar un archivo completo como una unidad, sino que, en cambio, pone partes de él en huecos entre otros archivos (usualmente estos huecos existen porque antes contuvieron un archivo que posteriormente fue borrado por el sistema operativo, o porque éste en primer lugar asignó demasiado espacio para un archivo). Los archivos más grandes y el mayor número de archivos también contribuyen a la fragmentación y en consecuencia a la pérdida de rendimiento. La defragmentación intenta aliviar estos problemas.

Ejemplo

Consideremos el siguiente escenario, como se muestra en la imagen de la derecha:

Sea un disco que estaba vacío y ahora contiene cinco archivos, A, B, C, D y E, y cada uno usa 10 bloques de espacio (en esta sección un bloque es una unidad de asignación de ese sistema, que podría ser de 1 Kb, 100 Kb o 1 Mb, sin un tamaño específico).

En un disco vacío, todos estos archivos se asignarán uno detrás del otro. (Ejemplo (1) de la imagen.) Si se borra el archivo B, hay dos posibilidades: dejar vacío el espacio que dejó B y usarlo posteriormente, o comprimir todos los archivos después de B, de manera que el espacio vacío quede después de los archivos. Esto consumiría demasiado tiempo si hubiera que mover cientos o miles de archivos, así que, en general, simplemente se deja ese espacio, marcándolo en la tabla como disponible para un uso posterior, en que será ocupado cuando se necesite.[1] (Ejemplo (2) de la imagen.)

Ahora, si a un nuevo archivo, F, se le asignan 7 bloques de espacio, se puede colocar en los primeros 7 bloques del espacio anteriormente ocupado por B, y los 3 bloques restantes seguirán disponibles. (Ejemplo (3) de la imagen.)

Si se añadiera un nuevo archivo, G, que sólo necesitara 3 bloques, entonces podría ocupar el espacio libre entre F y C. (Ejemplo (4) de la imagen.) Si ahora fuera necesario expandir F, como el espacio que le sigue ya no está disponible, hay dos posibilidades: (1) añadir un nuevo bloque en otro lugar e indicar que F tiene una segunda extensión, o (2) mover el archivo F a otro lugar donde pueda ocupar una zona contigua del nuevo tamaño aumentado. Esta última operación puede no ser posible si el archivo es mayor que cualquier espacio libre contiguo, o si se prevé que el archivo podría ser tan grande que tal operación tomaría un tiempo excesivo, por lo tanto la práctica usual es simplemente crear una extensión en otro lugar y encadenar la nueva extensión con la anterior. (Ejemplo (5) de la imagen.)

Al repetir esta práctica cientos o miles de veces, el sistema de archivos eventualmente tendrá muchos segmentos libres en muchos lugares, y muchos archivos tendrán muchas extensiones. Si, como resultado de la fragmentación del espacio libre, un nuevo archivo (o uno que se ha extendido) tiene que colocarse en un gran número de extensiones, el tiempo de acceso a ese archivo (o a todos los archivos) puede llegar a ser excesivamente largo.

El proceso de crear nuevos archivos, y el borrado y expansión de los archivos existentes, puede ocurrir en el sistema general de archivos, pero también en los subdirectorios. A veces nos referimos coloquialmente a este proceso con la expresión churn ("mantequera"). La fragmentación puede ocurrir no sólo en los archivos individuales, sino también cuando diferentes archivos en un directorio (y quizás en sus subdirectorios) que a menudo son leídos en secuencia, comienzan a separarse por el efecto churn.

Un programa de defragmentación debe mover los archivos dentro del espacio disponible para deshacer la fragmentación. Esta operación usa intensamente la memoria y no se puede realizar en un sistema de archivos sin espacio libre. La reorganización involucrada en la defragmentación no cambia la ubicación lógica de los archivos (definida como su ubicación dentro de la estructura de directorios).

Contramedidas comunes

Particionado

Una estrategia común para optimizar la defragmentación y reducir el impacto de la fragmentación es particionar el/los disco(s) duro(s) para separar las particiones del sistema de archivos que experimentan muchas más lecturas y escrituras, de las zonas más volátiles, donde se crean y borran frecuentemente los archivos. En Windows de Microsoft, el contenido de directorios tales como "\Archivos de programas" o "\Windows" se modifica con mucha menor frecuencia que la de sus lecturas. Los directorios que contienen los perfiles de los usuarios se modifican constantemente (especialmente el directorio Temp y el cache del Explorador de Internet, que crea miles de archivos que se borran en unos cuantos días). Si los archivos de los perfiles de los usuarios se mantienen en una partición dedicada (como se hace comúnmente en los sistemas UNIX), el defragmentador funciona mejor, pues no tiene que tratar con todos los archivos estáticos de los otros directorios. En las particiones con relativamente poca actividad, el rendimiento de la defragmentación mejora grandemente después de la primera de ellas, pues en el futuro el defragmentador sólo tendrá que defragmentar un pequeño número de nuevos archivos.

Problemas

Archivos inamovibles

La presencia de archivos de sistema inamovibles, especialmente un archivo de intercambio, puede dificultar la defragmentación. Estos archivos se pueden mover con seguridad cuando el sistema operativo no está funcionando. Por ejemplo, ntfsresize mueve estos archivos para cambiar el tamaño de una partición NTFS.

Crecimiento de la fragmentación

En sistemas sin resistencia a la fragmentación, ésta crece por sí misma si no se hace nada, así que es necesaria la defragmentación periódica para mantener el rendimiento del disco al máximo y evitar la sobrecarga de defragmentaciones menos frecuentes.

Problemas de rendimiento y del usuario

En una amplia gama de sistemas operativos multiusuario, un usuario ordinario no puede defragmentar los discos del sistema pues se requiere el acceso del superusuario (o "Administrador") para mover los archivos del sistema. Además, los sistemas de archivos tales como el NTFS (y la mayoría de los sistemas de archivos Unix/Linux) están diseñados para reducir la probabilidad de la fragmentación.[2][3] Las mejoras en los discos duros modernos, tales como cache en RAM, mayor velocidad de rotación del disco y mayor densidad de datos, reducen en algún grado el impacto negativo de la fragmentación en el rendimiento del sistema, aunque los aumentos en las cantidades de datos usados comúnmente compensan estos efectos.

No obstante, los sistemas modernos se benefician en gran medida de las enormes capacidades de disco disponibles actualmente, pues los discos parcialmente ocupados se fragmentan mucho menos que los discos llenos.[4] En cualquier caso, estas limitaciones de la defragmentación han llevado a decisiones de diseño en los sistemas operativos modernos, tales como el Mac OS X basado en Unix, el cual se introdujo en 1999 y eliminó la necesidad, en la utilización normal, de que el usuario tenga que defragmentar una unidad. Ocho años después, en 2007, Windows Vista también introdujo la capacidad de defragmentar automáticamente en un proceso en segundo plano --aunque no intenta defragmentar completamente un volumen, pues hacerlo sólo produciría aumentos de rendimiento despreciables.[5]

Aproximación y desfragmentadores según el tipo de sistema

  • FAT: Los sistemas DOS 6.x y Windows 9x vienen con una utilidad de defragmentación llamada Defrag. La de DOS es una versión limitada de SpeedDisk de Norton[6], y la de Windows es una versión con licencia de Diskeeper.
  • NTFS: Windows 2000 y posteriores incluyen una herramienta de defragmentación basada en Diskeeper. NT 4 y anteriores no incorporan utilidades de defragmentación. Desafortunadamente, el defragmentador integrado no consolida el espacio libre. Por lo tanto una unidad fuertemente fragmentada con muchos archivos pequeños puede no tener grandes espacios libres consecutivos después de la defragmentación. Así, cualquier nuevo archivo grande instantáneamente será dividido en fragmentos pequeños, con un impacto inmediato en el rendimiento. Esto puede ocurrir incluso si el espacio usado en el disco es inferior al 60%.[7]
  • ext2 (Linux) usa un defragmentador externo llamado e2defrag, el cual no funciona con su sucesor ext3, a menos que este sistema de archivos se convierta temporalmente en ext2. En su lugar se puede usar un defragmentador independiente del sistema de archivos, tal como Shake[1].
  • vxfs tiene una utilidad, fsadm, pensada para realizar también operaciones de defragmentación.
  • JFS tiene una utilidad, defragfs,[2] en los sistemas operativos de IBM.
  • HFS Plus (MAC OS X) introdujo en 1998 un número de optimizaciones a los algoritmos de asignación, en un intento de defragmentar los archivos mientras se accedía a ellos, sin un defragmentador separado. Si el sistema de archivos se vuelve fragmentado, la única manera de defragmentarlo es adquirir iDefrag de Coriolis System.
  • WAFL en el sistema operativo ONTAP 7.2 de NetApp tiene un comando llamado reallocate, diseñado para defragmentar archivos grandes.
  • XFS proporciona una utilidad de defragmentación en línea, llamada xfs_fsr.
  • SFS procesa la característica de defragmentación de manera casi completamente desnacionalizada (aparte de la ubicación donde está funcionando), así que la defragmentación se puede detener e iniciar instantáneamente.

Véase también

Referencias

Fuentes

  • Norton, Peter (1994). Peter Norton's Complete Guide to DOS 6.22, página 521 - Sams (ISBN 067230614X).
  • Woody Leonhard, Justin Leonhard (2005). Windows XP Timesaving Techniques For Dummies, Second Edition, página 456 - For Dummies (ISBN 0-764578-839).
  • Jensen, Craig (1994). Fragmentation: The Condition, the Cause, the Cure. Executive Software International (ISBN 0-9640049-0-9).
  • Dave Kleiman, Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G. Altholz, Lawrence Abrams, Darren Windham, Tony Bradley y Brian Barber (2006). Winternals: Defragmentation, Recovery, and Administration Field guide - Syngress (ISBN 1-597490-792).
  • Robb, Drew (2003). Server disk Management in a Windows Environment, Chapter 7 - AUERBACH (ISBN 0849324327).