Saya memiliki ext4
partisi 900GB pada hard drive (magnetik) yang tidak memiliki cacat dan tidak ada bad sector. Partisi ini benar-benar kosong kecuali untuk lost+found
direktori kosong . Partisi diformat menggunakan parameter default kecuali bahwa saya mengatur jumlah blok filesystem yang dicadangkan ke 1%.
Saya mengunduh ~ 900MB file xubuntu-15.04-desktop-amd64.iso
ke direktori mount point direktori menggunakan wget
. Ketika unduhan selesai, saya menemukan bahwa file itu dibagi menjadi empat fragmen:
filefrag -v /media/emma/red/xubuntu-15.04-desktop-amd64.iso
Filesystem type is: ef53
File size of /media/emma/red/xubuntu-15.04-desktop-amd64.iso is 1009778688 (246528 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
4: 126976.. 159743: 165888.. 198655: 32768: 163840:
5: 159744.. 190463: 198656.. 229375: 30720:
6: 190464.. 223231: 231424.. 264191: 32768: 229376:
7: 223232.. 246527: 264192.. 287487: 23296: eof
/media/emma/red/xubuntu-15.04-desktop-amd64.iso: 4 extents found
Berpikir ini mungkin dirilis wget
entah bagaimana, saya menghapus file ISO dari partisi, membuatnya kosong lagi, lalu saya menyalin file ~ 700MB v1.mp4
ke partisi menggunakan cp
. File ini juga terfragmentasi. Itu dibagi menjadi tiga fragmen:
filefrag -v /media/emma/red/v1.mp4
Filesystem type is: ef53
File size of /media/emma/red/v1.mp4 is 737904458 (180153 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
4: 126976.. 159743: 165888.. 198655: 32768: 163840:
5: 159744.. 180152: 198656.. 219064: 20409: eof
/media/emma/red/v1.mp4: 3 extents found
Mengapa ini terjadi? Dan adakah cara untuk mencegahnya terjadi? Saya pikir ext4
itu dimaksudkan untuk tahan terhadap fragmentasi. Alih-alih saya menemukan itu segera memecah file soliter ketika semua sisa volume tidak digunakan. Ini tampaknya lebih buruk dari keduanya FAT32
dan NTFS
.
sumber
Jawaban:
3 atau 4 fragmen dalam file 900MB adalah sangat baik. Fragmentasi menjadi masalah ketika file dengan ukuran itu memiliki lebih dari 100 fragmen. Tidak jarang lemak atau ntfs memecah file seperti itu menjadi beberapa ratus bagian.
Anda biasanya tidak akan melihat lebih baik daripada itu setidaknya pada sistem file ext4 yang lebih lama karena ukuran maksimum grup blok adalah 128 MB, dan setiap 128 MB ruang yang berdekatan dipecah oleh beberapa blok untuk alokasi bitmap dan tabel inode untuk grup blok selanjutnya. Fitur ext4 yang lebih baru yang disebut flex_bg memungkinkan pengemasan sejumlah (biasanya 16) kelompok nilai tabel ini bersama-sama, menyisakan berjalan lebih lama dari blok yang dapat dialokasikan tetapi tergantung pada distribusi Anda dan versi e2fsprogs apa yang digunakan untuk memformatnya, opsi ini mungkin belum digunakan.
Anda dapat menggunakan
tune2fs -l
untuk memeriksa fitur yang diaktifkan ketika sistem file Anda diformat.sumber
Saya tidak bisa menjawab, tapi saya pikir ini bisa membantu:
Perhatikan bagaimana masing-masing fragmen, paling banyak, berukuran 32.768 blok (kekuatan 2, yang seharusnya menaikkan bendera bahwa sesuatu sedang terjadi, dan juga memberi Anda petunjuk untuk sesuatu yang dicari).
Juga patut dicatat, mereka offset fisik antara luasan cukup dekat satu sama lain.
Dari: Layout Disk Ext4
Dan lebih jauh ke bawah:
Jadi saya akan mengatakan bahwa pengalokasi hanya peduli tentang lokalitas data di dalam grup blok (blok 32K), tetapi tidak tentang grup blok yang berdekatan satu sama lain.
sumber