Почему удаление файлов в Ubuntu происходит медленно?

Почему удаление файлов в Ubuntu происходит медленно?

Я прочитал в посте stackoveflow, что в Linux, когда мы удаляем файл, он на самом деле не удаляется, удаляется только ссылка из таблицы inode на этот файл. Если это так, то почему удаление не является операцией постоянного времени?

Я также попробовал провести эксперимент: я создал папку с 1500 изображениями и создал объект tar этих изображений. И каталог, и файл tar имеют одинаковый размер. Время удаления объекта tar и каталога с 1500 изображениями следующее

Удаление tar-файла time rm test.tar:


real    0m0.024s
user    0m0.001s
sys     0m0.024s

Удаление каталога:time rm -r test


real    0m0.219s
user    0m0.024s
sys     0m0.191s

Насколько я понимаю, эта разница во времени возникает из-за
удаления 1 файла по сравнению с удалением 1500 файлов. Но разве удаление объекта tar не должно быть в 1500 раз быстрее?

решение1

Потому что этонетпростая операция «отметить один инод как удаленный»:https://www.slashroot.in/how-does-file-deletion-work-linux

По крайней мере, на ext4 удаление файлов происходит намного быстрее, чем на разделах ext2/ext3, благодаря использованию экстентов.

В случае SSD удаление файлов может быть медленнее, чем необходимо, из-за использования опции «отбросить», которая сообщает вашему SSD о необходимости физически отбросить все блоки, принадлежащие файлу, чтобы продлить срок службы вашего SSD. Это оченьнетжелательно отключить.

Связанный контент