El desfragmentador de Windows Vista

El desfragmentador de Windows Vista.

Reproduzco un comentario de un usuario:

El desfragmentador de Windows Vista pienso que es bastante malo, ¿qué han hecho los chicos de MS? No hay barra de progreso y lo que es más importante, si analizo una partición desfragmentada desde Vista aún sigo viendo mucha fragmentación. ¿Cómo lo han empeorado tanto?

Aunque le parezca lo contrario, el desfragmentador incluido en Windows Vista es mucho mejor que el de su predecesor. En este artículo explicare cómo funciona internamente, centrándome en las quejas más frecuentes que he ido recibiendo.

¿Por qué no hay barra de progreso al desfragmentar?

Una barra de progreso en un proceso de desfragmentación es una incorrección. Todo proceso de desfragmentación del espacio en disco es un proceso en el cual se siguen múltiples fases: una para desfragmentar archivos, otra para consolidar el espacio libre en disco, etc. Cada una de estas fases puede durar un tiempo variable, por lo que la barra de progreso del desfragmentador de Windows XP carece de sentido práctico.

Los resultados del desfragmentador difieren de los del de XP

En efecto, el desfragmentador de Windows Vista utiliza un algoritmo distinto del de Windows XP. Es mucho más eficiente.

El algoritmo empleado en Windows XP podría simplificarse del modo siguiente:

Todo archivo del disco que esté en, al menos, dos posiciones no contiguas del disco se marca como fragmentado. El desfragmentador obtendrá ese dato y unirá todas las partes para, posteriormente, compactar el espacio libre en disco.

Esto supone dos puntos negativos:

  • Se requiere de un cierto espacio libre en disco para poder realizar la desfragmentación. En el caso de Windows XP este espacio mínimo es de un15%. En Windows Vista no hay espacio libre mínimo necesario.
  • Si los fragmentos son demasiado grandes el tiempo empleado en mover los bloques es superior a la ganancia en rendimiento obtenida.

Quiero precisar sobre el último punto: En un volumen NTFS, el salto de un fragmento a otro consume un bajísimo porcentaje de tiempo en comparación con el tiempo que se tarda en leer un bloque no fragmentado.

Partiendo de bloques de 64 MB o más, no merece la pena mantenerlos contiguos, el esfuerzo necesario para ello no compensa la ganancia de rendimiento.

Debido a esta optimización, el desfragmentador de Vista reduce el consumo de CPU de manera considerable.

El desfragmentador hace uso de la característica Low-priority I/Os de Windows Vista

Una de las nuevas posibilidades del núcleo de Windows Vista que más me gusta son las low-priority I/Os.

Así, un desarrollador, que antes podía ejecutar procesos con baja prioridad, ahora puede realizar entradas/salidas igualmente con baja prioridad.

En Windows Vista el servicio de indizado, Windows Defender, las aplicaciones que se inician con Windows, y el desfragmentador (entre otros) hacen uso de entradas/salidas de baja prioridad.

El objetivo de Microsoft es que el usuario pueda desfragmentar el disco mientras utiliza cómodamente el PC.

Todo el proceso de desfragmentación se hace empleando entradas/salidas de baja prioridad en el momento que se detecte actividad en el sistema.

La única excepción es la fase en la que se desfragmenta la MFT del disco. Puede hacer la prueba, inicie el proceso de desfragmentación, deje el sistema sin usarlo y observe el consumo de recursos.

Efectivamente es alto, pero ahora realice tareas en el sistema, verá como el consumo disminuye (aumentará lógicamente el tiempo de desfragmentado).

Hay una tarea programada que desfragmenta el disco

Windows Vista incorpora una tarea programada para desfragmentar el disco.

Puede acceder a ella desde Administración de equipos, Herramientas del sistema, Programador de tareas, Biblioteca del Programador de tareas, Microsoft, Windows, Defrag.

Esta tarea sólo se realiza cuando el sistema está inactivo, por lo que si despliega la pestaña Historial quizá observe que la tarea se ha iniciado, detenido e iniciado de nuevo un sin fin de veces.

Es normal, se detectó actividad en el equipo y la tarea se detuvo, para continuarse tan pronto como el sistema vuelva a estar inactivo.

Así pues, ya ve que el desfragmentador incluido en Windows Vista es mucho más eficiente y menos intrusivo que el de Windows XP, a pesar de que la interfaz gráfica sea demasiado «simple» y esto pueda confundir a los usuarios.

Una última optimización del desfragmentador de Windows Vista que no quiero dejar sin comentar tiene que ver con el almacén de copias sombra (shadow copies).

El nuevo algoritmo de desfragmentación está diseñado del tal forma que se reduce el número de operaciones copy-on-write en el disco.

Si esto no fuera así, el almacén de copias sombra y puntos de restauración de Windows Vista vería acelerado su llenado,perdiéndose por tanto el contenido más antiguo del mismo.

Escrito por Daniel Martín