Główna » jak » Czy wydajność zapisu poprawiłaby się, gdyby sformatowany dysk twardy był wypełniony zerami?

    Czy wydajność zapisu poprawiłaby się, gdyby sformatowany dysk twardy był wypełniony zerami?

    Jeśli masz zamiar sformatować dysk twardy, czy jest coś, co "poprawiłoby" wydajność zapisu, czy jest to coś, o co nie powinieneś się martwić? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedzi na ciekawe pytania czytelnika.

    Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupowania witryn z pytaniami i odpowiedziami.

    Zdjęcie dzięki uprzejmości Chris Bannister (Flickr).

    Pytanie

    Czytnik SuperUser Brettetete chce wiedzieć, czy wypełnienie twardego dysku zerami poprawiłoby wydajność zapisu:

    Mam dysk twardy o pojemności 2 TB, który był w 99 procentach pełny. Usunąłem partycje przy pomocy fdisk i sformatowany jako ext4. O ile mi wiadomo, rzeczywiste dane znajdujące się na twardym dysku nadal istnieją, ale tablica partycji została ponownie przypisana.

    Moje pytanie brzmi: czy poprawiłoby to wydajność zapisu dla dalszych działań zapisujących, gdyby dysk twardy był czysty? Przez "czyste" mam na myśli wypełnienie twardego dysku zerami? Coś jak:

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

    Napełnienie twardego dysku zerami poprawi wydajność zapisu?

    Odpowiedź

    Współpracownik SuperUser Michael Kjörling ma dla nas odpowiedź:

    Nie, nie poprawiłoby to wydajności. HDD nie działają w ten sposób.

    Po pierwsze, kiedy piszemy dane na napęd rotacyjny, zostaje on przekształcony w domeny magnetyczne, które w rzeczywistości mogą wyglądać zupełnie inaczej niż wzór bitowy, który piszemy. Dzieje się tak po części dlatego, że o wiele łatwiej jest utrzymać synchronizację, gdy wzór odczytany z talerza ma pewną zmienność. Na przykład długi ciąg wartości "zero" lub "jeden" bardzo utrudniłby synchronizację. Czytałeś 26 393 bitów lub 26 394 bitów? Jak rozpoznać granicę między bitami?

    Techniki tego działania ewoluowały z czasem. Na przykład wyszukaj Modified Frequency Modulation, MMFM, Group Code Recording i bardziej ogólną technologię ograniczonych kodowań run-length.

    Po drugie, kiedy piszemy nowe dane do sektora, domeny magnetyczne odpowiednich części talerza są po prostu ustawione na pożądaną wartość. Odbywa się to bez względu na to, jaka była wcześniejsza domena magnetyczna w tej konkretnej fizycznej lokalizacji. Talerz już kręci się pod głowicą piszącą; pierwsze czytanie bieżącej wartości, a następnie zapisanie nowej wartości wtedy i tylko wtedy, gdy jest inna. To spowodowałoby, że każdy zapis wymagałby dwóch obrotów (lub dodatkowej głowy dla każdego talerza), powodując opóźnienie zapisu w celu podwożenia lub znacznego zwiększenia złożoności napędu, co z kolei zwiększyłoby koszty.

    Ponieważ czynnikiem ograniczającym wydajność sekwencyjnego wejścia / wyjścia dysku twardego jest to, jak szybko każdy bit przechodzi pod głowicą odczytu / zapisu, nie przyniosłoby to żadnej korzyści użytkownikowi. Na marginesie, czynnikiem ograniczającym losową wydajność We / Wy jest to, jak szybko głowica odczytu / zapisu może być ustawiona na pożądanym cylindrze, a następnie pożądany sektor dociera pod głowę. Głównym powodem, dla którego dyski SSD mogą być tak szybkie w losowym obciążeniu we / wy, jest całkowite wyeliminowanie obu tych czynników.

    Jak zauważył JakeGould, jednym z powodów, dla których możesz chcieć nadpisać dysk jakimś ustalonym wzorcem (takim jak wszystkie zera) byłoby zagwarantowanie, że żadne pozostałości wcześniej zapisanych danych nie zostaną odzyskane, celowo lub przypadkowo. Nie spowoduje to jednak żadnego wpływu na wydajność dysku twardego z powodów wymienionych powyżej.


    Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.