У нас есть жесткий диск на 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-битную версию. Это дает ему больше памяти для работы, но я не уверен, будет ли этого достаточно, если они не сохранятся на диске.
источник
Ответы:
Предполагая, что ваша ОС - 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 выделяется из оставшейся части диск, снова конкурирующий с другими файлами. "
источник
Шутки в сторону. Я сделал это с 5 или 6 миллионами файлов; Не уверен, что именно вы ищете, но хороший язык сценариев сожрет это.
источник
Я обычно не пользователь Windows, но я знаю о существовании Cygwin. :-)
Если это работает достаточно хорошо, что-то вроде
или возможно в Cygwin
В любом случае, они должны распечатать 50 самых больших каталогов (размеры в мегабайтах).
источник
Я обнаружил несколько проблем с Spacemonger и в поиске утилиты, которую я мог бы легко перенести или запустить с USB-флешки - Space Sniffer оказался очень универсальным в этом отношении и легко обрабатывал многотерабайтные тома.
источник
du -s
может быть использован в крайнем случае, и будет работать столько, сколько необходимо.источник
В Windows я использую SpaceMonger (или более раннюю бесплатную версию ). На OSX я использую Disk Inventory X .
источник
Посмотрите на GetFoldersize
источник
Что касается таблицы mft, мне кажется, что из задней части головы jkdefrag, оригинальная версия с открытым исходным кодом, давала очень точное представление о диске, включая разные цвета для областей mft. Я думаю, что использовал это однажды для эмпирического предположения размера mft и фрагментации.
Также не заботится о ЧДСК.
Можно попробовать?
источник
http://www.freshney.org/xinorbis/
Еще один потенциальный вариант
источник
Я использовал Disk Usage Analyzer - Baobab в Linux, используя его функцию удаленного сканирования на сервере Windows. Я не знаю, каковы его пределы, хотя.
Fedora LiveCD содержит баобаб. Загрузите его на любом компьютере в вашей локальной сети.
Это все бесплатно - как в пиве, так и в речи. Также для коммерческого использования.
источник