Вопрос Kworker, что это такое и почему он забивает так много процессора?


Недавно я обновился до Kubuntu Natty Beta 1, и у меня было много проблем с процессом kworker, Порой он использует почти половину моего процессора. Кроме того, как ни странно, это влияет на мои USB-порты; всякий раз, когда я подключаю USB-накопитель, процесс kworker переходит в hyperdrive, и я не могу работать.

Я думал о подаче ошибки, но так как я даже не нашел разумного объяснения того, что kworker Я понял, что должен узнать в первую очередь.


111
2018-04-05 13:57


происхождения


Странно, kworker работает и способствует пробуждениям на 10%, но у меня нет программ Kubuntu. Alos Nepomuk не установлен. - dago
из ответа afrazier я думаю теперь, что это имеет какое-то отношение к ядру (поэтому k в kworker для ядра). поэтому у вас также будет kworker, работающий на вашей машине Ubuntu. - davorao
Этот ответ также может быть полезен для выяснения того, что делает kworker: unix.stackexchange.com/questions/22851/... - anarcat
Вы не должны были принять последнее обновление ОС. Если вам повезет, следующий исправит это. - nobar


ответы:


«kworker» - это процесс-заполнитель для рабочих потоков ядра, которые выполняют большую часть фактической обработки для ядра, особенно в случаях, когда есть прерывания, таймеры, ввод-вывод и т. д. Они обычно соответствуют подавляющему большинству любых выделенных " системного "времени для запуска процессов. Это не то, что можно безопасно удалить из системы и полностью не связано с nepomuk или KDE (за исключением того, что эти программы могут выполнять системные вызовы, которые могут потребовать от ядра делать что-то).

Были сообщения о чрезмерной активности kworker относительно бездействующие системы, начиная с разработки 2.6.36 (пример обсуждения), а также широкие сообщения о путанице и проблемах с 2.6.38 (хотя многие из этих отчетов включают слово «Natty», поэтому я предполагаю, что эти люди не использовали какое-либо ядро ​​между 2.6.35 (распространяемое в Ubuntu 10.10) и 2.6. 38 (распространяется в Ubuntu 11.04).

Я нашел много сообщений о том, что «исправлено» для того или иного пользователя. Большинство «исправлений», похоже, связаны с обновлениями ядра различного рода. Если обновление можно отследить по конкретной проблеме, часто кажется, что некоторые драйверы или службы ядра были исправлены, чтобы не ошибиться: у меня сложилось впечатление, что в ядре очень много вещей, которые могут вызвать поведение что наблюдается как чрезмерное использование kworker.

Если вы обнаружите, что система недоступна из-за чрезмерной активности kworker, я бы рекомендовал попробовать сделать меньше. Если вы считаете, что ничего не делаете, попробуйте отключить долговременные службы или таймеры (RSS-ридеры, почтовые программы, файловые индексы, отслеживания активности и т. Д.). Если это не работает, попробуйте перезапустить. Если ваша система позволяет включать или отключать оборудование в среде предварительной загрузки, попробуйте отключить оборудование, которое вы не используете. Если это происходит при каждом перезапуске, прежде чем что-либо сделать, вы можете попробовать удалить все, но на этом этапе вы захотите использовать инструменты профилирования syscall для отслеживания определенных приложений, которые, как представляется, вызывают эту перегрузку.

Следует надеяться, что ваша конкретная система перестанет выражать это поведение с будущим обновлением ядра (и многие из наиболее распространенных причин этого были решены).


95
2017-07-08 10:44



У меня была медленная проблема входа, которая, как мне кажется, связана с этим; Мне удается обойти это, отложив все, что началось так: askubuntu.com/a/484856/46437 - Aquarius Power
Возможно, это излишнее, но надобно очень четко сформулированный ответ. Это какой-то тонко выраженный английский, сэр. - Jon Carter


Что такое kworker?  kworker означает, что процесс ядра Linux выполняет «работу» (обработка системных вызовов). У вас может быть несколько из них в списке процессов: kworker/0:1 является одним на вашем первом ядре процессора, kworker/1:1один на второй и т. д.

Почему kworker запускает ваш процессор? Чтобы узнать, почему kworker тратит впустую ваш процессор, вы можете создавать обратные трассировки процессора: следите за загрузкой процессора (с top или что-то) и в моменты высокой нагрузки через kworker, выполнить echo l > /proc/sysrq-trigger для создания обратной линии. (На Ubuntu вам нужно войти в систему с помощью sudo -s). Делайте это несколько раз, затем смотрите обратные трассы в конце dmesg вывод. Посмотрите, что часто случается в перепадах CPU, надеюсь, укажет на источник вашей проблемы.

Пример: e1000e. В моем случае я нашел такую ​​обратную линию почти каждый раз:

Call Trace:
 delay_tsc+0x4a/0x80
 __const_udelay+0x2c/0x30
 e1000_acquire_swflag_ich8lan+0xa2/0x240 [e1000e]
 e1000e_read_phy_reg_igp+0x29/0x80 [e1000e]
 e1000e_phy_has_link_generic+0x85/0x120 [e1000e]
 e1000_check_for_copper_link_ich8lan+0x48/0x930 [e1000e]
 e1000e_has_link+0x55/0xd0 [e1000e]
 e1000_watchdog_task+0x5e/0x960 [e1000e]

Он намекнул мне на проблему в e1000e Ethernet-модуль карты и, действительно, sudo rmmod e1000e что высокая загрузка процессора сразу исчезает [Ошибка e1000e # 26].


68
2018-02-17 02:42



echo l > /proc/sysrq-trigger похоже, не работает на proxmox, говоря sysrq: SysRq : This sysrq operation is disabled. к сожалению. - hak8or
sysrq необходимо повторно подключить с помощью sysctl -w kernel.sysrq = 1, см. askubuntu.com/questions/911522/... - Sebastien


Почему kworker запускает ваш процессор (продолжение)? В качестве альтернативы мой другой ответ здесь, Perf - это более профессиональный способ анализа того, какие задачи ядра вызывают зависание вашего процессора:

  1. устанавливать perf:

    sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic
    

    (Второй пакет должен соответствовать вашей версии ядра. Вы можете сначала установить linux-tools-common и вызов perf чтобы он рассказал вам, какой пакет ему нужен.)

  2. Запишите около 10 секунд обратных отображений на всех ваших процессорах:

    sudo perf record -g -a sleep 10
    
  3. Проанализируйте свою запись:

    sudo perf report
    

    (Перейдите к графику вызовов с помощью , , ,  а также Войти.)


52
2018-02-17 15:26



В моей системе, работающей внутри виртуальной машины VMware, используя perf Я проследил проблему до sd_mod модуль ядра. Отключение SCSI в vmx файл не позволил модулю загрузиться и вернул систему к нормальной скорости: scsi0.present = "FALSE" - feklee


Просто чтобы все знали. Я столкнулся с этой проблемой, установил perf (это отличный инструмент), он указал на блокировку спина и XFS. Это указывало на NFS. Тогда я понял, что один из моих монстров был вне космоса. Освобождение пространства привело к тому, что CPU kworker упал до 0.

Таким образом, по-видимому, это может быть симптомом нехватки места на занятом сервере NFS!


5
2018-03-19 13:40



Я заметил, что у меня случился крах kworker, когда был запущен определенный виртуальный бокс. Оказывается, что на нем работает NFS с моим хостом для обмена файлами. Однако это было не так полно. Размонтирование NFS «разрешило» проблему. Думаю, я поделюсь с монтированием sshfs. - Programster


Недавно я установил Ubuntu Natty на внешний диск usb wd. Когда я начинаю на своем рабочем столе, которому около двух лет, все работает как шарм. Когда я запускаю свой новый ноутбук (MSI gt680r system), он замедляется после того, как я разбужу компьютер из сна или если я подключу другой диск USB.

Процессы Kworker принимают все больше и больше процессоров, и мышь зависает время от времени.

Я читал несколько решений на разных форумах, которые не работали.

Я вошел в BIOS моего ноутбука, где был:

Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled

Я изменил для:

Hand XCHI OFF: disabled
EHCI Hand OFF: disabled

и с тех пор, он больше не замерзает на natty на моем ноутбуке.

Я бы включил функцию обратной связи, если и когда проблема будет исправлена.


4
2017-07-01 09:08



Может ли кто-нибудь объяснить, почему это происходит? Как подключается XCHI? - GuySoft


Я думаю, что отключение Nepomuk может помочь вам:

http://www.freetechie.com/blog/disable-nepomuk-desktop-search-on-kde-4-4-2-kubuntu-lucid-10-04/


0
2018-05-06 06:02



спасибо, но с тех пор я установил новую копию Kubuntu 11.04, и вышеупомянутая проблема исчезла. - davorao
Хотя это теоретически может ответить на вопрос, было бы предпочтительнее чтобы включить здесь основные части ответа и предоставить ссылку для справки. - fossfreedom♦