Примерно два раза в неделю весь графический интерфейс блокируется на 10-20 секунд без предупреждения, пока я выполняю простые задачи, такие как просмотр веб-страниц или написание статьи. Когда это происходит, элементы графического интерфейса не реагируют на ввод с помощью мыши или клавиатуры, а апплет системного монитора отображает 100% загрузку процессора IOWait.
Сегодня мне наконец-то удалось открыть терминал GNOME, когда началась проблема. Несмотря на то, что другие приложения, такие как Google Chrome, Firefox, GNOME Do и GNOME Panel, не отвечали, терминал был пригоден для использования. Я запустил iotop
и заметил, что команды названы [flush-8:16]
и [jbd2/sdb2-8]
поочередно используют 99,99% ввода-вывода.
Что это такое, и как я могу предотвратить их реакцию на GUI?
Детали
$ 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
является OCZ-VERTEX2 и /dev/sdb
является WD10EARS . Вот dumpe2fs /dev/sdb2
и smartctl /dev/sdb --all
...
Я не вижу ничего необычного в dmesg
или /var/log/syslog
.
источник
flush
записывают буфер / кэш ОЗУ на диск, а jbd2 работает с журналом ext4./dev/sda
также - какой диск содержит что? Как "рут на sda, дом на sdb"?dmesg
наличие ошибок диска.Ответы:
Я рискну теорию:
/dev/sdb1
возможно обменяться местами?Если что-то центральное в графическом интерфейсе было выгружено на диск, графический интерфейс не может продолжаться, пока он не получит эти данные. Если диск подкачки спит, это означает, что он застрял, пока диск не отвечает.
Я думаю, что это даст временную блокировку, и период 10-20 секунд соответствует времени, которое требуется для ответа спящего диска. Терминал, по-видимому, все еще реагирует, потому что все, что ему нужно, уже находится в оперативной памяти.
Некоторые терминальные инструменты для изучения теории:
hdparm -C /dev/sdX
говорит вам, спит ли диск:active/idle
означает, что он работает. В состоянииstandby
илиsleeping
он прекратил вращаться и потребуется некоторое время, чтобы начать снова. Смman hdparm
.free -m
говорит, сколько места подкачки используется:«Swap:» - это соответствующая строка, в этом примере доступно свопинг 6,2 ГБ, и ничего не используется.
Если это проблема, вы можете переместить swap в sda или отключить spindowns для sdb.
источник
free -m
во время блокировки подтвердил, что используется 0 МБ подкачки.