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 3 e 20 (in 17 versioni)
Versione 3 del 08/09/2007 13.25.45
Dimensione: 2824
Autore: MarcoBelli
Commento: corretti alcuni spazi
Versione 20 del 07/02/2023 23.35.30
Dimensione: 3898
Commento: riscritta guida per utilizzo e4defrag
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
= Controllare lo stato di frammentazione del File System =
Lo script descritto di seguito, che fa un uso iterativo del comando ''filefrag'', permette di verificare lo stato di frammentazione del vostro file system, restituendo i seguenti dati:
## page was renamed from AmministrazioneSistema/FrammentazioneFileSystem
## page was renamed from FrammentazioneFileSystem
#format wiki
#language it
<<BR>>
<<Indice(depth=1)>>
<<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=642430&p=5223149";rilasci="18.04 20.04 22.04")>>
Linea 4: Linea 9:
 * percentuale di file non contigui
 * numero medio di frammenti per file
= Introduzione =
Linea 7: Linea 11:
E' ovvio che minori sono questi valori, migliori saranno le prestazioni del vostro file system. Lo script è stato testato su file system '''Ext3''' e '''RaiserFS''', ma dovrebbe funzionare su tutti i file system supportati dal comando ''filefrag''. Di seguito è esposto l'utilizzo di '''e4defrag''', strumento per deframmentare filesystem ext4.
Linea 9: Linea 13:
Lo script, scritto in PERL: Rispetto ai filesystem in uso con i sistemi Microsoft, quelli per GNU/Linux (ext2/3/4, ZFS, btrfs, ecc.) usano sistemi di allocazione "intelligenti" per evitare un'eccessiva frammentazione dei file.<<BR>>
Tuttavia potrebbe risultare necessario deframmentare il filesystem in alcuni casi, ad esempio qualora lo spazio disponibile in una partizione sia limitato.
Linea 11: Linea 16:
{{{
#!/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 -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");
{{{#!wiki important
__Non__ è necessario deframmentare se in uso un drive SSD. Inoltre ripetute deframmentazioni nel lungo periodo potrebbero danneggiare il dispositivo.
Linea 61: Linea 20:
nella vostra directory home, o in qualsiasi altra directory del vostro utente, create il file che conterrà lo script con il comando: = Installazione =
Linea 63: Linea 22:
{{{
gedit fragck.pl
Lo strumento è preinstallato in Ubuntu.

= Utilizzo =

{{{#!wiki note
Qualora si debba deframmentare un disco esterno, [[Hardware/DispositiviPartizioni/IndividuarePartizioni|individuare]] il dispositivo.<<BR>>
'''e4defrag''' può essere eseguito "online" (ossia con il sistema operativo avviato e in funzione). Per una maggiore sicurezza è possibile anche usarlo in sessione "live", eseguendo inoltre un backup dei dati.<<BR>>
La durata della deframmentazione potrebbe durare a lungo, a seconda di diverse variabili (numero e posizione dei file frammentati, dimensioni della partizione, velocità del disco, prestazioni del PC ecc.).
Linea 67: Linea 32:
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
L'utilizzo è molto semplice e prevede la seguente sintassi:{{{
sudo e4defrag [opzione] /percorso/della/directory
Linea 75: Linea 36:
A questo punto, eseguite lo script con i permessi di root tramite sudo: Le opzioni sono solo due:
 * '''-c''': compie soltanto un'analisi della partizione, indicando quanti e quali file sono frammentati e se è necessario deframmentare.
 * '''-v''': mostra il conteggio dei file deframmentati ed eventuali errori.
Linea 77: Linea 40:
{{{
sudo fragck.pl
= Esempi di utilizzo =

A seconda delle proprie necessità digitare nel [[AmministrazioneSistema/Terminale|terminale]] uno o più comandi fra quelli seguenti, modificandoli se necessario.

 * Per rilevare e visualizzare la quantità di file frammentati nell'intero sistema:{{{
sudo e4defrag -c /
}}}
 Il risultato sarà simile al seguente:{{{
e4defrag 1.45.5 (07-Jan-2020)
<Fragmented files> now/best size/ext
1. /var/log/wtmp 20/1 4 KB
2. /var/log/wtmp.1 4/1 4 KB
3. /root/.cache/mesa_shader_cache/index 118/1 5 KB
4. /var/log/auth.log.2.gz 3/1 4 KB
5. /var/lib/fwupd/pending.db 5/1 5 KB

 Total/best extents 180442/178752
 Average size per extent 70 KB
 Fragmentation score 0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (/) does not need defragmentation.
 Done.
}}}
 Come indicato nell'output, in questo caso non è necessario eseguire la deframmentazione (`score` inferiore a 30).

 * Per deframmentare un intero sistema installato su un'unica partizione:{{{
sudo e4defrag -v /
Linea 81: Linea 69:
E dopo pochi secondi, avrete lo stato del vostro file system:

{{{
11.4397649363369% non contiguous files, 1.62370225269344 average fragments
 * Per deframmentare la partizione `/dev/sda3`:{{{
sudo e4defrag -v /dev/sda3
Linea 87: Linea 73:
'''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  * Per deframmentare tutte le partizioni del disco interno:{{{
sudo e4defrag -v /dev/sda*
}}}

 * Per deframmentare una partizione [[Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata|/home separata]]:{{{
sudo e4defrag -v /home
}}}

 * Per deframmentare la partizione `/dev/sdb1` su disco esterno:{{{
sudo e4defrag -v /dev/sdb1
}}}

= Ulteriori risorse =

 * [[https://it.wikipedia.org/wiki/Deframmentazione|Deframmentazione]] (pagina enciclopedica)

----
CategoryHardware CategoryAmministrazione


Guida verificata con Ubuntu: 20.04 22.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Di seguito è esposto l'utilizzo di e4defrag, strumento per deframmentare filesystem ext4.

Rispetto ai filesystem in uso con i sistemi Microsoft, quelli per GNU/Linux (ext2/3/4, ZFS, btrfs, ecc.) usano sistemi di allocazione "intelligenti" per evitare un'eccessiva frammentazione dei file.
Tuttavia potrebbe risultare necessario deframmentare il filesystem in alcuni casi, ad esempio qualora lo spazio disponibile in una partizione sia limitato.

Non è necessario deframmentare se in uso un drive SSD. Inoltre ripetute deframmentazioni nel lungo periodo potrebbero danneggiare il dispositivo.

Installazione

Lo strumento è preinstallato in Ubuntu.

Utilizzo

Qualora si debba deframmentare un disco esterno, individuare il dispositivo.
e4defrag può essere eseguito "online" (ossia con il sistema operativo avviato e in funzione). Per una maggiore sicurezza è possibile anche usarlo in sessione "live", eseguendo inoltre un backup dei dati.
La durata della deframmentazione potrebbe durare a lungo, a seconda di diverse variabili (numero e posizione dei file frammentati, dimensioni della partizione, velocità del disco, prestazioni del PC ecc.).

L'utilizzo è molto semplice e prevede la seguente sintassi:

sudo e4defrag [opzione] /percorso/della/directory

Le opzioni sono solo due:

  • -c: compie soltanto un'analisi della partizione, indicando quanti e quali file sono frammentati e se è necessario deframmentare.

  • -v: mostra il conteggio dei file deframmentati ed eventuali errori.

Esempi di utilizzo

A seconda delle proprie necessità digitare nel terminale uno o più comandi fra quelli seguenti, modificandoli se necessario.

  • Per rilevare e visualizzare la quantità di file frammentati nell'intero sistema:

    sudo e4defrag -c /

    Il risultato sarà simile al seguente:

    e4defrag 1.45.5 (07-Jan-2020)
    <Fragmented files>                             now/best       size/ext
    1. /var/log/wtmp                                20/1              4 KB
    2. /var/log/wtmp.1                               4/1              4 KB
    3. /root/.cache/mesa_shader_cache/index        118/1              5 KB
    4. /var/log/auth.log.2.gz                        3/1              4 KB
    5. /var/lib/fwupd/pending.db                     5/1              5 KB
    
     Total/best extents                             180442/178752
     Average size per extent                        70 KB
     Fragmentation score                            0
     [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
     This directory (/) does not need defragmentation.
     Done.

    Come indicato nell'output, in questo caso non è necessario eseguire la deframmentazione (score inferiore a 30).

  • Per deframmentare un intero sistema installato su un'unica partizione:

    sudo e4defrag -v /
  • Per deframmentare la partizione /dev/sda3:

    sudo e4defrag -v /dev/sda3
  • Per deframmentare tutte le partizioni del disco interno:

    sudo e4defrag -v /dev/sda*
  • Per deframmentare una partizione /home separata:

    sudo e4defrag -v /home
  • Per deframmentare la partizione /dev/sdb1 su disco esterno:

    sudo e4defrag -v /dev/sdb1

Ulteriori risorse


CategoryHardware CategoryAmministrazione