rm -rf чрезвычайно медленно работает и замедляет работу сервера

2890
Nyxynyx

Я rm -rf foldernameпопытался удалить папку, содержащую 10 000 файлов размером 25 КБ.

Вопрос Почему это занимает так много времени (почти 30 минут)?

Почему сервер стал очень медленным, несмотря на htopочень низкую загрузку ЦП? Процесс занимает только 0,0% процессора и 0,2% MEM? Но как-то средняя нагрузка составляет 10!

HTOP

enter image description here

iotop

enter image description here

1
высокая активность жесткого диска? Lorenzo Von Matterhorn 11 лет назад 1
Есть ли способ проверить, сколько IO% использует процесс? `Iotop`? В любом случае, чтобы ускорить удаление всех файлов в каталоге? Nyxynyx 11 лет назад 0
Некоторые файловые системы обрабатывают небольшие файлы лучше, чем другие. Меньший размер блоков (установленный при форматировании) для файловой системы обычно улучшает операции с небольшими файлами. В качестве примера могу упомянуть, что наличие дерева портирования gentoo (~ 128 тысяч файлов размером менее 100 КБ) в файловой системе reiserfs3 сократило время, необходимое для разрешения зависимостей пакетов. Ярослав Рахматуллин 11 лет назад 1

2 ответа на вопрос

2
Brandon Philips

Вам необходим niceпроцесс для уменьшения нагрузки ioniceна процессор и процесс для уменьшения нагрузки ввода-вывода на диске:

ionice -c 3 nice -n 19 echo foo 

Это должно создать процесс, который работает с наименее благоприятным планированием ЦП и В / В.

Вы можете подтвердить с помощью:

ionice -p 19574 
Вы не можете объединить «хороший» приоритет с помощью «ionice -c 3 -n», так как этот «-n» влияет на приоритет внутри класса приоритетов ввода / вывода 3, «idle» (который в моем linux принимает 0-7) , Боюсь, что вместо этого вам нужно использовать две команды (ionice и [re] nice). Raúl Salinas-Monteagudo 11 лет назад 0
Я надеялся, что это сработает для меня (используя ionice), но, к сожалению, iotop по-прежнему показывал% 99,99 использования диска. Пробовал `ionice -c 3 rm -rf dir`,` ionice -c2 -p7 rm -rf dir`, все равно не повезло. Как только он попал в большой файл, загрузка подскочила с 1 до 24 за 30 секунд. Произошло на занятом сервере баз данных. Aaron R. 10 лет назад 0
0
SnakeDoc

файловые системы / жесткие диски обычно затрудняют множество небольших файлов (головки чтения / записи должны разбиваться повсеместно, чтобы найти каждый файл, а их размер настолько мал, что это экстраполирует этот эффект). Либо это, либо у вас много работы вашего жесткого диска, либо он выходит из строя.

nice -n 19 rm -rf directory 

это запустит 'rm' с самым низким приоритетом.

Как я могу уменьшить приоритет ввода-вывода процесса, который удаляет много файлов и включает ввод-вывод? Nyxynyx 11 лет назад 0
каталог -n 19 rm -rf SnakeDoc 11 лет назад 1
Спасибо, из `iotop` видно, что` jbd2` поглощает много IO, есть ли способ предотвратить это? Как отключить jbd2 для директории, где каждый день удаляется / очищается много маленьких файлов? Или это окажет негативное влияние на производительность в других областях? Nyxynyx 11 лет назад 0
Вы можете поместить их в отдельный раздел и отключить журнал для него (вероятно, в любом случае, это хорошо для вещей, которые являются более или менее временными файлами). Также проверьте noatime для вашего файла fstab, убедитесь, что вы используете самое обновленное ядро ​​для вашего файла. дистрибутив / выпуск. Я думаю, что было несколько патчей для ядра, касающихся ext4 и журналирования жестких дисков. SnakeDoc 11 лет назад 0