View Single Post
Old 30-07-2013, 12:12   #426
Tennic
Senior Member
 
Iscritto dal: May 2010
Messaggi: 5347
Dopo varie domande da parte di molti utenti riguardo se e quanto OP manuale impostare, ritengo di dover fare qualche precisazione, frutto ovviamente di mesi e mesi di discussioni sull'argomento e degli interventi e chiarimenti di moltissimi utenti, nonchè della letteratura tecnica sull'argomento

Over-provisioning manuale non è assolutamente indispensabile, o meglio, può essere soggettivamente utile per certi casi, inutile per altri, poi dirò i casi specifici
Infatti, va premesso che in un SSD con trim abilitato e funzionante, ogni cella vuota viene utilizzata per over provisioning. Pertanto, se in un SSD da 128GB ho scrito 28GB, gli altri 100GB sono utilizzati per over provisioning, a prescindere dal fatto che facciano parte di una partizione qualunque o meno.
Quindi, più celle libere (non scritte) è sinonimo di più celle disponibili per l'OP, e quindi per il wear leveling, ossia in soldoni quel sistema che livella le scritture tra tutte le celle dell'unità. Se non ci fosse il wear leveling, ed i dati venissero scritti a partire da inizio unità (come in un HD tradizionale) avremmo le prime celle che muoiono per le troppe scritture, e le ultime celle vergini. Invece, il wear leveling, distribuisce le scritture tra tutte le celle. E quali utilizza? Quelle libere E come dicevo prima, libere vuol dire che non contengono dati, e questo a prescindere da partizioni o altro.

A livello tecnico, un SSD funziona in modo ben diverso da un HD.
In un HD, i cluster che costituiscono una partizione sono tutti consecutivi (partizione dal settore x a quello y). Invece, in un SSD, l'appartenenza ad una partizione o meno viene definita a livello logico, pertanto le celle che fanno parte di una partizione non necessariamente sono tutte consecutive, e per di più cambiano dinamicamente. Questo, anche in virtù del wear leveling, che "fa girare" i dati tra tutte le celle libere. Quindi, quel determinato dato ora sta in una cella (e questa cella farà parte della partizione), dopo sta in un'altra cella (e quest'altra cella farà parte della partizione, al posto della cella di prima).

Dopo tali premesse, e evidente come per il wear leveling è ininfluente la partizione alla quale è associata una cella... Lui ignora le partizioni, sa solo che se la cella è vuota può essere utilizzata per far girare i dati, altrimenti no. La mappatura tra cella e partizione alla quale associarla è quindi dinamica (dato che lo stesso dato gira tra le celle, come dicevo prima)
Ovviamente, tali cambi avvengono solo in occasione delle scritture, non è che quando l'SSD non sa che fare, sposta tutti i dati e li fa girare
(ad esempio, ho un file di word memorizzato in una cella che è stata scritta 10 volte, le altre celle hanno 9 scritture... apro il file, lo salvo, ecco, questa scrittura avviene in un altra cella di quelle che avevano 9 scritture, che quindi passa a 10... appunto, livellamento usura )

Pertanto, riprendendo la domanda fatidica, serve lasciare spazio non partizionato per l'OP, che si tradurrà in celle disponibili per il wear leveling? La risposta è NI

- Se siete utenti che tendono a riempire in modo disordinato l'unità, con dati che poi non ricordate neanche di avere o cosa sono, e vi ritrovate magicamente (e senza sapere come) l'unità occupata al 95%, sia che si tratti di 64GB o di 2TB, ecco, allora con questo scenario di utilizzo il wear leveling avrà pochissime celle libere con le quali "giocare". Pertanto è utilissimo prevedere un OP manuale, che non serve al'SSD ma all'utente, in quanto si tratta di un paletto che si mette verso l'utente, per impedirgli di occupare troppo. Pertanto, se avrò una unità con dimensione ridotta (con spazio libero non partizionato), per forza di cose non potrò occupare troppo spazio

- Se invece siete utenti che controllano abbastanza bene i dati, tendono a non ammassarli bovinamente, e quindi lavorate di vostro su occupazioni spazio discrete, allora uno spazio non partizionato sarà inutile. In quanto, per i motivi prima descritti, se di 128GB ne ho 64 liberi, questi 64GB saranno automaticamente utilizzati per il wear leveling, anche se fanno parte di una partizione (abbiamo detto che questo è infatti ininfluente, basta che la cella sia vuota).
Io mi configuro in questa categoria, ed ho creato una partizione 100% (quindi niente spazio non partizionato) anche per un altro motivo... Potrebbe succedere, una volta ogni tanto, l'esigenza rara ma possibile che ho bisogno di "sforare", ossia arrivare ad occupare il 90%, ad esempio per appoggiare dati temporanei che verranno sistemati altrove entro pochissimo tempo. Ecco, avere tutto lo spazio disponibile mi serve. Se avessi una partizione ridotta, non potrei farlo.


- O ancora, in caso di utilizzo molto intensivo, nel quale il trim potrebbe non essere "istantaneo", è utile sicuramente impostare un OP manuale.
Questa circostanza è spiegata in modo esaustivo in questo post di s12a

http://www.hwupgrade.it/forum/showpo...&postcount=427


Quindi, questo per sfatare l'assoluto bisogno di un OP manuale, e chiarire come questo sia necesario solo in certe condizioni e con certe tipologie di utilizzo e di utenti.
Che differenza c'è tra un SSD 128GB, 28 non partizionati, 50 occupati e 50 liberi, ed un SSD 128GB (tutti partizionati) con 50 occupati e 78 liberi? Nessuna In entrambi i casi, ci sono 78 GB per l'OP, quindi 78GB di celle che verranno utilizzate per il wear leveling
Ma nel primo caso, l'utente non potrà occupare più di 100GB neanche volendolo

Per concludere, un paio di appunti... Ricordo che ogni SSD ha spazio per OP dedicato, a livello hardware. E' la quantità di spazio (le celle) allocate dal controller ma non disponibili per l'utente (un po' come lo spazio non partizionato, solo che in questo caso è "forzato" e l'utente non può farci niente).
Ad esempio, un SSD da 128GB ha uno spazio utilizzabile di 128.000.000.000 bytes, ma in realtà le celle garantiscono 128 GiB, quindi 128x1024x1024x1024 bytes = 137.438.953.472 bytes... Questi circa 9 miliardi di bytes di differenza è l'OP dell'unità Che, matematicamente parlando, corrispondono al 7.37% circa

Ultima cosa... Il trim abilitato e funzionante, requisito che ho enunciato all'inizio... L'utilità del trim credo sia nota a tutti... Per il wear leveling il trim è indispensabile perchè se il trim non funziona, quando noi eliminiamo un dato dal S.O., questo continua (almeno per un certo tempo) a mantenere occupata la cella, che pertanto non potrà essere utilizzata dal controller per il wear leveling (verrà vista come non vuota)... il risultato è che per il controller le celle vuote saranno molte meno di quelle reali, e quindi effettuerà il wear leveling utilizzando meno celle di quelle che dovrebbe (e potrebbe), causando una maggiore usura dell'unità... Infatti, se faccio "girare" i dati utilizzando meno celle, ognuna di queste verrà scritta un numero superiore di volte a quelle che sarebbero state se le scritture fossero state suddivise su un numero superiore di celle
Ci sarebbe pure il Garbage Collector, ma a differenza del trim questo interviene solo quando l'unità è in idle (o quasi)... Quindi, l'unità deve essere non utilizzata, il che non sempre corrisponde con "computer non utilizzato"... Ciò comporta il lasciarlo acceso "a vuoto", qualcuno dice che basta la schermata login di windows, ma imho è meglio la schermata bios, dato che dalle mie esperienze, anche nella schermata login di windows vedo il led attività che ogni tanto lampeggia, segno che windows non perde mai occasione di fare i suoi caffè, e temo che l'SSD non riesca ad andare efficacemente in idle... Invece, sicuramente, dal bios ci riesce. Tuttavia non escludo che nelle moderne unità il GC riesca ad attivarsi anche se l'unità non è in completo idle, quindi anche mentre windows è loggato, e magari utilizzato blandamente (inteso sempre come SSD). Questi sono "segreti" che sanno solo i produttori, e non c'è modo di sapere se e quando il GC si attiva... A da questo, ecco perchè si legge che per essere sicuri che si attivi bisogna lasciare il computer nelle condizioni prima descritte...
Quindi, trim e GC sono importanti entrambi e complementari, non è corretto pensare che uno renda superfluo l'altro, solo col funzionamento congiunto di entrambi l'SSD darà il meglio di se come prestazioni e durata

Ovviamente, se ho scritto qualche inesattezza, fatemelo notare, può essermi sfuggita

Ultima modifica di Tennic : 30-07-2013 alle 19:31.
Tennic è offline   Rispondi citando il messaggio o parte di esso