Una de las primeras cosas que hacíamos hace ya bastante años atrás, era el proceso de realizar una desfragmentación sobre los discos duros de nuestras computadoras.
Algunos, los valíamos de software "especializado" como Norton Disk Doctor u otros.
La biblioteca de conocimiento popular Wikipedia, define la fragmentación de la siguiente manera:
"La desfragmentación es el proceso conveniente mediante el cual se acomodan los archivos en un disco para que no se aprecien fragmentos de cada uno de ellos, de tal manera que quede contiguo el archivo y sin espacios dentro del mismo. Al irse escribiendo y borrando archivos continuamente en el disco duro, los fragmentos tienden a no quedar en áreas continuas, así, un archivo puede quedar "partido" en muchos pedazos a lo largo del disco, se dice entonces que el archivo está "fragmentado".
Al tener fragmentos de incluso un archivo esparcidos por el disco, se vuelve ineficiente el acceso a los archivos.
Los fragmentos de uno o varios archivos es lo que hace factible la desfragmentación.
El problema de almacenamiento no contiguo de los archivos se denomina fragmentación, es conveniente desfragmentar el almacenamiento de los archivos en dispositivos de almacenamiento electromecánicos por el uso del computador. (Los SSD no son mecánicos)."
En el caso de Oracle Linux podemos usar el comando xfs_fsr para desfragmentar sistemas de archivos XFS completos o archivos individuales dentro de un sistema de archivos XFS.
Como XFS es un sistema de archivos basado en la extensión, generalmente no es necesario desfragmentar un sistema de archivos completo, y no se recomienda hacerlo.
Si ejecuta el comando xfs_fsr sin ninguna opción, el comando desfragmenta todos los sistemas de archivos XFS grabables y actualmente montados que se enumeran en /etc/mtab.
Durante un período de dos horas, el comando pasa por cada sistema de archivos a su vez, intentando desfragmentar el diez por ciento superior de los archivos que tienen la mayor cantidad de extensiones. Después de dos horas, el comando registra su progreso en el archivo /var/tmp/.fsrlast_xfs, y se reanuda desde ese punto si ejecuta el comando nuevamente.
Con el comando xfs_db -r -c "frag -f" se puede evaluar los cambios realizados sobre el nivel de desfragmentación en el sistema de archivos.
Nota: Existen múltiples bugs registrados en MOS, asociados al emplear este comando sobre sistemas de archivos en donde existen archivos de datos repositorios de TABLESPACES, de una base de datos Oracle. Mi recomendación es, evaluar el nivel de fragmentación y si esta es lo suficiente significativa como para realizar esta tarea de mantenimiento, se debe crear una ventana de tiempo, bajar la base de datos y proceder a ejecutar la tarea.
[root@Lab1BD]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.8G 0 2.8G 0% /dev
tmpfs 2.8G 36K 2.8G 1% /dev/shm
tmpfs 2.8G 57M 2.8G 2% /run
tmpfs 2.8G 0 2.8G 0% /sys/fs/cgroup
/dev/mapper/ol_lab1bd-root 50G 12G 39G 23% /
/dev/sda1 1014M 169M 846M 17% /boot
/dev/mapper/ol_lab1bd-home 2.1T 639G 1.5T 31% /home
tmpfs 571M 0 571M 0% /run/user/0
tmpfs 571M 0 571M 0% /run/user/54321
[root@Lab1BD]# xfs_db -r -c "frag -f" /dev/mapper/ol_lab1bd-home
actual 71329, ideal 4587, fragmentation factor 93.57%
Note, this number is largely meaningless.
Files on this filesystem average 15.55 extents per file
[root@Lab1BD]# xfs_fsr -v /dev/mapper/ol_lab1bd-home
/home start inode=0
ino=174
extents before:11889 after:1 DONE ino=174
ino=186
extents before:17 after:2 ino=186
ino=187
extents before:6 after:1 DONE ino=187
ino=172
extents before:5 after:1 DONE ino=172
ino=188
extents before:5 after:1 DONE ino=188
ino=189
extents before:5 after:1 DONE ino=189
ino=182
extents before:3 after:1 DONE ino=182
ino=144
extents before:2 after:1 DONE ino=144
ino=149
extents before:2 after:1 DONE ino=149
ino=4810
extents before:624 after:1 DONE ino=4810
ino=4789
extents before:40 after:3 ino=4789
ino=4797
extents before:38 after:3 ino=4797
ino=4793
extents before:37 after:2 ino=4793
ino=4796
extents before:37 after:1 DONE ino=4796
ino=4799
extents before:38 after:2 ino=4799
ino=4801
extents before:36 after:2 ino=4801
ino=4802
extents before:36 after:2 ino=4802
ino=4792
extents before:35 after:1 DONE ino=4792
ino=4794
extents before:34 after:2 ino=4794
ino=4795
[root@Lab1BD]# xfs_db -r -c "frag -f" /dev/mapper/ol_Lab1bd-home
actual 58883, ideal 4588, fragmentation factor 92.21%
Note, this number is largely meaningless.
Files on this filesystem average 12.83 extents per file
[root@Lab1BD]#