Skulle Skriv Prestanda förbättra om en omformaterad hårddisk fylldes med nollor?
Om du ska reformera en hårddisk, finns det något som skulle "förbättra" skrivprestanda efteråt eller är det något du inte ens borde oroa dig för? Dagens SuperUser Q & A-inlägg har svar på en nyfiken läsarens frågor.
Dagens Question & Answer-session kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.
Foto med tillstånd av Chris Bannister (Flickr).
Frågan
SuperUser-läsare Brettetete vill veta om fyllning av en hårddisk med nollor skulle förbättra skrivresultatet:
Jag har en 2TB-hårddisk som var 99 procent full. Jag har raderat partitionerna med fdisk och formaterade det som ext4. Såvitt jag vet var de faktiska data som fanns på hårddisken fortfarande existerande, men partitionstabellen omfördelades.
Min fråga är: Skulle det förbättra skrivresultatet för ytterligare skrivåtgärder om hårddisken var ren? Med "clean" menar jag att du fyller hårddisken med nollar? Något liknande:
- dd om = / dev / noll av = / dev / sdx bs = 1 count = 4503599627370496
Skulle fylla hårddisken med nollor förbättra skrivprestanda?
Svaret
SuperUser-bidragaren Michael Kjörling har svaret för oss:
Nej, det skulle inte förbättra prestanda. Hårddiskar fungerar inte så.
Först när du skriver några data till en rotationsdrivenhet blir den omvandlad till magnetiska domäner som faktiskt kan se väldigt annorlunda ut än det bitmönster du skriver. Detta görs delvis, eftersom det är mycket lättare att upprätthålla synkronisering när mönstret läser tillbaka från plattan har viss variation. En lång sträng av "noll" eller "en" -värden skulle till exempel göra det mycket svårt att behålla synkroniseringen. Har du läst 26.393 bitar eller 26.394 bitar? Hur känner du igen gränsen mellan bitar?
Teknikerna för att göra detta har utvecklats över tiden. Titta till exempel modifierad frekvensmodulering, MMFM, gruppkodinspelning och den mer allmänna tekniken för begränsade kodningar med körlängd.
För det andra, när du skriver nya data till en sektor, ställs de magnetiska domänerna på de relevanta delarna av plattan helt enkelt till önskat värde. Detta görs oavsett vad den tidigare magnetiska domänen "var" vid den aktuella fysiska platsen. Skivan spinner redan under skrivhuvudet; först läser det nuvarande värdet och skriver sedan det nya värdet om och endast om det är annorlunda. Det skulle leda till att varje skriv kräver två varv (eller ett extrahuvud för varje platta), vilket medför att skrivlatiden fördubblar eller kraftigt ökar komplexiteten hos enheten, vilket i sin tur ökar kostnaden.
Eftersom begränsningsfaktorn i hårddisken i följd är I / O-prestanda hur snabbt varje bit passerar under läs- / skrivhuvudet, skulle detta inte ens ge någon fördel för användaren. Som en sido är begränsningsfaktorn i slumpmässig I / O-prestanda hur snabbt läs- / skrivhuvudet kan placeras vid önskad cylinder och därefter kommer den önskade sektorn under huvudet. Den främsta anledningen till att SSD-enheter kan vara så snabba i slumpmässiga I / O-arbetsbelastningar är att de helt eliminerar båda dessa faktorer.
Som påpekat av JakeGould kan en orsak till att du kanske vill skriva om enheten med ett visst mönster (som alla nollor) vara att se till att inga rester av tidigare lagrade data kan återvinnas, antingen medvetet eller oavsiktligt. Men det kommer inte att ha någon effekt på hårddiskens prestanda framåt av ovanstående skäl.
Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.