Dlaczego opróżnianie miejsca na dysku przyspiesza komputery?

191

Patrzyłem na kilka filmów i teraz rozumiem trochę lepiej, jak działają komputery. Lepiej rozumiem, czym jest pamięć RAM, pamięć ulotna i nieulotna oraz proces zamiany. Rozumiem również, dlaczego zwiększenie pamięci RAM przyspiesza komputer.

Nie rozumiem, dlaczego czyszczenie miejsca na dysku przyspiesza komputer. Czy to? Dlaczego to robi Czy ma to związek z wyszukiwaniem dostępnego miejsca, aby zaoszczędzić? Lub z przenoszeniem rzeczy, aby zrobić wystarczająco długą ciągłą przestrzeń, aby coś zaoszczędzić? Ile wolnego miejsca na dysku twardym powinienem zostawić wolny?

Remi.b
źródło
37
tak naprawdę nie przyspiesza komputerów, tylko zmniejsza ryzyko fragmentacji plików, które spowalniają dyski twarde. To jeden z największych mitów na PC, który wszyscy powtarzają. Aby znaleźć bootlenecki na komputerze, prześledź je za pomocą xperf / WPA.
magicandre1981
9
FWIW to speeds up the experience of using a PC.
edtthth
4
@ magicandre1981: Jest mały klejnot prawdy. Im więcej rzeczy w każdym folderze, tym wolniejsze jest przechodzenie pliku, co wpływa na wszystko przy użyciu ścieżki pliku, która jest ... wszystkim. Ale to malutkie .
Kaczka Mooing
4
@MooingDuck Chociaż jest to prawda, jest to związane z liczbą plików w folderze, a nie z rozmiarem plików lub ilością miejsca pozostałego na dysku. Ten efekt nie jest związany z pozostałą ilością miejsca na dysku. Efekt jest również ograniczony do samego folderu, nie „spowolni” całego komputera. Niektóre systemy plików ext3 / 4 na przykład użycie hashed drzewa katalogów , aby wyszukiwań (w tym dostęp podkatalogu) szybko, ograniczając w ten sposób zakres efektu nawet więcej, na przykład tylko podczas aukcji zawartości katalogu.
Jason C
4
Jakie filmy oglądałeś dokładnie?
Loko,

Odpowiedzi:

313

Tutaj napisałem książkę przez przypadek. Najpierw napij się kawy.

Dlaczego opróżnianie miejsca na dysku przyspiesza komputery?

Nie, przynajmniej nie na własną rękę. To jest bardzo powszechny mit. Powodem jest to powszechny mit, bo zapełniać dysku twardego często zdarza się w tym samym czasie co inne rzeczy, które tradycyjnie mogłyby spowolnić komputer. Wydajność dysku SSD zwykle spada, gdy dysk się zapełnia , ale jest to stosunkowo nowy problem, unikalny dla dysków SSD, i tak naprawdę nie jest zauważalny dla zwykłych użytkowników. Ogólnie rzecz biorąc, mało wolnego miejsca na dysku to tylko czerwony śledź .

Na przykład rzeczy takie jak:

  • Fragmentacja pliku. Fragmentacja plików to problem †† , ale brak wolnej przestrzeni, choć zdecydowanie jeden z wielu czynników, nie jest jedyną jej przyczyną. Kilka kluczowych punktów tutaj:

    • Szanse pliku będącego fragmentaryczne są nie związane z ilością wolnego miejsca na dysku. Są one związane z wielkością największego ciągłego bloku wolnego miejsca na dysku (np. „Dziur” wolnego miejsca), na które ilość wolnego miejsca nakłada górną granicę . Są one również związane z tym, jak system plików obsługuje przydzielanie plików (więcej poniżej). Zastanów się: Dysk, który jest w 95% zapełniony całą wolną przestrzenią w jednym ciągłym bloku, ma 0% szans na fragmentację nowego pliku ††† (a szansa na fragmentację dołączonego pliku jest niezależna od wolnej przestrzeni). Dysk, który jest wypełniony w 5%, ale z równomiernie rozłożonymi danymi na dysku, ma bardzo dużą szansę na fragmentację.

    • Pamiętaj, że fragmentacja plików wpływa tylko na wydajność podczas dostępu do pofragmentowanych plików . Zastanów się: masz ładny, zdefragmentowany dysk, który wciąż ma wiele wolnych „dziur”. Typowy scenariusz. Wszystko działa płynnie. W końcu jednak dochodzisz do punktu, w którym nie ma już dużych bloków wolnego miejsca. Po pobraniu dużego filmu plik jest bardzo rozdrobniony. To nie spowolni twojego komputera. Wszystkie pliki aplikacji i takie, które były wcześniej w porządku, nie zostaną nagle podzielone. To może zrobić filmładowanie trwa dłużej (chociaż typowe szybkości przesyłania filmów są tak niskie w porównaniu do prędkości odczytu dysku twardego, że najprawdopodobniej będą niezauważalne) i może wpływać na wydajność wejścia / wyjścia podczas ładowania filmu , ale poza tym, nic się nie zmienia.

    • Podczas gdy fragmentacja plików jest z pewnością problemem, często skutki są łagodzone przez buforowanie i buforowanie na poziomie systemu operacyjnego i sprzętu. Opóźnione zapisy, odczyt z wyprzedzeniem, strategie takie jak moduł pobierania wstępnego w systemie Windows itp. Pomagają zmniejszyć skutki fragmentacji. Na ogół nie odczuwasz znaczącego wpływu, dopóki fragmentacja nie stanie się poważna (zaryzykuję nawet stwierdzenie, że dopóki plik wymiany nie zostanie podzielony, prawdopodobnie nigdy tego nie zauważysz).

  • Indeksowanie wyszukiwania to kolejny przykład. Załóżmy, że masz włączone automatyczne indeksowanie i system operacyjny, który nie obsługuje tego z wdziękiem. W miarę zapisywania coraz większej liczby indeksowanych treści na komputerze (dokumenty itp.) Indeksowanie może trwać coraz dłużej i może mieć wpływ na postrzeganą prędkość komputera podczas pracy, zarówno w zakresie operacji we / wy, jak i użycia procesora . To nie jest związane z wolnym miejscem, jest związane z ilością posiadanej przez Ciebie zawartości do indeksowania. Jednak wyczerpywanie się wolnego miejsca idzie w parze z przechowywaniem większej ilości treści, dlatego powstaje fałszywe połączenie.

  • Oprogramowanie antywirusowe. Podobne do przykładu indeksowania wyszukiwania. Załóżmy, że masz skonfigurowane oprogramowanie antywirusowe do skanowania dysku w tle. Ponieważ masz coraz więcej możliwych do skanowania treści, wyszukiwanie wymaga więcej zasobów we / wy i zasobów procesora, co może zakłócać pracę. Ponownie, jest to związane z ilością posiadanej zawartości do skanowania. Więcej treści często oznacza mniej wolnego miejsca, ale brak wolnego miejsca nie jest przyczyną.

  • Zainstalowane oprogramowanie. Załóżmy, że masz zainstalowane wiele programów, które ładują się podczas uruchamiania komputera, co spowalnia czas uruchamiania. To spowolnienie ma miejsce, ponieważ ładuje się dużo oprogramowania. Zainstalowane oprogramowanie zajmuje jednak miejsce na dysku twardym. Dlatego ilość wolnego miejsca na dysku twardym zmniejsza się w tym samym czasie, co się dzieje, i ponownie można łatwo nawiązać fałszywe połączenie.

  • Wiele innych przykładów wzdłuż tych linii, które razem wzięte wydają się ściśle kojarzyć brak wolnej przestrzeni z niższą wydajnością.

Powyższe ilustrują kolejny powód, dla którego jest to tak powszechny mit: chociaż brak wolnej przestrzeni nie jest bezpośrednią przyczyną spowolnienia, odinstalowywania różnych aplikacji, usuwania indeksowanych lub skanowanych treści itp. Czasami (ale nie zawsze; poza zakresem tego odpowiedź) ponownie zwiększa wydajność z powodów niezwiązanych z ilością pozostałego wolnego miejsca. Ale to naturalnie uwalnia miejsce na dysku twardym. Dlatego ponownie można uzyskać pozorne (ale fałszywe) połączenie między „większą ilością wolnego miejsca” a „szybszym komputerem”.

Zastanów się: jeśli masz maszynę działającą powoli z powodu dużej ilości zainstalowanego oprogramowania itp. I dokładnie sklonujesz swój dysk twardy na większy dysk twardy, a następnie rozszerzysz partycje, aby uzyskać więcej wolnego miejsca, maszyna nie magicznie przyspieszy w górę. Ładuje się to samo oprogramowanie, te same pliki są nadal pofragmentowane w ten sam sposób, nadal działa ten sam indeksator wyszukiwania, nic się nie zmienia pomimo większej ilości wolnego miejsca.

Czy ma to związek z poszukiwaniem miejsca w pamięci, w którym można zapisać rzeczy?

Nie. Warto zwrócić uwagę na dwie bardzo ważne rzeczy:

  1. Twój dysk twardy nie szuka w celu znalezienia miejsc do umieszczenia rzeczy. Twój dysk twardy jest głupi. To nic. Jest to duży blok adresowanej pamięci, który ślepo umieszcza rzeczy tam, gdzie mówi to twój system operacyjny i odczytuje wszystko, o co jest proszony. Nowoczesne dyski mają wyrafinowane mechanizmy buforowania i buforowania zaprojektowane w celu przewidywania, o co system operacyjny poprosi 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 na nich działa), ale zasadniczo pomyśl o Twój dysk to tylko głupia cegła z okazjonalnymi dodatkowymi funkcjami wydajności.

  2. Twój system operacyjny również nie szuka miejsc do umieszczenia rzeczy. Nie ma „wyszukiwania”. Wiele wysiłku włożono w rozwiązanie tego problemu, ponieważ ma on zasadnicze 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 komputery DOS i Windows), NTFS (później Windows), HFS + (Mac), ext4 (niektóre Linuxes) i wiele innych. Nawet pojęcie „pliku” i „katalogu” są jedynie produktami typowych systemów plików - dyski twarde nie wiedzą o tajemniczych bestiach zwanych „plikami”. Szczegóły są poza zakresem tej odpowiedzi. Zasadniczo jednak wszystkie popularne systemy plików mają sposoby śledzenia, gdzie dostępna przestrzeń znajduje się na dysku, tak więc wyszukiwanie wolnego miejsca jest w normalnych okolicznościach (tj. Systemy plików w dobrym stanie) niepotrzebne. Przykłady:

    • NTFS ma główną tabelę plików , która zawiera pliki specjalne $Bitmapitp. Oraz mnóstwo metadanych opisujących dysk. Zasadniczo śledzi, gdzie znajdują się kolejne wolne bloki, dzięki czemu nowe pliki można zapisywać bezpośrednio w wolnych blokach bez konieczności skanowania dysku za każdym razem.

    • Kolejny przykład, ext4 ma tak zwany „alokator bitmap” , ulepszenie w stosunku do ext2 i ext3, które w zasadzie pomaga bezpośrednio ustalić, gdzie są wolne bloki zamiast skanować listę wolnych bloków. Ext4 obsługuje również „opóźniony przydział”, to znaczy buforowanie danych w pamięci RAM przez system operacyjny przed zapisaniem ich na dysku w celu podjęcia lepszych decyzji, gdzie umieścić je w celu zmniejszenia fragmentacji.

    • Wiele innych przykładów.

lub z przenoszeniem rzeczy w celu utworzenia wystarczająco długiej ciągłej przestrzeni do zapisania czegoś?

Nie. To się nie zdarza, przynajmniej nie w żadnym systemie plików, o którym wiem. Pliki po prostu sfragmentowane.

Proces „przenoszenia rzeczy w celu utworzenia wystarczająco długiej, ciągłej przestrzeni do zapisania czegoś” nazywa się defragmentacją . Nie dzieje się tak, gdy pliki są zapisywane. Dzieje się tak po uruchomieniu defragmentatora dysku. Przynajmniej w nowszym systemie Windows dzieje się to automatycznie zgodnie z harmonogramem, ale nigdy nie jest uruchamiane przez zapisanie pliku.

Możliwość uniknięcia takich zmian jest kluczem do wydajności systemu plików i dlatego fragmentacja ma miejsce i dlaczego defragmentacja istnieje jako osobny krok.

Ile wolnego miejsca na dysku twardym powinienem zostawić wolny?

To trudniejsze pytanie, na które należy odpowiedzieć, a ta odpowiedź już zamieniła się w małą książkę.

Reguły kciuka:

  • Dla wszystkich typów napędów:

    • Co najważniejsze, pozostaw wystarczająco dużo wolnego miejsca , aby efektywnie korzystać z komputera . Jeśli zabraknie Ci miejsca do pracy, będziesz potrzebować większego dysku.
    • Wiele narzędzi do defragmentacji dysku wymaga minimalnej ilości wolnego miejsca (myślę, że to z Windows wymaga 15% najgorszego przypadku) do pracy. Używają tego wolnego miejsca do tymczasowego przechowywania pofragmentowanych plików, gdy inne rzeczy są przestawiane.
    • Pozostaw miejsce na inne funkcje systemu operacyjnego. Na przykład, jeśli twój komputer nie ma dużo fizycznej pamięci RAM i masz włączoną pamięć wirtualną z dynamicznie zmienianym plikiem strony, będziesz chciał pozostawić wystarczająco dużo miejsca na maksymalny rozmiar pliku strony. Lub jeśli masz laptopa, który przełączysz w tryb hibernacji, potrzebujesz wystarczającej ilości wolnego miejsca na plik stanu hibernacji. Rzeczy takie jak te.
  • Specyficzne dla SSD:

    • Aby uzyskać optymalną niezawodność (i, w mniejszym stopniu, wydajność), dyski SSD wymagają trochę wolnego miejsca, które bez wchodzenia w zbyt wiele szczegółów, wykorzystują je do rozprzestrzeniania danych wokół dysku, aby uniknąć ciągłego zapisu w tym samym miejscu (co powoduje ich zużycie). Ta koncepcja pozostawiania wolnej przestrzeni nazywa się nadmiernym udostępnianiem . Jest to ważne, ale na wielu dyskach SSD istnieje już obowiązkowa przepełniona przestrzeń . Oznacza to, że dyski często mają kilkadziesiąt więcej GB niż zgłaszają do systemu operacyjnego. Dyski z niższej półki często wymagają ręcznego pozostawienia niepartycjonowanego miejsca, ale w przypadku dysków z obowiązkowym OP nie trzeba pozostawiać wolnego miejsca . Ważną rzeczą do odnotowania tutaj jest toprzepełniona przestrzeń jest często pobierana tylko z niepartycjonowanej przestrzeni . Więc jeśli twoja partycja zajmuje cały dysk i pozostawiasz na niej trochę wolnego miejsca, to nie zawsze się liczy. Wiele razy ręczne uzupełnianie zasobów wymaga zmniejszenia partycji, aby była mniejsza niż rozmiar dysku. Szczegółowe informacje można znaleźć w instrukcji obsługi dysku SSD. TRIM i wyrzucanie elementów bezużytecznych mają podobne efekty, ale są one poza zakresem tej odpowiedzi.

Osobiście zazwyczaj biorę większy dysk, gdy mam około 20-25% wolnego miejsca. Nie ma to związku z wydajnością, po prostu doszedłem do tego punktu, spodziewam się, że prawdopodobnie wkrótce zabraknie mi 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ę ona wystarczająco tragiczna, aby wpłynąć na ciebie. Równie ważne jest unikanie błędnych poprawek i pozwalanie systemowi operacyjnemu na działanie, np. Nie wyłączaj preselektora systemu Windows ( z wyjątkiem dysków SSD ) itp.


Jest jeszcze jedna rzecz, o której warto wspomnieć. Jedna z innych odpowiedzi tutaj wspomniała, że ​​tryb półdupleksowy SATA zapobiega jednoczesnemu czytaniu i pisaniu. Chociaż jest to prawda, jest to znacznie uproszczone i w większości nie ma związku z omawianymi tutaj problemami z wydajnością. Oznacza to po prostu, że danych nie można przesyłać w obu kierunkach jednocześnie za pomocą przewodu . Jednak SATA ma dość złożoną specyfikację, która obejmuje małe maksymalne rozmiary bloków (około 8 kB na blok na przewodzie, myślę), kolejki operacji odczytu i zapisu itp., I nie wyklucza zapisów do buforów występujących podczas odczytu, przeplatanych operacje itp.

Każde blokowanie nastąpi z powodu rywalizacji o zasoby fizyczne, zwykle ograniczonej przez dużą pamięć podręczną. Tryb dupleks SATA jest tutaj prawie całkowicie nieistotny.


„Zwolnienie” jest szerokim pojęciem. Tutaj używam go w odniesieniu do rzeczy, które są albo związane z I / O (np. Jeśli twój komputer siedzi tam chrupiące liczby, zawartość dysku twardego nie ma wpływu), lub związane z procesorem i konkurują ze stycznie powiązanymi rzeczami, które mają wysokie zużycie procesora (np. oprogramowanie antywirusowe skanuje mnóstwo plików).

†† SSD dotknięte przez rozdrobnienie w tym dostępu sekwencyjnego prędkości są zwykle szybsze niż losowego dostępu, mimo SSD nie stoi takie same ograniczenia jak urządzenia mechaniczne (nawet wtedy, brak fragmentacji nie gwarantuje dostęp sekwencyjny, ze względu na zużycie wypoziomowanie itp , jak zauważa James Snell w komentarzach). Jednak praktycznie w każdym ogólnym scenariuszu użytkowania nie stanowi to problemu. Różnice w wydajności wynikające z fragmentacji dysków SSD są zwykle nieistotne w przypadku ładowania aplikacji, uruchamiania komputera itp.

††† Zakładając rozsądny system plików, który celowo nie dzieli plików.

Jason C.
źródło
Bardzo wyczerpująca odpowiedź, dzięki. Dziękujemy również za przypomnienie, aby napić się kawy, było to bardzo mile widziane.
Hashim
22

Oprócz wyjaśnienia Nathanial Meek dla dysków twardych istnieje inny scenariusz dla dysków SSD.

Dyski SSD nie są wrażliwe na rozproszone dane, ponieważ czas dostępu do dowolnego miejsca na dysku SSD jest taki sam. Typowy czas dostępu do dysku SSD wynosi 0,1 ms w porównaniu do typowego czasu dostępu do dysku twardego od 10 do 15 ms. Jest jednak wrażliwy na dane, które są już zapisane na dysku SSD

W przeciwieństwie do tradycyjnych dysków twardych, które mogą zastępować istniejące dane, dysk SSD potrzebuje całkowicie pustej przestrzeni do zapisu danych. Odbywa się to za pomocą funkcji o nazwie Trim and Garbage Collection, które usuwają dane oznaczone jako usunięte. Czyszczenie pamięci działa najlepiej w połączeniu z pewną ilością wolnego miejsca na dysku SSD. Zwykle zaleca się 15% do 25% wolnego miejsca.

Jeśli wyrzucanie elementów nie jest w stanie ukończyć zadania na czas, każda operacja zapisu poprzedzona jest czyszczeniem miejsca, w którym dane mają zostać zapisane. Podwaja to czas każdej operacji zapisu i obniża ogólną wydajność.

Oto doskonały artykuł wyjaśniający działanie funkcji Trim and Garbage Collection

whs
źródło
Pamiętaj, że dyski SSD MOGĄ zapisywać w częściowo wypełnionych komórkach, odczytując częściowe dane i zapisując więcej zapisanych danych, ale zazwyczaj robi to tylko wtedy, gdy jest to nieuniknione. Jest to oczywiście również dość powolne i zwykle oznacza, że ​​dysk jest tak mocno podzielony na fragmenty, że potrzeba dużo czasu, aby napisać szybko ponownie.
puszysty
To zależeć będzie również od kontrolera. A ponieważ istnieje wiele odmian, nie chciałem wchodzić w ten poziom szczegółowości.
whs
15–25%, o którym mówisz, nazywa się „nadmiernym zaopatrzeniem”. Niektóre dyski mają już przydzielone obowiązkowe miejsce (np. 1 TB EVO 840 ma 9% rezerwy i nie jest zgłaszane w systemie operacyjnym jako wolne), dla tych, których nie musisz zostawiać wolnego miejsca. Uważam, że w niektórych przypadkach nadmiernie przydzielone miejsce również musi być niepodzielone na partycje, a po prostu pozostawienie wolnego miejsca w systemie plików go nie zmniejszy, trzeba by faktycznie zostawić nieprzydzielone miejsce.
Jason C
Nadmierne przydzielanie zasobów to coś innego. Są to nands w trybie gotowości, aby zastąpić wadliwe nands. 15–25% jest wymagane do uwolnienia bloków (stron) i wyrównania zużycia. Możesz przeczytać tutaj, aby uzyskać szczegółowe informacje ==> thessdreview.com/daily-news/latest-buzz/…
co
@whs Tak nie jest, a artykuł, do którego linkujesz, nie oznacza, że ​​tak jest. Nadmiarowo przydzielone miejsce (patrz także cytowane źródła w tej sekcji lub Google) to pula wolnych bloków, bloki w tej puli są używane do odśmiecania / szybkiego zapisu, wyrównywania zużycia i wymiany uszkodzonych komórek. Jeśli chodzi o zastępowanie uszkodzonych komórek, wszystko znajduje się w tej samej puli; gdy jest już pełen wadliwych komórek, zaczynasz widzieć spójne błędy. Zobacz także slajd 12 w tej prezentacji od LSI ; cała sprawa jest warta przejścia, dotyczy bezpośrednio tematu.
Jason C
12

Gdzieś wewnątrz tradycyjnego dysku twardego znajduje się wirujący metalowy talerz, na którym poszczególne bity i bajty są faktycznie kodowane. Gdy dane są dodawane do talerza, kontroler dysku najpierw zapisuje je na zewnątrz dysku. Gdy dodawane są nowe dane, ostatnio używane jest miejsce w kierunku wnętrza dysku.

Mając to na uwadze, istnieją dwa efekty, które powodują spadek wydajności dysku w miarę zapełniania się dysku: Czasy wyszukiwania i Prędkość obrotowa .

Szukaj razy

Aby uzyskać dostęp do danych, tradycyjny dysk twardy musi fizycznie przesunąć głowicę odczytu / zapisu do właściwej pozycji. To wymaga czasu, zwanego „czasem poszukiwania”. Producenci publikują czasy wyszukiwania dla swoich dysków, a zwykle jest to zaledwie kilka milisekund. To może nie brzmieć dużo, ale dla komputera to wieczność. Jeśli musisz czytać lub zapisywać w wielu różnych lokalizacjach dysków, aby wykonać zadanie (co jest częste), te czasy szukania mogą zsumować zauważalne opóźnienie lub opóźnienie.

Dysk, który jest prawie pusty, będzie miał większość danych w tej samej pozycji lub w jej pobliżu, zazwyczaj na zewnętrznej krawędzi w pobliżu spoczynkowej pozycji głowicy odczytu / zapisu. Zmniejsza to potrzebę wyszukiwania na dysku, znacznie skracając czas wyszukiwania. Napęd, który jest prawie pełny, nie tylko będzie musiał częściej wyszukiwać na dysku i wykonywać większe / dłuższe ruchy wyszukiwania, ale może mieć problemy z utrzymywaniem powiązanych danych w tym samym sektorze, co dodatkowo zwiększa liczbę poszukiwań na dysku. Nazywa się to fragmentarycznymi danymi.

Zwolnienie miejsca na dysku może skrócić czas wyszukiwania, umożliwiając usłudze defragmentacji nie tylko szybsze czyszczenie pofragmentowanych plików, ale także przenoszenie plików na zewnątrz dysku, dzięki czemu średni czas wyszukiwania jest krótszy.

Prędkość obrotowa

Dyski twarde obracają się ze stałą szybkością (zwykle 5400 obr./min lub 7200 obr./min dla twojego komputera i 10000 obr./min lub nawet 15000 obr./min na serwerze). Zapisanie jednego bitu zajmuje także określoną ilość miejsca na dysku (mniej więcej). W przypadku dysku obracającego się ze stałą prędkością obrotową, zewnętrzna strona dysku będzie miała szybszą prędkość liniową niż wnętrze dysku. Oznacza to, że bity w pobliżu zewnętrznej krawędzi dysku przesuwają się szybciej niż głowica odczytu niż bity w pobliżu środka dysku, a zatem głowica odczytu / zapisu może odczytywać lub zapisywać bity szybciej w pobliżu zewnętrznej krawędzi dysku niż wewnętrzny.

Napęd, który jest prawie pusty, spędza większość czasu na uzyskiwaniu dostępu do bitów w pobliżu szybszej zewnętrznej krawędzi dysku. Napęd, który jest prawie pełny, poświęci więcej czasu na dostęp do bitów w pobliżu wolniejszej wewnętrznej części dysku.

Ponownie, opróżnienie miejsca na dysku może przyspieszyć komputer, umożliwiając usłudze defragmentacji przenoszenie danych na zewnątrz dysku, gdzie odczyty i zapisy są szybsze.

Czasami dysk faktycznie porusza się zbyt szybko, aby mógł odczytać go głowica odczytu, a efekt ten jest zmniejszony, ponieważ sektory w pobliżu zewnętrznej krawędzi zostaną przesunięte ... zapisane w kolejności, aby głowica odczytu mogła nadążyć. Ale ogólnie tak jest.

Oba te efekty sprowadzają się do tego, że kontroler dysku grupuje dane najpierw w szybszej części dysku i nie używa wolniejszych części dysku, dopóki nie będzie to konieczne. W miarę zapełniania się dysku coraz więcej czasu spędza się w wolniejszej części dysku.

Efekty dotyczą także nowych dysków. Wszystko inne jest jednakowe, nowy dysk 1 TB jest szybszy niż nowy dysk 200 GB, ponieważ 1 TB przechowuje bity bliżej siebie i nie zapełni się tak szybko na wewnętrznych ścieżkach. Jednak próba wykorzystania tego do poinformowania o decyzjach zakupowych jest rzadko pomocna, ponieważ producenci mogą używać wielu talerzy, aby osiągnąć rozmiar 1 TB, mniejszych talerzy, aby ograniczyć system 1 TB do 200 GB, ograniczenia oprogramowania / kontrolera dysku, aby ograniczyć talerz 1 TB do jedynie 200 GB miejsca lub sprzedaj dysk z częściowo ukończonymi / wadliwymi talerzami z dysku o pojemności 1 TB z wieloma uszkodzonymi sektorami jako dysk o pojemności 200 GB.

Inne czynniki

Warto tutaj zauważyć, że powyższe efekty są dość małe. Inżynierowie sprzętu komputerowego spędzają dużo czasu, pracując nad tym, jak zminimalizować te problemy, a takie rzeczy, jak bufory dysków twardych, buforowanie Superfetch i inne systemy działają w celu zminimalizowania problemu. W zdrowym systemie z dużą ilością wolnego miejsca prawdopodobnie nawet nie zauważysz. Ponadto dyski SSD mają zupełnie inną charakterystykę wydajności. Jednak efekty istnieją, a komputer staje się wolniejszy w miarę zapełniania się dysku. W niezdrowym systemie, w którym miejsce na dysku jest bardzo małe, efekty te mogą spowodować powstanie przełomu na dysku, w którym dysk nieustannie przeszukuje fragmentaryczne dane, a zwolnienie miejsca na dysku może to naprawić, powodując bardziej dramatyczne i zauważalne ulepszenia .

Ponadto dodanie danych na dysk oznacza, że ​​niektóre inne operacje, takie jak indeksowanie lub skanowanie AV i procesy defragmentacji, wykonują tylko więcej pracy w tle, nawet jeśli robi to z prędkością zbliżoną do poprzedniej.

Wreszcie wydajność dysku jest ogromnym wskaźnikiem ogólnej wydajności komputera w dzisiejszych czasach ... nawet większym wskaźnikiem niż szybkość procesora. Nawet niewielki spadek przepustowości dysku bardzo często odpowiada rzeczywistemu odczuwalnemu ogólnemu spadkowi wydajności komputera. Jest to szczególnie prawdziwe, ponieważ wydajność dysku twardego nie nadąża za usprawnieniami procesora i pamięci; Dysk o prędkości 7200 obr./min jest standardem od ponad dekady. Bardziej niż kiedykolwiek ten tradycyjny wirujący dysk stanowi wąskie gardło w twoim komputerze.

Joel Coehoorn
źródło
1
Wydłużenie czasu wyszukiwania nie wynika z małej ilości wolnego miejsca, lecz z organizacji danych. Zwolnienie miejsca na dysku nie skróci czasu wyszukiwania, jeśli dane są już na całym dysku. Podobnie, brak miejsca na dysku nie wydłuży nagle czasu wyszukiwania niepowiązanych danych, które były już dobrze zorganizowane. Co ważniejsze, uważaj na kojarzenie któregokolwiek z nich z „wolnym komputerem”. Na przykład nie będziesz przeglądać Internetu szybciej tylko dlatego, że plik wykonywalny przeglądarki jest niefragmentowany i znajduje się na zewnętrznym dysku mechanicznym, a Twoje pliki MP3 będą nadal odtwarzane płynnie, nawet w najgorszym przypadku.
Jason C
2
@JasonC Każdy z tych punktów jest prawdą w oderwaniu, ale traktowany jako część całego systemu może przyczynić się do prawdziwego spowolnienia. Przykładem jest to twierdzenie: „ Freeing disk space won't decrease seek times if your data is already all over the drive.” Nie mogę zaprzeczyć, że sama w sobie, ale mogę podkreślić usługa Defrag mogą teraz przenieść te dane do przodu napędu, a teraz te rzeczy będą poprawić szukać razy. Inne punkty w twoim komentarzu mają podobne liczniki: brak miejsca na dysku nie zwiększy liczby poszukiwań dobrze zorganizowanych danych, ale zmniejsza prawdopodobieństwo, że dane pozostaną zorganizowane.
Joel Coehoorn
1
@JasonC Dodałem jednak kilka linii do mojej odpowiedzi na podstawie twojego komentarza, aby bardziej bezpośrednio odpowiedzieć na pytanie tytułowe.
Joel Coehoorn
Oczywiście; ale moje główne punkty to 1), że spowolnienie jest konsekwencją czegoś innego , chociaż niska wolna przestrzeń może być jednym z wielu czynników, i 2) musisz być bardzo ostrożny z tym tematem, jest to jedna z tych osób, które chwytają się bardzo szybko. Jeśli przypadkowy użytkownik zauważy, że jego komputer działa wolno, w rzeczywistości jest to bardzo niezwykłe, powiedzmy, fragmentacja (np.) Jest faktyczną przyczyną. Ale potem czytają wiele rzeczy w Internecie, instalują ccleaner, 50 defragmentatorów dysków, robią kilka złych poprawek rejestru itp. Muszę zaspokoić masę tutaj; mądrzejsi nie potrzebują naszych odpowiedzi.
Jason C
Ta odpowiedź wskazuje na krótkie pociągnięcia (sztuczne ograniczanie rozmiaru HD, aby zachować dane w szybszych, zewnętrznych regionach) i niektóre potencjalne problemy z tym. Podoba mi się również, ponieważ nie zaprzecza, że ​​w większości przypadków dla większości użytkowników dysk staje się bardziej rozdrobniony, ponieważ zapełnia się. Chociaż warto zauważyć, że wolne miejsce nie jest faktycznym problemem, nie ma sensu ignorować ogólnego wrażenia użytkownika podczas obsługi pytania dotyczącego ogólnego doświadczenia użytkownika.
Smithers,
6

Wszystkie pozostałe odpowiedzi są technicznie poprawne - jednak zawsze uważałem, że ten prosty przykład najlepiej to wyjaśnia.

Sortowanie rzeczy jest naprawdę łatwe, jeśli masz dużo miejsca ... ale trudne, jeśli nie masz miejsca ... komputery też potrzebują miejsca !

Ta klasyczna „ 15 puzzli ” jest trudna / czasochłonna, ponieważ masz tylko 1 wolny kwadrat, aby wtasować płytki, aby uzyskać je w odpowiedniej kolejności 1-15.

trudne 15 puzzli

Jeśli jednak przestrzeń była znacznie większa, możesz rozwiązać tę zagadkę w czasie krótszym niż 10 sekund.

łatwa 15 łamigłówek

Dla każdego, kto kiedykolwiek bawił się tą łamigłówką ... zrozumienie analogii wydaje się przychodzić naturalnie. ;-)

scunliffe
źródło
2
Nie jest to jednak analogiczne do zachowania systemu plików. To nieco przypomina ogólny proces defragmentacji, myślę, chociaż defragmentacji, w stosunku do tej układanki analogii pozwala usunąć numery z płyty i ponownego umieścić je w dowolnym miejscu, jak go rozwiązać.
Jason C
2
Oprócz powyższego komentarza Jasona chcę wskazać na oczywiste: ta odpowiedź dotyczy sortowania (defragmentacji), ale nie wyjaśnia, dlaczego dostęp do określonego losowego kafelka (powiedzmy, kafelka „3”) byłby szybszy w drugim przypadek niż w pierwszym przypadku.
CVn
Ponieważ nie masz dostępu tylko do „3”. Uzyskujesz dostęp do „1-15”. Przyznaję, że w tym przykładzie nie jest to krystalicznie czyste, ale zrozumiałem to. Może warto zwrócić uwagę na coś takiego: „ta łamigłówka jest analogiczna do pojedynczego fragmentu pliku”. Świetna odpowiedź, sprawia, że ​​rzeczy są dość dostępne dla umysłowo!
Smithers,
1
Wyjaśnienie: Podstawowym problemem z analogią jest to, że w rzeczywistej układance możesz przenosić płytki tylko na sąsiednie puste pola. To znaczy, w tym niewielkim przykładzie, tylko 6 lub 13 można przenieść w puste miejsce. Właśnie dlatego łamigłówka jest trudna; to jest punkt gry w kafelki. Jednak podczas defragmentacji dysku twardego możesz przenieść np. 4 na puste miejsce, 1 na właściwe miejsce itd., Dość łatwe do rozwiązania, wykonując dokładnie tyle samo ruchów, co w przypadku dużej ilości miejsca . Tak więc analogia naprawdę się psuje, ponieważ sedno układanki nie ma zastosowania: żaden system plików nie działa w ten sposób.
Jason C
„Ponieważ nie masz dostępu tylko do„ 3 ”. Uzyskujesz dostęp do „1-15” - to nonsens. Odpowiedź nie wyjaśnia, dlaczego dostęp do określonego losowego kafelka byłby szybszy w drugim przypadku niż w pierwszym przypadku, ponieważ odpowiedź jest całkowicie błędna. Defragmentacja nie tylko nie jest ograniczona jak układanka, ale defragmentacja „trudna / czasochłonna” nie ma wpływu na wydajność systemu.
Jim Balter
5

Komputer, który ma bardzo mało miejsca na dysku, na wirującym mechanicznym dysku twardym, przez znaczną część czasu, ogólnie będzie wolniejszy w miarę zwiększania się fragmentacji plików. Zwiększona fragmentacja oznacza powolne odczyty - bardzo wolne w skrajnych przypadkach.

Gdy komputer znajdzie się w tym stanie, zwolnienie miejsca na dysku nie naprawi problemu. Trzeba też defragmentować dysk. Zanim komputer znajdzie się w tym stanie, zwolnienie miejsca nie przyspieszy go; po prostu zmniejszy ryzyko fragmentacji, która stanie się problemem.

Dotyczy to tylko komputerów z obracającymi się mechanicznymi dyskami twardymi, ponieważ fragmentacja ma znikomy wpływ na szybkość odczytu dysków SSD.

RomanSt
źródło
Dobra, czysta i prosta odpowiedź, która dotyczy również głównego problemu.
Smithers,
4

Dyski flash mogą zdecydowanie zwolnić, gdy są pełne lub pofragmentowane, chociaż mechanizmy spowalniania są inne niż w przypadku fizycznego dysku twardego. Typowy układ pamięci flash zostanie podzielony na pewną liczbę bloków wymazywania, z których każdy składa się z dużej liczby (setek, jeśli nie tysięcy) stron zapisu i będzie obsługiwał trzy podstawowe operacje:

  1. Przeczytaj stronę flash.
  2. Napisz na poprzednio pustej stronie flash.
  3. Usuń wszystkie strony flash z bloku.

Chociaż teoretycznie byłoby możliwe, aby każdy zapis na dysku flash odczytał wszystkie strony z bloku, zmienił jedną w buforze, usunął blok, a następnie zapisał bufor z powrotem na urządzeniu flash, takie podejście byłoby niezwykle powolny; prawdopodobnie spowodowałoby to utratę danych, gdyby doszło do utraty zasilania między rozpoczęciem kasowania a zakończeniem zapisu. Ponadto często zapisywane części dysku bardzo szybko się zużyją. Gdyby na przykład pierwsze 128 sektorów FAT zapisano w jednym bloku pamięci flash, dysk byłby martwy, gdy całkowita liczba zapisów we wszystkich tych sektorach osiągnęła około 100 000, co nie jest bardzo duże, zwłaszcza biorąc pod uwagę, że 128 sektorów pomieści około 16 384 pozycji FAT.

Ponieważ powyższe podejście działałoby okropnie, dysk sprawi, że zidentyfikuje pustą stronę, zapisze tam dane i jakoś zapisze fakt, że dany sektor logiczny jest przechowywany w tej lokalizacji. Dopóki dostępnych jest wystarczająca liczba pustych stron, operacja ta może przebiegać szybko. Jeśli jednak brakuje pustych stron, dysk może potrzebować znaleźć bloki, które zawierają stosunkowo niewiele stron „aktywnych”, przenieść wszystkie strony aktywne w tych blokach do niektórych pozostałych pustych stron i oznaczyć stare kopie jako „ nie żyje"; po wykonaniu tej czynności dysk będzie mógł usuwać bloki zawierające tylko „martwe” strony.

Jeśli dysk jest tylko w połowie pełny, z pewnością będzie co najmniej jeden blok, który jest w połowie pełny z aktywnymi stronami (i prawdopodobnie będzie kilka bloków, które zawierają niewiele lub wcale). Jeśli każdy blok zawiera 256 stron, a najmniej pełne bloki mieszczą 64 strony aktywne (przypadek umiarkowanie zły), to dla każdego 192 żądanego sektora pisze, dysk będzie musiał wykonać 64 dodatkowe kopie sektorów i jedno skasowanie bloku (więc średni koszt każdego zapisu w sektorze to około 1,34 zapisów stron i 0,005 wymazywania bloków). Nawet w najgorszym przypadku każde 128 zapisów sektora wymagałoby 128 dodatkowych kopii sektora i wymazywania bloku (średni koszt zapisu 2 stron zapisu i 0,01 wymazywania bloku)

Jeśli dysk jest zapełniony w 99%, a najmniej pełne bloki mają 248/256 stron aktywnych, wówczas każde 8 zapisów sektorowych będzie wymagało 248 dodatkowych zapisów stron i wymazywania bloku, co daje koszt zapisu 32 zapisów stron i 0,125 bloku kasuje - bardzo poważne spowolnienie.

W zależności od tego, ile „dodatkowej” przestrzeni dyskowej ma dysk, może to nie pozwolić na pogorszenie sytuacji. Niemniej jednak nawet w miejscu, w którym dysk jest pełny w 75%, wydajność w najgorszym przypadku może być ponad dwukrotnie słabsza niż w najgorszym przypadku, gdy jest pełna w 50%.

supercat
źródło
3

Prawie to przybiłeś. Możesz myśleć o dysku twardym SATA jako o półdupleksowym medium komunikacyjnym (to znaczy, że może on akceptować lub przesyłać dane tylko naraz. Nie oba.), Więc gdy dysk jest przytrzymywany przez dłuższy czas w poszukiwaniu wolnego miejsca do zapisu nie może odczytać żadnych danych. Z tego powodu nie należy ładować dysków o pojemności przekraczającej 80%. Im bardziej jest pełny, tym większe jest prawdopodobieństwo, że fragmentuje pliki, co powoduje wiązanie się napędu podczas żądań odczytu (blokując w ten sposób żądania zapisu).

Istnieje wiele rzeczy, które możesz zrobić, aby pomóc w rozwiązaniu tych problemów:

  • Zmniejsz ilość przechowywanych danych i regularnie defragmentuj dysk.
  • Przełącz na pamięć flash.
  • Przechowuj zbiorcze dane na innym dysku niż system operacyjny.
  • Itd. itp...
Nathanial Meek
źródło
1
Podczas korzystania z pamięci flash dysk może odczytywać lub zapisywać (ponownie, nie oba) niemal natychmiast (9 ms to dość standardowy czas wyszukiwania na dysku twardym, podczas gdy dyski SSD zazwyczaj mają „czas wyszukiwania” w dziedzinie piko i nano sekund) do dowolnego lokalizacja na dysku. en.wikipedia.org/wiki/…
Nathanial Meek
7
Kontynuacja poing 2: Po to jest np. $BitmapPlik w systemie plików NTFS lub w programie do przydzielania map bitowych w ext4. Tj. Odpowiedź rozpowszechnia poważne dezinformacje. 3. Jest dużo buforowania odczytu i zapisu oraz buforowania, co czyni dużą część tego sporu. Ta odpowiedź w pewien sposób opisuje skutki fragmentacji, a nawet wtedy, gdy ogranicza się do starszych systemów plików, z pewnością nie jest to dokładne wolne miejsce. Zwolnienie miejsca na dysku nie przyspiesza komputera.
Jason C
4
@JasonC, powinieneś zamienić swoje komentarze w odpowiedź.
Celos,
6
Tak się nie dzieje : „więc gdy dysk jest wstrzymywany przez dłuższy czas w poszukiwaniu wolnej lokalizacji do zapisu, nie może odczytać żadnych danych” - po prostu nie. Nie tak działają systemy plików. Edytuj swoją odpowiedź, aby przestać rozpowszechniać błędne informacje.
RomanSt
2
@NathanialMeek Trochę miksujesz warstwy. :) Tryb półdupleksu SATA oznacza, że ​​może on przesyłać dane przewodem tylko w jednym kierunku. Odczyty i zapisy na wyższym poziomie są wykonywane w małych blokach (zwanych FIS), w kolejkach operacji określonych przez SATA. Mogą być asynchroniczne, a szybkie odczyty i zapisy można wykonywać do iz wbudowanej pamięci podręcznej i bezpośrednio do pamięci systemowej za pośrednictwem DMA. Kontrolery SATA mogą również dowolnie zmieniać kolejność poleceń w celu optymalizacji wydajności. Chodzi o to, że linia nie jest zajęta, gdy operacje fizyczne są zakończone, a tryb półdupleksowy SATA nie daje efektu, który myślisz, że ma.
Jason C
3

Po krótkim i słodkim podejściu moja uproszczona odpowiedź (ściśle ograniczona do głównego zamieszania) brzmi:

Tak długo jak twój

  1. System operacyjny ma wystarczającą (w najgorszych przypadkach) przestrzeń do wypełnienia swoich zadań, takich jak stronicowanie / zamiana / etc.
  2. Inne oprogramowanie ma również wystarczającą ilość miejsca dla swoich potrzeb.
  3. Dysk twardy jest defragmentowany.

Wtedy nie możesz odróżnić wydajności 80% pustego dysku od 30% pustego dysku i nie powinieneś martwić się niczym innym, jak przechowywanie coraz większej liczby nowych danych.

Wszystko, co będzie wymagało więcej miejsca, doprowadzi do niskiej wydajności, ponieważ teraz może brakować dostępnej przestrzeni.

Oczywiście czyszczenie dysku za pomocą narzędzia jest dobre, ponieważ:

  1. Pliki tymczasowe należy regularnie czyścić, aby zyskać cenne miejsce na dysku.
  2. Stare pliki dziennika to tylko marnowanie miejsca.
  3. Resztki zainstalowanego / odinstalowanego oprogramowania są bardzo nieprzyjemne.
  4. Pliki cookie muszą zostać wyczyszczone, jeśli cenisz swoją prywatność w Internecie.
  5. Nieprawidłowe skróty itp.

Wszystkie te (i wiele innych) powodów prowadzą do gorszej wydajności, ponieważ wszystkie one mylą system operacyjny, znajdując odpowiedni zestaw bitów do pracy.

Htaank
źródło
Przyzwoite podsumowanie, ale nie tak pewne co do sekcji „ALE”. W szczególności: 3) Zasadniczo nie ma zauważalnego wpływu na wydajność, pomimo typowych dziwactw 4) Pliki cookie nie są z natury problematyczne i niezależnie od opinii prywatność nie jest związana z wydajnością ani miejscem na dysku twardym, 5) Zepsute skróty są brzydkie, ale ogólnie w przeciwnym razie bez znaczenia. Nic z tego nie „myli” żadnego wspólnego systemu operacyjnego. Uważaj na „wskazówki” i „poprawki”, które obserwujesz. Uważaj również na niepotrzebne narzędzia do czyszczenia, w szczególności narzędzia do czyszczenia rejestru często ryzykują szkodę bez korzyści.
Jason C,
2

Jeden wpływ na wirujące dyski, o którym nie wspomniałem: Szybkość dostępu i prędkość przesyłania danych są różne w różnych częściach dysku.

Dysk obraca się ze stałą prędkością. Ścieżki na zewnątrz dysku są dłuższe i dlatego mogą pomieścić więcej danych na ścieżkę niż ścieżki wewnątrz. Jeśli twój dysk może odczytać 100 MB / s z najbardziej oddalonych ścieżek, prędkość na najbardziej wewnętrznych torach będzie mniejsza niż 50 MB / sek.

Jednocześnie istnieje mniej ścieżek między 1 GB danych na zewnętrznych ścieżkach dysku niż między 1 GB danych na najbardziej wewnętrznych torach. Tak więc średnio w przypadku danych przechowywanych na zewnątrz potrzebny będzie mniejszy ruch głowy niż w przypadku danych na najbardziej wewnętrznych torach.

System operacyjny spróbuje użyć najbardziej oddalonych ścieżek, jeśli to możliwe. Oczywiście nie jest możliwe, jeśli dysk jest pełny. Usunięcie danych udostępni miejsce, w którym prędkość przesyłania jest wyższa, i przyspieszy działanie. Z tego samego powodu powinieneś kupić wirujące dyski twarde, które są większe niż potrzebne, jeśli chcesz prędkości (o ile jest to przystępne cenowo), ponieważ skończysz tylko na najszybszych częściach dysku.

gnasher729
źródło
Dodanie: en.wikipedia.org/wiki/Zone_bit_recording , które zawiera pewne szczegóły. Warto zauważyć: istniejące dane nie zostaną przeniesione. Może to wpłynąć na przechowywanie nowych danych (w zależności od lokalizacji na dysku, a nie bezpośrednio na wolnym miejscu), ale nie „spowolni” istniejących plików, do których dostęp był szczęśliwy przed ich zapisaniem wewnątrz. Fwiw najtańszy dysk 1 TB 7200 RPM 3,5 ", który znalazłem na Amazon, ma średnią szybkość odczytu wynoszącą 144 MB / s; nawet uwzględniając różnice na wewnętrznych i zewnętrznych ścieżkach, może to nie być wąskim gardłem podczas codziennego użytkowania.
Jason C
@JasonC Wydajność we / wy pod względem sekwencyjnej przepustowości prawie nigdy nie stanowi problemu w praktyce; nawet wolny 4900 obr / min będzie wystarczająco szybki dla prawie każdego użytkownika. Wydajność we / wy pod względem operacji odczytu / zapisu na sekundę będzie tym, co zabija wydajność w większości przypadków; zapytaj swojego ulubionego lokalnego administratora o IOPS z pamięcią obrotową w systemach z wieloma użytkownikami, jeśli masz na to ochotę. To jest główny powód, dla którego praktycznie nikt obecnie nie stosuje rotacyjnej pamięci masowej dla systemów wieloużytkownikowych; nigdy nie możesz nawet zbliżyć się do IOPS dysków SSD.
CVn