GNU/Linux >> Tutoriales Linux >  >> Linux

En Linux, ¿cómo se comprueba si un disco está fragmentado?

Puede ejecutar fsck.ext2 de manera segura en un sistema de archivos ext2 ext3 o ext4 incluso si está montado de esta manera

sudo fsck.ext2 -fn /dev/sdXY

Si la unidad está montada, generará muchos errores, pero el argumento -n le dice que no toque la unidad.

$ sudo fsck.ext2 -fn /dev/sda1
e2fsck 1.42 (29-Nov-2011)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Ubuntu_Rescue: 291595/1222992 files (0.2% non-contiguous), 1927790/4882432 blocks

La familia moderna de sistemas de archivos ext tiene en cuenta el equilibrio y la contigüidad al asignar archivos. En ext3 y ext4, el equilibrio generalmente se realiza aplicando entradas de diario en orden, y en ext4 específicamente, mediante la asignación previa de extensiones del sistema de archivos para aumentar los bloques contiguos. Es posible que no valga la pena buscar niveles de fragmentación inferiores al 20%, especialmente si su sistema accede a algunos archivos repetidamente. Sugiero seguir estas tácticas para aumentar la velocidad de lectura para un sistema de un solo disco:

  • aumentar ram:esto aumenta el caché del sistema de archivos

  • aumentar el tamaño del bloque:al pasar de 1k a 4k tamaños de bloque, obtiene un mejor rendimiento en las lecturas de archivos cercanos o más grandes que su tamaño de bloque

  • si es pedante, puede organizar archivos grandes y archivos pequeños en particiones por su tamaño de bloque, es posible que solo quiera hacer esto si almacenó fotos, videos y código fuente en directorios separados

  • aumente su configuración de lectura anticipada usando hdparm y/o la utilidad de modo portátil

  • haga una copia de seguridad y restaure su sistema de archivos de forma lineal, como con tar

Si tiene varios discos y utiliza bandas de raid y/o LVM, debe tener en cuenta otros factores, como el tamaño de banda.


Sí, hay un fsck específico invocación (como root o sudo):

$ fsck /dev/sdXY

Reemplace X e Y con los parámetros correctos para su caso (por ejemplo, /dev/sda1 ).

¡NO EJECUTE ESTO EN UNA PARTICIÓN MONTADA! Puede dañar seriamente su sistema de archivos.

Para obtener más información sobre Linux y la desfragmentación, consulte mi respuesta aquí.

Si no necesita ejecutar fsck específicamente, pero solo desea verificar la fragmentación de su unidad, la siguiente secuencia de comandos (tomada de aquí) debería funcionar:

#!/usr/bin/perl -w

#this script search for frag on a fs
use strict;

#number of files
my $files = 0;
#number of fragment
my $fragments = 0;
#number of fragmented files
my $fragfiles = 0;

#search fs for all file
open (FILES, '-|', "find '$ARGV[0]' -xdev -type f -print0");

$/ = "\0";

while (defined (my $file = <FILES>)) {
        open (FRAG, "-|", "filefrag", $file);
        my $res = <FRAG>;
        if ($res =~ m/.*:\s+(\d+) extents? found/) {
                my $fragment = $1;
                $fragments += $fragment;
                if ($fragment > 1) {
                        $fragfiles++;
                }
                $files++;
        } else {
                print ("$res : not understand for $file.\n");
        }
        close (FRAG);
}
close (FILES);

print ( $fragfiles / $files * 100 . "% non contiguous files, " . $fragments / $files . " average fragments.\n"); 

Luego puede ejecutarlo en el directorio (o punto de montaje) en cuestión:

$ frag_check.pl $HOME/
  1.32410691664555% non contiguous files, 1.05380668862427 average fragments.

Linux
  1. Cómo particionar un disco en Linux

  2. Cómo encontrar archivos en Linux

  3. Cómo verificar la versión de Redhat

  4. Cómo verificar la zona horaria en Linux

  5. Cómo cambiar el nombre de los archivos en Linux

Cómo verificar el uso del espacio en disco en Linux usando Ncdu

Cómo verificar si está en sesión de pantalla o no en Linux

Cómo enumerar particiones de disco en Linux

Cómo verificar bloques defectuosos o sectores defectuosos en el disco duro en Linux

Cómo verificar el espacio libre en disco en Linux

Cómo verificar el tamaño de los archivos y directorios en Linux