Jeśli zamierzasz sformatować dysk twardy, czy jest coś, co „poprawiłoby” później wydajność zapisu, czy też jest to coś, o co nie powinieneś się nawet martwić? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedzi na pytania zaciekawionego czytelnika.
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.
Zdjęcie dzięki uprzejmości Chris Bannister (flickr) .
Pytanie
Czytnik SuperUser Brettetete chce wiedzieć, czy wypełnienie dysku twardego zerami poprawiłoby wydajność zapisu:
Mam dysk twardy o pojemności 2 TB, zapełniony w 99 procentach. Usunąłem partycje z fdisk i sformatował jako ext4 . O ile wiem, rzeczywiste dane, które znajdowały się na dysku twardym, nadal istnieją, ale tablica partycji została ponownie przypisana.
Moje pytanie brzmi: czy poprawiłoby to wydajność zapisu dla dalszych akcji zapisu, gdyby dysk twardy był czysty? Przez „czysty” mam na myśli zapełnienie dysku twardego zerami? Coś jak:
- dd if = / dev / zero of = / dev / sdx bs = 1 count = 4503599627370496
Czy wypełnienie dysku twardego zerami poprawi wydajność zapisu?
Odpowiedź
Współautor SuperUser Michael Kjörling ma dla nas odpowiedź:
Nie, to nie poprawi wydajności. Dyski twarde nie działają w ten sposób.
Po pierwsze, kiedy zapisujesz dane na dysku obrotowym, to się dzieje przekształcony w domeny magnetyczne który w rzeczywistości może wyglądać zupełnie inaczej niż tworzony wzór bitowy. Dzieje się tak po części dlatego, że o wiele łatwiej jest utrzymać synchronizację, gdy wzór odczytywany z talerza ma pewną zmienność. Na przykład długi ciąg wartości „zero” lub „jeden” bardzo utrudniłby utrzymanie synchronizacji. Czy przeczytałeś 26 393 lub 26 394 bitów? Jak rozpoznajesz granicę między bitami?
Techniki służące do tego ewoluowały w czasie. Na przykład spójrz w górę Zmodyfikowana modulacja częstotliwości , MMFM, Nagrywanie kodu grupy i bardziej ogólna technologia ograniczone kodowanie długości serii .
Po drugie, kiedy zapisujesz nowe dane w sektorze, domeny magnetyczne odpowiednich części talerza są po prostu ustawiane na żądaną wartość. Odbywa się to niezależnie od tego, czym „była” poprzednia domena magnetyczna w tym konkretnym miejscu fizycznym. Talerz już kręci się pod głowicą piszącą; najpierw odczytuje bieżącą wartość, a następnie zapisuje nową wartość wtedy i tylko wtedy, gdy jest inna. Spowodowałoby to, że każdy zapis wymagałby dwóch obrotów (lub dodatkowej głowicy na każdy talerz), co spowodowałoby podwojenie lub znaczne zwiększenie złożoności dysku, co z kolei spowodowałoby opóźnienie zapisu.
Ponieważ czynnikiem ograniczającym wydajność sekwencyjnego wejścia / wyjścia dysku twardego jest szybkość przechodzenia każdego bitu pod głowicą odczytu / zapisu, nie przyniosłoby to nawet żadnych korzyści użytkownikowi. Nawiasem mówiąc, czynnikiem ograniczającym wydajność losowych wejść / wyjść jest szybkość, z jaką głowica odczytująco-zapisująca może być ustawiona na żądanym cylindrze, a następnie żądany sektor dociera pod głowicę. Głównym powodem, dla którego dyski SSD mogą być tak szybkie w losowych obciążeniach we / wy, jest to, że całkowicie eliminują oba te czynniki.
Jak wskazał JakeGould , jeden powód, dla którego możesz chcieć przepisać dysk z jakimś ustalonym wzorcem (takim jak same zera) miałby zapewnić, że żadne pozostałości wcześniej zapisanych danych nie zostaną odzyskany , zarówno celowo lub przypadkowo. Jednak z powodów wymienionych powyżej nie będzie to miało żadnego wpływu na wydajność dysku twardego w przyszłości.
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .