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

    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.

    Riempire il disco di 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 computer.

    Blocchi vuoti e blocchi parzialmente riempiti

    Quando scrivi un file sul tuo 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 come scrivere in un settore vuoto su un disco rigido meccanico, ma un'unità a stato solido deve cancellare un blocco prima di scriverlo.

    La memoria flash NAND scrive i 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 i dati su di esso.

    Man mano che l'unità a stato solido si riempie, sono disponibili sempre meno blocchi vuoti. Al loro posto ci 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 vicino alla capacità, è probabile che si finiranno con molti blocchi parzialmente riempiti dopo aver eliminato i file. Il comando TRIM semplicemente indirizza 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 terminare con prestazioni gravemente degradate, i produttori di SSD si fanno in quattro per contrastare questo.

    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.

    Il controller di ogni unità a stato solido ha un algoritmo di raccolta dei dati inutili per tentare di mitigare questo problema. Quando l'unità si riempie, cercherà i 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à.

    Prova di riferimento

    Anandtech ha eseguito una serie di benchmark con diverse unità 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 mentre le operazioni di scrittura hanno continuato a riempire l'unità.

    L'accantonamento di un maggior numero di aree di ricambio sulle unità ha aiutato le prestazioni a rimanere coerenti, in quanto ha assicurato che l'unità avesse sempre a disposizione un numero sufficiente di blocchi vuoti.

    Hanno scoperto che "le prestazioni minime migliorano sensibilmente una volta raggiunto il 25% di area di ricambio per queste unità [di consumo]". La loro raccomandazione finale era che dovresti "pianificare di utilizzare solo circa il 75% della capacità [del tuo disco] se vuoi un buon bilanciamento tra la coerenza e la capacità delle prestazioni. "


    Se si dispone di un'unità a stato solido, è consigliabile 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.

    Immagine di credito: Music Sorter su Wikimedia Commons, Simon Wüllhorst su Flickr