PDA

View Full Version : Partizioni: si va più veloci?


MM
08-06-2008, 14:50
Viste le discussioni precedenti, credo sia il caso di discutere separatamente e più approfonditamente di una questione spesso sollevata: una partizione principale più piccola accelera il sistema?

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

Premessa1: la mia esperienza in fatto di dischi è prettamente pratica, vale a dire nell’uso e nella gestione, non tecnica (per la parte tecnica abbiamo comunque utenti molto preparati), quindi le indicazioni e le opinioni riguardano strettamente l’uso dei dischi nella pratica

Premessa2: quello che scrivo non è la bibbia, ma solo un sunto delle esperienze e anche delle deduzioni ricavate da prove e informazioni tecniche

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

L’annosa questione delle partizioni se farle o meno, se accelerano o meno il lavoro, credo sia il caso di esaminarla e di discuterne alla luce anche dei test effettuati a suo tempo dallo staff amministrativo di questo forum
Qualche anno fa girava voce che partizionare il disco rallentasse il disco stesso, mentre negli ultimi tempi la voce è contraria, vale a dire che si accelera il disco
Entrambe le affermazioni sono false o almeno lo sono se messe in questi termini: il disco, qualunque cosa ci si faccia sopra ha sempre la sua velocità di rotazione, i suoi seek time, la sua latenza ed il suo transfer rate.
Allora le conclusioni del test effettuato da Bordin a suo tempo sono false o “truccate”?
No, il problema sta solo nell’errata interpretazione “popolare” dei risultati ottenuti, vale a dire che l’incremento delle prestazioni registrato non è comunque relativo al disco ed è oltre tutto soggetto a “filtraggio” quando ci si riferisce a condizioni reali di utilizzo.

Cominciamo da capo e cerchiamo di capire meglio.
Teniamo innanzitutto conto che un benchmark, in particolare quelli cosiddetti “sintetici” sono dei riferimenti e non forniscono “valori assoluti”
Per esempio il transfer rate dello stesso disco misurato con programmi diversi, risulterà essere diverso, quasi sempre, ragion per cui il programma di benchmark fornisce un riferimento per valutare differenze tra dischi o configurazioni, ma non fornisce dati assoluti
Se si tratta di valutare le differenze va benissimo, purché si usi sempre lo stesso programma e si operi nelle stesse condizioni, magari riferendosi a scostamenti percentuali più che in valore assoluto

In pratica: facciamo il bench di un qualsiasi disco con unica partizione, che occupa l’intero spazio, e otteniamo determinati valori in TR, latenza, etc
Se proviamo a dividere il disco in due partizioni, magari dividendolo a metà, se facciamo il bench della prima partizione (quella sulla parte esterna del disco) vedremo che presenta valori migliori e quindi si è portati a pensare che questa operazione abbia di fatto velocizzato il disco o meglio la gestione dei dati contenuti in quella partizione.
Per contro i test sull’altra partizione evidenzieranno valori peggiori di quelli del disco completo
Se poi la prima partizione la riduciamo ulteriormente, i bench evidenzieranno valori ancora migliori: più si riduce lo spazio della prima partizione e migliori saranno i risultati ottenuti in fase di test, mentre al contrario, si noteranno peggioramenti nell’altra o nelle altre partizioni.
Qualora fosse possibile mediare i risultati ottenuti alla fine sicuramente ci accorgeremmo che i valori sono di nuovo quelli del disco

Vediamo cosa succede nella realtà
Dopo l’installazione del SO, installiamo un programma con relativi file da gestire
Il sistema pone gli oggetti installati nel primo spazio libero trovato, a ridosso degli oggetti di sistema (non sempre è così, ma agli effetti di questa verifica è ininfluente)
Diciamo che se sono stati occupati 6 GB dal SO, gli oggetti del programma si troveranno a partire dal 7° GB del disco
Prendiamo in considerazione due situazioni limite: disco da 300 GB non partizionato e altro disco identico con partizione iniziale da 50 GB (il restante spazio che sia partizionato o meno non influisce)
Se facciamo i benchmark delle prime partizioni, vediamo che nel secondo caso la velocità risulta decisamente superiore e se la partizione iniziale la riducessimo a 20 GB i valori sarebbero ancora migliori
Ora proviamo ad immaginare cosa succede, in pratica, quando il sistema andrà a caricare il programma che abbiamo installato e ad aprire i relativi file
Mi pare piuttosto intuitivo che le cose non cambiano minimamente e che i tempi saranno gli stessi
Nessuno nega che nella parte esterna del disco il transfer rate è più alto, ma se un oggetto qualsiasi (file, programma, routine o altro) è posizionato in una certa area del disco le prestazioni in lettura saranno le stesse, sia che detta area faccia parte di una partizione di 20 GB sia che faccia parte di una da 200.

Un’altra riflessione è necessaria in merito ai seek time, considerando che indubbiamente la testina impiegherà più tempo per raggiungere la parte mediana del disco o quella più interna
E’ ovvio che se ho due partizioni, i dati contenuti nella seconda comporteranno tempi maggiori per la gestione, ma questo è inevitabile, a meno che non si compri un disco da 500 GB per gestire un’unica partizione da 50 GB su cui mettere i propri dati e programmi
Però, in questo caso, se la partizione da 50 GB fosse sufficiente a contenere i propri dati, nessun vantaggio ne deriverebbe dal fatto di aver partizionato il disco, poiché i dati sarebbero comunque tutti contenuti nella parte esterna del disco stesso

Allora tutto questo non serve a niente?
Non è nemmeno vero questo. Diciamo che, pur tenendo conto che le differenze non saranno abissali, se partizioniamo il disco e distribuiamo gli oggetti in modo che quelli usati con più frequenza si trovino nella parte alta del disco, relegando quelli che si usano più raramente nella parte bassa, allora senz’altro ci sarà una differenza
Questo è possibile farlo “forzando” appunto la registrazione di detti oggetti in aree precise, usando appunto una suddivisione in due o più partizioni
Quale sia la differenza reale e quanto sia tangibile non credo lo si possa prevedere, visto che dipende dal numero di oggetti da leggere, dalle dimensioni, dalle interazioni con il disco, etc… ma indubbiamente è un’ottimizzazione e, come tale, non peggiora certo il lavoro del sistema

Una cosa è certa: se si ipotizza una configurazione del tipo i programmi nella prima partizione ed i dati nella seconda, usata come archivio, le cose non migliorano affatto e l’eventuale vantaggio “iniziale” viene annullato. Infatti se è vero che il programma verrà caricato più velocemente, i dati per contro lo saranno in tempi più lunghi, vista l’escursione che la testina dovrà fare per leggere il file dei dati
Magari con un programma tipo Word sarà sempre vantaggioso, vista la mole del programma e l’unica lettura da effettuare per aprire il documento, ma al contrario con un programmino semplice di editing ed un’immagine di svariati MB, o un filmato, le cose saranno peggiori…

Altri fattori da considerare
In molti dischi i dati installati non vengono registrati, tendenzialmente, a ridosso dello spazio occupato dal sistema operativo, ma verso la zona mediana del disco, con tendenza a registrare “a pendolo” i dati di successive installazioni, vale a dire che alla successiva installazione la scrittura avverrà nella zona precedente/successiva ai dati esistenti.
Si immagina sempre il percorso della testina dal bordo esterno del disco alla parte più interna, ma la testina di scrittura tendenzialmente rimane ferma nella zona di ultima lettura (a meno di lunghi periodi di inattività) e quindi il seek time della successiva lettura è imprevedibile (in alcuni casi viene posizionata nella parte mediana del disco il che dimezza statisticamente i seek time verso gli estremi del disco)

Detto questo, mi pare che la questione sia molto complessa e non liquidabile con un semplice ”la partizione piccola migliora le prestazioni”
Ci sono alcune certezze: i risultati pratici non sono sempre misurabili/valutabili e stiamo parlando di tempi che sono dell’ordine dei centesimi di secondo.
Ovviamente, come già detto, un’ottimizzazione mirata può migliorare il lavoro, di poco o di un valore significativo a seconda delle situazioni e quindi magari si può optare per questa soluzione, soprattutto quando l’ottimizzazione coinvolge l’organizzazione dei dati e la loro gestione (come i backup, per esempio)

E’ sempre stata mia convinzione che i dischi sono fatti per essere usati e non per fare le cavie da esperimento e sono ancora fermamente convinto che nell’uso giornaliero le differenze evidenziate dai benchmark sono difficilmente rilevabili