Około dwa razy w tygodniu cały interfejs graficzny blokuje się na około 10-20 sekund bez ostrzeżenia, gdy wykonuję proste zadania, takie jak przeglądanie Internetu lub pisanie artykułu. Kiedy tak się dzieje, elementy GUI nie reagują na wprowadzanie myszy lub klawiatury, a aplet Monitora systemu wyświetla użycie procesora IOWait w 100%.
Dzisiaj wreszcie zdarzyło mi się mieć terminal GNOME już otwarty, gdy problem się zaczął. Pomimo braku reakcji innych aplikacji, takich jak Google Chrome, Firefox, GNOME Do i GNOME Panel, terminal był użyteczny. Przebiegłem iotop
i zauważyłem, że polecenia te nazywają się [flush-8:16]
i [jbd2/sdb2-8]
używają na przemian 99,99% IO.
Co to jest i jak mogę zapobiec powodowaniu braku reakcji na GUI?
Detale
$ 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
jest OCZ-VERTEX2 i /dev/sdb
jest WD10EARS . Oto dumpe2fs /dev/sdb2
i smartctl /dev/sdb --all
.
Nie widzę nic niezwykłego w dmesg
lub /var/log/syslog
.
źródło
flush
zapisują bufor RAM / pamięć podręczną na dysk, a jbd2 zajmuje się dziennikiem ext4./dev/sda
też - który dysk zawiera co? Jak „root na sda, home na sdb”?dmesg
kątem błędów dysku.Odpowiedzi:
Zaryzykuję teorię:
/dev/sdb1
jest może zamiana przestrzeni?Jeśli coś centralnego dla interfejsu graficznego zostało przeniesione na dysk, GUI nie może kontynuować, dopóki nie otrzyma tych danych. Jeśli dysk wymiany jest uśpiony, oznacza to, że utknął, dopóki dysk nie zareaguje.
Myślę, że dałoby to tymczasową blokadę, a okres 10-20 sekund pasuje do czasu potrzebnego na odpowiedź dysku uśpionego. Terminal prawdopodobnie nadal reaguje, ponieważ wszystko, czego potrzebuje, znajduje się już w pamięci RAM.
Niektóre narzędzia terminalowe do eksploracji teorii:
hdparm -C /dev/sdX
informuje, czy dysk śpi:active/idle
oznacza, że działa. W staniestandby
lubsleeping
przestał się obracać i ponowne uruchomienie zajmie trochę czasu. Zobaczyćman hdparm
.free -m
mówi, ile miejsca zajmuje zamiana:„Zamień:” jest odpowiednią linią, w tym przykładzie dostępna jest wymiana 6,2 GB i nic nie jest używane.
Jeśli to jest problem, możesz przenieść swap do sda lub wyłączyć spindowns dla sdb.
źródło
free -m
podczas blokady potwierdził, że użyto 0 MB wymiany.