Jos aiot alustaa kiintolevyn uudelleen, onko jotain, mikä "parantaisi" kirjoituksen suorituskykyä jälkikäteen, vai onko siitä syytä edes huolehtia? Tämän päivän SuperUser Q & A -viestissä on vastaukset utelias lukijan kysymyksiin.
Tämän päivän Kysymys- ja vastausistunto tulee meille SuperUser-yhteisöstään, joka on Stack Exchangen osasto.
Kuva: Chris Bannister (Flickr) .
Kysymys
SuperUser-lukija Brettetete haluaa tietää, parantaisiko kiintolevyn nollataso kirjoittamisen suorituskykyä:
Minulla on 2 Tt: n kiintolevy, joka oli 99 prosenttia täynnä. Olen poistanut osiot fdisk ja muotoili sen muodossa ext4 . Sikäli kuin tiedän, kiintolevyllä olevat todelliset tiedot ovat edelleen olemassa, mutta osiotaulukko määritettiin uudelleen.
Kysymykseni kuuluu: Parantaisiko se kirjoitusominaisuuksia kirjoittamista varten, jos kiintolevy oli puhdas? Puhtaalla tarkoitan kiintolevyn täyttämistä nollilla? Vähän niin kuin:
- dd jos = / dev / nolla = / dev / sdx bs = 1 määrä = 4503599627370496
Parannaako kiintolevyn täyttäminen nollilla kirjoittamisen suorituskykyä?
Vastaus
SuperUser-avustaja Michael Kjörlingillä on vastaus meille:
Ei, se ei parantaisi suorituskykyä. Kiintolevyt eivät toimi näin.
Ensinnäkin, kun kirjoitat mitä tahansa tietoja pyörivään asemaan, se saa muuttunut osaksi magneettiset verkkotunnukset joka voi todella näyttää hyvin erilaiselta kuin bittikuvio, jota kirjoitat. Tämä tapahtuu osittain, koska synkronointia on paljon helpompi ylläpitää, kun maljalta takaisin luetulla kuviolla on tietty määrä vaihtelevuutta. Esimerkiksi pitkä nolla- tai yksi-merkkijono tekisi synkronoinnin ylläpitämisestä erittäin vaikeaa. Oletko lukenut 26393 bittiä tai 26394 bittiä? Kuinka tunnistat bittien välisen rajan?
Tekniikat tämän tekemiseksi ovat kehittyneet ajan myötä. Katso esimerkiksi ylös Muokattu taajuusmodulaatio , MMFM, Ryhmäkoodin tallennus ja yleisempi tekniikka run-length rajoitetut koodaukset .
Toiseksi, kun kirjoitat uutta tietoa sektorille, lautasen asiaankuuluvien osien magneettiset alueet asetetaan yksinkertaisesti haluttuun arvoon. Tämä tehdään riippumatta siitä, mikä edellinen magneettialue oli "kyseisessä fyysisessä paikassa. Levy pyörii jo kirjoituspäässä; Lue ensin nykyinen arvo ja kirjoita sitten uusi arvo vain ja vain, jos se on erilainen. Se aiheuttaisi jokaisen kirjoituksen vaativan kaksi kierrosta (tai ylimääräisen pään jokaiselle levylle), aiheuttaen kirjoitusviiveen kaksinkertaisen tai lisäävän huomattavasti aseman monimutkaisuutta, mikä puolestaan lisäisi kustannuksia.
Koska kiintolevyn peräkkäisen I / O-suorituskyvyn rajoittava tekijä on se, kuinka nopeasti kukin bitti kulkee luku / kirjoituspään alapuolella, tämä ei edes tarjoa mitään hyötyä käyttäjälle. Sivumääräisesti satunnaisten I / O-suoritusten rajoittava tekijä on se, kuinka nopeasti luku- / kirjoituspää voidaan sijoittaa haluttuun sylinteriin ja sitten haluttu sektori saapuu pään alle. Tärkein syy miksi SSD: t voivat olla niin nopeita satunnaisissa I / O-kuormituksissa, on se, että ne eliminoivat molemmat näistä tekijöistä.
Kuten huomautti JakeGould , yksi syy miksi haluat korvaa asema, jolla on jokin kiinteä malli (kuten kaikki nollat), varmistaa, ettei aiemmin tallennettujen tietojen jäänteitä voi olla toipunut , jompikumpi tarkoituksella tai vahingossa. Mutta näin tekemällä ei ole mitään vaikutusta kiintolevyn suorituskykyyn eteenpäin edellä mainituista syistä.
Onko sinulla jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta teknisesti taitavilta Stack Exchangen käyttäjiltä? Katso koko keskusteluketju täältä .