Как я могу предотвратить то, что [flush-8: 16] и [jbd2 / sdb2-8] могут вызывать неотзывчивость GUI? [закрыто]

11

Примерно два раза в неделю весь графический интерфейс блокируется на 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.

ændrük
источник
1
Я могу сказать вам, что они: они являются частью файловой системы - flushзаписывают буфер / кэш ОЗУ на диск, а jbd2 работает с журналом ext4.
jg-faustus
Кстати, это ноутбук?
jg-faustus
Просто подумайте вслух: 100% IOWait может означать, что файловая система ожидает выхода диска из режима низкого энергопотребления - агрессивное энергосбережение - главная особенность WD Greens. Но не уверен, почему это заблокирует систему. Предположительно есть /dev/sdaтакже - какой диск содержит что? Как "рут на sda, дом на sdb"?
jg-faustus
Может быть плохой диск, проверьте SMART-данные или вывод на dmesgналичие ошибок диска.
устроить
4
«слишком локализовано» - слишком плохо, что я будущий посетитель, который нашел этот вопрос, потому что я смотрю на точно такую ​​же проблему.
ДХМ

Ответы:

4

Я рискну теорию:

/dev/sdb1 возможно обменяться местами?

Если что-то центральное в графическом интерфейсе было выгружено на диск, графический интерфейс не может продолжаться, пока он не получит эти данные. Если диск подкачки спит, это означает, что он застрял, пока диск не отвечает.

Я думаю, что это даст временную блокировку, и период 10-20 секунд соответствует времени, которое требуется для ответа спящего диска. Терминал, по-видимому, все еще реагирует, потому что все, что ему нужно, уже находится в оперативной памяти.

Некоторые терминальные инструменты для изучения теории:

  • hdparm -C /dev/sdX говорит вам, спит ли диск:

    $ sudo hdparm -C /dev/sdb
    /dev/sdb:
    drive state is:  standby
    

    active/idleозначает, что он работает. В состоянии standbyили sleepingон прекратил вращаться и потребуется некоторое время, чтобы начать снова. См man hdparm.

  • free -m говорит, сколько места подкачки используется:

    $ free -m     
                 total       used       free     [...]
    Mem:          5973       4928       1045     [...]
    -/+ buffers/cache:       1091       4882
    Swap:         6234          0       6234
    

    «Swap:» - это соответствующая строка, в этом примере доступно свопинг 6,2 ГБ, и ничего не используется.

Если это проблема, вы можете переместить swap в sda или отключить spindowns для sdb.

JG-Фауст
источник
Это хорошая теория, но я думаю, что проблема не связана со свопом. Хотя раздел подкачки действительно находится на одном диске, система редко использует его, если вообще использует. free -mво время блокировки подтвердил, что используется 0 МБ подкачки.
rndrük
@ ændrük Хорошо, тогда мне придется оставить поле для экспертов.
jg-faustus