Om du ska formatera 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 svaren på en nyfiken läsares frågor.
Dagens Fråga & Svar-session kommer till oss med tillstånd av SuperUser - en underavdelning 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 att fylla en hårddisk med nollor skulle förbättra skrivprestanda:
Jag har en 2 TB hårddisk som var 99 procent full. Jag har tagit bort partitionerna med fdisk och formaterade den som ext4 . Så vitt jag vet finns de faktiska uppgifterna på hårddisken fortfarande, men partitionstabellen ändrades om.
Min fråga är: Skulle det förbättra skrivprestandan för ytterligare skrivåtgärder om hårddisken var ren? Med "ren" menar jag att fylla hårddisken med nollor? Något liknande:
- dd if = / dev / zero of = / dev / sdx bs = 1 count = 4503599627370496
Skulle det att fylla hårddisken med nollor förbättra skrivprestandan?
Svaret
SuperUser-bidragsgivaren 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ågon data till en rotationsenhet, blir det förvandlad in i 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 som har lästs tillbaka från tallriken har en viss variation. Till exempel skulle en lång sträng med "noll" eller "en" göra det mycket svårt att upprätthålla synkronisering. Har du läst 26 393 bitar eller 26 394 bitar? Hur känner du igen gränsen mellan bitarna?
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 körlängdsbegränsade kodningar .
För det andra, när du skriver ny data till en sektor, är de magnetiska domänerna i de relevanta delarna av tallriken helt enkelt inställda på önskat värde. Detta görs oavsett vad den tidigare magnetiska domänen ”var” på den specifika fysiska platsen. Plattan snurrar redan under skrivhuvudet; först läsa det aktuella värdet och sedan skriva det nya värdet om och bara om det är annorlunda. Det skulle göra att varje skrivning kräver två varv (eller ett extra huvud för varje tallrik), vilket gör att skrivfördröjningen fördubblas eller kraftigt ökar frekvensomriktarens komplexitet, vilket i sin tur ökar kostnaden.
Eftersom den begränsande faktorn i hårddiskens sekventiella I / O-prestanda är hur snabbt varje bit passerar under läs / skrivhuvudet, skulle detta inte ens erbjuda användaren någon fördel. Som en åtminstone är den begränsande faktorn i slumpmässig I / O-prestanda hur snabbt läs / skrivhuvudet kan placeras vid önskad cylinder och sedan 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åpekas av JakeGould , en anledning till varför du kanske vill skriva över enheten med något fast mönster (som alla nollor) skulle vara att se till att inga rester av tidigare lagrade data kan vara återhämtat sig , antingen medvetet eller av misstag. Men att göra detta kommer inte att ha någon effekt på hårddiskens prestanda framöver, av de skäl som anges ovan.
Har du något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa fler svar från andra tekniskt kunniga Stack Exchange-användare? Kolla in hela diskussionstråden här .