Archivos del escritorioLa verdad acerca de la desfragmentación

Wes Miller

La fragmentación de disco surge en paralelo con la aparición de los discos duros. Si le preocupa mantener el buen estado de sus sistemas, debe desfragmentarlos regularmente. Esto probablemente le recuerde a esa conversación anual que mantiene con su dentista sobre la limpieza de los dientes, ya sabe a qué me refiero. Bien, pues la desfragmentación es igual de importante.

A menos que su equipo esté siempre apagado y abandonado en una esquina, con el uso los equipo se fragmentan más y más. En un momento, le mostraré cómo sucede, pero en primer lugar repasemos un poco la historia de la desfragmentación.

Desfragmentación y Windows NT

Windows NT® no contaba con una utilidad de desfragmentación integrada, en aquel momento no se consideraba necesario el disponer de una. A fin de cuentas, NTFS se creó teniendo en cuenta la optimización y no se veía afectado por la fragmentación tan drásticamente como un volumen FAT equivalente. Pero con el tiempo, incluso el rendimiento de NTFS puede sufrir debido a una ubicación de archivos poco efectiva. Esto dio origen a un mercado muy próspero de herramientas de desfragmentación de terceros. Uno de los productos más populares entre los profesionales de TI fue el Diskeeper de Executive Software (ahora Diskeeper Corporation). Cuando Windows 2000 integró la funcionalidad de desfragmentación, Microsoft obtuvo la licencia de la tecnología de Executive Software. La función de desfragmentación de Windows® 2000 estaba disponible en el propio componente de Microsoft® Management Console (MMC) (dfrg.msc), que podía invocarse haciendo clic en un volumen o ejecutando manualmente defrag.exe desde la línea de comandos. A pesar de no disponer de programación y de sólo contar con una línea de comandos restringida, muchos profesionales de TI crearon scripts funcionales para automatizar la desfragmentación con esta versión integrada. Defrag.exe en Windows XP y Windows Server® 2003 aportó ciertas mejoras sobre la versión anterior, pero sólo ofrecía automatización limitada, aún era necesario crear los scripts.

Varios proveedores, incluido Winternals Software (empresa a la que pertenecía anteriormente), crearon software para el espacio de desfragmentación de la empresa. La mayor parte de estos productos funcionan del mismo modo, con una consola centralizada, un agente de determinado tipo que reside en los sistemas cliente (a veces todo el tiempo, a veces sólo a petición) y una estructura para ordenar cuándo y cómo se ejecuta la tarea de desfragmentación.

Windows Vista® continúa en gran parte la tendencia de la desfragmentación de sistema único, aunque se optimiza el desfragmentador y se incluyen opciones tales como la desfragmentación de fragmentos de archivos pequeños (64 MB o menos), lo que acelera la desfragmentación pero deja muchos fragmentos de archivos más grandes a lo largo del disco. El motor de desfragmentación en sí es más eficaz en Windows Vista y Windows Server 2008 que en versiones anteriores de Windows. También se ejecuta automáticamente y no requiere ninguna programación manual. Pero si está a cargo de una gran organización o desea optimizar los sistemas de formas que la desfragmentación no ofrece de manera predeterminada, puede que aún tenga que recurrir a software de terceros. Y, al igual que en versiones anteriores, puede que encuentre dificultades al desfragmentar un volumen en el que la compresión NTFS esté habilitada y se use ampliamente. Una herramienta de terceros puede ser también útil en un escenario de este tipo.

¿Cómo se produce la fragmentación?

La fragmentación se produce porque los archivos cambian con el tiempo. En condiciones ideales los propios archivos de Windows no cambian. O por lo menos, no cambian muy a menudo, realmente sólo con los service pack y las instalaciones de actualización de software. En otros casos los archivos de sistema permanecen relativamente constantes. Tras realizar una actualización a gran escala como la instalación de un service pack, la fragmentación ocurrirá de manera natural puesto que los archivos que se han actualizado generalmente no se pueden sobrescribir donde están en el disco, y pueden requerir un rearranque para actualizarse, lo cual provoca aún más fragmentación.

Por otro lado, los archivos y datos de usuario (y el Registro de Windows), están sujetos a cambios constantes. La lectura, escritura, edición, copia y eliminación de archivos generan una gran cantidad de fragmentación, especialmente a medida que se llena la capacidad del disco duro.

Para visualizar esto, imagínese un disco perfectamente distribuido, en el que los archivos ocupan espacio de manera contigua, sin espacio entre ellos. Suponga que abre un archivo, lo edita y, a continuación, trata de guardarlo. Si el archivo ha crecido, Windows tiene que guardarlo en su totalidad en otra parte del disco (imagine que tras el archivo N) o bien tiene que guardar los datos más nuevos tras el archivo N. Esto significa que el archivo 2 está ahora fragmentado. Si ahora edita el archivo 1, tendrá dos archivos fragmentados. Si esta operación se repite a lo largo del tiempo, terminará con un sistema considerablemente fragmentado en el cual la unidad de disco tiene que buscar en múltiples ubicaciones para tener acceso a un mismo archivo. Con archivos de bases de datos grandes, archivos de disco duros ampliados para tecnologías informáticas virtuales e ingentes cantidades de vídeo y audio almacenados en un disco de capacidad media, la fragmentación es muy común. Por supuesto, el cada vez mayor tamaño de los discos duros actuales ha reducido en gran medida el problema de la desfragmentación, pero no lo ha hecho desaparecer. Y los portátiles más antiguos con discos duros más pequeños responderán cada vez peor, serán más lentos al arrancar y tardarán más tiempo en abrir y guardar los archivos.

El problema clave no es necesariamente el nivel de fragmentación del sistema, sino el de los archivos individuales. Desde que llegaron al mercado los primeros desfragmentadores de disco con efectos visuales multicolores, los usuarios creyeron que lo más deseable era contar con una barra sólida de color. Sin embargo, de hecho, esto está lejos de ser lo más deseable. Algunos productos tratan de hacer que los discos de los usuarios aparezcan como dos bloques, uno de color (datos del archivo) y otro generalmente blanco (espacio disponible). Desgraciadamente, se trata de una de las peores cosas que puede hacer a un disco si su intención es minimizar la frecuencia y costo de la desfragmentación. Si ha comprimido mucho todos datos de los archivos en la parte frontal del disco y ha eliminado gran parte del espacio disponible al realizar ediciones adicionales en el archivo, todas esas ediciones tendrán que escribirse al final de los datos de los archivos, por lo que al desfragmentar de ese modo, ya ha provocado realmente la fragmentación, empezando con la siguiente edición del archivo. En vez de dos bloques de datos de archivos perfectamente organizados, una buena desfragmentación ofrece como resultado una imagen que no es necesariamente perfecta. Si desea ver un ejemplo, consulte la figura 1 con mi sistema de ejemplo antes de la desfragmentación. A continuación, observe la figura 2 para ver el mismo sistema una vez Windows haya completado la desfragmentación.

Figura 1 Mi unidad de disco antes de la desfragmentación

Figura 1** Mi unidad de disco antes de la desfragmentación **(Hacer clic en la imagen para ampliarla)

Figura 2 Mi unidad de disco tras la desfragmentación

Figura 2** Mi unidad de disco tras la desfragmentación **(Hacer clic en la imagen para ampliarla)

Observe como Windows se centra no en la fragmentación de los archivos de todo el disco, sino en la propia fragmentación individual de archivos (consulte la figura 3 para ver la sección del informe de desfragmentación en los Archivos más fragmentados antes de desfragmentar este sistema).

Figura 3 Informe de desfragmentación

Figura 3** Informe de desfragmentación **

Como resultado, incluso después de la desfragmentación, Windows no mostrará un conjunto completamente compactado de datos de archivo en la parte frontal del disco. Observe también la sección grande de datos de color verde que hay en las figuras 1 y 2. Esto es el archivo de paginación de Windows, del que hablaré en breve. Si tiene la hibernación habilitada en el sistema Windows, su archivo se mostrará de manera parecida en una desfragmentación.

La desfragmentación habitual es esencial

Al igual que con la limpieza dental, es imprescindible recordar que la desfragmentación debe hacerse regularmente. Desfragmentar con frecuencia resulta aún más importante en sistemas de mucho uso como servidores, ya que si espera demasiado el proceso puede tardar demasiado y el servidor puede quedar no disponible o sin respuesta (ya que la desfragmentación puede tardar bastante tiempo y ciertas fases de la misma pueden requerir también un uso intensivo de la CPU).

Incluso los mejores desfragmentadores en línea no pueden desfragmentar todo. Por ejemplo, no siempre pueden desfragmentar archivos abiertos o bloqueados (como el archivo de paginación o los archivos del registro) y deben evitar el archivo de hibernación si éste existe (que es tan grande como la RAM en uso en el sistema). Para optimizar los archivos bloqueados, consulte la sección siguiente sobre trucos de desfragmentación.

Creo que es importante comprender los mitos y los hechos asociados a la desfragmentación. La figura 4 y la figura 5 enumeran algunos temas comunes que siempre surgen al hablar sobre la desfragmentación y explican las posibilidades reales de que ocurran estos problemas.

Figure 5 Mitos sobre la desfragmentación

Mito Probabilidad
Los sistemas se bloquearán. No es probable, los bloqueos se deben generalmente a los problemas del controlador o del hardware (daños en la memoria, problemas de carácter térmico que provocan rearranques o error del disco debido al abuso térmico del disco).
Las aplicaciones se bloquearán. No es probable, al igual que con un sistema entero, una aplicación adecuadamente diseñada no debe bloquearse debido a la fragmentación, así pues, a menos que se demuestre que ésta es la causa, no debe asumir que es culpa de la fragmentación.
Se generarán daños en el registro. No es probable (consulte más arriba), la fragmentación no provoca ni conlleva daños para el registro.
La desfragmentación debe generar como resultado una barra sólida en cualquier representación visual del disco. No es probable, no debe comprimir juntos todos los archivos en el sistema a menos que planee específicamente crear una imagen del sistema con una herramienta de generación de imágenes basada en sectores que no excluya el espacio disponible ni reduzca o divida las particiones. Necesita ubicar los archivos en la parte frontal del disco; de lo contrario, la consolidación radical de archivos sólo resultará en una mayor fragmentación.
   

Figure 4 Dudas comunes sobre la desfragmentación

Duda Probabilidad
El rendimiento del sistema se verá afectado. Alta, dependiendo del uso específico del sistema.
La recuperación de archivos eliminados accidentalmente puede ser difícil o incluso puede que no sea posible. Alta, la mayoría de las herramientas de recuperación de archivos dependen de la heurística (determinar el tipo de datos) y de la proximidad del clúster de archivo. Los archivos dispersos provocan una operación de recuperación más compleja o irrealizable.
Será difícil desfragmentar el sistema. Mediana, hay una correlación directa entre la frecuencia con que se usa el sistema y los cambios de los archivos en el sistema con el tiempo. Si los usuarios editan con mucha frecuencia los archivos pero los guardan sólo en recursos compartidos del servidor, por ejemplo, no observará mucha degradación con el tiempo.
Se producirán daños en el disco. Baja, poco probable. De nuevo, si realiza un uso abusivo del sistema (lo deja encendido con los discos funcionando durante todo el tiempo, editando, modificando o eliminando archivos) es muy probable que esto ocurra. Pero con el hardware actual, esto no debería ocurrir simplemente motivado por la edición de archivos.
   

La desfragmentación como parte de su infraestructura

Debe considerar seriamente ejecutar un desfragmentador con regularidad en todos sus sistemas. Sus opciones son usar el desfragmentador integrado en Windows o consultar las opciones de terceros. Básicamente, se reduce a la cantidad de ingeniería que desea poner en marcha. Windows XP y versiones posteriores le permiten agregar defrag.exe como Tarea programada, el artículo de Knowledge Base support.microsoft.com/kb/555098 le muestra como hacerlo. Tenga en cuenta que la desfragmentación de un portátil conlleva ciertas consideraciones especiales. Lo deseable es desfragmentar un sistema de usuario cuando está encendido, idealmente mediante alimentación eléctrica, pero por otra parte no es deseable usar ciclos de la CPU o del disco cuando un usuario móvil está intentando llevar a cabo su trabajo. Desgraciadamente, cuando un usuario móvil no está trabajando en su sistema, lo más probable es que se encuentre desconectado de la corriente o bien esté en modo de espera o en hibernación (lo que equivale a estar apagado desde la perspectiva de la administración de energía y las Tareas programadas). En Winternals (como probablemente en todas partes), empleamos bastante tiempo intentando diseñar un escenario ideal para usuario móvil. Si usa Windows Vista, una solución que emplee el desfragmentador integrado y las Tareas programadas, que cuentan con una mejor percepción de la energía que en versiones anteriores, podría ser la adecuada. En caso contrario, puede ser necesaria una solución de terceros para sistemas móviles. Algunos de éstos inician realmente una tarea de desfragmentación, le indican que se ejecutó, cuándo se ejecutó (y con qué frecuencia) y cuánto tiempo duró.

Además de los escenarios móviles, también es deseable pensar en la fragmentación más allá del sistema de archivos. Esto no es algo por lo que generalmente deba estar preocupado en sistemas de escritorio o móviles, sin embargo los servidores Microsoft Exchange, SQL ServerTM u otros almacenes de datos pueden requerir su propia desfragmentación. En esos casos, es necesario decidir si esta operación debe hacerse antes o después de haber llevado a cabo una desfragmentación del sistema de archivos.

Si usa un desfragmentador de terceros, asegúrese de que usa la API de desfragmentación de Windows. Desde Windows NT 4.0, Windows ha tenido su propia API de desfragmentación para evitar pérdidas de datos inesperadas. Por ejemplo, si se encuentra en el proceso de mover un archivo y su sistema se queda sin alimentación, lo último que desea es un movimiento de fragmentación incompleto, que podría tener como resultado la pérdida de datos e incluso impedir que el sistema pueda arrancar.

Finalmente, si usa cualquier tecnología informática virtual, puede que desee considerar cómo administrar también la desfragmentación de los discos virtuales. Son tan propensos a la fragmentación como sus equivalentes físicos y en muchos sentidos puede ser peor debido a sus restricciones de tamaño. Además, si su solución de virtualización le permite reducir discos o particiones, puede que necesite desfragmentar en primer lugar para liberar espacio (o como mínimo, reducir la cantidad de tiempo que una operación de reducción pudiera tardar).

Herramientas adicionales

En este momento, seguramente estará convencido de que la desfragmentación es una función importante y valiosa. Incluso si no usa una herramienta de terceros para la propia desfragmentación, puede que desee considerar una herramienta de Mark Russinovich llamada PageDefrag, que puede obtener del sitio de herramientas de Microsoft Sysinternals (consulte microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx). Tal como mencioné anteriormente, el archivo de paginación de Windows no puede desfragmentarse mientras Windows está en línea. De hecho, los mismo puede aplicarse a los archivos del registro de Windows y a los registros de eventos. PageDefrag le permite desfragmentar estos archivos bloqueados antes de que Windows haya terminado de arrancar y bloquearlos con un pequeño controlador. Para usarlo, ejecute simplemente PageDefrag y configúrelo para que se ejecute en el próximo rearranque o en cada uno de ellos. Cuando el sistema se reinicie (en el punto en el proceso de arranque en el que puede haber observado anteriormente una ejecución de comprobación de disco), se desfragmentarán los archivos especificados en la lista (consulte la figura 6).

Figura 6 Archivos que desfragmentar en PageDefrag

Figura 6** Archivos que desfragmentar en PageDefrag **

Una vez que PageDefrag se ha completado, el sistema terminará de arrancar normalmente. Si desea obtener más información sobre PageDefrag, Lance Whitney escribió sobre él en la columna de septiembre de Utility Spotlight (consulte technetmagazine.com/issues/2007/09/UtilitySpotlight). Tenga en cuenta que PageDefrag sólo es compatible con Windows NT 4.0, Windows 2000, Windows XP y Windows Server 2003, actualmente no es compatible con Windows Vista.

Además de PageDefrag, hay otra herramienta disponible de Sysinternals llamada Contig, que le permite desfragmentar un archivo específico manualmente (consulte microsoft.com/technet/sysinternals/FileAndDisk/Contig.mspx). Esto puede ser útil si un archivo específico no pudo desfragmentarse mediante una tarea normal de desfragmentación o si ha sido fragmentado desde entonces (pero el resto del volumen no está tan fragmentado).

Contig puede desfragmentar también todo un directorio o subdirectorios mediante caracteres comodín. A continuación se desfragmentarán todos archivos bajo el directorio de Windows, independientemente de dónde estén ubicados.

Contig –s c:\Windows\*.*

Aplicar el conmutador -v hará la operación detallada y -q la hará ejecutarse en silencio.

Wes Miller es director de desarrollo de Pluck (www.pluck.com) en Austin, Texas. Anteriormente, trabajó en Winternals Software, en Austin, y en Microsoft como director de programas y director de productos para Windows. Si lo desea, puede ponerse en contacto con Wes en la dirección technet@getwired.com.

© 2008 Microsoft Corporation and CMP Media, LLC. Reservados todos los derechos; queda prohibida la reproducción parcial o total sin previa autorización.