Vi sarà certamente capitato, nell’esaminare le specifiche delle unità SSD in commercio, di imbattervi in dati che fotografano una situazione all’apparenza piuttosto strana: le unità a stato solido più capienti sono più veloci rispetto a quelli di dimensione inferiore.
I dati non possono certo essere oggetto di discussione perché sono dichiarati dagli stessi produttori e riguardano modelli di SSD appartenenti alla medesima linea di prodotto (differiscono solamente per la rispettiva capienza).
Certo, sappiamo bene che i dati pubblicati dai produttori spesso si discostano da quelli rilevati, in situazioni reali, da parte degli utenti. E quando si parla di SSD sono tante le tecnologie che rendono più veloci le unità a stato solido.
Ma perché gli SSD sono più lenti se meno capienti?
Cosa significa IOPS
Prendiamo in esame il valore IOPS nelle operazioni di lettura e scrittura random 4K delle unità SSD.
IOPS, innanzi tutto, è acronimo di Input/Output Operations Per Second (si pronuncia eye-ops): si tratta di un valore che esprime il numero di operazioni che l’unità presa in esame è in grado di compiere in un secondo.
Il valore di IOPS rilevato può comunque variare sulla base di molteplici fattori: la tipologia di operazioni di lettura e scrittura, il mix di modelli di accesso sequenziale e casuale, il numero di thread, la profondità della coda di lavoro, le dimensioni dei blocchi di dati, la configurazione del sistema, i driver, le operazioni svolte in background dal sistema operativo.
Con la specifica IOPS viene data un’idea delle prestazioni di un SSD durante la lettura/scrittura dei dati random 4K posto che le performance di queste unità superano per ordini di grandezza quelle dei tradizionali hard disk magnetomeccanici.
In un altro articolo abbiamo descritto le principali differenze tra hard disk e SSD.
Perché un SSD meno capiente è meno veloce?
Abbiamo già rilevato come le unità SSD meno capienti siano dichiarate come meno prestazionali rispetto a quelle di maggiori dimensioni. Il numero di IOPS, infatti, è in questi casi inferiore e in scrittura random 4K lo è in modo ancor più evidente.
La maggiore velocità degli SSD più capienti è da ricollegarsi al maggior numero di chip NAND usati per memorizzare i dati. Il controller dell’unità SSD, nel caso dei prodotti più capienti, può accedere a più dati in parallelo migliorando le prestazioni.
Fonte dell’immagine: Cactus Technologies.
Nel caso degli SSD si usa il termine canali per riferirsi al numero di chip di memoria con cui il controller può dialogare contemporaneamente. Negli SSD più economici e meno capienti vengono utilizzati 4 canali in parallelo mentre le unità più costose ne usano 8 o 16.
Dal momento che le unità SSD più capienti poggiano su un maggior numero di memorie NAND, più chip possono essere gestiti e utilizzati simultaneamente.
Un SSD meno capiente è tuttavia più vantaggioso in termini di costo per gigabyte: nella scelta del prodotto che più viene incontro alle proprie esigenze, si tratta di un fattore assolutamente non trascurabile.
Un SSD più piccolo si riempie più velocemente
Quando vengono salvati dei file in un’unità SSD questa provvede a stabilire dove essi devono essere memorizzati.
Per come funzionano le memorie NAND, i valori di una pagina (un raggruppamento di più celle di memoria) non possono essere modificati una volta scritti.
Il componente chiamato garbage collector provvede a copiare i dati ancora validi in un altro blocco lasciando quelli da eliminare all’interno del vecchio blocco. I dati nel vecchio blocco vengono contrassegnati come “spazzatura”.
Un SSD non può insomma scrivere i dati in un blocco a meno che questo non sia vuoto o dichiarato come utilizzabile (si pensi ai blocchi indicati come “spazzatura”). Diversamente i dati verrebbero danneggiati.
Per un singolo file questo processo non è affatto dispendioso ma quando si devono muovere quantità di dati importanti tutto diventa più complesso, anche perché le operazioni devono concludersi in breve tempo. In alcuni casi si parla di centinaia o migliaia di riscritture di dati.
È ovvio che nel caso di un’unità vuota o quasi l’SSD può trovare blocchi utilizzabili per scrivere i dati molto velocemente. Più dati sono memorizzati nell’unità, più tempo impiegherà l’unità SSD per trovare il blocco giusto per allocare i dati, sia in caso di modifica che per la scrittura di nuove informazioni.
In aggiunta rispetto a quanto osservato in precedenza, quindi, più un SSD si riempie, più rallenta. Va considerato che un SSD da appena 250 GB con spazio libero ridotto alla metà funzionerà più velocemente di un’unità SSD da 2 TB stracolma di dati.
L’over provisioning è una tecnica che consiste nel riservare una parte della memoria disponibile sull’unità SSD per il funzionamento del controller. Di solito gli SSD riservano una parte della capacità dell’unità per le finalità di over provisioning in modo che l’unità non risulti fortemente rallentata neppure quando lo spazio libero residuo cominciasse a essere esiguo.
In generale, comunque, la regola 70/30 ha comunque senso: è bene non superare il 70% della capacità complessiva dell’unità SSD con i dati memorizzati perché oltrepassato tale limite si potrebbe verificare un calo prestazionale.
Nell’articolo sulle tecnologie che fanno funzionare gli SSD e che abbiamo citato in precedenza, abbiamo parlato più in dettaglio dell’over provisioning e di quanto esso abbia un certo impatto sulla durata dell’unità (TBW, Terabytes Written).