Pagina 1 di 1
Domanda su ext4
Inviato: venerdì 20 agosto 2010, 17:55
da SuperAntani
Salve a tutti,
quando usavo windows usavo di conseguenza ntfs e non mi chiedevo come funzionava. Sapevo solo che qualsiasi cosa faceva, la faceva male. Invece con ext4 sono sorte le domande.
Mettiamo che (non fate caso alle proporzioni) abbia un hard disk da 10 byte completamente formattato in ext4.
Ubuntu scrive i byte regolarmente: mettiamo che io scriva prima un file da un byte, poi un file da 3, un file da 2 e infine un file da 4.
Ubuntu occupa precisamente tutti i byte del mio hard disk, poi io cancello il file da 1 byte e quello da 2 byte, per poi scriverne uno da 3.
Lo spazio disponibile è di 1 byte all'inizio dell'hard disk e di 2 byte dopo il file da 3.
Se io voglio scrivere un file da 3 byte come fa ubuntu a non frammentarlo? (da quel che so, ext4 frammenta del 2% circa ogni due anni).
Questa è la mia domanda, avrei voluto fare delle immagini rappresentative ma forse le farò dopo e le aggiungerò in seguito.
Ciao.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 18:02
da il_muflone
ciao
con queste dimensioni del disco ridicole, anche ext4 frammenta, è inevitabile.
tuttavia le scritture non funzionano in questa maniera, la scrittura di un file non è un'operazione atomica ma anzi è scomposta da tantissime operazioni: 100 MB sono composte da molte migliaia di scritture di un paio di KB.
quando un programma effettua una scrittura su disco, il driver di ext4 non esegue la scrittura immediatamente, in modo che quando il programma scriverà un altro pezzettino non verranno eseguite due scritture, col rischio di essere frammentate in due blocchi diversi, ma soltanto una che scriverà i due blocchi. (ovviamente i numeri sono maggiori)
la frammentazione si previene nella scrittura, non si cura dopo.
per questo tutti i fs ext operano bene fino a che c'è almeno un 10% di spazio libero sul disco.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 18:11
da SuperAntani
Scusa non ho capito molto bene, in pratica mi stai dicendo che quando ext4 scrive non scrive subito ma aspetta di ricevere altri dati in scrittura per non frammentare quel blocco di scrittura?
E poi (scusa se faccio tante domande ma voglio imparare) in effetti nell'esempio che ho fatto io, se ubuntu dovesse scrivere quel file di 3 byte negli spazi bianchi che ho descritto lo frammenterebbe quel file?
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 18:14
da albertoo
il_muflone ha scritto:
per questo tutti i fs ext operano bene fino a che c'è almeno un 10% di spazio libero sul disco.
Iscritto...quindi mi stai dicendo che per una corretta gestione del mio HDD devo avere almeno il 10% di spazio libero?? E in caso contrario??
???
Io ad esempio ho un HDD da 320 Gb...alias 32 Gb...non proprio bruscolini...
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 18:22
da il_muflone
SuperAntani ha scritto:Scusa non ho capito molto bene, in pratica mi stai dicendo che quando ext4 scrive non scrive subito ma aspetta di ricevere altri dati in scrittura per non frammentare quel blocco di scrittura?
esattamente, le scritture sono eseguite non immediatamente. per questo motivo è fortemente sconsigliato a chi non possiede una batteria/ups.
SuperAntani ha scritto:E poi (scusa se faccio tante domande ma voglio imparare) in effetti nell'esempio che ho fatto io, se ubuntu dovesse scrivere quel file di 3 byte negli spazi bianchi che ho descritto lo frammenterebbe quel file?
certamente, non esistono alternative.
albertoo ha scritto:Iscritto...quindi mi stai dicendo che per una corretta gestione del mio HDD devo avere almeno il 10% di spazio libero?? E in caso contrario??
???
Io ad esempio ho un HDD da 320 Gb...alias 32 Gb...non proprio bruscolini...
ho detto che le ext operano bene fino a che c'è almeno un 10% di spazio libero.
sotto quella soglia iniziano a frammentare alla grande, è un fatto fisiologico inevitabile.
(si dice che il
5% che mke2fs riserva su tutti i volumi serva a prevenire la frammentazione. non è vero ma se vuoi puoi crederci e vivere più sereno)
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 18:41
da SuperAntani
il_muflone ha scritto:
SuperAntani ha scritto:Scusa non ho capito molto bene, in pratica mi stai dicendo che quando ext4 scrive non scrive subito ma aspetta di ricevere altri dati in scrittura per non frammentare quel blocco di scrittura?
esattamente, le scritture sono eseguite non immediatamente. per questo motivo è fortemente sconsigliato a chi non possiede una batteria/ups.
SuperAntani ha scritto:E poi (scusa se faccio tante domande ma voglio imparare) in effetti nell'esempio che ho fatto io, se ubuntu dovesse scrivere quel file di 3 byte negli spazi bianchi che ho descritto lo frammenterebbe quel file?
certamente, non esistono alternative.
Bene, queste due cose sono chiarite.
albertoo ha scritto:Iscritto...quindi mi stai dicendo che per una corretta gestione del mio HDD devo avere almeno il 10% di spazio libero?? E in caso contrario??
???
Io ad esempio ho un HDD da 320 Gb...alias 32 Gb...non proprio bruscolini...
ho detto che le ext operano bene fino a che c'è almeno un 10% di spazio libero.
sotto quella soglia iniziano a frammentare alla grande, è un fatto fisiologico inevitabile.
(si dice che il
5% che mke2fs riserva su tutti i volumi serva a prevenire la frammentazione. non è vero ma se vuoi puoi crederci e vivere più sereno)
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 19:18
da Mario1965
il_muflone ha scritto:
SuperAntani ha scritto:E poi (scusa se faccio tante domande ma voglio imparare) in effetti nell'esempio che ho fatto io, se ubuntu dovesse scrivere quel file di 3 byte negli spazi bianchi che ho descritto lo frammenterebbe quel file?
certamente, non esistono alternative.
Aggiungo, che nel caso il file da aggiungere fosse composto da due byte, ext riempirebbe i due byte contigui (faccio riferimento all'esempio dell'auto del post). NTFS, probabilmente, utilizzerebbe il primo libero quindi l'altro libero presente nei due liberi. Da questo banale esempio si può intuire la propensione a NTFS a frammentare i dischi.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 19:19
da patel
i file grossi sono comunque frammentati, lo puoi verificare facilmente col comando sudo filefrag filename[/b
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 20:21
da gdivito
Mario1965 ha scritto:
NTFS, probabilmente, utilizzerebbe il primo libero quindi l'altro libero presente nei due liberi. Da questo banale esempio si può intuire la propensione a NTFS a frammentare i dischi.
veramente no, entrambi i filesystem usano una politica best-fit.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 20:27
da telperion
il_muflone ha scritto:
ho detto che le ext operano bene fino a che c'è almeno un 10% di spazio libero.
sotto quella soglia iniziano a frammentare alla grande, è un fatto fisiologico inevitabile.
Nzomma ...
mc@debian64:~$ sudo filefrag '/home/mc/rec/Across the Universe.mkv'
/home/mc/rec/Across the Universe.mkv: 17 extents found
mc@debian64:~$ ls -l '/home/mc/rec/Across the Universe.mkv'
-rw-r--r-- 1 mc mc 840755646 19 giu 13.41 /home/mc/rec/Across the Universe.mkv
sudo filefrag '/home/mc/rec/Profumo - Storia di un'\''assassino.mkv'
/home/mc/rec/Profumo - Storia di un'assassino.mkv: 91 extents found
mc@debian64:~$ ls -l '/home/mc/rec/Profumo - Storia di un'\''assassino.mkv' -rw-r--r-- 1 mc mc 1358101720 10 apr 00.29 /home/mc/rec/Profumo - Storia di un'assassino.mkv
mc@debian64:~$ df -h
File system Dim. Usati Disp. Uso% Montato su
/dev/sdb2 45G 22G 21G 53% /home/mc/rec
mc@debian64:~$ mount
/dev/sdb2 on /home/mc/rec type ext4 (rw,noatime,nodiratime)
Frammentare frammenta, anche col 50% di disco libero.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 20:32
da il_muflone
su files grossi la frammentazione e` opinabile.
esistono delle motivazioni per cui li si possa voler frammentare (ad esempio per evitare enormi frammentazioni successive con la modifica) e posizioni che negano queste motivazioni.
anche ntfs adotta tecniche similari, anche se hai un disco interamente vuoto, e` facile che un file ti venga spezzato in un modesto numero di parti, facilmente molto distanti tra loro.
si puo` essere in disaccordo ma esistono dei motivi.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 20:41
da telperion
il_muflone ha scritto:
su files grossi la frammentazione e` opinabile.
Per carità, era solo per sfatare un falso mito, cioè che ext non frammenta, frammenta tale e quale, solo che non essendoci un defrag, (che in win serve anche a spostare i file di maggior uso in testa alla partizione) non te ne accorgi e vivi nell'illusione.
Ho anche notato la spiacevole situazione in caso di spazio disco esaurito, che fa perdere molti file di configurazione del sistema quando non peggio, e questo mi sembra proprio "pessimo".
Non ricordo in 20 anni di un windows che causa disco pieno abbia riportato danni a file del sistema.
Il concetto di "file grossi" nell'era del video HD forse va rivisto.
1,3GB e 800MB son file "normali" ormai ...

Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 20:48
da gdivito
Per carità, era solo per sfatare un falso mito, cioè che ext non frammenta, frammenta tale e quale
Il mito esiste ed è ereditato dalle voci che circolavano quando Windows usava fat32.
Tuttavia dire "frammenta tale e quale" è un contromito altrettanto fasullo.
Ntfs frammenta fondamentalmente per due motivi:
1) usa un'enorme tabella per mantenere le informazioni sull'allocazione dei blocchi, invece che gli inode
2) in genere lo swap è un enorme file sulla stessa partizione del sistema (a meno che non sia l'utente a provvedere diversamente), mentre su Linux è quasi sempre una partizione separata (a meno che non sia l'utente a fare diversamente).
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 20:48
da il_muflone
telperion ha scritto:solo che non essendoci un defrag, (che in win serve anche a spostare i file di maggior uso in testa alla partizione) non te ne accorgi e vivi nell'illusione.
e` pura ironia, quel defrag non e` una risposta seria, ma esiste.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 21:14
da il_muflone
gdivito ha scritto:
1) usa un'enorme tabella per mantenere le informazioni sull'allocazione dei blocchi, invece che gli inode
in azienda abbiamo due serverini dual cpu xeon quad core con raid 5 hardware che di base non servono ad altro che fornire dei thin client via TS.
garantisco che ci sono installati max 4 programmi, gli utenti non hanno nessun permesso e non possono neanche navigare in internet.
appena acquistati, i dischi dei due server viaggiavano a velocita` spaventose.
dopo circa 100 GB di dati e molti hard links (> 1 milione) per evitare di duplicare 20 volte i dati comuni degli utenti entrambi i dischi si sono letteralmente seduti.
a volte mi chiedo se non abbiano cambiato di nascosto i dischi e sostituiti con dei vecchi conner peripherals da 500 MB tanto spropositata e` la loro lentezza.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 21:15
da SuperAntani
Ho capito in grandi linee come ext4 lavora. Ma alla fine frammenta o non frammenta??? (rotfl) (rotfl)
(E' come quando un libro disse che per seminare il panico fra gli appassionati di linux bastava chiedere qual'era la distro migliore!!!)
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 21:19
da il_muflone
senza alimentare falsi miti, frammenta.
su alcuni files molto, su altri files per niente e col disco pieno frammenta davvero tanto.
nel complesso pero` (imho) si comporta meglio rispetto qualsiasi altro fs.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 21:28
da gdivito
SuperAntani ha scritto:
Ho capito in grandi linee come ext4 lavora. Ma alla fine frammenta o non frammenta??? (rotfl) (rotfl)
La frammentazione è un fatto naturale su qualsiasi filesystem. Al limite puoi valutare quanto un fs frammenta, non se frammenta o no.
Inoltre non è detto che in file molto frammentato sia più lento di uno poco frammentato. Ad esempio se ho 10 frammenti molto lontani, potrei perdere più tempo che con 20 frammenti molto ravvicinati. Per non parlare del fatto che dipende pure da dove stanno, se all'inizio o alla fine del disco.
Ultima cosa, spesso si d troppa importanza alla frammentazione, in realtà a meno di casi
davvero patologici (di solito in caso di hd molto pieno) la frammentazione influisce poco sulle prestazioni generali di un sistema desktop.
Re: Domanda su ext4
Inviato: venerdì 20 agosto 2010, 21:37
da SuperAntani
E non esistono programmi che su windows equivalgono a Defraggler? (solo per vedere complessivamente quanto frammenta, non per deframmentare. Il mio sistema non ne risente.)