Saya memiliki masalah serupa sebelumnya tetapi saya tidak ingat bagaimana saya menyelesaikannya.
Ketika saya mencoba menyalin sesuatu ke USB stick, dengan FAT, berhenti di akhir, kadang-kadang 100%. Dan tentu saja, ketika saya mentransfer memory stick di tempat lain, itu tidak mengandung file lengkap. (file adalah film!)
Saya mencoba me-mount perangkat dengan mount -o flush, tetapi saya mendapatkan masalah yang sama.
Juga, saya memformat USB stick dengan partisi FAT baru ...
Ada ide apa yang dingin saya lakukan?
ps Saya percaya itu tidak terkait dengan OS, yaitu Debian, dan saya percaya bahwa mengatasi dari drive SSD tidak membuatnya macet.
Jawaban:
Alasan mengapa hal itu terjadi adalah karena program mengatakan "tulis data ini" dan kernel linux menyalinnya ke buffer memori yang di-antri untuk masuk ke disk, dan kemudian berkata "ok, selesai". Jadi program itu berpikir telah menyalin semuanya. Kemudian program menutup file, tetapi tiba-tiba kernel membuatnya menunggu sementara buffer itu didorong ke disk.
Jadi, sayangnya program tidak dapat memberi tahu Anda berapa lama waktu yang diperlukan untuk mem-flush buffer karena tidak tahu.
Jika Anda ingin mencoba beberapa trik pengguna daya, Anda dapat mengurangi ukuran buffer yang digunakan Linux dengan mengatur parameter kernel
vm.dirty_bytes
ke sesuatu seperti15000000
(15 MB). Ini berarti aplikasi tidak bisa mendapatkan lebih dari 15MB di atas kemajuan sebenarnya. (Anda dapat mengubah parameter kernel dengan cepatsudo sysctl vm.dirty_bytes=15000000
tetapi membuat mereka tetap di reboot membutuhkan perubahan file konfigurasi seperti/etc/sysctl.conf
yang mungkin khusus untuk distro Anda.)Efek sampingnya adalah komputer Anda mungkin memiliki throughput penulisan data yang lebih rendah dengan pengaturan ini, tetapi secara keseluruhan, saya merasa terbantu melihat bahwa suatu program berjalan lama sementara ia menulis banyak data vs. kebingungan memiliki Program tampaknya selesai dengan tugasnya tetapi sistem tertinggal dengan buruk karena kernel melakukan pekerjaan yang sebenarnya. Menetapkan
dirty_bytes
ke nilai yang cukup kecil juga dapat membantu mencegah sistem Anda menjadi tidak responsif ketika Anda kehabisan memori kosong dan menjalankan program yang tiba-tiba menulis banyak data.Tapi, jangan terlalu kecil! Saya menggunakan 15MB sebagai perkiraan kasar bahwa kernel dapat menyiram buffer ke hard drive normal dalam 1/4 detik atau kurang. Itu membuat sistem saya tidak merasa "lamban".
sumber
Pertanyaan lama, tetapi sepertinya masalahnya masih muncul. Mengatur buffer ke 15MB seperti yang disarankan sini tidak bekerja pada Ubuntu 19.04, dan menghentikan sistem saya.
Saya mencoba untuk menyalin file 1,5GB ke drive FAT32 16GB kosong (baru diformat). Saya membiarkannya berjalan sekitar 10 menit hanya untuk melihat apakah itu akan selesai, tanpa hasil.
Memformat ulang ke NTFS membiarkan operasi selesai dalam waktu kurang dari 10 detik. Saya tidak tahu mengapa ini penting karena FAT32 harus memungkinkan apa pun di bawah 2GB, tetapi tampaknya berfungsi dengan baik. Bukan perbaikan yang ideal untuk drive yang ingin Anda gunakan dengan MacOS, tetapi solusi yang mudah untuk semua kasus penggunaan lainnya. Saya membayangkan exFAT akan bekerja dengan cara yang sama, tetapi saya tidak mengujinya.
sumber