Как увеличить скорость удаления нескольких папок

У меня есть сценарий, содержащий около 420k строк команды "rm -rf", например, которая была сгенерирована с помощью оператора "find". Каждая папка PDF содержит от 1 до 30 файлов (без подпапок).

rm -rf /2012/128/211503/pdf
rm -rf /2012/128/212897/pdf
rm -rf /2012/128/211989/pdf
rm -rf /2012/128/211691/pdf
rm -rf /2012/128/212539/pdf
rm -rf /2012/218/358976/pdf
rm -rf /2012/218/358275/pdf
rm -rf /2012/218/358699/pdf

Я ищу, как увеличить скорость удаления скрипта.

В настоящее время vmstat сообщает только о (IO) времени ожидания.

Платформа RHEL 5 удаляет файлы на диске RAID5/6, используя ext3 и LVM.

Я думал о том, чтобы разбить файл сценария на более мелкие файлы (например, 10 файлов), чтобы запустить несколько сценариев параллельно, но здесь я замечаю ограничение аппаратной скорости.

Будет ли это хорошей идеей, если принятие решения об удалении для журналирования займет время, и может ли оно принять участие в такой функции, как NCQ?

1 ответ

Решение

Если вы используете find для генерации скрипта, вы должны взглянуть на -delete действие

Удалить файлы; истина, если удаление прошло успешно. Если удаление не удалось, выдается сообщение об ошибке. Если -delete не удается, состояние выхода find будет отличным от нуля (когда оно в конечном итоге завершится). Использование -delete автоматически включает опцию -depth

Вы можете использовать split, чтобы разбить файл на куски. Вы также можете получить немного прибыли из GNU Parallel.

Другие вопросы по тегам