¿Por qué se fragmentan los discos?

18

Como parte del mantenimiento regular de Windows, defragmento mi disco duro. Pero, ¿por qué el disco duro se fragmenta en los sistemas NTFS y FAT *? Aparentemente ext * no, ¿por qué es esto? ¿Debería también desfragmentar mis unidades USB?

Simon Sheehan
fuente
No fragmente los dispositivos de estado sólido. Ni siquiera en Windows de Microsoft. Es malo para el dispositivo de estado sólido y no es necesario.
ctrl-alt-delor

Respuestas:

22

La fragmentación no es el problema que era hace 30 años. En aquel entonces, tenía discos duros que eran apenas más rápidos que los disquetes, y tamaños de memoria del procesador que eran minúsculos. Ahora tiene unidades muy rápidas y grandes memorias de procesador, y a veces un búfer sustancial en el disco duro o en el controlador. Además, los tamaños de sector se han vuelto más grandes (o los archivos se asignan en bloques más grandes) para que más datos sean inherentemente contiguos.

Los sistemas operativos también se han vuelto más inteligentes. Mientras que DOS 1.x habría recuperado cada sector del disco como se hizo referencia, un sistema operativo moderno puede ver que tiene un archivo abierto para acceso secuencial y puede predecir razonablemente que recuperará sectores adicionales una vez que haya consumido los que tienes ahora. Por lo tanto, puede "buscar previamente" los siguientes sectores (docenas).

Y además, a menudo es mejor no tener un archivo contiguo. En un sistema (grande) donde el sistema de archivos se distribuye en varias unidades, se puede acceder a un archivo más rápido si también se "propaga", ya que varios discos pueden buscar el archivo simultáneamente.

Desfragmento cada 2-3 años, ya sea que mi caja lo necesite o no.

[Agregaré que lo importante no es tanto si los datos en el disco se desfragmentan como si lo hace el espacio libre. FAT fue terrible en esto, a menos que desfragmentaras las cosas empeoraban cada vez más hasta que no había dos bloques contiguos de espacio libre. La mayoría de los otros esquemas pueden unir el espacio libre y asignar piezas de una manera algo "inteligente" para que la fragmentación alcance un cierto umbral y luego se estabilice, en lugar de empeorar cada vez más.]

Daniel R Hicks
fuente
2
No he desfragmentado un sistema desde 2005. Ahí lo dije.
BlueRaja - Danny Pflughoeft
2
@BlueRaja, si realiza muchas operaciones de disco en un almacenamiento giratorio, la desfragmentación ayuda. Recientemente descubrí que ejecutar una compilación de mi aplicación (2 GB de código fuente y activos) es aproximadamente un 20% más rápido después de la desfragmentación, y la caja tenía ~ 1 mes de antigüedad.
liori
2
Una publicación informativa y útil, pero no una respuesta a la pregunta original. Me sorprende ver esto aceptado.
EMP
No he desfragmentado mi sistema nunca. Ahora tiene unos 10 años. Acabo de hacer un escaneo por primera vez, los niveles de fragmentación son muy bajos (2.3% no contiguos). Estoy usando el sistema de archivos ext4. Además, nunca he realizado un análisis de virus; Nunca un problema
ctrl-alt-delor
13

TODOS los fragmentos de sistemas de archivos. ext y otros sistemas de archivos de Linux se fragmentan menos debido a la forma en que están diseñados, para citar a Wikipedia con respecto a la Guía de administradores de red de Linux :

Los sistemas de archivos modernos de Linux mantienen la fragmentación al mínimo al mantener todos los bloques en un archivo muy juntos, incluso si no pueden almacenarse en sectores consecutivos. Algunos sistemas de archivos, como ext3, asignan efectivamente el bloque libre más cercano a otros bloques en un archivo. Por lo tanto, no es necesario preocuparse por la fragmentación en un sistema Linux.

Sin embargo, debo señalar que ext4 tiene desfragmentación en línea, por lo que eventualmente la fragmentación ES un problema, incluso con los sistemas de archivos Linux.

Los sistemas de archivos de Windows tienen sus clústeres colocados donde haya espacio para colocarlos, y la desfragmentación se ejecuta y los reemplaza. Con Linux, los archivos se colocan preferentemente donde hay suficiente espacio.

Sin embargo, debo señalar que Windows 7 ha programado ejecuciones de desfragmentación, por lo que no es realmente necesario ejecutar la desfragmentación manualmente.

Journeyman Geek
fuente
Observo que la desfragmentación programada no estaba habilitada de manera predeterminada en ninguna de mis computadoras.
Simon Sheehan
55
ext* no se desfragmenta a medida que avanza. trac.transmissionbt.com/ticket/849 y h-online.com/open/features/… . ext*minimiza la fragmentación almacenando datos contiguos en ubicaciones aleatorias en el disco. Las compensaciones aleatorias extienden los archivos contiguos alrededor del disco y reducen la necesidad de fragmentar un archivo.
ta.speot.is
¿Alguna palabra sobre cómo Reiser / XFS evita la fragmentación? Siempre me he preguntado acerca de ellos, pero parecen en gran parte indocumentados en relación con la ext.
nuevo123456
1
editado para corregir mi respuesta mientras se realizaban esos comentarios. Ext4 hace desfragmentación en línea de lo que puedo decir. ext 2/3 dosen't.
Journeyman Geek
3
Por defecto en Windows 7, la desfragmentación está programada para el miércoles a la 1AM. Si su computadora nunca está encendida en este momento, es posible que nunca ocurra la desfragmentación. Yo personalmente recomendaría que permitas que se ejecute la desfragmentación programada semanalmente (o desfragmente de otra manera semanalmente), porque no toma mucho tiempo y garantizará al 100% que la fragmentación nunca se convierta en un problema.
jcrawfordor