W nieformalnej (tj. Dziennikarskiej) prasie technologicznej oraz na blogach technologicznych online i forach dyskusyjnych często spotyka się niepotwierdzoną radę, aby pozostawić trochę miejsca na dyskach twardych lub półprzewodnikowych. Podano różne przyczyny, a czasem nie ma żadnego powodu. Jako takie, te twierdzenia, choć być może uzasadnione w praktyce, mają mityczny pogląd na ich temat. Na przykład:
Gdy twoje dyski zostaną w 80% zapełnione, powinieneś rozważyć je jako zapełnione i natychmiast powinieneś albo usuwać rzeczy, albo aktualizować. Jeśli osiągną 90% zapełnienia, powinieneś uznać, że twoje osobiste spodnie są w ogniu i zareagować z odpowiednią szybkością, aby temu zaradzić. ( Źródło .)
Aby utrzymać najwyższą wydajność wywozu śmieci, tradycyjna porada ma na celu utrzymanie pustych 20 do 30 procent dysku. ( Źródło .)
Powiedziano mi, że powinienem zostawić około 20% wolnego na HD, aby uzyskać lepszą wydajność, że HD naprawdę zwalnia, gdy jest prawie pełny. ( Źródło .)
Powinieneś zostawić miejsce na pliki wymiany i pliki tymczasowe. Obecnie zostawiam 33% procent wolnych i przysięgam, że nie spadnie poniżej 10 GB wolnego miejsca na dysku twardym. ( Źródło .)
Powiedziałbym, że zwykle 15%, jednak przy tym, jak duże są teraz dyski twarde, o ile masz wystarczająco dużo plików tymczasowych i plików wymiany, technicznie jesteś bezpieczny. ( Źródło .)
Poleciłbym 10% plus w systemie Windows, ponieważ defragmentacja nie uruchomi się, jeśli na dysku nie będzie tak dużo wolnego miejsca. ( Źródło .)
Na ogół chcesz zostawić około 10% wolnej przestrzeni, aby uniknąć fragmentacji ( źródło ).
Jeśli Twój dysk jest stale zapełniony w 75 lub 80 procentach, warto rozważyć uaktualnienie do większego dysku SSD. ( Źródło .)
Czy były jakieś badania, najlepiej opublikowane w recenzowanym czasopiśmie, dotyczące procentowej lub bezwzględnej ilości wolnego miejsca wymaganej przez określone kombinacje systemów operacyjnych, systemu plików i technologii przechowywania (np. Talerz magnetyczny vs. półprzewodnikowy)? (Idealnie, takie badanie wyjaśniłoby również powód, aby nie przekraczać określonej ilości zajętego miejsca, np. W celu zapobieżenia wyczerpaniu się przestrzeni systemowej lub uniknięcia spadku wydajności).
Jeśli znasz takie badania, byłbym wdzięczny, gdybyś mógł odpowiedzieć, podając link do nich oraz krótkie podsumowanie ustaleń. Dzięki!
źródło
Odpowiedzi:
W tym celu trzeba cofnąć się o ponad 20 lat, administrowanie systemem lub inaczej. To był gorący temat, przynajmniej w świecie systemów operacyjnych dla komputerów osobistych i stacji roboczych, ponad 30 lat temu; czas, gdy ludzie BSD opracowywali Berkeley Fast FileSystem, a Microsoft i IBM opracowywali High Performance FileSystem.
Literatura obu twórców omawia sposób, w jaki te systemy plików zostały zorganizowane, aby polityka alokacji bloków przyniosła lepszą wydajność, próbując uczynić kolejne bloki plików ciągłymi. Dyskusje na ten temat oraz fakt, że ilość i lokalizacja wolnej przestrzeni do przydzielenia bloków wpływa na rozmieszczenie bloków, a tym samym na wydajność, we współczesnych artykułach na ten temat.
Na przykład z opisu algorytmu alokacji bloków w Berkeley FFS powinno być dość oczywiste, że jeśli nie ma wolnej przestrzeni w bieżącej i wtórnej grupie cylindrów, a algorytm osiągnie awarię czwartego poziomu („zastosuj wyczerpujące wyszukiwanie do wszystkich grup cylindrów ”) ucierpi wydajność alokacji bloków dysku, podobnie jak fragmentacja pliku (a tym samym wydajność odczytu).
To właśnie te i podobne analizy (dalekie od jedynych projektów systemów plików, które miały na celu poprawę polityk układu ówczesnych projektów systemów plików), opierały się na mądrości uzyskanej w ciągu ostatnich 30 lat.
Na przykład: Dictum w oryginalnym artykule, że woluminy FFS powinny być utrzymywane w mniej niż 90% pełne, aby nie ucierpiała wydajność, oparte na eksperymentach dokonanych przez twórców, można bezkrytycznie powtórzyć nawet w książkach o systemach plików Unix opublikowanych w tym stuleciu (np. Pate2003 s. 216) . Niewiele osób kwestionuje to, chociaż Amir H. Majidimehr faktycznie zrobił to sto lat wcześniej, mówiąc, że xe w praktyce nie zaobserwował zauważalnego efektu; nie tylko ze względu na zwykły Unix mechanizm zastrzega, że końcowe 10% do superu˙zytkownika, co oznacza, że 90% pełnej płyty jest praktycznie w 100% pełny tylko dla superużytkownika każdym razie (Majidimehr1996 str. 68). Podobnie uczynił Bill Calkins, który sugeruje, że w praktyce można wypełnić do 99% dyskami o rozmiarach 21 wieku, zanim zaobserwuje się efekt niskiej wydajności wolnego miejsca, ponieważ nawet 1% nowoczesnych dysków wystarcza, aby mieć dużo niefragmentowanej wolnej przestrzeni wciąż do zabawy (Calkins2002, s. 450) .
To ostatnie jest przykładem tego, w jaki sposób otrzymana mądrość może się mylić. Istnieją inne przykłady tego. Podobnie jak światy SCSI i ATA logicznego adresowania bloków i strefowego rejestrowania bitów raczej wyrzuciły z okna wszystkie staranne obliczenia opóźnienia obrotowego w projekcie systemu plików BSD, tak więc mechanika fizyczna dysków SSD raczej wyrzuca z okna wolną przestrzeń otrzymał mądrość, która dotyczy dysków Winchester.
W przypadku dysków SSD ilość wolnego miejsca na urządzeniu jako całości , tj. We wszystkich woluminach na dysku i pomiędzy nimi , ma wpływ zarówno na wydajność, jak i na żywotność. Podstawą pomysłu, że plik musi być przechowywany w blokach z ciągłymi logicznymi adresami bloków, jest podcięty faktem, że dyski SSD nie mają talerzy do obracania i głowic do wyszukiwania. Zasady znów się zmieniają.
W przypadku dysków SSD zalecana minimalna ilość wolnego miejsca jest w rzeczywistości większa niż tradycyjne 10%, które pochodzi z eksperymentów z dyskami Winchester i Berkeley FFS 33 lata temu. Na przykład Anand Lal Shimpi daje 25%. Różnicę tę potęguje fakt, że musi to być wolna przestrzeń na całym urządzeniu , podczas gdy wartość 10% mieści się w każdym woluminie FFS , a zatem zależy od tego, czy program do partycjonowania zna TRIM całą przestrzeń, która nie jest przydzielony do prawidłowego woluminu dysku przez tablicę partycji.
Sytuację pogarszają również takie złożoności, jak sterowniki systemu plików obsługujące TRIM, które mogą TRIM zwalniać wolne miejsce w woluminach dysków, a także fakt, że sami producenci dysków SSD już przydzielają różne poziomy zarezerwowanego miejsca, które nie jest nawet widoczne poza urządzeniem (tj. Dla hosta ) do różnych zastosowań, takich jak zbieranie śmieci i wyrównywanie zużycia.
Bibliografia
źródło
Chociaż nie mogę mówić o „badaniach” publikowanych przez „czasopisma recenzowane” - i nie chciałbym polegać na nich w codziennej pracy - mogę jednak mówić o realiach setek produkcji serwery w różnych systemach operacyjnych przez wiele lat:
Istnieją trzy powody, dla których pełny dysk zmniejsza wydajność:
Pierwszy punkt jest trywialny, zwłaszcza że żaden rozsądny system produkcyjny nigdy nie użyłby przestrzeni wymiany w dynamicznie rozwijających się i kurczących się plikach.
Drugi punkt różni się bardzo między systemami plików i obciążeniem. W przypadku systemu Windows o mieszanym obciążeniu próg 70% okazuje się całkiem użyteczny. W przypadku systemu plików Linux ext4 z kilkoma, ale dużymi plikami (np. Systemy transmisji wideo), może to wzrosnąć do 90 +%.
Trzeci punkt jest zależny od sprzętu i oprogramowania układowego, ale szczególnie dyski SSD z kontrolerem Sandforce mogą cofać się w usuwaniu wolnego bloku przy dużych obciążeniach zapisu, co prowadzi do wzrostu opóźnień zapisu o tysiące procent. Zwykle pozostawiamy 25% wolnego na poziomie partycji, a następnie obserwujemy współczynnik wypełnienia poniżej 80%.
Rekomendacje
Zdaję sobie sprawę, że wspomniałem, jak zapewnić wymuszenie maksymalnego poziomu wypełnienia. Kilka przypadkowych myśli, żadna z nich nie jest „recenzowana” (płatna, fałszywa lub rzeczywista), ale wszystkie z systemów produkcyjnych.
/var
nie należy do głównego systemu plików.df -h
i puść dzwonki alarmowe w przypadku. Dzięki temu można zaoszczędzić od 30 jąder w systemie plików root z zainstalowanymi i uruchomionymi automatycznymi aktualizacjami bez opcji autorove.źródło
/var
zapełnia się, a serwer przewraca się.W ciągu 20 lat administracji systemem nigdy nie spotkałem się z badaniami szczegółowo określającymi wymagania dotyczące wolnego miejsca dla różnych konfiguracji. Podejrzewam, że dzieje się tak, ponieważ komputery są tak różnorodnie skonfigurowane, że byłoby to trudne ze względu na dużą liczbę możliwych konfiguracji systemu.
Aby określić, ile wolnego miejsca wymaga system, należy uwzględnić dwie zmienne:
Minimalna przestrzeń wymagana do zapobiegania niepożądanemu zachowaniu, które samo w sobie może mieć płynną definicję.
Zauważ, że zdefiniowanie wymaganej wolnej przestrzeni na podstawie samej definicji nie jest pomocne, ponieważ jest to odpowiednik stwierdzenia, że można bezpiecznie jechać z prędkością 80 km / h w kierunku ściany z cegieł, aż do momentu, w którym się z nią zderzysz.
Szybkość zużywania pamięci, która dyktuje dodatkową zmienną ilość miejsca do zarezerwowania, aby system nie zdegradował się, zanim administrator zdąży zareagować.
Konkretna kombinacja systemu operacyjnego, systemów plików, podstawowej architektury pamięci wraz z zachowaniem aplikacji, konfiguracją pamięci wirtualnej itp. Stanowi poważne wyzwanie dla tych, którzy chcą zapewnić ostateczne wymagania dotyczące wolnego miejsca.
Właśnie dlatego istnieje tak wiele „samorodków” porad. Zauważysz, że wielu z nich rekomenduje konkretną konfigurację. Na przykład „Jeśli masz dysk SSD, który może powodować problemy z wydajnością w momencie zbliżania się do pojemności, pozostań powyżej 20% wolnego miejsca”.
Ponieważ nie ma prostej odpowiedzi na to pytanie, prawidłowe podejście do identyfikacji Twojego minimalny wymóg wolna przestrzeń systemu jest rozważenie różnych zaleceń ogólnych w świetle konfiguracji konkretnego systemowym, a następnie ustawić próg, monitorować je i być gotowi, aby dostosować go jako niezbędne.
Lub możesz po prostu zachować co najmniej 20% wolnego miejsca. O ile oczywiście nie masz 42 TB woluminu RAID 6 zabezpieczonego kombinacją dysków SSD i tradycyjnych dysków twardych oraz wstępnie przydzielonego pliku wymiany ... (to żart dla poważnych ludzi).
źródło
Oczywiście sam dysk (zarówno HDD, jak i SSD) nie mógł mniej obchodzić się z tym, ile procent z niego jest w użyciu, poza tym, że dyski SSD mogą wcześniej usunąć dla ciebie wolne miejsce. Wydajność odczytu będzie dokładnie taka sama, a wydajność zapisu może być nieco gorsza na dysku SSD. W każdym razie wydajność zapisu nie jest tak ważna na prawie pełnym dysku, ponieważ nie ma miejsca na nic do pisania.
Z drugiej strony system operacyjny, system plików i aplikacje będą oczekiwać, że przez cały czas będzie dostępne wolne miejsce. 20 lat temu typowe dla aplikacji było sprawdzenie ilości miejsca na dysku przed zapisaniem tam plików. Dzisiaj aplikacja tworzy pliki tymczasowe bez pytania o zgodę i zwykle zawiesza się lub zachowuje się nieprawidłowo, gdy tego nie robi.
Systemy plików mają podobne oczekiwania. Na przykład NTFS rezerwuje dużą część dysku dla MFT, ale nadal pokazuje to miejsce jako wolne. Gdy zapełnisz dysk NTFS powyżej 80% jego pojemności, otrzymasz fragmentację MFT, która ma bardzo realny wpływ na wydajność.
Co więcej, posiadanie wolnej przestrzeni rzeczywiście pomaga zapobiegać fragmentacji zwykłych plików. Systemy plików zwykle unikają fragmentacji plików , znajdując odpowiednie miejsce dla każdego pliku w zależności od jego wielkości. Na dysku prawie zapełnionym będą mieli mniej opcji, więc będą musieli dokonywać gorszych wyborów.
W systemie Windows można również oczekiwać wystarczającej ilości miejsca na dysku na plik wymiany , który może się powiększać, gdy zajdzie taka potrzeba. Jeśli nie może, możesz oczekiwać, że Twoje aplikacje zostaną przymusowo zamknięte. Posiadanie bardzo małej przestrzeni wymiany może rzeczywiście pogorszyć wydajność.
Nawet jeśli swap ma ustalony rozmiar, całkowite wyczerpanie miejsca na dysku systemowym może spowodować awarię systemu i / lub uniemożliwić jego uruchomienie (zarówno w systemie Windows, jak i Linux), ponieważ system operacyjny będzie mógł zapisywać dane na dysku podczas uruchamiania. Tak więc, uderzenie w 90% użycia dysku powinno sprawić, że pomyślisz, że twoje farby się palą. Ani razu nie widziałem komputerów, które nie uruchomiły się poprawnie, dopóki ostatnie pliki do pobrania nie zostały usunięte, aby zapewnić systemowi operacyjnemu trochę miejsca na dysku.
źródło
W przypadku dysków SSD powinno pozostać trochę miejsca, ponieważ szybkość zapisu następnie wzrasta i negatywnie wpływa na wydajność zapisu na dysku. 80% zapełnienia jest bezpieczną wartością prawdopodobnie dla wszystkich dysków SSD, niektóre najnowsze modele mogą działać dobrze nawet przy zajętej pojemności 90-95%.
https://www.howtogeek.com/165542/why-solid-state-drives-slow-down-as-you-fill-them-up/
źródło
„Zasady” różnią się w zależności od wymagań. Są też specjalne przypadki, takie jak na przykład ZFS: „Przy 90% pojemności ZFS przełącza się z optymalizacji wydajności na optymalizację opartą na przestrzeni, co ma ogromne konsekwencje dla wydajności”. Tak, jest to aspekt projektowy ZFS ... a nie coś pochodzącego z obserwacji lub niepotwierdzonych dowodów. Oczywiście nie stanowi to większego problemu, jeśli pula pamięci ZFS składa się wyłącznie z dysków SSD. Jednak nawet w przypadku obracających się dysków możesz z radością osiągnąć 99% lub 100%, gdy zajmujesz się przechowywaniem statycznym i nie potrzebujesz najwyższej wydajności - na przykład osobistej kolekcji ulubionych filmów, która nigdy się nie zmienia i gdzie bezpieczeństwo jest priorytetem 1.
Następnie, btrfs - skrajny przypadek: gdy ilość wolnego miejsca staje się zbyt mała (kilka MB), możesz osiągnąć punkt bez powrotu. Nie, usuwanie plików nie jest opcją, ponieważ nie możesz. Po prostu brakuje miejsca do usunięcia plików. btrfs to system plików COW (kopiowanie przy zapisie) i można osiągnąć punkt, w którym nie można już modyfikować metadanych. W tym momencie nadal możesz dodać dodatkową pamięć do systemu plików (pamięć USB może działać), a następnie usunąć pliki z rozszerzonego systemu plików, a następnie zmniejszyć system plików i ponownie usunąć dodatkową pamięć). Ponownie, jest to pewien aspekt spowodowany projektem systemu plików.
Ludzie, którzy mogą przekazać ci „prawdziwe (poważne) dane”, to prawdopodobnie ci, którzy zajmują się „prawdziwym (poważnym) przechowywaniem”. (Doskonała) odpowiedź Twisty wspomina o macierzach hybrydowych (składających się z ogromnej ilości taniego powolnego wirowania, wielu szybkich dysków, wielu dysków SSD ...), które działają w środowisku korporacyjnym, w którym głównym czynnikiem ograniczającym jest szybkość, z jaką administrator w stanie zamówić ulepszenia. Przejście z 16 do 35 ton może potrwać 6 miesięcy ... więc otrzymujesz poważnie poparte raporty, które sugerują ustawienie twojego alarmu na 50%.
źródło
Istnieje wiele, wiele czynników, które wpływają na wynik w bardzo specyficznych ilościach. Nie ma więc twardego i szybkiego numeru, który można zmierzyć tylko jako funkcję tych parametrów. (Prawdopodobnie dlatego inni użytkownicy nie zgłaszają żadnych konkretnych badań na ten temat - zbyt wiele zmiennych, aby skompilować cokolwiek rozstrzygającego.)
Sprzęt komputerowy
System plików
Rodzaj obciążenia
źródło
W przypadku napędów mechanicznych należy wziąć pod uwagę, że przepustowość zewnętrznej krawędzi jest wyższa niż wewnętrzna. Wynika to z faktu, że na obrót przypada więcej sektorów na większym obwodzie zewnętrznym.
Gdy dysk osiąga pojemność, wydajność spada, ponieważ dostępne będą tylko wolniejsze sektory wewnętrzne.
Aby uzyskać bardziej szczegółową analizę, zobacz https://superuser.com/a/643634
źródło
Zależy to od zamierzonego użycia napędu, ale ogólnie od 20% do 15% wolnego miejsca jest dobrą odpowiedzią na obracanie dysków, a 10% lub więcej jest dobre na dyski SSD.
Jeśli jest to główny dysk komputera i pliki można przenosić, wówczas 20% wolnego miejsca powinno zapobiec znacznemu spowolnieniu. Umożliwi to wystarczającą ilość wolnego miejsca na dysku do przenoszenia i kopiowania danych w razie potrzeby. Wirujący dysk będzie działał najlepiej, gdy wolne lokalizacje są bliżej oryginalnych danych, podczas gdy na dysku SSD fizyczna lokalizacja nie wpływa na codzienną wydajność. Tak więc napęd wirujący powinien mieć więcej wolnego miejsca ze względów czysto wydajnościowych. Na dysku SSD zmniejszone wolne miejsce skróci żywotność dysku, ale nie zmniejszy wydajności. SSD próbują przechowywać dane tymczasowe i losowe pliki do pobrania w najrzadziej używanych lokalizacjach, aby zrównoważyć wykorzystanie komórki na całym dysku; w przeciwnym razie część dysku starzeje się znacznie szybciej niż reszta.
Jeśli jest to nośnik lub napęd do przechowywania długoterminowego, wystarczy 5% do 10% wolnego miejsca, a 10% byłoby preferowane, jeśli jest to wirujący dysk. Nie potrzebujesz tak dużo wolnego miejsca, ponieważ ten dysk rzadko wymaga przeniesienia danych, więc wydajność nie jest aż tak ważnym czynnikiem. Wolne miejsce jest przydatne głównie w celu umożliwienia odrzucenia i zamiany uszkodzonych sektorów oraz w celu zapewnienia ciągłości plików.
Nie przepchnęłbym żadnego dysku powyżej 95% pojemności dłużej niż jeden dzień, chyba że istnieje bardzo dobry, wyraźny powód.
źródło