Mamy twardy dysk, który ma 600 gigabajtów i jest prawie pełny. Jest wypełniony 18 501,765 plikami (głównie małymi 19k obrazkami) i 7.142.132 folderami. Bardzo trudno jest ustalić, dokąd dokładnie poszła cała przestrzeń. Nasze regularne procedury czyszczenia nie usuwają wystarczającej ilości miejsca, co oznacza, że musimy spojrzeć na ten dysk jako całość i ustalić, co jest na zewnątrz i co można przenieść lub usunąć. Wypróbowaliśmy kilka aplikacji i do tej pory albo wysadziły w powietrze, albo po prostu działały niesamowicie długo.
Informacje o serwerze
- System operacyjny: Windows Server 2003
- System plików : NTFS
Rozwiązanie
Space ObServer był w stanie odczytać 18 501,765 plików i 7 142 132 folderów, nie zajmując prawie żadnej pamięci. Jestem pewien, że dzieje się tak głównie dlatego, że używa zaplecza SQL do przechowywania wszystkich danych. Jest to niestety najdroższy ze wszystkich produktów w cenie 259,95 USD za serwer.
Próby rozwiązań
Podczas moich badań wypróbowałem kilka różnych rozwiązań, zarówno płatnych, jak i bezpłatnych. Trzymałem listę produktów, które wypróbowałem poniżej, aby uzyskać informacje dla wszystkich.
Darmowe oprogramowanie
JDiskReport - zatrzymuje się na 10 milionachWinDirStat - zatrzymuje się na 10 milionachSpaceMonger - Pomijanie z powodu wzmianki o pamięci RAMSpaceSniffer - przestaje być nieznany - ulega awarii
Płać oprogramowanie
Rozmiary folderów - zatrzymuje się na poziomie 12 milionów (3 miliony folderów)TreeSize Professional - Pomijanie z powodu wzmianki o pamięci RAM
Aktualizacje
Aktualizacja nr 1 : Serwer, który próbuję przeanalizować, ma 2 GB pamięci RAM i większość produktów, które próbuję, próbują zachować informacje o pliku / folderze w pamięci. Zazwyczaj kończy się to zbyt szybko z 18 501,765 plikami i 7 142 132 folderami.
Aktualizacja nr 2 : Wygląda na to, że twórcy WinDirStat zaangażowali się na tyle, aby powiedzieć nam, że można go skompilować w wersji 64-bitowej. Daje to więcej pamięci do pracy, ale nie jestem pewien, czy to wystarczy, chyba że będą w stanie przetrwać na dysku.
źródło
Odpowiedzi:
Zakładając, że twój system operacyjny to Windows ...
Tak czy inaczej, dzielenie milionów plików na tabele zawsze zajmuje dużo czasu i będzie ograniczone przez operacje we / wy samego dysku. Polecam TreeSize Professional . A może SpaceObServer . Możesz również wypróbować darmową wersję TreeSize.
źródło
Zdecydowanie wypróbuj WinDirStat : daje fantastyczną wizualizację użycia dysku, przedstawiając każdy plik jako prostokąt narysowany w skali, oznaczony kolorem według typu pliku. Kliknij dowolny element na wizualizacji, a zobaczysz go w drzewie katalogów.
Standardowa wersja 32-bitowa jest ograniczona do 10 milionów plików i 2 GB pamięci RAM, ale kod źródłowy zostanie pomyślnie zbudowany jako aplikacja 64-bitowa. Fakt, że dany serwer ma tylko 2 GB pamięci RAM, może być problematyczny w tym konkretnym przypadku, ale większość serwerów z tak dużą liczbą plików będzie miała znacznie więcej pamięci RAM.
Edycja nr 1: Żałuję, że odkryłem, że podczas testowania na woluminie 4 TB zawierającym miliony plików program WinDirStat Portable zawiesił się po zindeksowaniu około 6,5 miliona plików. Jeśli dysk zawiera ponad 6 milionów plików, może nie działać w przypadku pierwotnego pytania.
Edycja nr 2: Pełna wersja WinDirStat ulega awarii przy 10 milionach plików i przy użyciu 1,9 GB
Edycja nr 3: Skontaktowałem się z programistami WinDirStat i: (1) zgadzają się, że było to spowodowane ograniczeniami użycia pamięci w architekturze x86, i (2) wspomnieli, że można go skompilować jako wersję 64-bitową bez błędów. Więcej wkrótce.
Edycja # 4: Test 64-bitowej wersji WinDirStat powiódł się. W 44 minuty zindeksował 11,4 miliona plików i zużył 2,7 GB pamięci RAM.
źródło
Regularnie używam FolderSizes na kilku dyskach 1 TB z kilkoma milionami plików bez żadnych problemów.
źródło
+1 za produkty TreeSize, ale ...
Twoje zdanie na temat „niewystarczającego czyszczenia miejsca” powoduje, że zastanawiam się: czy zabrakło Ci miejsca na NTFS MFT? Jeśli system plików pobierze więcej miejsca MFT niż początkowo przydzielono, nie jest zwracany do zwykłej przestrzeni plików i nie jest pokazywany podczas operacji defragmentacji.
http://support.microsoft.com/kb/174619
„Woluminy z małą liczbą względnie dużych plików wyczerpują najpierw niezarezerwowane miejsce, podczas gdy woluminy z dużą liczbą stosunkowo małych plików wyczerpują najpierw przestrzeń strefy MFT. W obu przypadkach fragmentacja MFT zaczyna mieć miejsce, gdy jeden region lub inne zostaną zapełnione. Jeśli niezarezerwowane miejsce zostanie zapełnione, miejsce dla plików użytkownika i katalogów zaczyna być przydzielane ze strefy MFT konkurującej z MFT o przydzielenie. Jeśli strefa MFT zapełni się, miejsce na nowe wpisy MFT jest przydzielane od reszty dysk, ponownie konkurując z innymi plikami. ”
źródło
Poważnie. Zrobiłem to z 5 lub 6 milionami plików; nie jestem pewien, czego dokładnie szukasz, ale dobry język skryptowy zje to.
źródło
Zazwyczaj nie jestem użytkownikiem systemu Windows, ale jestem świadomy istnienia Cygwin. :-)
Jeśli działa wystarczająco dobrze, coś w tym rodzaju
a może w Cygwin
W każdym razie powinny one wydrukować 50 największych katalogów (rozmiary w megabajtach).
źródło
Znalazłem kilka problemów ze Spacemonger i szukając narzędzia, które mógłbym łatwo przenieść lub uruchomić z pamięci USB - Space Sniffer okazał się pod tym względem bardzo wszechstronny i z łatwością obsługiwał wolumeny wieloparabajtowe.
źródło
du -s
można go użyć w mgnieniu oka i będzie działać tak długo, jak to konieczne.źródło
W systemie Windows używam SpaceMonger (lub starszej bezpłatnej wersji ). Na OSX Używam Disk Inventory X .
źródło
Zobacz GetFoldersize
źródło
Jeśli chodzi o tabelę mft, z tyłu głowy wydaje mi się, że jkdefrag, oryginalna wersja oprogramowania typu open source, zapewnia bardzo precyzyjny widok dysku, w tym różne kolory dla obszarów mft. Wydaje mi się, że kiedyś użyłem tego do ogólnej oceny rozmiaru i fragmentacji mft.
Też nie dba o chdsk.
Mogę spróbować?
źródło
http://www.freshney.org/xinorbis/
Kolejna potencjalna opcja
źródło
Użyłem narzędzia Disk Usage Analyzer - Baobab w systemie Linux, używając funkcji zdalnego skanowania na serwerze Windows. Nie wiem jednak, jakie są granice.
Fedora LiveCD zawiera Baobab. Uruchom go na dowolnym komputerze w sieci LAN.
Wszystko to za darmo - jak w piwie i mowie. Również do użytku komercyjnego.
źródło