Назад | Перейти на главную страницу

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

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

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

Решение

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

Попытки решения

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

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

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

Обновления

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

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

Предполагая, что ваша ОС - 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 для продуктов TreeSize, но ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Посмотри на GetFoldersize

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

Также не заботится о chdsk.

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

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

Другой возможный вариант

Я использовал Анализатор использования диска - Baobab в Linux с помощью функции удаленного сканирования на сервере Windows. Хотя я не знаю, каковы его пределы.

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

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