Я унаследовал исследовательский кластер с ~ 40 ТБ данных в трех файловых системах. Данные растянуты почти на 15 лет, и, скорее всего, существует большое количество дубликатов, поскольку исследователи копируют данные друг друга по разным причинам, а затем просто держатся за копии.
Я знаю об инструментах устранения дублирования, таких как fdupes и rmlint. Я пытаюсь найти тот, который будет работать с таким большим набором данных. Мне все равно, потребуются ли недели (или, может быть, даже месяцы) для сканирования всех данных - я, вероятно, в любом случае ограничу их, чтобы облегчить работу с файловыми системами. Но мне нужно найти инструмент, который либо как-то очень эффективен с оперативной памятью, либо может хранить все промежуточные данные, которые ему нужны, в файлах, а не в оперативной памяти. Я предполагаю, что моя оперативная память (64 ГБ) будет исчерпана, если я просканирую все эти данные как один набор.
Сейчас я экспериментирую с fdupes на дереве объемом 900 ГБ. Проходит 25%, а использование ОЗУ все время медленно растет, теперь оно составляет 700 МБ.
Или есть ли способ направить процесс на использование ОЗУ с отображением на диске, чтобы было гораздо больше доступного и не использовать системную ОЗУ?
Я использую CentOS 6.
источник
Ответы:
Да, это называется диск подкачки. Вы, вероятно, уже есть. Если вы беспокоитесь о нехватке ОЗУ, тогда стоит начать с увеличения. Он работает автоматически, поэтому нет необходимости делать что-то особенное.
Я не буду беспокоиться о Fdupes. Попробуйте, это должно работать без проблем.
источник
поиск дубликатов на основе хэш-ключа работает хорошо и очень быстро.
источник
Напишите быстрое приложение для обхода деревьев, либо нажав (hash, mtime) => filepath в словарь, либо отметив файл для удаления, если запись уже существует. Хеш будет просто MD5, рассчитанным на первые N байтов. Вы можете сделать несколько разных проходов, с хешем над малым N и затем другим с хешем над большим N.
Вы могли бы сделать это менее чем за двадцать или тридцать строк Python (используя os.walk ()).
источник