Как я могу визуализировать пространство на жестком диске с миллионами файлов?

У нас есть жесткий диск на 600 гигабайт и почти полный. Он был заполнен 18 501 765 файлами (в основном небольшими 19 тыс. Изображений) и 7 142 132 папками. Очень сложно выяснить, куда именно ушло все пространство. Наши регулярные процедуры очистки не очищают достаточно места, что означает, что нам нужно посмотреть на этот диск в целом и определить, что там, а что можно переместить или удалить. Мы перепробовали несколько приложений, и пока они либо взорвались, либо просто запустились за удивительное количество времени.

Информация о сервере

  • Операционная система: Windows Server 2003
  • Файловая система: NTFS

Решение

Space ObServer смог прочитать 18 501 765 файлов и 7 142 132 папок, практически не занимая память. Я уверен, что это в основном из-за того, что он использует SQL-сервер для хранения всех данных. Это, к сожалению, самый дорогой из всех продуктов по цене $259,95 за сервер.

Попытки Решений

Во время исследований я попробовал несколько разных решений, как платных, так и бесплатных. Я держал список продуктов, которые я попробовал ниже для всеобщей информации.

Бесплатно программное обеспечение

Платное программное обеспечение

Обновления

Обновление № 1: сервер, который я пытаюсь проанализировать, имеет 2 ГБ ОЗУ, и большинство продуктов, которые я пытаюсь использовать, стараются сохранить информацию о файлах / папках в памяти. Это имеет тенденцию слишком быстро заканчиваться с 18 501 765 файлами и 7 142 132 папками.

Обновление № 2: Похоже, что разработчики WinDirStat были достаточно вовлечены, чтобы сказать нам, что он может компилироваться под 64-битную версию. Это дает ему больше памяти для работы, но я не уверен, будет ли этого достаточно, если они не сохранятся на диске.

13 ответов

Решение

Предполагая, что ваша ОС - Windows...

В любом случае, нарезка миллионов файлов на табло всегда займет много времени и будет ограничена вводом / выводом самого диска. Я рекомендую TreeSize Professional. Или, может быть, SpaceObServer. Вы также можете попробовать бесплатную версию TreeSize.

Обязательно попробуйте WinDirStat: он дает фантастическую визуализацию использования диска, изображая каждый файл в виде прямоугольника, нарисованного в масштабе, с цветовой кодировкой по типу файла. Нажмите на любой элемент в визуализации, и вы увидите его в дереве каталогов.

Стандартная 32-разрядная сборка ограничена 10 миллионами файлов и 2 ГБ ОЗУ, но исходный код будет успешно создан как 64-разрядное приложение. Тот факт, что рассматриваемый сервер имеет только 2 ГБ ОЗУ, может быть проблематичным в этом конкретном случае, но большинство серверов с таким большим количеством файлов будет иметь гораздо больше ОЗУ.

Правка № 1: С сожалением обнаружил, что при тестировании на томе объемом 4 ТБ, содержащем миллионы файлов, WinDirStat Portable потерпел крах после индексации около 6,5 миллионов файлов. Это может не сработать для исходного вопроса, если диск содержит более 6 миллионов файлов.

Редактирование #2: полная версия WinDirStat падает на 10 миллионов файлов и 1,9 ГБ используется

Редактирование #3: я связался с разработчиками WinDirStat и: (1) они согласны с тем, что это было вызвано ограничениями использования памяти архитектурой x86, и (2) отметили, что она может быть скомпилирована как 64-битная без ошибок. Более скоро.

Редактирование #4: тест 64-битной сборки WinDirStat прошел успешно. За 44 минуты он проиндексировал 11,4 миллиона файлов и потребил 2,7 ГБ оперативной памяти.

Я регулярно использую FolderSizes на нескольких дисках по 1 ТБ с несколькими миллионами файлов без проблем.

  1. CD \
  2. dir / s> out.txt
  3. пуф! Магия случается; или Perl хакер обнаруживается
  4. Результаты!

Шутки в сторону. Я сделал это с 5 или 6 миллионами файлов; Не уверен, что именно вы ищете, но хороший язык сценариев сожрет это.

+1 для продуктов TreeSize, но...

Ваше предложение о "не очищении достаточно места" заставляет меня задуматься: не могли бы вы исчерпать зарезервированное пространство NTFS MFT? Если файловая система захватывает больше пространства MFT, чем первоначально выделено, она не возвращается в обычное файловое пространство и не отображается в операциях дефрагментации.

http://support.microsoft.com/kb/174619

"Тома с небольшим количеством относительно больших файлов сначала исчерпывают зарезервированное пространство, в то время как тома с большим количеством относительно небольших файлов сначала исчерпывают пространство зоны MFT. В любом случае фрагментация MFT начинает происходить, когда один регион или другой становится заполненным. Если незарезервированное пространство становится полным, пространство для пользовательских файлов и каталогов начинает выделяться из зоны MFT, конкурирующей с MFT за выделение. Если зона MFT заполняется, пространство для новых записей MFT выделяется из оставшейся части диск, снова конкурирующий с другими файлами. "

Я обычно не пользователь Windows, но я знаю о существовании Cygwin.:-)

Если это работает достаточно хорошо, что-то вроде

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

или возможно в Cygwin

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

В любом случае, они должны распечатать 50 самых больших каталогов (размеры в мегабайтах).

Я обнаружил несколько проблем с Spacemonger и в поисках утилиты, которую я мог бы легко перенести или запустить с USB-флешки - Space Sniffer оказался очень универсальным в этом отношении и легко обрабатывал многотерабайтные тома.

Посмотрите на GetFoldersize

В Windows я использую SpaceMonger (или более раннюю бесплатную версию). На OSX я использую Disk Inventory X.

du -s может быть использован в крайнем случае, и будет работать столько, сколько необходимо.

http://www.freshney.org/xinorbis/

Еще один потенциальный вариант

Я использовал Disk Usage Analyzer - Baobab в Linux, используя его функцию удаленного сканирования на сервере Windows. Я не знаю, каковы его пределы, хотя.

Fedora LiveCD содержит баобаб. Загрузите его на любом компьютере в вашей локальной сети.

Это все бесплатно - как в пиве, так и в речи. Также для коммерческого использования.

Что касается таблицы mft, мне кажется, что из задней части головы jkdefrag, оригинальная версия с открытым исходным кодом, давала очень точное представление о диске, включая разные цвета для областей mft. Я думаю, что использовал это однажды для эмпирического предположения размера mft и фрагментации.

Также не заботится о ЧДСК.

Можно попробовать?

Другие вопросы по тегам