Saya telah menyalin file besar ke disk USB yang dipasang pada sistem Linux dengan async. Ini kembali ke prompt perintah relatif cepat, tetapi ketika saya mengetik sync
, tentu saja, semuanya harus pergi ke disk, dan itu membutuhkan waktu lama.
Saya mengerti bahwa ini akan lambat, tetapi apakah ada tempat di mana saya bisa menonton penghitung turun ke nol? Menonton buffers
di top
tidak membantu.
linux
filesystems
io
async
mattdm
sumber
sumber
Jawaban:
Melihat
/proc/meminfo
akan menunjukkanDirty
jumlah menyusut dari waktu ke waktu karena semua data menggulung; beberapa di antaranya mungkin juga ikut tumpahWriteback
. Itu akan menjadi ringkasan terhadap semua perangkat, tetapi dalam kasus di mana satu perangkat pada sistem jauh lebih lambat daripada yang lain, Anda biasanya akan berakhir di mana segala sesuatu dalam antrian terkait dengan itu. Anda mungkin akan menemukanDirty
angka besar ketika Anda memulai dansync
selesai pada waktu yang sama ketika mendekati 0. Coba ini untuk mendapatkan tampilan interaktif:Dengan disk biasa saya biasanya dapat mengabaikan
Writeback
, tapi saya tidak yakin apakah itu lebih sering terlibat dalam jalur transfer USB. Jika hanya memantul ke atas dan ke bawah tanpa tren yang jelas, Anda mungkin bisa melihatDirty
angkanya.sumber
Anda dapat melihat
/sys/block/<device>/stat
file untuk perangkat yang sesuai saat Anda menyinkronkan. Kolom ke- 9 akan menunjukkan jumlah permintaan dalam penerbangan pada perangkat, yang seharusnya turun ke nol ketika sinkronisasi dilakukan.Tidak tahu cara menerjemahkannya ke beberapa byte, tetapi harus memberi Anda gambaran kasar tentang berapa banyak "barang" yang masih tertunda.
Lihat file stat.txt dalam dokumentasi kernel untuk informasi lebih lanjut. (Ada juga
inflight
file di direktori itu di sistem saya yang sepertinya berisi permintaan baca dan tulis dalam penerbangan, tetapi saya tidak dapat menemukan dokumen untuk itu.)sumber
watch -t -n1 'awk "{ print \$9 }" /sys/block/sdd/stat'
sync
sesudahnya. Itu pergi ke 0, tetapi hanya di akhir. Itu membuat jawaban yang lain lebih berguna untuk tidak sabar mengawasi kemajuan.du
untuk menghitung data nyata yang disinkronkan pada drive.Dengan menggunakan jawaban Greg, Anda dapat
sync
menjalankan di latar belakang sambil menampilkan status blok Kotor di memori.Untuk mencapai ini, jalankan perintah ini:
Ini akan memanggil
sync
di latar belakang saat mengeksekusiwatch
di depan. Ketikasync
perintah akan selesai (sekitar ketika ukuran blok Kotor telah mencapai 0), Anda akan memiliki output yang terlihat seperti ini:Ini berarti bahwa perintah telah selesai dan Anda dapat membunuh
watch
perintah dengan Ctrl+ C.sumber