Apakah mengunduh / menyalin file secara bersamaan mempromosikan fragmentasi?

10

Apakah menulis lebih dari satu file secara bersamaan ke partisi hard drive meningkatkan fragmentasi? Apakah file-file ini ditulis interlaced pada hard drive?

Contoh:

  • Mengunduh beberapa file secara bersamaan dari web
  • Menyalin file dari berbagai sumber ke partisi yang sama
  • Mengunduh beberapa torrent

Apakah ini berbeda antara berbagai OS? Apakah mengalokasikan ruang apriori untuk seluruh file merupakan fitur khusus aplikasi?

Jonathan
sumber
Pertanyaan yang bagus Saya hanya dapat mencatat bahwa ini tergantung pada implementasi driver sistem file yang tepat, yang lebih sempit dari OS.
whitequark
4
Ini akan menjadi jawaban yang kompleks ... Ya, itu adalah OS dan aplikasi khusus. Beberapa aplikasi mengalokasikan ruang dan beberapa tidak. Terkadang tidak ada cara untuk mengetahui sebelumnya berapa banyak ruang yang dialokasikan diperlukan, sehingga jenis aplikasi dapat memecah lebih banyak. Juga akan spesifik sistem file (Anda mungkin menggunakan fat32 atau NTFS di windows)
Jarvin

Jawaban:

7

Itu sangat tergantung pada sistem file yang digunakan, sampai batas tertentu sistem operasi, serta program yang membuka file. Terserah aplikasi untuk meminta jumlah penyimpanan yang benar saat membuat file baru, dan fitur sistem operasi dan sistem file yang memengaruhi perilaku buka-dan-perpanjang yang diikuti aplikasi ini ketika mereka tidak tahu berapa banyak ruang untuk meminta.

Jika suatu program meminta sistem operasi untuk file 4.2GB, OS akan menemukan sebongkah ruang dengan 4.2GB gratis. Gagal bahwa itu akan memberikan program freespace fragmen yang cukup untuk menyimpan file. Ada beberapa variabel di sini, ini disederhanakan.

Jika suatu program meminta sistem operasi untuk file 4KB, OS akan memberikannya. Jika program terus meminta segmen 4KB baru yang berdekatan (Anda sedang mengunduh file, dan program tidak tahu seberapa besar itu) sampai mendapat ruang 4.2GB, OS akan dengan senang hati memberikan ruang. Ini adalah kasus di mana filesystem dan OS membuat perbedaan.

XFS, misalnya, berbasis luas sehingga ruang tambahan akan bersebelahan sampai tidak bisa. Juga, XFS dapat dikonfigurasikan untuk pra-alokasikan file baru dengan jumlah ruang tertentu yang selanjutnya dapat meminimalkan fragmentasi (berguna pada volume penyimpanan Virtual Machine, serta volume DVD ISO).

EXT2 / 3, NTFS, dan saya percaya Reiser, akan mengalokasikan bersebelahan sampai tidak bisa lagi. Maka itu akan memulai fragmen baru. Setiap fragmen bisa berukuran 4KB.

Mari kita ambil yang terburuk. Dua file paralel 4.2GB disimpan 4KB sekaligus secara paralel, ke direktori yang sama. Hal 'direktori yang sama' adalah bagian dari kasus terburuk karena beberapa kombinasi OS / FS berusaha untuk menyimpan file dalam direktori yang sama berdekatan. Untuk beberapa kombinasi OS / FS ini akan menghasilkan dua file yang sepenuhnya disisipkan pada disk. Bagi yang lain yang mencoba menyimpan file baru-terbuka pada segmen bebas yang berbeda, mungkin tidak ada fragmentasi sama sekali atau sangat sedikit.

Sedikit pada XFS (saya pikir ext4 dan btrfs juga bisa melakukan ini). Dalam hal ini, interleave tidak akan menjadi 4KB, itu akan menjadi apa pun yang Anda tetapkan nilai ukuran alokasi Anda saat memasang volume. Atur ke 256MB, dan Anda akan mendapatkan file 4.2GB dengan 17 fragmen, bukan lebih dari satu juta. Berguna untuk volume yang menyimpan file besar seperti server media. Tidak berguna untuk volume menyimpan banyak file bty itty dan beberapa yang besar.

Karena inilah klien Bittorrent membuka file jarang ketika memulai unduhan baru atau hanya mengalokasikan ukuran yang ditentukan secara total sebelum memulai.

Saat menyalin file dari berbagai bagian dari partisi yang sama (atau heck, bahkan dari partisi lain) proses copy secara teoritis tahu seberapa besar file yang disalin sehingga meminta ruang dengan ukuran yang sesuai dari OS sejak awal; tidak perlu menambahkan alokasi untuk file baru.

SysAdmin1138
sumber