Desktop saya biasanya sangat responsif, bahkan di bawah beban berat. Tetapi ketika saya menyalin file ke drive USB, selalu terkunci setelah beberapa waktu. Dengan "mengunci", maksud saya:
- Memindahkan fokus dari satu jendela ke jendela lain memerlukan waktu 10-20 detik
- Mengalihkan desktop membutuhkan waktu 10-20 detik
- Video tidak diperbarui lagi (di YouTube, audio terus diputar, hanya video yang dibekukan)
Beban sistem tidak terlalu tinggi ketika ini terjadi. Terkadang, saya melihat banyak warna putih di xosview yang mengindikasikan bahwa kernel sedang sibuk di suatu tempat.
Sekilas, sepertinya menyalin file ke USB drive akan mengganggu entah bagaimana compiz tapi saya tidak bisa membayangkan apa hubungannya.
Ini adalah output dari htop
:
Berikut ini adalah hasil dari iostat -c -z -t -x -d 1
hang selama 2 menit:
19.07.2012 20:38:22
avg-cpu: %user %nice %system %iowait %steal %idle
1,27 0,00 0,38 37,52 0,00 60,84
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdg 0,00 2,00 0,00 216,00 0,00 109248,00 1011,56 247,75 677,69 0,00 677,69 4,63 100,00
Seperti yang Anda lihat, hanya harddisk eksternal yang aktif. Berikut ini log lengkapnya: http://pastebin.com/YNWTAkh4
Gantung dimulai pada 20:38:01 dan berakhir pada 20:40:19.
Informasi perangkat lunak:
- openSUSE 12.1
- KDE 4.7.x
- Filesystem: reiserfs dan btrfs di harddisk internal saya, btrfs di USB drive
sync
untuk melihat apa efeknya (jika ada) ini?grep name /proc/cpuinfo
Tolong tambahkan output untuk pertanyaan Anda.cp
dari baris perintah untuk mengecualikan kemungkinan bug lumba-lumba.rsync
dari baris perintah.iostat -c -z -d 1
Jawaban:
Tebakan pertama saya adalah
btrfs
sejak proses I / O dari sistem file ini terkadang mengambil alih. Tapi itu tidak menjelaskan mengapa X terkunci.Melihat interupsi, saya melihat ini:
Baiklah, duh. Driver USB menggunakan IRQ yang sama dengan kartu grafis dan itu yang pertama dalam rantai. Jika terkunci (karena sistem file melakukan sesuatu yang mahal), kartu grafis kelaparan (dan jaringan juga).
sumber
Saya telah melihat masalah yang sama dengan kernel linux-3.1 openSUSE 12.1 dan menemukan bahwa menonaktifkan halaman transparan yang besar membantu:
Masalah mendasarnya adalah bahwa jika suatu aplikasi mengalokasikan 4MB atau lebih, kernel akan mencoba memberikannya halaman yang besar, yang membutuhkan keseluruhan 4MB RAM yang berdekatan. Sekarang, jika ada banyak halaman kotor di sekitar, yang masih perlu ditulis ke perangkat USB yang lambat, itu menunggu IO untuk menyelesaikannya sebelum melanjutkan dengan alokasi memori.
sumber
Seperti disebutkan, ini mungkin ada hubungannya dengan pengaturan hugepages kernel. Saya kenal beberapa orang dengan masalah ini. Anda dapat menemukan beberapa dokumentasi tentang itu di web, misalnya
Saya telah memperbaiki masalah pada pengaturan saya dengan melakukan hal berikut. Perhatikan YMMV, tidak semua perbaikan di bawah ini mungkin diperlukan, dan mungkin itu tidak cukup. Saya mungkin lupa sesuatu yang jujur. Bagaimanapun itu pengaturan saya dan berfungsi.
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
sumber
Ganti kabelnya. Hapus oksida dari port usb / kabel.
sumber