Versi pendek : rm -rf mydir
, dengan mydir
(rekursif) mengandung 2,5 juta file, membutuhkan waktu sekitar 12 jam pada mesin sebagian besar menganggur.
Informasi lebih lanjut : Sebagian besar file yang dihapus adalah tautan keras ke file di direktori lain (direktori yang dihapus sebenarnya adalah cadangan tertua yang dibuat oleh rsnapshot
; rm
perintah sebenarnya diberikan oleh rsnapshot
). Jadi sebagian besar entri direktori dihapus - konten file itu sendiri tidak banyak; itu dalam urutan puluhan GB.
Saya jauh dari yakin bahwa itu btrfs
adalah pelakunya. Saya ingat cadangan juga sangat lambat sebelum saya mulai menggunakan btrfs
, tetapi saya tidak yakin bahwa kelambatan dalam penghapusan.
Mesin tersebut adalah Intel Core i5 2.67 GHz dengan 4 GB RAM. Ini memiliki dua disk SATA: satu memiliki OS dan beberapa hal lainnya, dan disk cadangan adalah 1 TB WDC WD1002FAEX-00Z3A0
. Motherboard adalah Asus P7P55D.
Sunting : Mesin ini adalah debian wheezy dengan Linux 3.16.3-2~bpo70+1
. Beginilah cara sistem file di-mount:
root@thames:~# mount|grep rsnapshot
/dev/sdb1 on /var/backups/rsnapshot type btrfs (rw,relatime,compress=zlib,space_cache)
Sunting : Menggunakan rsync -a --delete /some/empty/dir mydir
membutuhkan waktu sekitar 6 jam. Peningkatan yang signifikan berakhir rm -rf
, tapi saya pikir masih terlalu banyak. ( Penjelasan mengapa rsync
lebih cepat darirm
: "[M] sistem file pertama menyimpan struktur direktori mereka dalam format btree, urutan [di] yang Anda hapus file ... penting. Kita harus menghindari menyeimbangkan kembali btree ketika Anda melakukan unlink .... rsync -a --delete
... melakukan penghapusan secara berurutan ")
Sunting : Saya memasang disk lain yang memiliki 2,2 juta file (secara rekursif) dalam direktori, tetapi pada XFS. Berikut adalah beberapa hasil perbandingan:
On the XFS disk On the BTRFS disk
Cached reads[1] 10 GB/s 10 GB/s
Buffered reads[1] 80 MB/s 115 MB/s
Walk tree[2] 11 minutes 43 minutes
rm -rf mydir[3] 7 minutes 12 hours
[1] Dengan hdparm -T /dev/sdX
dan hdparm -t /dev/sdX
.
[2] Waktu yang diperlukan untuk berjalan find mydir -print|wc -l
segera setelah boot.
[3] Pada disk XFS, ini segera setelah berjalan dengan pohon find
. Pada disk BTRFS itu adalah pengukuran lama (dan saya tidak berpikir itu dengan cache pohon).
Tampaknya menjadi masalah dengan btrfs
.
btrfs
? Ini mungkin, tentu saja, tetapi apakah Anda pikir itu relevan? Saat ini saya tidak dapat mengingat mengapa saya memutuskan untuk mencoba btrfs
.
btrfs
karena saya ingin kompresi transparan. Sekarang: rsnapshot
menggunakan tautan keras. Tidak ada opsi untuk tidak menggunakan tautan keras. Jadi tautan keras tumpang tindih dengan btrfs
fungsionalitas copy-on-write, tapi saya tidak bisa berbuat banyak tentang itu.