Używaj ncdu w CasaOS, gdy chcesz znaleźć foldery, które rzeczywiście zajmują miejsce na dysku, ale skanuj właściwą ścieżkę hosta — nie tylko mały system plików kontenera. W przypadku aktualnych systemów Linux projekt nadrzędny udostępnia statyczne pliki binarne, a ncdu 2.x to najszybszy sposób interaktywnej analizy użycia dysku.
Poradnik BigBear z 2024 roku jest przydatny jako wprowadzenie, ale do korzystania z ncdu nie potrzebujesz specjalnego kontenera ze sklepu z aplikacjami. W przypadku diagnozowania problemów z pamięcią masową bardziej przejrzysty jest terminal hosta lub kontener z wyraźnie zamontowaną docelową ścieżką tylko do odczytu.
Do czego służy ncdu
ncdu to interaktywny analizator użycia dysku. Skanuje katalogi, sortuje je według rozmiaru i pozwala zagłębiać się w duże foldery bez ręcznego łączenia du poleceń.
Aktualna strona projektu ncdu zawiera statyczne pliki binarne ncdu 2.x dla architektur x86_64, ARM i AArch64.
Zacznij od systemu plików, który rzeczywiście jest pełny
Uruchom:
df -h
Zidentyfikuj punkt montowania z małą ilością wolnego miejsca. Następnie przeskanuj ten punkt montowania zamiast uruchamiać ncdu bezmyślnie z poziomu /.
Skanowanie ścieżki danych CasaOS
Typowe przykłady:
ncdu /DATA
ncdu /media
ncdu /var/lib/docker
Dokładna ścieżka zależy od instalacji. Jeśli podejrzewasz, że źródłem problemu jest Docker lub AppData, sprawdź bezpośrednio tę lokalizację.
Zachowaj ostrożność podczas skanowania wewnętrznych danych Dockera
/var/lib/docker zawiera warstwy obrazów, warstwy zapisywalne, dzienniki i metadane. ncdu może pokazać, które katalogi są duże, ale ręczne usuwanie przypadkowych plików warstwy overlay może uszkodzić stan Dockera.
Używaj poleceń czyszczenia uwzględniających Dockera do obsługi obrazów, kontenerów i pamięci podręcznych, zamiast usuwać wewnętrzne katalogi warstw za pomocą ncdu.
ncdu w kontenerze ma ograniczoną widoczność
Jeśli uruchomisz ncdu wewnątrz kontenera, zobaczy on tylko ścieżki zamontowane w tym kontenerze. Skanowanie głównego systemu plików kontenera prawie nic nie mówi o całkowitym użyciu dysku przez CasaOS.
Jeśli wolisz Dockera, zamontuj docelową ścieżkę hosta tylko do odczytu i przeskanuj ten punkt montowania. Na czas diagnozowania pozostaw usuwanie wyłączone.
Najpierw znajdź duże foldery AppData
Aplikacje uruchamiane na własnym serwerze mogą gromadzić miniatury, dzienniki, pamięci podręczne, bazy danych i pobrane metadane. Przewodnik po pamięci Dockera wyjaśnia, dlaczego folder AppData na hoście może się rozrastać, nawet gdy obrazy kontenerów są małe.
Typowe źródła dużego zużycia miejsca
- pamięci podręcznej transkodowania multimediów;
- dzienników JSON kontenerów;
- plików baz danych;
- miniatur zdjęć i indeksów uczenia maszynowego;
- niekompletnych folderów klienta pobierania;
- starych kopii zapasowych;
- obrazów Dockera i pamięci podręcznej kompilacji.
Nie usuwaj, dopóki nie wiesz, kto jest właścicielem folderu
Użyj ncdu, aby zidentyfikować dużą ścieżkę, a następnie ustal, która aplikacja jest jej właścicielem. Zatrzymaj odpowiednią aplikację przed usunięciem danych, które mogą być aktywnie zapisywane.
Używaj wykluczeń, aby zwiększyć użyteczność dużych skanów
Na serwerze z zamontowanymi udziałami sieciowymi, kopiami zapasowymi lub dyskami zewnętrznymi skanowanie niewłaściwego drzewa może trwać długo i połączyć niezwiązane zasoby w jednym wyniku. Zacznij od dokładnego punktu montowania wskazanego przez df -h i unikaj przechodzenia do zdalnych punktów montowania, chyba że to one stanowią problem.
W przypadku powtarzających się problemów ncdu może eksportować dane skanowania, dzięki czemu można porównywać wzrost w czasie zamiast ponownie skanować ogromny system plików przy każdej sesji.
Zrozumienie usuniętych, lecz nadal otwartych plików
Czasami df raportuje pełny system plików, a ncdu nie może znaleźć wystarczającej liczby widocznych plików, aby to wyjaśnić. Jedną z przyczyn może być proces, który ma otwarty już usunięty plik. Wpis katalogu zniknął, ale bloki pozostają przydzielone, dopóki proces nie zamknie pliku.
Gdy suma ncdu i df znacznie się różnią, sprawdź otwarte usunięte pliki za pomocą narzędzia takiego jak lsof +L1 jeśli jest dostępne na hoście. Ponowne uruchomienie odpowiedniej usługi może zwolnić miejsce, gdy już ustalisz, czym ono jest.
Używaj ncdu jako narzędzia pomiarowego, a nie zasad czyszczenia
Dużą pamięć podręczną można zwykle bezpiecznie wyczyścić, podczas gdy katalog bazy danych o podobnym rozmiarze może mieć krytyczne znaczenie. Wartość ncdu polega na pokazaniu, gdzie wykorzystano miejsce; sposób jego odzyskania powinna określić aplikacja, która jest jego właścicielem.
Najczęściej zadawane pytania
Czy ncdu może usuwać pliki?
Tak, ale usuwaj ostrożnie. W przypadku danych wewnętrznych Dockera, baz danych i danych zarządzanych przez aplikacje preferuj własny mechanizm czyszczenia aplikacji.
Dlaczego ncdu pokazuje mniej zajętego miejsca niż df?
Możliwe przyczyny to usunięte, lecz nadal otwarte pliki, niedostępne katalogi, metadane systemu plików, migawki lub dane znajdujące się poza skanowanym punktem montowania.
Czy do zainstalowania ncdu potrzebuję BigBearCasaOS?
Nie. To jedna z opcji pakowania. Obecny upstream udostępnia również samodzielne statyczne pliki binarne.
Od czego należy zacząć skanowanie?
Użyj df -h aby zidentyfikować pełny punkt montowania, a następnie przeskanować dokładnie tę ścieżkę za pomocą ncdu.
