GNU/Linux >> Tutoriels Linux >  >> Linux

Sous Linux, comment vérifier si un disque est fragmenté ?

Vous pouvez exécuter fsck.ext2 en toute sécurité sur un système de fichiers ext2 ext3 ou ext4 même s'il est monté comme ceci

sudo fsck.ext2 -fn /dev/sdXY

Si le lecteur est monté, il générera de nombreuses erreurs, mais l'argument -n lui indique de ne pas toucher le lecteur.

$ 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 famille de systèmes de fichiers ext moderne prend en compte l'équilibrage et la contiguïté lors de l'allocation des fichiers. Dans ext3 et ext4, l'équilibrage est généralement pris en charge en appliquant les entrées de journal dans l'ordre, et dans ext4 en particulier, en pré-allouant des extensions de système de fichiers pour augmenter les blocs contigus. Rechercher des niveaux de fragmentation inférieurs à 20 % ne vaut peut-être pas la peine, surtout si votre système accède à quelques fichiers de manière répétée. Je suggère de poursuivre ces tactiques pour augmenter la vitesse de lecture d'un système à disque unique :

  • augmenter la ram :cela augmente le cache du système de fichiers

  • augmenter la taille des blocs :en passant de 1 k à 4 k, vous obtenez de meilleures performances en lecture pour les fichiers proches ou supérieurs à la taille de votre bloc

  • si vous êtes pédant, vous pouvez organiser les fichiers volumineux et les petits fichiers en partitions en fonction de leur taille de bloc, vous ne voudrez peut-être le faire que si vous avez stocké des photos, des vidéos et du code source dans des répertoires séparés

  • augmentez votre paramètre de lecture anticipée à l'aide de hdparm et/ou de l'utilitaire en mode ordinateur portable

  • sauvegardez et restaurez votre système de fichiers de manière linéaire, comme avec tar

Si vous avez plusieurs disques et que vous utilisez la segmentation RAID et/ou LVM, vous devez prendre en compte d'autres facteurs, tels que la taille de la bande.


Oui, il existe un fsck spécifique invocation (en tant que root ou sudo) :

$ fsck /dev/sdXY

Remplacez X et Y par les paramètres corrects pour votre cas (par exemple, /dev/sda1 ).

NE PAS EXÉCUTER CECI SUR UNE PARTITION MONTÉE ! Cela peut sérieusement endommager votre système de fichiers.

Pour plus d'informations sur Linux et la défragmentation, voir ma réponse ici.

Si vous n'avez pas besoin d'exécuter spécifiquement fsck, mais que vous souhaitez simplement vérifier la fragmentation de votre lecteur, le script suivant (tiré d'ici) devrait faire l'affaire :

#!/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"); 

Vous pouvez ensuite l'exécuter sur le répertoire (ou point de montage) en question :

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

Linux
  1. Comment partitionner un disque sous Linux

  2. Comment trouver des fichiers sous Linux

  3. Comment vérifier la version de Redhat

  4. Comment vérifier le fuseau horaire sous Linux

  5. Comment renommer des fichiers sous Linux

Comment vérifier l'utilisation de l'espace disque sous Linux à l'aide de Ncdu

Comment vérifier si vous êtes en session d'écran ou pas sous Linux

Comment répertorier les partitions de disque sous Linux

Comment vérifier les blocs défectueux ou les secteurs défectueux sur le disque dur sous Linux

Comment vérifier l'espace disque libre sur Linux

Comment vérifier la taille des fichiers et du répertoire sous Linux