Dimensione: 2824
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
Deframmentazione (pagina enciclopedica)