Jak mogę wizualizować miejsce na dysku twardym za pomocą milionów plików?


18

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

Płać oprogramowanie

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.


Jaki system operacyjny
Wesley,

To Windows Server 2003. Zredagowałem ten post, aby to teraz pokazać.
Nathan Palmer

czy któryś z nich jest całkowicie darmowy, shareware lub open source?
Masłów

Miło z twojej strony, że informujesz nas w ten sposób o tym, co się nie udało, działa i oczekuje. Daje mi dobre pomysły.
Wesley,

2
Nie ma problemu. Uznałem, że będą to dobre informacje, ponieważ wydaje mi się, że mamy do czynienia z liczbą plików, z którymi firmy zwykle nie pracują na co dzień. Ponadto właśnie zaktualizowałem kategorie za darmo i płać.
Nathan Palmer

Odpowiedzi:


6

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.


Zgadzam się. Ale te dwa produkty nie próbowałem, więc przyjrzę się.
Nathan Palmer

5

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.


Warto wypróbować zwykłą wersję, ponieważ możliwe jest, że środowisko przenośne stworzyło nieoczekiwane ograniczenie. Nie jestem w stanie sam tego przetestować. windirstat.info
John Gardeniers

Rzeczywiście, zwykła wersja umiera przy ponad 10 milionach plików i 1,9 GB pamięci RAM. Podejrzewam, że nie można przydzielić> 2 GB. Dziwi mnie, że zużywa tak dużo pamięci RAM (prawie 200 bajtów na plik), ale z drugiej strony dorastałem w czasach, gdy poszczególne bajty były o wiele cenniejsze niż dzisiaj ...
Skyhawk

Często używam WinDirStat. Niestety po prostu nie tnie go, gdy wchodzisz do dużej liczby plików.
Nathan Palmer

Chciałbym dowiedzieć się, czy programista na WinDirStat wróci z czymkolwiek. Pamięć RAM będzie dla mnie ograniczeniem w wersji 32-bitowej lub 64-bitowej.
Nathan Palmer

1
Nie ma oficjalnej wersji, ale mogę przesłać ci nieoficjalną wersję - oczywiście, trudno byłoby stworzyć własną wersję, jeśli nie masz programu Visual Studio! (my.name@gmail.com dociera do mnie)
Skyhawk


3

+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. ”


To wygląda na coś dobrego do sprawdzenia. Niestety nie widzimy rozmiaru MFT, ponieważ defragmentacja nie będzie analizować bez CHKDSK, a CHKDSK obecnie nie działa z komunikatem „Wystąpił nieokreślony błąd”.
Nathan Palmer

3
  1. Płyta CD \
  2. dir / s> out.txt
  3. puf! Magia się dzieje; lub pojawia się haker perlowy
  4. Rezultaty!

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.


Soo ... co dzieje się w kroku 3 .. zakładając, że haker Perla się nie pojawi?
Nathan Palmer,

Czy możesz opublikować więcej informacji na temat tego, czego potrzebujesz? Największe pliki? Największe katalogi? Potrzebujesz informacji o dacie / godzinie? Czy jest to jednorazowa potrzeba, czy cykliczne?
SqlACID

Na razie jest to jeden raz. Muszę wiedzieć, które katalogi są największe (reż + dzieci), ale muszę przejść do kilku katalogów, zanim informacje te będą ważne. Następnie będę musiał dokonać podziału plików według daty, aby móc przeglądać najnowsze i stare pliki.
Nathan Palmer,

3

Zazwyczaj nie jestem użytkownikiem systemu Windows, ale jestem świadomy istnienia Cygwin. :-)

Jeśli działa wystarczająco dobrze, coś w tym rodzaju

du -m /your/path | sort -nr | head -n 50

a może w Cygwin

du C:\ | sort -nr | head -n 50

W każdym razie powinny one wydrukować 50 największych katalogów (rozmiary w megabajtach).


2

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.


wielotabajtowe woluminy z iloma plikami? Wydaje się, że naszym głównym problemem nie jest to, ile miejsca jest zajęte, ale ile plików może obsłużyć program. Większość dusi się na poziomie 10 milionów.
Nathan Palmer

Nie mam serwera z więcej niż kilkoma milionami plików do eksperymentowania, więc nie mogłem śmiało odpowiedzieć na twoje pytanie o 10 milionów plików - moją jedyną sugestią byłoby to, że za pomocą tych narzędzi możesz ustawić głębokość katalogu, w którym wizualizuje się - znajdź happy medium, a następnie wejdź głęboko w folder, którego potrzebujesz, powinien również zaoszczędzić czas na wizualizacji.




0

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ć?


Spróbowałem. Kiedy uruchamiam analizę, cierpi ona tak samo jak większość innych programów. Zbyt wiele plików / folderów zapisanych w pamięci.
Nathan Palmer

Przepraszam, że to przeczytałem. Wygląda na problem z platformą. Mam inną sugestię: dublowanie dysku (obraz bitowy, obrazowanie miękkie lub dublowanie sprzętowe) bez względu na to, jak to zrobić, rozbicie lustro i umieść kopię pod dowództwem na innej platformie, np. linux / nix. Zajęło to wystarczająco dużo czasu, aby uzasadnić koszt dysku lustrzanego dotyczącego zainwestowanego czasu pracy.
deploymonkey


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.