Setelah beberapa menit menyalin, prosesnya menjadi semakin lambat. Mengapa?
misalnya dimulai dengan 20 MByte / detik, dan ketika selesai dengan itu, itu @ 10 MByte / s.
Beragam file, besar, kecil, dll.
UPDATE: pertanyaan mengenai berbagai sistem operasi, jadi itu adalah "pertanyaan umum"
usb-flash-drive
file-transfer
LanceBaynes
sumber
sumber
Jawaban:
Perilaku ini tidak spesifik untuk flash drive Anda, Anda dapat melihatnya dengan hard drive juga. Ini ada hubungannya dengan mekanisme caching yang digunakan kebanyakan sistem operasi dan disk untuk mempercepat penulisan kecil.
20mb / s yang Anda lihat adalah data yang ditulis ke cache disk (biasanya cepat tetapi memori kecil). Setelah cache ini penuh, cache harus dibuang ke disk - dan sekarang Anda dihambat oleh disk yang lebih lambat.
Contoh 1: Efeknya benar-benar diucapkan ketika Anda memiliki controller dengan cache yang besar (seperti kontroler RAID5 yang baik) di mana ~ 500mb data dapat di-cache dengan cepat sebelum harus di-flush ke disk.
Contoh 2: Anda dapat melihat cache sedang dimainkan jika Anda menarik flash drive pada saat yang sama ketika salinan file "selesai". Pada titik ini file Anda terbagi antara disk dan cache - sehingga salinannya "selesai" sejauh menyangkut sistem operasi, tetapi pengontrol disk masih perlu menulis apa yang tersisa di cache ke disk. Jika Anda memasukkan flash drive kembali dan memeriksa file Anda akan melihat itu tidak semua ada di sana.
Penafian: Contoh-contoh ini tidak akan berfungsi jika Anda tidak mengaktifkan cache tulis di sistem operasi Anda / pada disk.
Lebih lanjut, jika itu bukan caching disk di tempat kerja maka kemungkinan apa yang Anda lihat adalah efek fragmentasi. Karena disk semakin penuh dan semakin sedikit ruang kosong yang bersebelahan tersedia dan sistem file harus bekerja lebih keras untuk menemukan tempat untuk meletakkan file Anda.
sumber
Sementara caching memang menyebabkan beberapa hal ini, itu bukan satu-satunya faktor. Jika caching adalah satu-satunya faktor, maka kita akan berharap kecepatan tulis turun dengan cepat dari beberapa ratus MB / s ke kecepatan tulis aktual drive dengan sangat cepat, dan tetap di sana selama sisa penulisan. Namun, ini bukan yang saya amati ketika melakukan transfer besar ke dan dari disk (misalnya membakar gambar boot). Sebaliknya, apa yang saya amati adalah bahwa kecepatan secara bertahap menurun selama seluruh operasi.
Perlambatan ini disebabkan oleh remanensi data pada chip flash yang digunakan untuk menyimpan data yang mengharuskan beberapa blok ditulis lebih dari satu kali.
Di dalam chip flash, ada blok data yang dapat ditulis. Saat menulis, hanya ada dua hal yang dapat dilakukan komputer: ia dapat menghapus seluruh blok, atau mengubah beberapa (atau semua) bit dalam satu blok dari 0 menjadi 1.
Namun, beberapa blok tersebut lebih baik daripada yang lain, terutama di flash drive berkualitas rendah, dan sebagai hasilnya ketika menulis data baru, beberapa bit kadang-kadang dapat kembali ke 0 sendiri setelah ditulis, dan tidak bisa berubah. Jadi, ketika menulis ke blok, OS perlu memeriksa untuk memastikan bahwa semua data ditulis dengan benar, dan jika tidak harus mengulang blok dengan menulis data yang sama ke blok yang sama dua atau tiga kali sampai data menempel.
Jadi, ketika komputer Anda menulis banyak data ke flash drive, berikut adalah penjelasan (tidak sepenuhnya akurat, tetapi cukup baik) untuk bagaimana melakukannya:
Ketika komputer menulis ke drive, itu melaporkan tingkat di mana ia menulis blok ke drive untuk pertama kalinya. Karena itu juga harus menulis ulang blok sebelumnya pada saat yang sama, total throughput yang dapat digunakan untuk blok perawan turun karena jumlah penulisan ulang yang juga perlu terjadi meningkat. Dengan demikian, kecepatan tulis jelas berkurang dari waktu ke waktu.
sumber
Ketika file ditulis ke drive baik itu USB flash drive atau hard drive data TIDAK / TIDAK PERNAH membaca kembali untuk melihat apakah itu cocok. Itu akan berlangsung selamanya. verifikasi penulisan dilakukan oleh perangkat keras (Cyclic Redundancy check) dan jika terjadi kesalahan, itu dikirim kembali ke aplikasi dari perangkat keras mendeteksi kesalahan. Kemacetan yang terjadi dan melambat (bahkan hingga jeda) disebabkan oleh penulisan CPU yang lebih cepat daripada yang dapat ditangani perangkat. Anda tidak akan menemukan ini terjadi pada hard drive internal. Anda tidak akan pernah melihat apa yang sebenarnya terjadi pada OS Windows tetapi di Linux Anda benar-benar dapat melihat bahwa CPU berhenti sampai perangkat USB mengatakan OK untuk melanjutkan
sumber