Sekitar dua kali seminggu, seluruh antarmuka grafis akan terkunci selama 10-20 detik tanpa peringatan sementara saya melakukan tugas-tugas sederhana seperti menjelajahi web atau menulis makalah. Ketika ini terjadi, elemen GUI tidak merespons input mouse atau keyboard, dan applet Monitor Sistem menampilkan 100% penggunaan IOW dari prosesor.
Hari ini, saya akhirnya memiliki Terminal GNOME yang sudah terbuka ketika masalah dimulai. Meskipun aplikasi lain seperti Google Chrome, Firefox, GNOME Do, dan Panel GNOME tidak responsif, terminal tetap dapat digunakan. Saya berlari iotop
dan mengamati bahwa perintah bernama [flush-8:16]
dan [jbd2/sdb2-8]
secara bergantian menggunakan 99,99% IO.
Apa ini, dan bagaimana saya bisa mencegah mereka menyebabkan GUI tidak responsif?
Detail
$ mount | grep ^/dev
/dev/sda1 on / type ext4 (rw,noatime,discard,errors=remount-ro,commit=0)
/dev/sdb2 on /home type ext4 (rw,commit=0)
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sdb3 partition 1052252 0 -1
/dev/sda
adalah OCZ-VERTEX2 dan /dev/sdb
merupakan WD10EARS . Ini dumpe2fs /dev/sdb2
dan smartctl /dev/sdb --all
.
Saya tidak melihat sesuatu yang tidak biasa di dmesg
atau /var/log/syslog
.
sumber
flush
menulis buffer RAM / cache ke disk, dan jbd2 berkaitan dengan jurnal ext4./dev/sda
juga - disk mana yang menyimpan apa? Seperti "root pada sda, home on sdb"?dmesg
untuk kesalahan disk.Jawaban:
Saya akan menjelajah teori:
/dev/sdb1
mungkin ruang swap?Jika sesuatu yang terpusat pada antarmuka grafis telah diturunkan ke disk, GUI tidak dapat melanjutkan sampai ia menerima data tersebut. Jika disk swap tertidur, ini berarti macet sampai disk merespons.
Saya pikir ini akan memberikan penguncian sementara, dan periode 10-20 detik cocok dengan waktu yang dibutuhkan untuk disk tidur untuk merespons. Terminal mungkin masih responsif karena semua yang dibutuhkan sudah dalam RAM.
Beberapa alat terminal untuk mengeksplorasi teori:
hdparm -C /dev/sdX
memberi tahu Anda apakah disk sedang tidur:active/idle
berarti sedang berjalan. Dalam keadaanstandby
atausleeping
sudah berhenti berputar dan akan butuh waktu untuk memulai kembali. Lihatman hdparm
.free -m
mengatakan berapa banyak ruang swap yang digunakan:"Swap:" adalah baris yang relevan, dalam contoh ini swap 6,2 GB tersedia dan tidak ada yang digunakan.
Jika ini masalahnya, Anda bisa memindahkan swap ke sda atau menonaktifkan spindown untuk sdb.
sumber
free -m
selama penguncian mengkonfirmasi bahwa 0 MB swap sedang digunakan.