Sistem macet / tidak responsif / tidak dapat digunakan saat menyalin file besar ke USB

51

Kemarin saya menyalin satu file, 8 GB ke USB dengan kecepatan tulis, 7 MB / s lambat, sedangkan RAM saya 3 GB. Saat menyalin sistem membeku, ke titik di mana saya bahkan tidak bisa memindahkan kursor.

Saya berhasil masuk ke konsol teks, dan berlari iotop, itu menunjukkan bahwa proses bernama kswapd0mengambil 99,99% dari IO.

Apakah ada solusi sehingga menyalin file besar tidak membuat sistem saya tidak dapat digunakan?

sashoalm
sumber
13
Bug ini sangat konyol ...
king_julien
Ya, itu tidak hanya terjadi dengan Ubuntu tetapi juga dalam rasa Debian lainnya. Saya juga melihat masalah yang sama di Kali Linux dan Parrot OS. Kali memiliki skenario terburuk, sementara burung beo membuatnya halus tetapi meskipun hang untuk ukuran yang sangat besar. Saya pikir itu masalah di Linux Kernel dan bagaimana ini ditulis. Ini dan akan tetap menjadi mimpi terburuk bagi Linux sepanjang masa.
Mohith7548

Jawaban:

33

Menurut laporan bug ini saya menyelesaikannya dengan menambahkan baris berikut

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

ke /etc/sysctl.conf

dan berlari

sudo sysctl -p
Philippe Gachoud
sumber
12
Mau jelaskan apa yang dilakukan garis di atas?
nsane
3
@ nisargshah95 maaf, tapi tidak punya petunjuk, cari sendiri ;-)
Philippe Gachoud
4
@ nisargshah95 Detail masalah dijelaskan dalam dua artikel LWN yang tertaut di unix.stackexchange.com/a/107722/52205
Rmano
1
Terima kasih, saya baru saja menemukan bahwa Ubuntu 16.04 saya tidak dapat menulis dua file 1,4 GB ke USB tanpa dua baris ini, saya semakin membeku selama berjam-jam, ini memecahkan masalah, siapa yang peduli apa yang dilakukannya, kadang-kadang Anda hanya ingin menyalin file dan memindahkan di.
Mike
1
Saya memiliki nilai 5 dan 60. Ini mengontrol persentase memori yang digunakan untuk operasi, sementara dirty_background_bytesdan dirty_bytesmenggunakan nilai byte absolut . Saya telah memperbaiki masalah ini dengan jawaban kedua, tetapi untuk membuatnya terus menambahkannya sysctl.conf, lihat jawaban ini . Jadi saat menggunakan nilai persen, aturlah saat meningkatkan memori.
PeterM
20

Saya mengalami masalah serupa. Milik saya 64 bit Ubuntu 14.04. Jadi Setelah perjuangan yang panjang saya menemukan jawaban yang memecahkan masalah saya. Untuk memudahkan saya menambahkan perintah di bawah ini digunakan dalam jawaban yang disebutkan di atas . Periksa jawabannya untuk penjelasan terperinci.

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Setelah menggunakan sistem perintah di atas mulai bekerja secara normal pada menyalin file.

Terima kasih kepada @Rmano .

Mahendran Sakkarai
sumber
2
Pengaturan rasio tidak membantu pada sistem 12,04 saya dengan bagian NAS lambat. Tetapi setelah mengatur byte secara langsung seperti yang disarankan di sini sistem saya dapat digunakan lagi saat menyalin ke NAS.
mivk
6
Pertanyaan ini berusia 3 tahun dan ini masih diperlukan untuk menghindari sistem yang tidak dapat digunakan saat menyalin ke flashdisk. Beberapa info: jika flashdisk diformat menggunakan Linux fs seperti ext4 ini tidak terjadi. Ketika saya mengatakan "sistem tidak dapat digunakan" Saya benar-benar bersungguh-sungguh, penunjuk tetikus menjadi tidak responsif dan Anda harus bersikeras untuk memindahkannya di sekitar layar, Anda melihat monitor sistem dan tidak ada penggunaan sumber daya yang tidak normal. Apakah orang-orang kernel semuanya menggunakan drive Intel CPU dan SSD generasi ke-6? Kenapa mereka tidak melihat ini saat pengujian.
Hatoru Hansou
3
@HatoruHansou Saya merasakan hal yang sama, saya baru saja menginstal Debian Stretch baru dan kesalahan ini juga ada di sini. Saya tahu itu tidak tergantung pada distribusi, tetapi pada sumber-sumber kernel, tetapi laki-laki, kenapa ini masih belum diperbaiki?
Marecky
1
@ Marsecky Setelah membaca beberapa tampaknya dirty_bytes bukan hal usb sendirian. Mereka mempengaruhi semua I / O sehingga setelah melakukan hal gema Anda mengubah mereka sistem global, bukan untuk pendrives saja. Untuk sesi saat ini saja, saya pikir. Tampaknya nilai saat ini kernel adalah tweak berpikir dalam perangkat penyimpanan yang lebih baru. Pendrives lambat menderita sebagai efek samping. Maaf, tidak ada tautan, tetapi ini harus mudah ditemukan dengan googling untuk itu.
Hatoru Hansou
3
Lihat jawaban ini untuk membuatnya tetap bertahan
PeterM
5

Saya mengalami masalah serupa dengan sistem yang membeku ketika menyalin ke flash drive. Saya mengirimkan laporan bug tentang hal itu: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1267648

Sebagai solusi saya menemukan bahwa menonaktifkan swap sepenuhnya menghilangkan masalah.

Vladimir Rutsky
sumber
1
Sayangnya ini tidak berhasil untuk saya di Ubuntu 16.04.
Programster
Tidak bekerja untuk saya baik di Ubuntu 16.04.3 LTS - ini pada laptop Alienware 17 R2.
AnthonyK
4

Ya, ada pengaturan kernel yang dapat Anda atur untuk menentukan berapa banyak data yang harus ditandai sebagai ditulis sebelum benar-benar ditulis ke disk. Lihat di sini untuk deskripsi yang cukup komprehensif tentang mereka. Khususnya, Anda ingin menemukan nilai dirty_ratio yang berfungsi baik untuk Anda (secara umum terlalu tinggi untuk desktop / laptop, tetapi tidak ada satu angka ajaib yang berfungsi untuk semua orang).

Bandrami
sumber
2
Hei, bisakah Anda memberi tahu saya nomor apa yang perlu saya atur berdasarkan spesifikasi laptop saya? lihat askubuntu.com/questions/713723/…
2

Saya baru saja mengalami masalah yang sama (pada 2019), di ubuntu 19.10, ketika menyalin sejumlah besar file dari disk USB ke disk SATA. Kedua sistem file adalah ext4. Ketika saya mematikan swap, masalahnya hilang. Sepertinya ada beberapa bug dalam alokasi memori untuk buffer disk - tampaknya, kernel mencoba mengalokasikan memori sebanyak-banyaknya untuk buffer disk, mungkin dalam situasi seperti itu, yang tidak masuk akal (membuat buffer disk dalam swap ...), atau itu hanya salah menghitung ukuran memori daripada yang dapat digunakan untuk caching ...

chaker
sumber
Apakah ada solusi di sini yang berfungsi untuk Anda? Saya mulai menderita masalah ini juga setelah memutakhirkan ke 19.10 & dalam proses memperbarui kernel juga. Dalam kasus saya, ini terjadi ketika saya menyalin file besar dari partisi A ke B dari SSD yang sama. Menonaktifkan SWAP "memperbaiki" masalah.
pileofrocks
1

Saya memiliki masalah serupa ketika menyalin file ke exfatdrive. Saya memiliki sedikit masalah dalam menggunakan sistem ext4file pada hard drive USB saya.

bunga pala
sumber
1
Punya masalah ini pada ext4 juga
PeterM
Fedora 27 (kernel 4.17.5-100) menyalin dari karat yang terpasang di USB ke stik flash yang terpasang di USB. Hal ini tampaknya membekukan screenlocker di tengah-tengah memudar. :-( ~~~
David Tonhofer