Чому видалення великого файлу займає більше часу?


30

Я розумію, що робота rmнад файлом просто від’єднує його, позначаючи простір у файловій системі як вільний. Потім слід, що для видалення одного файлу завжди потрібно приблизно стільки ж часу (тобто швидкість видалення пропорційна кількості файлів, а не розміру файлів).

Так чому ж видалення файлу об'ємом 15 Гб займає хвилину просто rm file.tar.gz?


5
Яка файлова система?
Шейн Мадден

8
У багатьох файлових системах кожен "блок" вільного простору повинен бути "позначений" вільним. У великих файлах є більше блоків. Однак це стосується не всіх файлових систем!
Кріс С

@ShaneMadden гарне запитання; прямо зараз ext4, але я це помітив і на інших ext #.
Том Мартенал

Ось чому кожен файл повинен мати власну віртуалізовану файлову систему, щоб вкладиші можна було швидко стерти дуже швидко! <JEST>
thinice

1
Яка файлова система в цьому випадку краще працюватиме? Я зараз використовую портативний привід для переміщення великих VM дисків з однієї машини на іншу, а зайняття машин назавжди приводить мене в оману.
motobói

Відповіді:


39

Від’єднання одного блоку потребує постійної кількості часу , але файли, що перевищують розмір одного блоку, складаються з декількох блоків, пов'язаних між собою, і чим більший файл, тим більша кількість пов'язаних блоків.


14
<BSD Zealot> бурмотіти бурмотіти UFS бурмотіти бурмотіти м'які оновлення mumble mumble видалити речі швидше mumble mumble млинці! </BSD Zealot>
voretaq7

XFS видаляє великі файли дуже швидко, але велика кількість невеликих файлів дуже повільно.
Андрій

4
В одному файлі завжди буде використовуватись лише один inode . Він використовує кілька блоків даних.
Саймон Ріхтер

2
Один блок, щоб керувати ними всіма, один блок, щоб знайти їх, один блок, щоб принести їх усіх і в темряві зв’язати їх.
Rqomey
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.