Lo spazio su disco ridotto influisce sulle prestazioni dell'SSD?


16

Mi chiedevo se avere meno di 5-10 GB di spazio libero su un SSD avrebbe influito sulle prestazioni. È specifico per SSD o è più un aspetto del sistema operativo?

Ad esempio, su un Intel X-25 G2 con supporto TRIM (su Windows 7).

Risposte:


14

La maggior parte degli SSD rallenterà mentre si riempiono. Gli SSD tendono a scegliere blocchi vuoti in cui scrivere, poiché possono modificare un blocco solo cancellando e riscrivendo l'intero blocco. Una volta che tutti questi blocchi sono parzialmente riempiti, ogni operazione di scrittura richiederà una cancellazione e una riscrittura, il che significa che l'SSD deve leggere il blocco nella cache, modificare la cache con i nuovi dati, quindi cancellare il blocco e scrivere la cache. Ciò si traduce in una lettura e due operazioni di programmazione per ciascun blocco che deve essere modificato. Inoltre, sebbene la frammentazione abbia un effetto molto scarso sugli SSD, l'elevata frammentazione e il fatto che la maggior parte dei sistemi operativi ignori gli SSD può causare al sistema operativo di emettere più scritture del necessario. I blocchi dell'SSD sono generalmente più grandi delle unità di allocazione del sistema operativo, quindi se l'SSD non si aspetta ulteriori scritture, potrebbe finire per ripetere più volte lo stesso processo in tre passaggi per blocco, rallentando ulteriormente le scritture. Anche l'eliminazione dei file non risolve questo problema, poiché i dati rimangono lì e l'SSD non sa che non è più utilizzato e continua a riscrivere questi dati eliminati.

L'operazione TRIM, supportata dall'unità, consente al sistema operativo di comunicare all'unità di eliminare i dati eliminati. Ciò consente all'unità di recuperare blocchi vuoti. Tuttavia, gli unici sistemi operativi che supportano TRIM sono le distribuzioni Windows 7, Windows Server 2008 R2 e Linux che utilizzano il kernel 2.6.33 o successivo.

Dato che hai Windows 7, il tuo sistema sta usando il comando TRIM ed è in grado di recuperare i blocchi inutilizzati. Tuttavia, TRIM non riorganizza i dati, quindi se l'unità è quasi piena, l'elevata frammentazione può comunque causare l'occupazione parziale dei blocchi dei dati e limitare l'efficacia di TRIM. La cosa migliore da fare, per quanto ne so, è liberare più spazio su disco che puoi. Se riesci a liberare spazio sufficiente, è possibile ritagliare i blocchi completi e l'unità tornerà indietro. Inoltre, ci sono programmi di deframmentazione che sono orientati verso gli SSD, il che significa che deframmenteranno abbastanza da tagliare alcuni blocchi extra, ma non ne conosco altri gratuiti. Penso che Diskeeper dovrebbe farlo, ma è costoso e ho sentito recensioni molto contrastanti.


1
Il livello FTL si trova al di sotto del livello del file system. Sebbene possa sembrare che il filesystem sia frammentato, ciò NON significa che il layer FTL sia frammentato. Quei programmi SSD "deframmentati" sono inutili, non possono accedere al livello FTL, è olio di serpente. Ora, la mancanza di spazio libero rende gli SSD più lenti, in quanto ha meno spazio per fare la spazzatura e indossare il livellamento, e tutte quelle cose buone. Gli SSD non raccolgono automaticamente blocchi vuoti di per sé, ma devono anche tenere conto del livellamento dell'usura. In conclusione, il filesystem NON sa nulla su come memorizza le cose sul livello FTL
Time Twin

I filesystem non ottimizzati per SSD non riescono a tagliare tanto, il che ha lo stesso effetto dello spazio libero più piccolo.
Basilevs,

4

In questo eccellente articolo di AnandTech, esplorano il rapporto tra l'area di riserva e le prestazioni dell'SSD. La linea di fondo è che tutti gli SSD ottengono / mantengono le prestazioni quando lasciano inutilizzato parte del loro spazio. A volte c'è persino una differenza tra il 25% di spazio libero e il 50% di spazio libero.


3

Dipende da un modello SSD specifico, dal fornitore e dai modelli di utilizzo.

In alcune situazioni, un SSD utilizzato in modo intensivo può fornire prestazioni significativamente degradate trascurando la quantità di spazio su disco utilizzato che richiede un wipe di basso livello per ripristinare un nuovo livello di prestazioni.


Ad esempio, su un Intel X-25 G2 con supporto TRIM (su Windows 7).
Gabe,

0

Ho sentito che gli SSD tendono a rallentare quando si riempiono quasi completamente, ma immagino che occorrano meno di 5-10 GB di spazio libero per provare qualcosa del genere. Forse quando hai ancora meno di 1 GB o qualcosa del genere.


0

I filesystem in generale diventano lenti quando si riempiono. È dovuto alla frammentazione. Su un disco vuoto, puoi essere sicuro di poter scrivere un file in un blocco. Man mano che il filesystem si riempie, diminuiscono le possibilità di poter adattare il file in un singolo blocco contiguo, e devi fare sempre di più per trovare i dati, convertendo in un più come un accesso casuale ai dati, e quindi più lento.


2
Questo non si applica agli SSD perché non ci sono parti mobili, quindi gli accessi casuali aggiungono una quantità trascurabile di tempo di accesso. Potrebbe essere necessario che un file salti in giro con migliaia di frammenti posizionati casualmente per avere un impatto evidente, che verrebbe principalmente dal sistema operativo stesso che pianifica le sue letture e scritture.
TuxRug,

1
C'è ancora una differenza tra letture sequenziali e letture casuali. Ad esempio codinghorror.com/blog/2008/06/… fornisce 26 MB / s per la lettura sequenziale e 6 Mb / s per la lettura casuale.
Gorilla,

@TuxRug: le unità sono raggruppate in blocchi di cancellazione di centinaia di Kbyte o più; una volta che una pagina (che rappresenta 512 o 4096 byte di dati del "disco logico") viene scritta, non può essere riscritta se non cancellando tutte le pagine all'interno del suo blocco. Quando un settore "disco logico" viene sovrascritto, l'unità alloca una pagina precedentemente vuota per contenere i suoi nuovi contenuti e nota che la vecchia pagina può essere considerata obsoleta. Invece di cancellare immediatamente le pagine obsolete, la maggior parte delle unità attende fino a quando non ha bisogno di spazio e quindi cerca un blocco in cui la maggior parte o tutte le pagine sono obsolete.
supercat

@TuxRug: se il numero di pagine vuote diventa criticamente basso, le prestazioni dell'unità saranno proporzionali al maggior numero di pagine libere o obsolete all'interno di qualsiasi blocco [se ci sono 10 blocchi ciascuno con 15 pagine obsolete, quindi per le successive 150 scritture, una scrittura Il ciclo / cancella sarà necessario ogni 15. Se ci fossero tre blocchi ciascuno con 50 pagine obsolete, un ciclo di scrittura / cancellazione sarebbe necessario solo su ogni 50a scrittura.] La frammentazione rende più probabile che si finisca con molti blocchi che hanno solo poche pagine obsolete ciascuno.
supercat

0

Un altro fattore importante è se e quanto l'eccessivo provisioning è impostato dal produttore dell'SSD, come spiegato qui . Il provisioning eccessivo significa che parte dello spazio è riservato per attività in background come la garbage collection e non reso disponibile all'utente. Ad esempio, un SSD pubblicizzato come 256 GB potrebbe effettivamente essere 282 GB se è impostato un over-provisioning del 10%.

Se il produttore dell'SSD è stato generoso con spazio di provisioning eccessivo, lo spazio su disco ridotto potrebbe non influire notevolmente sulle prestazioni, ad esempio anche un SSD che appare pieno al 100% può effettivamente essere pieno solo all'85%. Ma se sei in grado di riempire effettivamente il tuo SSD vicino al 100%, ciò comporterebbe un significativo peggioramento delle prestazioni.

In breve, la quantità dell'effetto e se sarà evidente è specifica dell'SSD. Ma come regola generale, gli SSD funzionano meglio quando sono per lo più vuoti e le loro prestazioni peggiorano mentre si riempiono, per ragioni spiegate in altre risposte e nel collegamento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.