Newsgroup: it.comp.hardware.storage
Titolo: SSD ed allineamento, quanto incide sulle prestazioni e sulla longevita' ?

INTRODUZIONE
------------
Cosa significhi allineare l'accesso ai dati e' ben noto ma quanto
incide sulle prestazioni e sulla longevita' di un SSD ?
(longevita' intesa come TBW=Total Bytes Written)
 
Con l'ausilio di IOMeter e Crystal Disk Info (CDI), ho eseguito dei test
di scrittura sequenziale e random, con dati comprimibili e non,
sia con allineamento 4K che senza. L'SSD in prova e' un
OCZ Vertex 3 90GB con controller SandForce SF2281 e
memorie Flash NAND di tipo sincrono. L'unita' non e' stata
ne' partizionata ne' formattata, l'allineamento e' stato forzato
via software con IOMeter. La piattaforma di test e' basata
su controller SATA 3Gbps che incide poco sulle prestazioni
random e non pregiudica l'analisi sui dati scritti.
 
ANALISI PRESTAZIONI
-------------------
Analizziamo prima le prestazioni, IOMeter 4K Random Write QD=4
 
Operazioni I/O *correttamente* allineate:
187 MiB/s (47K IOPS) - Dati comprimibili
107 MiB/s (27K IOPS) - Dati *NON* compr.
 
Operazioni I/O *NON* allineate:
 69 MiB/s (17K IOPS) - Dati comprimibili
 40 MiB/s (10K IOPS) - Dati *NON* compr.
 
Operazioni I/O *NON* allineate con QD=64 :
 84 MiB/s (21K IOPS) - Dati comprimibili
 58 MiB/s (15K IOPS) - Dati *NON* compr.
 
L'ultimo test non e' stato eseguito anche con dati allineati,
sarebbe stato piu' indicativo ma non ne ho avuto il tempo.
 
Passando da operazioni I/O allineate a non allineate, c'e' una
perdita di prestazioni del 60% , cioe' l'SSD scrive a meno della
meta' della velocita', l'uso di dati non comprimibili fa perdere
un ulteriore 40% .
 
ANALISI DATI SCRITTI
--------------------
Prima e dopo ogni test ho letto gli attributi SMART con CDI
che indicano le scritture eseguite dall'host (IOMeter) e
quelle eseguite fisicamente sulle NAND (controller SF) .
In dettaglio, F1h ed F2h indicano le letture e le scritture host,
mentre E9h le scritture sulle NAND (controller SandForce).
Il numero di GiB scritti dall'host e' stato calcolato con IOMeter
(preciso) mentre la quantita' di dati scritti dal controller sulle
NAND ha un'approssimazione di 1GiB (valore tra parentesi).
Tra una esecuzione e l'altra ho eseguito il Secure Erase
dell'unita' per evitare risultati falsati (non sempre necessario).
 
 
Dati scritti dopo 50 sec., operazioni I/O *correttamente* allineate:
11,2 GiB (4 GiB)  - Dati comprimibili
 6,4 GiB (7 GiB) - Dati *NON* compr.
 
Dati scritti dopo 50 sec. , operazioni I/O *NON* allineate:
 3.4 GiB (2 GiB) - Dati comprimibili
 2,0 GiB (3 GiB) - Dati *NON* compr.
 
Dati scritti dopo 5 min. , operazioni I/O *NON* allineate con QD=64 :
25,2 GiB (14 GiB) - Dati comprimibili
17,5 GiB (25 GiB) - Dati *NON* compr.
 
L'aspetto evidente e' che con dati comprimibili c'e' sempre
un ottimo comportamento sia con operazioni allineate che non,
infatti i dati scritti sulle NAND sono sempre inferiori (o uguali)
a quelli scritti dall'host, merito del controller SandForce.
 
Analizzando la differenza di comportamento con i dati non
comprimibili, che puo' essere estesa anche ad altri controller
che non effettuano compressione, i risultati con operazioni
non allineate sono disastrosi : le scritture fisiche sulle NAND
eccedono quelle dell'host, eliminando il secondo test che
ha un errore di lettura non trascurabile , nel terzo test c'e'
un eccesso di scritture del 40% , che fa aumentare il
WA (Write Amplification) ad un valore di circa 1,40 .
 
In sequenziale i risultati sono piu' prevedibili, l'allineamento
non incide, riporto solo la differenza tra le scritture host e
NAND tra dati comprimibili e non, scrittura sequenziale 2MB
per 60 secondi:
 
15,6 GiB (2 GiB)  - Dati comprimibili
 7,8 GiB (7 GiB) - Dati *NON* compr.
 
Interessante come l'alta compressione dei dati aiuti
a migliorare notevolmente il WA (<0,20) . Con una
piattaforma 6Gbps la maggiore velocita' con dati
compriminili avrebbe aumentato la quantita' di
dati scritti sia dall'host che sulle NAND, il
rapporto sarebbe stato identico.
 
CONCLUSIONI
-----------
In conclusione, ed in attesa di altri test con prodotti diversi,
si puo' affermare che lavorando con partizioni non allineate
in condizioni estreme (solo operazioni random) , si riducono
le prestazioni del 60% mentre la vita utile si riduce del 40% .
In condizioni di utilizzo normale con operazioni miste
sequenziali e random, le percentuali si abbassano, si puo'
stimare il 20-30% di riduzione per le prestazioni e 15-20%
di riduzione per la vita utile (TBW).
 
E quanti TB si possono scrivere su un SSD ?
In modo approssimativo diverse centinaia di TB,
assumento un massimo di 200TB con una media
di 20GB scritti al giorno, equivale ad una vita di
oltre venti anni.
 
 
Ciao
Luca
 
 
 
 
 

 oltre venti anni.
 
Già... da questo punto di vista come sostengo da mò (almeno in ambito 
home) non ci sono problemi per quanto riguarda la longevità di questi 
prodotti, pure se si usano modelli con celle a 25nm.
 
Comunque ottimo lavoro :)
 
 


 
Mi associo.

 Comunque ottimo lavoro :)
 
grazie :)
(anche a Loki)
 
ho controllato il TBW del Vertex 2 e per uso modesto (meno di 4GB/giorno)
in un anno ha scritto circa 1,2TB (0,8TB effettivi) , l'indicatore di vita
residua e' ancora al 100%, se continua cosi' dura cento anni :P
(lo cambiero' comunque tra un paio di mesi e lo riciclero')
 
ho anche un Vertex 30GB (Indilinx), ha scritto meno di 200GB in
8 mesi (in totale circa 2TB ma l'ho usato per parecchi test), la vita
residua e' al 46% ma era al 50% quando l'ho installato nel
secondo sistema, se continua cosi' dura almeno altri 5 anni
 
ciao
luca