Solusi Copy File ke USB Flashdisk di Linux Sudah 100% Tapi Belum Selesai

Mungkin teman-teman pernah mengalami ketika menyalin file berukuran cukup besar ke flashdisk, menggunakan file manager di Linux. Lalu bertanya-tanya, "Sudah 100%, tapi kok belum selesai?"

Solusinya cukup taruh baris berikut di /etc/sysctl.conf:

  1. vm.dirty_bytes=15728640 

lalu relogin atau reboot.

Penyebab

Jika masalah teman-teman teratasi dengan cara diatas, penyebabnya adalah file manager mengira bahwa file sudah disalin 100%. Padahal file sebagian besar masih transit di RAM. Besaran cache ditentukan berdasarkan rasio memory yang tersedia (tidak pasti). Penjelasan Linus: https://lwn.net/Articles/572921/

Apa itu dirty_bytes

Menurut dokumentasi dari https://www.kernel.org/doc/Documentation/sysctl/vm.txt:

dirty_bytes
Contains the amount of dirty memory at which a process generating disk writes will itself start writeback.

Jadi jika kita batasi sekitar 15728640 atau 15MiB, file akan mampir di RAM dan setelah tercapai 15MiB langsung menyalin ke USB flashdisk, begitu seterusnya.

Ukuran 15MiB dipilih karena rata-rata kecepatan tulis Flashdisk dikisaran 10 - 20MiB perdetik. Semakin kecil nilai yang dipilih akan lebih akurat. Atau jika flashdisk lebih cepat dari 15MiB perdetik.

Tentu teman-teman bebas menentukan sendiri mana yang lebih pas. Misal jika 20MiB berarti 20971520.

#Linux