Как я могу визуализировать пространство на жестком диске с миллионами файлов?
У нас есть жесткий диск на 600 гигабайт и почти полный. Он был заполнен 18 501 765 файлами (в основном небольшими 19 тыс. Изображений) и 7 142 132 папками. Очень сложно выяснить, куда именно ушло все пространство. Наши регулярные процедуры очистки не очищают достаточно места, что означает, что нам нужно посмотреть на этот диск в целом и определить, что там, а что можно переместить или удалить. Мы перепробовали несколько приложений, и пока они либо взорвались, либо просто запустились за удивительное количество времени.
Информация о сервере
- Операционная система: Windows Server 2003
- Файловая система: NTFS
Решение
Space ObServer смог прочитать 18 501 765 файлов и 7 142 132 папок, практически не занимая память. Я уверен, что это в основном из-за того, что он использует SQL-сервер для хранения всех данных. Это, к сожалению, самый дорогой из всех продуктов по цене $259,95 за сервер.
Попытки Решений
Во время исследований я попробовал несколько разных решений, как платных, так и бесплатных. Я держал список продуктов, которые я попробовал ниже для всеобщей информации.
Бесплатно программное обеспечение
JDiskReport - останавливается на 10 миллионовWinDirStat - останавливается на 10 миллионовSpaceMonger - Пропуск из-за упоминания о памяти RAMSpaceSniffer - останавливается при неизвестном - сбой
Платное программное обеспечение
FolderSizes - останавливается на 12 миллионов (3 миллиона папок)TreeSize Professional - Пропуск из-за упоминания о памяти RAM
Обновления
Обновление № 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 ТБ с несколькими миллионами файлов без проблем.
- CD \
- dir / s> out.txt
- пуф! Магия случается; или Perl хакер обнаруживается
- Результаты!
Шутки в сторону. Я сделал это с 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 оказался очень универсальным в этом отношении и легко обрабатывал многотерабайтные тома.
В Windows я использую SpaceMonger (или более раннюю бесплатную версию). На OSX я использую Disk Inventory X.
du -s
может быть использован в крайнем случае, и будет работать столько, сколько необходимо.
Я использовал Disk Usage Analyzer - Baobab в Linux, используя его функцию удаленного сканирования на сервере Windows. Я не знаю, каковы его пределы, хотя.
Fedora LiveCD содержит баобаб. Загрузите его на любом компьютере в вашей локальной сети.
Это все бесплатно - как в пиве, так и в речи. Также для коммерческого использования.
http://www.freshney.org/xinorbis/
Еще один потенциальный вариант
Что касается таблицы mft, мне кажется, что из задней части головы jkdefrag, оригинальная версия с открытым исходным кодом, давала очень точное представление о диске, включая разные цвета для областей mft. Я думаю, что использовал это однажды для эмпирического предположения размера mft и фрагментации.
Также не заботится о ЧДСК.
Можно попробовать?