16Aug

Zou schrijfprestaties verbeteren als een opnieuw geformatteerde harde schijf vol zat met nullen?

click fraud protection

Als u een harde schijf gaat formatteren, is er dan iets dat de schrijfprestaties achteraf zou verbeteren of is het iets waar u zich zelfs geen zorgen over hoeft te maken? Today's SuperUser Q & A post heeft de antwoorden op vragen van nieuwsgierige lezers.

De vraag van vandaag &Antwoord sessie komt naar ons met dank aan SuperUser-een onderverdeling van Stack Exchange, een community-gestuurde groepering van Q & A-websites.

Foto met dank aan Chris Bannister( Flickr).

De vraag

SuperUser-lezer Brettetete wil weten of het vullen van een harde schijf met nullen de schrijfprestaties zou verbeteren:

Ik heb een harde schijf van 2 TB die voor 99 procent vol was. Ik heb de partities verwijderd met fdisk en geformatteerd als ext4 .Voor zover ik weet, bestaan ​​de feitelijke gegevens op de harde schijf nog steeds, maar de partitietabel is opnieuw toegewezen.

Mijn vraag is: zou het de schrijfprestaties voor verdere schrijfacties verbeteren als de harde schijf schoon was? Met 'schoon' bedoel ik dat ik de harde schijf vul met nullen? Iets als:

instagram viewer
  • dd if = /dev/ zero of = /dev/ sdx bs = 1 count = 4503599627370496

Zou het vullen van de harde schijf met nullen de schrijfprestaties verbeteren?

Het antwoord

SuperUser-bijdrager Michael Kjörling heeft het antwoord voor ons:

Nee, het zou de prestaties niet verbeteren. HDD's werken niet zo.

Eerst, wanneer je een gegeven gegevens naar een rotatie-eenheid schrijft, wordt het getransformeerd in magnetische domeinen die er in werkelijkheid heel anders kunnen uitzien dan het bitpatroon dat je schrijft. Dit wordt gedeeltelijk gedaan omdat het veel gemakkelijker is om de synchronisatie te handhaven wanneer het patroon dat van de schijf wordt teruggelezen, een zekere mate van variabiliteit heeft. Een lange reeks 'nul' of 'één' waarden zou het bijvoorbeeld heel moeilijk maken om de synchronisatie te behouden. Heb je 26,393 bits of 26 394 bits gelezen? Hoe herken je de grens tussen bits?

De technieken hiervoor zijn in de loop van de tijd geëvolueerd. Kijk bijvoorbeeld eens naar Modified Frequency Modulation, MMFM, Group Code Recording en de meer algemene technologie van run-length limited encodings.

Ten tweede, wanneer u nieuwe gegevens naar een sector schrijft, worden de magnetische domeinen van de relevante delen van de schijf eenvoudig op de gewenste waarde ingesteld. Dit gebeurt ongeacht wat het vorige magnetische domein 'was' op die specifieke fysieke locatie. De schaal draait al onder de schrijfkop;eerste lezing van de huidige waarde, dan schrijven van de nieuwe waarde als en alleen als het anders is. Het zou ervoor zorgen dat elke schrijf twee omwentelingen vereist( of een extra kop voor elke schijf), waardoor de latentie van de schrijf wordt verdubbeld of de complexiteit van de schijf aanzienlijk wordt verhoogd, waardoor de kosten stijgen.

Aangezien de beperkende factor in hard-drive sequentiële I / O-prestaties is hoe snel elke bit onder de lees / schrijfkop passeert, zou dit zelfs geen enkel voordeel voor de gebruiker opleveren. Even terzijde, de beperkende factor bij willekeurige I / O-prestaties is hoe snel de lees / schrijfkop op de gewenste cilinder kan worden geplaatst en vervolgens komt de gewenste sector onder de kop. De belangrijkste reden waarom SSD's zo snel kunnen zijn in willekeurige I / O-workloads, is dat ze beide factoren volledig elimineren.

Zoals opgemerkt door JakeGould, zou een reden waarom u de schijf wilt overschrijven met een vast patroon( zoals alle nullen) ervoor zorgen dat er geen overblijfselen van eerder opgeslagen gegevens kunnen worden hersteld, hetzij opzettelijk of per ongeluk. Maar dit zal geen effect hebben op de prestaties van de harde schijf in de toekomst, om de hierboven genoemde redenen.

Heeft u iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk de volledige discussiethread hier.