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

18

У нас есть жесткий диск на 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-битную версию. Это дает ему больше памяти для работы, но я не уверен, будет ли этого достаточно, если они не сохранятся на диске.

Натан Палмер
источник
Какая операционная система?
Уэсли
Это Windows Server 2003. Я отредактировал пост, чтобы показать это сейчас.
Натан Палмер
Есть ли какие-либо из них абсолютно бесплатно, условно-бесплатно или с открытым исходным кодом?
Маслоу
Очень приятно, что вы таким образом проинформировали нас о том, что не удалось, работает и ожидает рассмотрения. Дает мне хорошие идеи.
Уэсли
2
Нет проблем. Я подумал, что это будет хорошая информация, так как я чувствую, что мы имеем дело с # файлами, с которыми компании обычно не работают ежедневно. Кроме того, я только что обновил категории бесплатно и платно.
Натан Палмер

Ответы:

6

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

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

Wesley
источник
Я согласен. Но эти два продукта я не пробовал, так что я посмотрю.
Натан Палмер
5

Обязательно попробуйте 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 ГБ оперативной памяти.

штурмовик типа "Скайхки"
источник
Возможно, стоит попробовать обычную версию, поскольку возможно, что переносимая среда создала неожиданное ограничение. Я не в состоянии проверить это сам. windirstat.info
Джон Гарденье
Действительно, обычная версия умирает с более чем 10 миллионами файлов и 1,9 ГБ оперативной памяти. Я подозреваю, что он не может выделить> 2 ГБ. Я удивлен, что он использует так много оперативной памяти (почти 200 байт на файл), но, опять же, я вырос в эпоху, когда отдельные байты были гораздо более ценными, чем сегодня ...
Skyhawk
Я много использую WinDirStat. К сожалению, он не обрезается, когда вы получаете большое количество файлов.
Натан Палмер
Мне было бы интересно узнать, вернулись ли разработчики на WinDirStat с чем-нибудь. ОЗУ будет для меня ограничением в 32-битной или 64-битной.
Натан Палмер
1
Официальной сборки нет, но я могу отправить вам неофициальную - очевидно, было бы сложно свернуть свою собственную, если у вас нет Visual Studio! (my.name@gmail.com доходит до меня)
Skyhawk
4

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

joeqwerty
источник
Потрясающие. Не знал об этом.
Уэсли
Отлично. Я попробую.
Натан Палмер
3

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

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

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

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

AndyN
источник
Это похоже на что-то хорошее, чтобы проверить. К сожалению, мы не можем видеть размер MFT, потому что дефрагментация не будет анализироваться без CHKDSK, и CHKDSK в настоящее время завершается с ошибкой «Произошла неуказанная ошибка».
Натан Палмер
3
  1. компакт диск \
  2. dir / s> out.txt
  3. пуф! Магия случается; или Perl хакер обнаруживается
  4. Результаты!

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

SqlACID
источник
Так ... что происходит на шаге 3 ... при условии, что Perl-хакер не появляется?
Натан Палмер
Можете ли вы опубликовать больше информации о том, что вам нужно? Самые большие файлы? Самые большие каталоги? Вам нужна информация о дате / времени? Это разовая необходимость или повторяющаяся?
SqlACID
Пока это один раз. Мне нужно знать, какие каталоги являются самыми большими (dir + children), но мне нужно пройти несколько каталогов, прежде чем эта информация станет действительной. Тогда мне нужно будет разбить файлы по дате, чтобы я мог просматривать последние и старые файлы.
Натан Палмер
3

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

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

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

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

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

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

Янне Пиккарайнен
источник
2

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


источник
объемы в несколько терабайт, сколько файлов? Кажется, наша главная проблема не в том, сколько места используется, а в том, сколько файлов может обработать программа. Большинство задыхается от 10 миллионов.
Натан Палмер
У меня нет сервера с более чем несколькими миллионами файлов для эксперимента, поэтому я не могу с уверенностью ответить на ваш вопрос о 10 миллионах файлов - единственное, что я могу предложить, - это то, что с помощью этих инструментов вы можете установить глубину каталога, на которой визуализируется, - найти happy medium, а затем углубиться в нужную папку, следует также сэкономить время на визуализацию.
1

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

Игнасио Васкес-Абрамс
источник
Благодарю. Проверим это в следующий раз, когда буду в системе * ix.
Натан Палмер
... а? gnuwin32.sourceforge.net/packages/coreutils.htm
Игнасио Васкес-Абрамс
Не понял, что это было доступно на окнах. Я проверю это. Благодарю.
Натан Палмер
0

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

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

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

deploymonkey
источник
Я дал ему попробовать. Когда я запускаю анализ, его постигла та же участь, что и у большинства других программ. Слишком много файлов / папок хранятся в памяти.
Натан Палмер
Извините, что прочитал это. Похоже, проблема с платформой. У меня есть другое предложение: зеркально отразить диск (битовое изображение, программное обеспечение Imaging или аппаратное зеркало), независимо от того, каким образом, разбить зеркало и поместить копию под экспертизу на другой платформе, например. Linux / Никс. Это заняло достаточно времени, чтобы гарантировать стоимость зеркального привода относительно количества вашего рабочего времени.
deploymonkey
0

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

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

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

Tometzky
источник