16Aug

Perché le unità a stato solido rallentano man mano che le riempi

I benchmark sono chiari: le unità a stato solido rallentano mentre le riempi. Riempi la tua unità a stato solido fino alla quasi capacità e le sue prestazioni in scrittura diminuiranno drasticamente. Il motivo è il modo in cui funzionano gli SSD e l'archiviazione NAND Flash.

Il riempimento dell'unità alla capacità è una delle cose che non dovresti mai fare con un'unità a stato solido. Un'unità a stato solido quasi piena avrà operazioni di scrittura molto più lente, rallentando il tuo computer.

Blocchi vuoti e blocchi parzialmente riempiti

Quando si scrive un file sul disco a stato solido, cerca i blocchi vuoti e li riempie. Scrivere su un blocco vuoto è l'operazione di scrittura più veloce possibile. Ecco perché i nuovi sistemi operativi( Windows 7 e versioni successive) supportano la funzione TRIM, che elimina automaticamente i dati di un file dall'unità a stato solido non appena si elimina il file nel sistema operativo. Funziona in modo diverso da dischi rigidi magnetici, dove i bit di file cancellati si trovano sul disco rigido.

Non siedono su un'unità a stato solido - TRIM garantisce che il blocco venga svuotato in modo che l'SSD possa scrivere rapidamente nuovi dati nel blocco vuoto in futuro. Scrivere su un settore già scritto è veloce quanto scrivere in un settore vuoto su un disco rigido meccanico, ma un'unità a stato solido deve cancellare un blocco prima di scriverlo. NDS

La memoria flash scrive dati in pagine da 4 KB all'interno di blocchi da 256 KB.Per aggiungere ulteriori pagine a un blocco parzialmente pieno, l'unità a stato solido deve cancellare l'intero blocco prima di scrivere nuovamente i dati su di esso.

Quando l'unità a stato solido si riempie, sono disponibili sempre meno blocchi vuoti. Al loro posto sono blocchi parzialmente riempiti. L'unità a stato solido non può semplicemente scrivere i nuovi dati in questi blocchi parzialmente riempiti, il che cancellerebbe i dati esistenti. Invece di una semplice operazione di scrittura, l'unità a stato solido deve leggere il valore del blocco nella sua cache, modificare il valore con i nuovi dati e quindi riscriverlo. Tieni presente che scrivere un file probabilmente implicherà la scrittura su molti blocchi, quindi questo può introdurre una quantità significativa di ulteriore ritardo.

TRIM non consolida i blocchi parzialmente riempiti

Se si riempie un'unità alla capacità o quasi alla capacità, è probabile che si finiranno con molti blocchi parzialmente riempiti dopo aver eliminato i file. Il comando TRIM indirizza semplicemente un'unità a stato solido per rimuovere i dati del file quando il file viene eliminato. Non forza l'unità a eseguire alcuna operazione di pulizia.

In altre parole, riempi una unità a stato solido alla capacità prima di eliminare i file e probabilmente finirai con molti blocchi parzialmente riempiti. L'unità non si limiterà a consolidare questi blocchi parzialmente riempiti in blocchi completi, liberando blocchi vuoti. L'unità sarà ancora piena di blocchi parzialmente riempiti e le prestazioni di scrittura saranno ridotte.

Overprovisioning e Garbage Collection Per impedire ai consumatori di riempire le unità a stato solido e finire con prestazioni gravemente degradate, i produttori di SSD si stanno impegnando per contrastarlo.

Le unità a stato solido di livello consumer spesso accantonano circa il 7% della loro memoria flash totale e la rendono indisponibile per l'utente. Questo è noto come "overprovisioning": l'hardware di archiviazione aggiuntivo viene aggiunto all'unità ma non è visibile al computer come spazio di archiviazione disponibile che può utilizzare. L'area di ricambio garantisce che l'unità non possa mai essere completamente carica: ci sarà sempre una capacità inutilizzata per mantenere stabili le prestazioni di scrittura.

Ogni controller dell'unità a stato solido ha un algoritmo di raccolta dei dati inutili per cercare di attenuare questo problema. Quando l'unità si riempie, cercherà blocchi parzialmente riempiti e inizierà a consolidarli, liberando il maggior numero possibile di blocchi vuoti. Diverse unità a stato solido eseguono queste operazioni a diversi tempi e soglie, che dipendono dal controller dell'unità.

Benchmark Evidence

Anandtech ha eseguito una serie di benchmark con dischi diversi per mettere a punto la relazione tra l'area di riserva di un'unità a stato solido e la coerenza delle sue prestazioni di scrittura. Durante il riempimento di un'unità vuota, hanno riscontrato elevate prestazioni di scrittura molto presto nel processo e un calo significativo poiché le operazioni di scrittura hanno continuato a riempire l'unità.

L'accantonamento di una maggiore area di riserva sulle unità ha aiutato le prestazioni a rimanere coerenti, in quanto ha assicurato che l'unità avesse sempre abbastanza blocchi vuoti pronti.

Hanno scoperto che "le prestazioni minime migliorano sensibilmente una volta raggiunto il 25% di area di ricambio per queste unità [consumer]". La loro raccomandazione finale era che dovresti "pianificare di utilizzare solo circa il 75% della capacità di [tuo] drive se vuoi una buonaequilibrio tra costanza delle prestazioni e capacità. "

Se si dispone di un'unità a stato solido, si dovrebbe cercare di evitare di utilizzare più del 75% della sua capacità.Acquista un'unità più grande con più spazio di archiviazione di cui hai bisogno e ti assicurerai di avere sempre prestazioni di scrittura coerenti. Fortunatamente, gli SSD stanno gradualmente diventando molto più economici, quindi non è costoso come una volta.

Image Credit: Music Sorter su Wikimedia Commons, Simon Wüllhorst su Flickr