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

Самый быстрый способ удалить множество больших файлов

У меня есть каталог с временными файлами интеграционных тестов, который имеет следующую структуру:

TestTemp --- Test01 (~1.5TB)  --- Subdirectory01 (~100GB) -- Destination JSON (1-100MB)
                              --- Subdirectory02          -- Destination JSON files
                              --- Subdirectory03          -- Destination JSON files
                              ...
                              --- Subdirectory15 (about 10-15 dirs)

         --- Test02
         --- Test03
         ...
         --- Test15 (about 5-7 directories)

Всего около 10 ТБ.

Файловая система ext3, не может обрабатывать этот каталог как диск. Я следил Эта статья, но этот еще о больших, но немногочисленных файлах.

Я пробовал провести по 6 тестов для каждого варианта: find и exec rm -rf, find -delete и этот странный сценарий perl один за другим, а затем параллельно для двух каталогов.

Лучше всего работал Perl (около 4 минут), следующим был find -delete (4.10), а затем первый вариант с 4.50.

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

Утилиту GNU не пробовал parallel поскольку у меня нет корневого доступа (скрипт очистки запускает Jenkins), я не смог его установить.

Как лучше всего удалить многочисленные большой файлы в многочисленные каталоги как можно быстрее?

Не очевидно, что вы можете стать лучше с файловой системой ext3. Видеть эти графики из долгого расследования, найденного на этот поток serverfault. Что бы они ни делали, на это уходили минуты.

ext4 с экстентами или xfs, вероятно, быстрее

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