Мой рабочий стол обычно очень отзывчив, даже при большой нагрузке. Но когда я копирую файлы на USB-накопитель, через некоторое время он всегда блокируется. Под «замком» я имею в виду:
- Перемещение фокуса с одного окна на другое может занять 10-20 секунд
- Переключение рабочих столов может занять 10-20 с
- Видео больше не обновляется (на YouTube звук продолжает воспроизводиться, только видео останавливается)
Когда это происходит, нагрузка на систему не является исключительно высокой. Иногда я вижу много белого на xosview, указывающего, что ядро где-то занято.
На первый взгляд кажется, что копирование файлов на USB-накопитель каким-то образом помешает работе Compiz, но я не представляю, каким может быть соединение.
Вот вывод htop
:
Вот результат за iostat -c -z -t -x -d 1
2 минуты зависания:
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
Как видите, активен только внешний жесткий диск. Вот полный журнал: http://pastebin.com/YNWTAkh4
Зависание началось в 20:38:01 и закончилось в 20:40:19.
Информация о программном обеспечении:
- openSUSE 12.1
- KDE 4.7.x
- Файловые системы: reiserfs и btrfs на моем внутреннем жестком диске, btrfs на USB-диске
sync
чтобы увидеть, какой эффект (если таковой имеется) это имеет?grep name /proc/cpuinfo
к вашему вопросу, пожалуйста.cp
из командной строки исключить возможные ошибки дельфина.rsync
из командной строки.iostat -c -z -d 1
Ответы:
Мое первое предположение было,
btrfs
поскольку процессы ввода-вывода в этой файловой системе иногда вступают во владение. Но это не объясняет, почему X блокируется.Глядя на прерывания, я вижу это:
Ну да. Драйвер USB использует тот же IRQ, что и графическая карта, и он первый в цепочке. Если он зависает (потому что файловая система делает что-то дорогое), видеокарта голодает (и сеть тоже).
источник
Я видел похожие проблемы с ядром openSUSE 12.1 linux-3.1 и обнаружил, что отключение прозрачных огромных страниц помогло:
Основная проблема заключается в том, что если приложение выделяет 4 МБ или более, ядро попытается предоставить ему огромную страницу, для которой ему потребуется целая 4 МБ ОЗУ. Теперь, если вокруг много грязных страниц, которые все еще нужно записать на медленное USB-устройство, он ожидает завершения ввода-вывода, прежде чем продолжить выделение памяти.
источник
Как уже упоминалось, это, вероятно, связано с установкой огромных страниц ядра. Я знаю несколько человек с этой проблемой. Вы можете найти несколько документов об этом в Интернете, например,
Я полностью устранил проблему в моей настройке, выполнив следующие действия. Обратите внимание, YMMV, не все исправления, приведенные ниже, могут быть необходимы, и, возможно, их будет недостаточно. Возможно, я забыл что-то, чтобы быть честным. Во всяком случае, это моя установка, и она работает.
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
источник
Поменяй кабель. Удалите оксид с USB-порта / кабелей.
источник