If-Koubou

Dlaczego opróżnianie miejsca na dysku przyspiesza pracę komputerów?

Dlaczego opróżnianie miejsca na dysku przyspiesza pracę komputerów? (Jak)

Gdy dowiesz się więcej o komputerach i ich działaniu, od czasu do czasu natkniesz się na coś, co nie ma sensu. Mając to na uwadze, czy opróżnianie przestrzeni dyskowej faktycznie przyspiesza działanie komputerów? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na zaintrygowane pytanie czytelnika.

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

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

Pytanie

Czytnik SuperUser Remi.b chce wiedzieć, dlaczego opróżnianie miejsca na dysku przyspiesza działanie komputera:

Oglądałem wiele filmów i teraz rozumiem, jak komputery działają lepiej. Rozumiem, czym jest pamięć RAM, pamięć lotna i nieulotna oraz proces zamiany. Rozumiem również, dlaczego zwiększenie pamięci RAM przyspiesza działanie komputera.

Nie rozumiem, dlaczego oczyszczanie miejsca na dysku wydaje się przyspieszać działanie komputera. Czy to naprawdę przyspiesza działanie komputera? Jeśli tak, dlaczego to robi?

Czy ma to jakiś związek z wyszukiwaniem miejsca w pamięci, aby oszczędzać rzeczy lub poruszać nimi, aby stworzyć wystarczająco długą, ciągłą przestrzeń do zapisania czegoś? Ile wolnego miejsca powinienem zostawić na dysku twardym?

Dlaczego opróżnianie miejsca na dysku wydaje się przyspieszać działanie komputera?

Odpowiedź

Superużytkownik Jason C ma dla nas odpowiedź:

"Dlaczego opróżnianie miejsca na dysku przyspiesza działanie komputerów?"

Nie, przynajmniej nie na własną rękę. To jest naprawdę powszechny mit. Powodem, dla którego jest to powszechny mit, jest to, że zapełnianie dysku twardego często odbywa się w tym samym czasie co inne rzeczy, które tradycyjnie mogą spowolnić działanie komputera. (ZA). Wydajność dysku SSD zmniejsza się w miarę wypełniania, ale jest to stosunkowo nowy problem, unikalny dla dysków SSD i nie jest tak zauważalny dla zwykłych użytkowników. Ogólnie rzecz biorąc, mała ilość wolnego miejsca na dysku jest po prostu czerwonym śledziem.

Na przykład rzeczy takie jak:

1. Fragmentacja pliku. Fragmentacja plików jest problemem (B), ale brak wolnego miejsca, choć zdecydowanie jednym z wielu czynników, nie jest jedyną przyczyną. Oto kilka kluczowych punktów:

  • Szanse na fragmentację pliku są nie związane z ilością wolnego miejsca na dysku. Są one związane z rozmiarem największego, ciągłego bloku wolnej przestrzeni na napędzie (tj. "Dziurami" wolnej przestrzeni), które to ilość wolnej przestrzeni dzieje się, aby umieścić górną granicę. Są one również związane z tym, w jaki sposób system plików obsługuje przydzielanie plików (więcej poniżej). Rozważać: Napęd, który jest w 95 procentach pełny z całą wolną przestrzenią w jednym, ciągłym bloku, ma zerowy procent szans na fragmentację nowego pliku (DO) (a szansa na fragmentację dołączonego pliku jest niezależna od wolnej przestrzeni). Napełniony na pięć procent dysk, ale równomiernie rozłożony na dysku dysk ma bardzo dużą szansę na fragmentację.
  • Pamiętaj, że fragmentacja plików wpływa tylko na wydajność podczas uzyskiwania dostępu do pofragmentowanych plików. Rozważać: Masz ładną, defragmentowaną jazdę, która wciąż ma w sobie wiele wolnych "dziur". Typowy scenariusz. Wszystko działa sprawnie. Ostatecznie jednak dojdziesz do punktu, w którym nie pozostało więcej dużych bloków wolnego miejsca. Pobierasz ogromny film, plik kończy się poważnym rozdrobnieniem. To nie spowolni twojego komputera. Wszystkie pliki aplikacji i takie, które były wcześniej w porządku, nie zostaną nagle podzielone. Może to spowodować, że film będzie ładowany dłużej (chociaż typowe szybkości bitowe filmu są tak niskie w porównaniu do szybkości odczytu dysku twardego, że najprawdopodobniej będzie to niezauważalne) i może wpływać na wydajność związaną z obsługą I / O podczas ładowania filmu, ale poza tym nic się nie zmienia.
  • Fragmentacja pliku jest z pewnością problemem, ale często efekty są łagodzone przez buforowanie i buforowanie na poziomie sprzętu i sprzętu. Opóźnione zapisywanie, czytanie z wyprzedzeniem, strategie takie jak prefetcher w systemie Windows itp., Wszystkie pomagają zmniejszyć skutki fragmentacji. Zwykle nie tak właściwie doświadczają znaczącego wpływu, dopóki fragmentacja nie stanie się poważna (nawet powiedziałbym, że dopóki plik wymiany nie zostanie podzielony, prawdopodobnie nigdy nie zauważysz).

2. Indeksowanie wyszukiwania to kolejny przykład. Załóżmy, że masz włączone automatyczne indeksowanie i system operacyjny, który nie radzi sobie z tym z wdziękiem. W miarę zapisywania coraz większej ilości materiałów do indeksowania na komputerze (dokumenty i tym podobne) indeksowanie może trwać dłużej i może mieć wpływ na postrzeganą szybkość działania komputera, zarówno podczas operacji we / wy i procesora. . Nie ma to związku z wolną przestrzenią, jest związane z ilością posiadanej zawartości do indeksowania. Jednak wyczerpywanie się wolnego miejsca idzie w parze z przechowywaniem większej ilości treści, dlatego też tworzone jest fałszywe połączenie.

3. Oprogramowanie antywirusowe (podobne do przykładu indeksowania wyszukiwania). Załóżmy, że masz zainstalowane oprogramowanie antywirusowe, które przeprowadza skanowanie dysku w tle. Ponieważ masz coraz więcej materiałów do skanowania, wyszukiwanie wymaga więcej zasobów we / wy i procesora, co może zakłócać pracę. Ponownie, jest to związane z ilością dostępnej treści do skanowania. Więcej treści często równa się mniejszej ilości wolnego miejsca, ale brak wolnej przestrzeni nie jest przyczyną.

4. Zainstalowane oprogramowanie. Załóżmy, że masz dużo zainstalowanego oprogramowania, które ładuje się podczas uruchamiania komputera, co spowalnia czas uruchamiania. To spowolnienie dzieje się, ponieważ ładuje się dużo oprogramowania. Zainstalowane oprogramowanie zajmuje jednak miejsce na dysku twardym. W związku z tym wolne miejsce na dysku twardym zmniejsza się w tym samym czasie i ponownie można łatwo nawiązać fałszywe połączenie.

5. Wiele innych przykładów wzdłuż tych linii, które razem wzięte, zjawić się ściśle powiązać brak wolnego miejsca z niższą wydajnością.

Powyższe ilustruje kolejny powód, dla którego jest to taki powszechny mit: podczas gdy brak wolnej przestrzeni nie jest bezpośrednią przyczyną spowolnienia, deinstalacji różnych aplikacji, usuwania indeksowanych lub skanowanych treści itp. Czasami (ale nie zawsze, poza zakresem ta odpowiedź) ponownie zwiększa wydajność z przyczyn niezwiązanych z ilością pozostałej wolnej przestrzeni. Ale to także naturalnie zwalnia miejsce na dysku twardym. Dlatego też można uzyskać oczywiste (ale fałszywe) połączenie między "większą ilością wolnego miejsca" a "szybszym komputerem".

Rozważać: Jeśli masz wolną maszynę z powodu dużej ilości zainstalowanego oprogramowania itp., Sklonuj dysk twardy (dokładnie) na większy dysk twardy, a następnie rozwiń swoje partycje, aby uzyskać więcej wolnego miejsca, urządzenie nie przyspieszy w magiczny sposób. To samo oprogramowanie ładuje się, te same pliki są nadal pofragmentowane w ten sam sposób, ten sam indeks wyszukiwania nadal działa, nic się nie zmienia, mimo że ma więcej wolnego miejsca.

"Czy ma to coś wspólnego z wyszukiwaniem miejsca w pamięci, aby oszczędzać?"

Nie. Na uwagę zasługują dwie ważne rzeczy:

1. Twój dysk twardy nie szuka w pobliżu, aby znaleźć miejsca, w których można umieścić rzeczy. Twój twardy dysk jest głupi. To nic nie znaczy. Jest to duży blok adresowanej pamięci masowej, która ślepo umieszcza rzeczy tam, gdzie twój system operacyjny to mówi i czyta wszystko, o co go proszą. Nowoczesne dyski mają zaawansowane mechanizmy buforowania i buforowania zaprojektowane do przewidywania, o co system operacyjny będzie prosił, w oparciu o doświadczenie, które zdobyliśmy w miarę upływu czasu (niektóre dyski są nawet świadome systemu plików, który jest na nich), ale zasadniczo, pomyśl o swoim jechać jak duża, głupia klocówka z okazjonalnymi bonusowymi funkcjami.

2. Twój system operacyjny również nie szuka miejsc, w których można umieścić rzeczy. Nie ma szukania. Wiele wysiłku włożono w rozwiązanie tego problemu, ponieważ ma kluczowe znaczenie dla wydajności systemu plików. Sposób, w jaki dane są faktycznie zorganizowane na dysku, zależy od systemu plików. Na przykład FAT32 (stare DOS i Windows PC), NTFS (późniejsze wersje systemu Windows), HFS + (Mac), ext4 (niektóre systemy Linux) i wiele innych. Nawet koncepcja "pliku" i "katalogu" są jedynie produktami typowych systemów plików - dyski twarde nie wiedzą nic o tajemniczych zwierzętach zwanych pliki. Szczegóły wykraczają poza zakres tej odpowiedzi. Zasadniczo jednak wszystkie popularne systemy plików mają sposoby śledzenia, gdzie dostępna jest wolna przestrzeń na dysku, tak aby w normalnych warunkach (tj. Systemy plików w dobrym stanie zdrowia) nie było potrzeby szukania wolnego miejsca. Przykłady:

  • NTFS ma główną tabelę plików, która zawiera pliki specjalne $ Bitmapitp. oraz mnóstwo metadanych opisujących napęd. Zasadniczo śledzi lokalizację kolejnych wolnych bloków, aby nowe pliki mogły być zapisywane bezpośrednio w wolnych blokach bez konieczności skanowania dysku za każdym razem.
  • Inny przykład: Ext4 ma tak zwany alokator bitmap, ulepszenie w stosunku do ext2 i ext3, które zasadniczo pomaga bezpośrednio określić, gdzie są wolne bloki zamiast skanować listę wolnych bloków. Ext4 również obsługuje opóźniona alokacjato jest buforowanie danych w pamięci RAM przez system operacyjny przed zapisaniem go na dysku w celu podjęcia lepszych decyzji o tym, gdzie umieścić go w celu zmniejszenia fragmentacji.
  • Wiele innych przykładów.

"Albo z robieniem ruchów, aby zrobić wystarczająco długą, ciągłą przestrzeń, by coś zapisać?"

Nie. Tak się nie dzieje, przynajmniej nie z żadnym systemem plików, którego znam. Pliki kończą się fragmentacją.

Rozpoczyna się proces "przemieszczania się w celu stworzenia wystarczająco długiej, ciągłej przestrzeni do zapisania czegoś" defragmentacja. Tak się nie dzieje, gdy pliki są zapisywane. Dzieje się tak, gdy uruchamiasz defragmentator dysku. W nowszych wersjach systemu Windows dzieje się to automatycznie zgodnie z harmonogramem, ale nigdy nie jest uruchamiany przez zapisanie pliku.

Mogąc uniknąć przenoszenie takich elementów jest kluczem do wydajności systemu plików, i dlatego fragmentacja się dzieje i dlaczego defragmentacja istnieje jako osobny krok.

"Ile pustej przestrzeni powinienem zostawić na dysku twardym?"

Jest to trudniejsze pytanie, na które należy odpowiedzieć (a ta odpowiedź już stała się małą książką).

Reguły kciuka:

1. Dla wszystkich typów napędów:

  • Co najważniejsze, zostaw wystarczająco dużo wolnego miejsca aby skutecznie korzystać z komputera. Jeśli masz mało miejsca do pracy, będziesz potrzebować większego napędu.
  • Wiele narzędzi do defragmentacji dysków wymaga minimalnej ilości wolnej przestrzeni (myślę, że ta z systemem Windows wymaga 15 procent, najgorszy przypadek) do pracy. Używają tej wolnej przestrzeni do tymczasowego przechowywania pofragmentowanych plików, ponieważ inne rzeczy są rearanżowane.
  • Pozostaw miejsce na inne funkcje systemu operacyjnego. Na przykład, jeśli komputer nie ma dużo fizycznej pamięci RAM, a pamięć wirtualna jest włączona z dynamicznym plikiem stronicowania, należy zostawić wystarczająco dużo miejsca na maksymalny rozmiar pliku strony. Lub jeśli masz laptopa, który przejdziesz w tryb hibernacji, będziesz potrzebował wystarczająco dużo wolnego miejsca na plik stanu hibernacji. Rzeczy takie jak te.

2. Specyfikacja SSD:

  • Aby zapewnić optymalną niezawodność (i w mniejszym stopniu wydajność), dyski SSD wymagają pewnej ilości wolnego miejsca, które bez wchodzenia w szczegóły, wykorzystują do rozprzestrzeniania danych wokół dysku, aby uniknąć ciągłego zapisywania w tym samym miejscu (co je zużywa) . Ta koncepcja pozostawienia wolnego miejsca nazywa się nadmiernym zaopatrzeniem. To jest ważne, ale na wielu dyskach SSD istnieje już obowiązkowe, nadmiarowe miejsce. Oznacza to, że dyski często mają kilkadziesiąt więcej GB niż zgłoszą się do systemu operacyjnego. Dyski z dolnej półki często wymagają ręcznego opuszczenia niepodzielony na partycje przestrzeń, ale dla napędów z obowiązkowym OP, nie musisz zostawiać wolnego miejsca. Ważną rzeczą, o której należy pamiętać, jest to, że nadmiarowe miejsce jest często pobierane tylko z niepodzielonej na partycje przestrzeni. Więc jeśli twoja partycja zajmuje cały twój dysk i zostawiasz na niej trochę wolnego miejsca, to nie zawsze liczyć. Często ręczne nadpisywanie wymaga zmniejszenia partycji, aby była mniejsza niż rozmiar dysku. Aby uzyskać szczegółowe informacje, zapoznaj się z instrukcją obsługi dysku SSD. TRIM, odśmiecanie i takie też mają efekty, ale te są poza zakresem tej odpowiedzi.

Osobiście zazwyczaj łapię większy dysk, gdy pozostało mi około 20-25% wolnego miejsca. Nie ma to związku z wydajnością. Po prostu, kiedy dojdę do tego punktu, spodziewam się, że prawdopodobnie wkrótce zabraknie miejsca na dane i nadszedł czas, aby uzyskać większy dysk.

Ważniejsze niż oglądanie wolnego miejsca jest upewnienie się, że zaplanowana defragmentacja jest włączona tam, gdzie jest to właściwe (nie na dyskach SSD), dzięki czemu nigdy nie dojdziesz do punktu, w którym stanie się na tyle poważny, aby wpłynąć na ciebie.

Jest jeszcze jedna rzecz, o której warto wspomnieć. Jedna z pozostałych odpowiedzi wspomniała, że ​​tryb half-duplex SATA zapobiega jednoczesnemu czytaniu i pisaniu. Chociaż jest to prawda, jest to znacznie uproszczone i nie ma związku z opisywanymi tutaj problemami z wydajnością. Oznacza to po prostu, że dane nie mogą być przesyłane w obu kierunkach na przewodzie w tym samym czasie. Jednak SATA ma dość złożoną specyfikację obejmującą małe maksymalne rozmiary bloków (około 8kB na blok na drucie, jak sądzę), kolejki operacji odczytu i zapisu itp. I nie wyklucza zapisywania do buforów w trakcie odczytu, przeplatania operacje itp.

Każde blokowanie, które nastąpi, będzie wynikiem rywalizacji o zasoby fizyczne, zwykle ograniczane przez dużą pamięć podręczną. Tryb dupleksowania SATA jest tutaj prawie całkowicie nieistotny.

(ZA) "Zwolnienie" jest szerokim pojęciem. Używam go, aby odnieść się do rzeczy, które są albo związane z I / O (tj. Jeśli twój komputer siedzi tam, gdzie zgniatają się liczby, zawartość dysku twardego nie ma wpływu) lub jest związany z procesorem i konkuruje z tangencjalnie powiązanymi rzeczami, które mają wysoką wartość Wykorzystanie procesora (np. Skanowanie oprogramowania antywirusowego ton plików).

(B) Dyski SSD są dotknięte fragmentacją, ponieważ sekwencyjne prędkości dostępu są zwykle szybsze niż dostęp losowy, mimo że dyski SSD nie mają takich samych ograniczeń jak urządzenia mechaniczne (nawet wtedy brak fragmentacji nie gwarantuje dostępu sekwencyjnego z powodu wyrównywania zużycia itp.). Jednak w praktycznie każdym ogólnym scenariuszu nie jest to problemem. Różnice w wydajności spowodowane fragmentacją na dyskach SSD są zazwyczaj pomijalne w przypadku takich zadań, jak ładowanie aplikacji, uruchamianie komputera itp.

(DO) Zakładając rozsądny system plików, który nie celowo podzieli pliki.

Przeczytaj uważnie resztę żywej dyskusji w SuperUser za pomocą poniższego linku!

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.