Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Hardware/DispositiviPartizioni/FrammentazioneFileSystem"
Differenze tra le versioni 1 e 2
Versione 1 del 08/09/2007 13.00.02
Dimensione: 2774
Autore: MarcoBelli
Commento: Da completare
Versione 2 del 08/09/2007 13.24.57
Dimensione: 2819
Autore: MarcoBelli
Commento: completata
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 8: Linea 8:

'''NB: '''In Linux, e in particolare per il filesystem'''Ext3''', non è necessario deframmentare perchè per costruzione il file system tiene sotto controllo il problema. RaiserFS invece tende a frammentare i propri file, quindi questo script ha molto più valore.
Linea 86: Linea 84:
11.4397649363369% non contiguous files, 1.62370225269344 average fragments}}} 11.4397649363369% non contiguous files, 1.62370225269344 average fragments
}}}

'''NB: '''Il filesystem'''Ext3''' tiene sotto controllo il problema della frammentazione, quindi normalmente dovreste avere risultati con valori molto bassi. RaiserFS invece tende a frammentare i file, quindi questo script permette di tenere sotto controllo la situazione del file system e le sue prestazioni

Controllare lo stato di frammentazione del File System

Lo script descritto di seguito, che fa un uso iterativo del comandofilefrag, permette di verificare lo stato di frammentazione del vostro file system, restituendo i seguenti dati:

  • percentuale di file non contigui
  • numero medio di frammenti per file

E' ovvio che minori sono questi valori, migliori saranno le prestazioni del vostro file system. Lo script è stato testato su file systemExt3eRaiserFS, ma dovrebbe funzionare su tutti i file system supportati dal comandofilefrag.

Lo script, scritto in PERL:

#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 -xdev -type f |");

while (defined (my $file = <FILES>)) {
        #quote some chars in filename
        $file =~ s/!/\\!/g;
        $file =~ s/#/\\#/g;
        $file =~ s/&/\\&/g;
        $file =~ s/>/\\>/g;
        $file =~ s/</\\</g;
        $file =~ s/\$/\\\$/g;
        $file =~ s/\(/\\\(/g;
        $file =~ s/\)/\\\)/g;
        $file =~ s/\|/\\\|/g;
        $file =~ s/'/\\'/g;
        $file =~ s/ /\\ /g;
        #nb of fragment for the file
        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");

nella vostra directory home, o in qualsiasi altra directory del vostro utente, create il file che conterrà lo script con il comando:

gedit fragck.pl

nell'editor di testo copiato lo script, e salvate il file.

A questo punto, è necessario dare i permessi di esecuzione al file appena creato:

chmod u+x fragck.pl

A questo punto, eseguite lo script con i permessi di root tramite sudo:

sudo fragck.pl

E dopo pochi secondi, avrete lo stato del vostro file system:

11.4397649363369% non contiguous files, 1.62370225269344 average fragments

NB: Il filesystemExt3 tiene sotto controllo il problema della frammentazione, quindi normalmente dovreste avere risultati con valori molto bassi. RaiserFS invece tende a frammentare i file, quindi questo script permette di tenere sotto controllo la situazione del file system e le sue prestazioni