⇤ ← Versione 1 del 08/09/2007 13.00.02
Dimensione: 2774
Commento: Da completare
|
Dimensione: 2819
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