PDA

Visualizza la versione completa : deframmentazione ?


juventino1
30-09-2004, 10:46
stavo discutendo con dei miei colleghi circa la necessita di deframmentare il disco in ambiente windows e dato che ho sempre usato linux non mi sono mai posto il problema del perchè linux non ne avesse bisogno. Qualcuno sa spiegarmi esattamente e nei dettagli perchè linux non ha bisogno di essere deframmentato ?
Questi miei colleghi tra l'altro facevano l'esempio del fatto che quando un file viene cancellato necessariamente rimane un buco sul fs e quindi, secondo loro, inevitabilemnte il fs viene frammentato.
ciao.

UNIX-based
30-09-2004, 12:07
diciamo che il filesystem di linux viene innanzitutto scritto in modo più uniforme (rispetto a win ad esempio) ed inoltre 'si sistema con il tempo'.
esistono anche per linux utility di deframmentazione ma ha poco senso farne un uso assiduo, anche perchè i dischi vengono controllati automaticamente dopo che vengono montati tot volte.

potrebbe indubbiamente essere spiegato molto meglio :zizi:

nesquik
30-09-2004, 12:39
Riporto una parte di un articolo di R. Di Cosmo, datato 19 giugno 1998 ma utile per capire quanto in questione...

:ciauz:

------------------------------

a. Armadi a cassetti e lavaggio dei cervelli

Ho avuto parecchie occasioni di toccare con mano la profondita' di questo sonno ipnotico, ma la piu' esilarante e' certamente quella che si e' presentata durante un viaggio in Pendolino qualche tempo fa. I computer portatili (questi embrioni di computer che costano quanto una piccola utilitaria, che si possono trasportare in una valigetta e che servono soprattutto a giocare al Solitario) proliferano ormai pressappoco quanto i telefoni cellulari, soprattutto su treni ed aerei. Ebbene, durante uno dei miei viaggi mi sono ritrovato a fianco di un gentilissimo signore, giovane e dinamico funzionario d’impresa, che si apprestava ad eseguire sulla sua macchina il famigerato (vedremo presto perche') programma DeFrag. Questo programma mostra una bella matrice riempita di piccoli quadrati di tanti colori che si muovono in tutte le direzioni mentre il disco lavora intensamente e rumorosamente.

Non ho potuto resistere alla tentazione (questo signore non me ne vorra' troppo, spero, se si riconosce in questo articolo): dopo essermi complimentato per il suo bel portatile, gli ho chiesto, fingendo la piu' grande ignoranza, che cosa fosse quel bellissimo programma che io non avevo sul mio portatile. Con un’aria di superiorita' mista a compassione ("il poveretto non ha il mio superbo programma") mi ha risposto che si trattava di uno strumento essenziale che bisogna lanciare di tanto in tanto per "fare andare la macchina più veloce", "deframmentando il disco". Ha proseguito ripetendomi a memoria gli argomenti che si ritrovano nei manuali Windows: piu' si utilizza il disco, piu' questo si "frammenta", e più il disco e' frammentato piu' la macchina e' lenta, ed e' per questo motivo che egli fa coscienziosamente girare DeFrag ogni volta che puo'.

A questo punto ho tirato fuori il mio computer portatile, che non utilizza Windows ma GNU/Linux (una versione libera gratuita e molto efficace di Unix sviluppata grazie agli sforzi congiunti di migliaia di persone su Internet), e gli ho detto, con un’aria molto stupita, che tutto quello che mi aveva detto mi sorprendeva enormemente: sul mio portatile il disco e' molto poco frammentato e piu' si utilizza, meno si frammenta. Il nostro funzionario, un po’ meno a suo agio, ha ribattuto che il suo portatile utilizzava l’ultima versione di Windows 95, prodotto dalla piu' grande azienda di software al mondo, e che dovevo ben sbagliarmi da qualche parte. A questo punto, ho cercato di fargli dimenticare per un istante la propaganda che l’aveva intossicato fino ad allora spiegandogli semplicemente il problema della deframmentazione: quello che segue e' un breve riassunto di una piacevole conversazione che e' durata una buona mezzora.
Voi sapete probabilmente che i vostri dati sono conservati in archivi, ormai universalmente chiamati "file", memorizzati sul disco rigido del calcolatore. Questo disco rigido e' come un gigantesco armadio a cassetti: ogni cassetto ha la stessa capienza (di solito 512 byte) e ciascun disco contiene, ai giorni nostri, alcuni milioni di cassetti. Se i dati che vi interessano sono sistemati in cassetti contigui, vi si puo' accedere piu' rapidamente che se sono sparpagliati (si dice allora frammentati) un po’ dappertutto all’interno dell’armadio. Non c’e' nulla di strano, in questo, ci succede ogni giorno quando dobbiamo trovare un paio di calzini: si fa prima se sono tutti e due nello stesso cassetto. Siamo dunque d’accordo che e' meglio un armadio ben ordinato che un armadio nel caos. Adesso il problema e' di sapere come fare per mantenere l’armadio ben ordinato quando lo utilizziamo. Immaginiamo un ministero che conserva i suoi dossiers in un enorme armadio con milioni di cassetti: per le stesse ragioni che si dicevano prima, sara' meglio che i documenti riguardanti uno stesso dossier si trovino, per quanto possibile, ordinati in cassetti contigui. Ora voi dovete assumere una segretaria e vi si presentano due candidate dalle abitudini molto diverse fra loro: la prima, quando un dossier va eliminato si limita a vuotare i cassetti, e quando un nuovo dossier arriva lo separa in piccoli fascicoli della misura di un cassetto e sistema ogni fascicolo a caso nel primo cassetto vuoto che trova nell’ armadio. Quando le fate notare che cosi' e' molto difficile ritrovare subito tutti i documenti di uno stesso dossier, risponde che in effetti lei prevede di ingaggiare una dozzina di ragazzi che ogni fine settimana vengano per rimettere tutto in ordine. La seconda segretaria, invece, conserva sulla sua scrivania una lista dei cassetti vuoti contigui, e aggiorna la lista tutte le volte che una pratica viene chiusa e viene tolta dai cassetti; quando un nuovo dossier arriva, cerca nella sua lista una serie di cassetti vuoti contigui di capacita' sufficiente ed e' li' che mette il nuovo dossier. Cosi' facendo, anche se c’e' molto movimento, l’armadio rimarra' sempre ben ordinato. Non c’e' dubbio che e' la seconda segretaria che bisogna assumere, e il nostro giovane funzionario fin qui e' d’accordissimo. A quel punto, fu facile fargli osservare che Windows 95 si comportava come la prima segretaria, ed aveva bisogno dei ragazzi che riordinano l’armadio (il programma DeFrag), mentre GNU/Linux, comportandosi come la segretaria brava, non ne aveva alcun bisogno. All’arrivo in stazione, il nostro gentile signore non era per niente contento: gli avevano insegnato che DeFrag "fa andare piu' veloce la macchina", mentre avevamo visto insieme che e' piuttosto Windows che la rallenta !

In effetti, il problema della gestione efficace dei dischi e' molto vecchio ed e' da tempo che si sa bene come trattarlo (la prova e' che Unix e' molto piu' vecchio di Microsoft, ed ha la buona segretaria dal 1984 !). E c’e' ben peggio di DeFrag: purtroppo non c’e' tempo per raccontarvi qui tutti gli aneddoti che lo riguardano, ma il programma ScanDisk, che e' fatto per "riparare" i dischi, vi propone scelte incomprensibili il cui risultato e', troppo spesso, la distruzione pura e semplice della struttura del file system, mentre, prima del suo passaggio, i dati erano ancora recuperabili. Non soltanto questo e' impossibile sotto Unix, a meno di prendere il disco a martellate, ma le tecniche corrette di gestione vengono insegnate nei corsi di base di informatica in universita' da piu' di un decennio. La semplice esistenza di un programma come DeFrag o peggio, i misfatti di ScanDisk in Window 95 dovrebbero essere sufficienti a ogni responsabile informatico intelligente per radiare Microsoft dalla lista dei suoi fornitori. E tuttavia, prova dell’efficacia del lavaggio dei cervelli, e della profondita' del sonno nel quale siamo sprofondati, si e', al contrario, pronti in Francia a trasferire tutto il sistema informatico bancario su prodotti Microsoft ed a scegliere tali prodotti per l’educazione dei nostri figli.

Il fatto e' che la potenza della macchina commerciale di certe aziende riesce a realizzare una tale distorsione della realta' che si arriva a credere fermamente che gli errori piu' gravi di certi programmi sono al contrario delle qualita' indispensabili (d’altronde, nel mondo informatico e' da tempo che si impiega a tale proposito il detto "It’s not a bug, it’s a feature !" ("Non e' un errore, e' una funzionalita'")). Ma e' anche vero che gli specialisti che hanno le conoscenze necessarie per svelare tutti questi imbrogli e mettere in evidenza gli errori, i pericoli, le manipolazioni, senza rischiare di essere presi per competitori sconfitti e stizzosi, hanno taciuto per troppo tempo. Siamo in presenza di un fenomeno assai bizzarro: da una parte, nessuno scienziato serio ha voglia oggi di pubblicare un articolo sulla cosiddetta stampa informatica professionale per paura che la sua reputazione ne venga intaccata per essersi mischiato con dei ciarlatani. Dall’altra, senza l’appoggio di scienziati seri, la stampa informatica e' diventata, grazie al supporto pubblicitario, un’eco ben poco edificante dei costruttori, dunque ancora piu' ciarlatana, e dunque ancor meno frequentabile per degli esperti seri.

juventino1
30-09-2004, 13:05
GRAZIE! era proprio la risposta che mi serviva...

juventino1
30-09-2004, 15:08
vorrei aggiungere una cosa..
questo discorso sulla deframmentazione è nato dal fatto che uno dei colleghi ha tirato in ballo l'utilizzo di una nuova feature hardware di certi harddisk che permetterebbe di scrivere i file i maniera ordinata. Mi spiego meglio. Se vi sono tre file da leggere che pero sono dislocati sull'hardisk secondo un diverso ordine ossia per esempio uno in mezzo uno in fondo e uno in cima l'hardisk con questa nuova feature leggera i file a secondo del file che troverà la testina nel suo tragitto e non secondo l'ordine che gli arriva dal sistema operativo.
Quindi io ho risposto che a mio parere questa feature in linux forse non veniva tanto 'sfruttata' perchè con linux, per via dell'esistenza delle partizioni e per via della bassa frammentazione del disco, aveva un ordine dei file maggiore e quindi la testina non aveva grande necessità di passare da due zone molto distanti fra loro dell'harddisk.
Volevo un vostro parere.

Sparkster
30-09-2004, 15:47
un'osservazione riferita alla prima domanda e al bellissimo articolo e che può venire tralasciata :
la gestione della frammentazion è lasciata interamente al filesystem, la "fortuna" che ha linux è che tutti i suoi filesystem la sanno gestire senza problemi. Il SO interagisce col filesystem, quindi "teoricamente" se win fornisse il supporto per partizioni reiser/ext etc etc, in teoria non ci sarebbe frammentazione (su quelle partizioni).

+ si va avanti + si vede l'ignoranza delle persone abituate a "prendere per detto" purtroppo :(

Saluti, e complimenti sia x il bellissimo articolo (che segno), sia x la discussione, un pò vecchia, ma sempre piacevole :)

Sparkster

nesquik
30-09-2004, 15:58
visto che l'articolo e' piaciuto una versione integrale la potete trovare qua (http://www.comisat.it/test_rifles_trappola_pag01.htm)
:ciauz:

Ikitt
30-09-2004, 17:47
Originariamente inviato da juventino1
vorrei aggiungere una cosa..
questo discorso sulla deframmentazione è nato dal fatto che uno dei colleghi ha tirato in ballo l'utilizzo di una nuova feature hardware di certi harddisk che permetterebbe di scrivere i file i maniera ordinata.

Read-ahead? Prefetch? Un link in merito?

Ikitt
30-09-2004, 17:52
Originariamente inviato da juventino1
Questi miei colleghi tra l'altro facevano l'esempio del fatto che quando un file viene cancellato necessariamente rimane un buco sul fs e quindi, secondo loro, inevitabilemnte il fs viene frammentato.

Non so ancora rispondere con sufficiente grado di dettaglio alla tua domanda generale, ma posso azzardarmi a dire che quest'affermazione non e` necessariamente vera.
Dipende prevalentemente dall'allocatore e dalla tipologia (dimensioni, prevalentemente) dei file utilizzati.
Se la dimensione dei file e` piuttosto omogenea (uguale nel caso pessimo), pur con N cancellazioni non si avrebbe mai frammentazione esterna(1), banalmente perche` ognu buco lasciato libero da un file cancellato libero potrebbe essere occupato completamente da un'altro file.
In casi "reali"... Dipende. Dipende da tante cose.

In generale, come detto, gli allocatori dei FS *nix tendono ad essere furbi in questo senso, e a subire poco il fenomeno della frammentazione (esterna?). Non va comunque dimenticato che alcuni FS (ext2, alcune versioni di reiserfs, JFS) hanno sofferto di questo problema.

Va anche detto che storicamente questo e` un'aspetto a cui non si da molto peso, data la limitata entita` del medesimo.

+++
(1) Tendo a confondera la frammentazione interna con l'esterna, correzioni gradite.

juventino1
30-09-2004, 17:56
ho chiesto, si tratta del ncq, su google trovi sicuramente qualcosa, in questo momento sto leggendo questo (http://www.tomshw.it/storage.php?guide=20040123)

Loading