If-Koubou

S-ar îmbunătăți scrierea dacă un hard disk reformat a fost umplut cu zerouri?

S-ar îmbunătăți scrierea dacă un hard disk reformat a fost umplut cu zerouri? (Cum să)

Dacă intenționați să reformați un hard-disk, există ceva care să "îmbunătățească" performanța de scriere după aceea sau este ceva ce nu ar trebui să vă faceți griji? Postarea de astăzi SuperUser Q & A are răspunsurile la întrebările curioase ale cititorului.

Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor Q & A.

Fotografia este pe placul lui Chris Bannister (Flickr).

Intrebarea

Cititorul SuperUser Brettetete dorește să știe dacă umplerea unui hard-disk cu zero va îmbunătăți performanța de scriere:

Am un hard disk de 2TB care a fost de 99% plin. Am șters partițiile cu fdisk și formatat ca Ext4. Din câte știu, datele actuale care existau pe hard-disk încă există, totuși tabela de partiții a fost realocată.

Întrebarea mea este: S-ar îmbunătăți performanța de scriere pentru alte acțiuni de scriere dacă hard-disk-ul a fost curat? Cu "curat" vreau să spun umple hard-disk-ul cu zero? Ceva asemănător cu:

  • dd dacă = / dev / zero = = / dev / sdx bs = 1 count = 4503599627370496

Ar fi completat hard-disk-ul cu zerouri îmbunătățind performanța de scriere?

Răspunsul

Contribuabilul SuperUser Michael Kjörling are răspunsul pentru noi:

Nu, nu ar îmbunătăți performanța. HDD-urile nu funcționează așa.

În primul rând, atunci când scrieți date date unei unități rotative, aceasta se transformă în domenii magnetice care pot arăta de fapt foarte diferite de modelul de biți pe care îl scrieți. Acest lucru se face parțial deoarece este mult mai ușor să se mențină sincronizarea atunci când modelul citit înapoi de la platan are o anumită variabilitate. De exemplu, un șir lung de valori "zero" sau "unul" ar face foarte greu să se mențină sincronizarea. Ai citit 26,393 de biți sau 26,394 de biți? Cum recunoști limita dintre biți?

Tehnicile pentru a face acest lucru au evoluat în timp. De exemplu, căutați modulația modului de frecvență modificată, MMFM, înregistrarea codului de grup și tehnologia mai generală a codificărilor limitate în funcție de lungime.

În al doilea rând, atunci când scrieți date noi într-un sector, domeniile magnetice ale porțiunilor relevante ale tăvii sunt setate pur și simplu la valoarea dorită. Acest lucru se face indiferent de domeniul magnetic anterior "care era" la acea locație fizică particulară. Platoul se rotește deja sub capul de scriere; citiți prima dată valoarea curentă, apoi scrieți noua valoare dacă și numai dacă este diferită. Aceasta ar determina ca fiecare scriere să necesite două revoluții (sau un cap suplimentar pentru fiecare tavă), cauzând o latență de scriere pentru a dubla sau pentru a crește în mare măsură complexitatea unității, la rândul său, creșterea costurilor.

Deoarece factorul de limitare al performanței secvențiale I / O a unității hard disk este cât de repede trece fiecare bit sub capul de citire / scriere, acest lucru nu ar aduce nici un beneficiu pentru utilizator. Pe de altă parte, factorul limitativ în performanța aleatorie I / O este cât de repede capul de citire / scriere poate fi poziționat la cilindrul dorit și apoi sectorul dorit ajunge sub cap. Motivul principal pentru care SSD-urile pot fi atât de rapide în volumele de lucru aleatorii I / O este că elimină complet ambii acești factori.

După cum a subliniat JakeGould, unul dintre motivele pentru care ați putea dori să înlocuiți unitatea cu un model fix (cum ar fi toate zerouri) ar fi să vă asigurați că niciun rest de date stocate anterior nu poate fi recuperat, în mod deliberat sau accidental. Dar acest lucru nu va avea niciun efect asupra performanței hard-drive-ului înainte, din motivele menționate mai sus.

Aveți ceva de adăugat la explicație? Sunați în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.