Mengapa menghapus file besar membutuhkan waktu lebih lama?

30

Pemahaman saya adalah bahwa menjalankan rmfile hanya dengan memutus tautannya, menandai ruang sebagai bebas di sistem file. Maka harus diikuti bahwa menghapus satu file selalu memakan waktu yang kira-kira sama (yaitu kecepatan hapus sebanding dengan jumlah file, bukan ukuran file).

Jadi mengapa menghapus file 15 GB membutuhkan waktu lebih dari satu menit dengan sederhana rm file.tar.gz?

Tom Marthenal
sumber
5
Sistem file apa?
Shane Madden
8
Pada banyak sistem file, setiap "blok" ruang kosong harus "ditandai" gratis. File besar memiliki lebih banyak blok. Ini tidak berlaku untuk semua sistem file!
Chris S
@ShaneMadden pertanyaan bagus; ext4 sekarang, tapi saya perhatikan di ext lain juga.
Tom Marthenal
Itu sebabnya setiap file harus memiliki sistem file tervirtualisasi sendiri sehingga inode dapat dihapus secara sangat cepat! <
JEST
1
Sistem file mana yang lebih baik dalam hal ini? Saya sekarang menggunakan drive portabel untuk memindahkan disk VM besar dari satu mesin ke komputer lain dan mengambil selamanya selamanya membuat saya gila.
motobói

Jawaban:

39

Dibutuhkan jumlah waktu konstan untuk memutuskan tautan satu blok , tetapi file di luar ukuran satu blok terdiri dari beberapa blok yang dihubungkan bersama, dan semakin besar file semakin besar jumlah blok yang terhubung.

Ignacio Vazquez-Abrams
sumber
14
<BSD Zelot> bergumam menggumam UFS menggumamkan pembaruan lembut menggumam menggumamkan hal-hal yang lebih cepat menggumam menggumamkan pancake! </ BSD Zealot>
voretaq7
XFS menghapus file besar dengan sangat cepat, tetapi sejumlah besar file kecil sangat lambat.
Andrew
4
Satu file akan selalu hanya menggunakan satu inode . Itu memang menggunakan beberapa blok data.
Simon Richter
2
Satu blok untuk menguasai mereka semua, satu blok untuk menemukan mereka, Satu blok untuk membawa mereka semua dan dalam kegelapan mengikat mereka.
Rqomey