16Aug

Varför solid state-enheter saktar ner när du fyller dem

click fraud protection

Referenserna är klara: Solid State-enheter saktar ner när du fyller dem. Fyll din solid state-enhet till nära kapacitet och skrivprestandan minskar dramatiskt. Anledningen till detta ligger i hur SSD och NAND Flash-lagring fungerar.

Att fylla enheten till kapacitet är en av de saker du aldrig bör göra med en solid state-enhet. En nästan full solid state-enhet kommer att ha mycket långsammare skrivoperationer, vilket saktar ner datorn.

tomma block och delvis fyllda block

När du skriver en fil till din solid state-enhet, letar den efter tomma block och fyller dem. Att skriva till ett tomt block är den snabbaste möjliga skrivoperationen. Därför stöder nya operativsystem( Windows 7 och senare) TRIM-funktionen, som automatiskt tar bort en fils data från solid state-enheten så fort du tar bort filen i operativsystemet. Detta fungerar annorlunda från magnetiska hårddiskar, där bitar av borttagna filer sitter runt på hårddisken.

De sitter inte på en solid-state-enhet - TRIM säkerställer att blocket töms så att SSD snabbt kan skriva nya data till det tomma blocket i framtiden. Att skriva över en redan skrivet sektor är lika snabb som att skriva till en tom sektor på en mekanisk hårddisk, men en solid state-enhet måste radera ett block innan du skriver till det.

instagram viewer

NAND Flashminne skriver data i 4 KB-sidor inuti 256 kb-block. För att lägga till ytterligare sidor i ett delvis fyllt block måste solid state-enheten radera hela blocket innan du skriver data tillbaka till det.

När din solid-state-enhet fyller upp finns färre och färre tomma block tillgängliga. På deras plats är delvis fyllda block. Solid State Drive kan inte bara skriva de nya data till dessa delvis fyllda block - det skulle radera befintliga data. I stället för en enkel skrivoperation måste solid state-enheten läsa värdet av blocket i dess cache, ändra värdet med de nya data och skriva sedan tillbaka det. Tänk på att skriva en fil kommer sannolikt att innebära att du skriver till många block, så det här kan introducera en betydande mängd ytterligare fördröjningar.

TRIM konsoliderar inte delvis fyllda block

Om du fyller en enhet till kapacitet eller nära kapacitet är det troligt att du kommer att sluta med många delvis fyllda block när du har raderat filer. TRIM-kommandot riktar bara en solid state-enhet för att ta bort fildata när filen är raderad. Det tvingar inte enheten att göra någon form av rengöring.

Med andra ord fyller du en solid state-enhet till kapacitet innan du tar bort filer och du kommer sannolikt att sluta med många delvis fyllda block. Enheten kommer inte att gå ut ur sin väg för att konsolidera dessa delvis fyllda block i hela blocken och frigöra tomma block. Enheten kommer fortfarande vara full av delvis fyllda block och skrivresultatet försämras.

Overprovisioning and Garbage Collection

För att förhindra att konsumenterna fyller sina solid state-enheter och slutar med kraftigt försämrad prestanda, går SSD-tillverkare ut ur deras sätt att motverka detta.

Solid State-enheter i konsumentkvalitet sätter ofta cirka 7% av deras totala flashlagring och gör den otillgänglig för användaren. Det här kallas "överbetalda" - extra hårdvara lagras till enheten men är inte synlig för datorn som tillgänglig lagring den kan använda. Reservområdet garanterar att enheten aldrig blir helt full - det kommer alltid att finnas lite extra kapacitet för att hålla skrivprestanda stabil.

Varje styrenhet i solid state-enheten har en sopsamlingsalgoritm för att försöka mildra detta problem. När enheten blir full, kommer den att leta efter delvis fyllda block och börja konsolidera dem och frigöra så många tomma block som möjligt. Olika solid state-enheter kör dessa operationer vid olika tidpunkter och trösklar - det beror på enhetens kontroller.

Referensbevis

Anandtech utförde en mängd olika riktmärken med olika enheter för att reta ut relationen mellan en solid-state-enhetens reservområde och konsistensen av sin skrivoperation. När de fyllde i en tom enhet, fann de hög skrivprestanda väldigt tidigt i processen och ett signifikant fall då skrivoperationerna fortsatte att fylla i enheten.

Inställning av mer reservområde på enheterna bidrog till att prestanda förblev konsekvent, eftersom det var säkert att enheten alltid ska ha tillräckligt med tomma block.

De fann att "minsta prestanda förbättras väsentligt när du slår 25% extra utrymme för dessa [konsumentdrivrutiner]." Deras slutliga rekommendation var att du ska "planera att använda endast cirka 75% av [din enhetens] kapacitet om du vill ha en brabalans mellan prestandakonsistens och kapacitet. "

Om du har en solid state-enhet bör du försöka undvika att använda mer än 75% av sin kapacitet. Köp en större enhet med mer lagringsutrymme än vad du behöver och du kommer alltid att se till att du alltid har konsekvent skrivprestanda. Lyckligtvis blir SSD gradvis mycket billigare, så det här är inte så dyrt som det en gång var.

Bildkredit: Musik sortera på Wikimedia Commons, Simon Wüllhorst på Flickr