На компьютере Ubuntu 16.04 я видел kworker
поднимите 80% ЦП, последовательно.
Я генерировал отчет о перфекте:
sudo apt-get install linux-tools-common linux-tools-$(uname -r)
sudo perf record -g -a sleep 10
sudo perf report
. Главные немного результатов:
Samples: 47K of event 'cycles:ppp', Event count (approx.): 38282161158
Children Self Command Shared Object Symbol
+ 77.04% 0.00% kworker/3:3 [kernel.kallsyms] [k] ret_from_fork
+ 77.04% 0.00% kworker/3:3 [kernel.kallsyms] [k] kthread
+ 77.04% 0.00% kworker/3:3 [kernel.kallsyms] [k] worker_thread
+ 77.00% 0.13% kworker/3:3 [kernel.kallsyms] [k] process_one_work
+ 76.26% 0.04% kworker/3:3 [kernel.kallsyms] [k] rpm_idle
+ 75.98% 0.06% kworker/3:3 [kernel.kallsyms] [k] rpm_suspend
+ 75.97% 0.03% kworker/3:3 [kernel.kallsyms] [k] pm_runtime_work
+ 75.84% 0.03% kworker/3:3 [kernel.kallsyms] [k] __rpm_callback
+ 75.82% 0.01% kworker/3:3 [kernel.kallsyms] [k] usb_runtime_idle
+ 75.76% 0.00% kworker/3:3 [kernel.kallsyms] [k] __pm_runtime_suspend
+ 75.64% 0.00% kworker/3:3 [kernel.kallsyms] [k] rpm_callback
+ 75.61% 0.04% kworker/3:3 [kernel.kallsyms] [k] usb_runtime_suspend
+ 75.51% 0.03% kworker/3:3 [kernel.kallsyms] [k] usb_suspend_both
+ 73.51% 0.15% kworker/3:3 [kernel.kallsyms] [k] usb_control_msg
+ 71.97% 0.14% kworker/3:3 [kernel.kallsyms] [k] usb_start_wait_urb
+ 68.38% 0.05% kworker/3:3 [kernel.kallsyms] [k] usb_submit_urb
+ 68.33% 0.30% kworker/3:3 [kernel.kallsyms] [k] usb_submit_urb.part.8
+ 67.75% 0.82% kworker/3:3 [kernel.kallsyms] [k] usb_hcd_submit_urb
+ 60.96% 60.41% kworker/3:3 [kernel.kallsyms] [k] xhci_hub_control
+ 55.99% 0.12% kworker/3:3 [kernel.kallsyms] [k] hub_suspend
+ 54.97% 0.04% kworker/3:3 [kernel.kallsyms] [k] set_port_feature
+ 19.36% 0.01% kworker/3:3 [kernel.kallsyms] [k] usb_resume_interface.isra.8
+ 19.35% 0.02% kworker/3:3 [kernel.kallsyms] [k] hub_resume
+ 19.32% 0.14% kworker/3:3 [kernel.kallsyms] [k] hub_activate
+ 18.78% 0.08% kworker/3:3 [kernel.kallsyms] [k] hub_ext_port_status
+ 11.13% 0.00% ksoftirqd/3 [kernel.kallsyms] [k] ret_from_fork
+ 11.13% 0.00% ksoftirqd/3 [kernel.kallsyms] [k] kthread
+ 10.44% 0.51% ksoftirqd/3 [kernel.kallsyms] [k] smpboot_thread_fn
Я не знаю, как воспроизвести. Это уходит после перезагрузки. Что продолжается?
Та же проблема здесь на ноутбуке Dell XPS и ядре 4.4.0-130
Я исправил это, отключив динамическое управление питанием USB в ядре
Я добавил [ 113] в командную строку загрузки моего ядра:
GRUB_CMDLINE_LINUX_DEFAULT="<existing stuff> usbcore.autosuspend=-1"
Чтобы сделать это навсегда, откройте файл конфигурации grub
sudo nano /etc/default/grub
и добавьте флаг, описанный выше.
Далее вам нужно обновить grub через
sudo update-grub
После перезагрузки все должно быть хорошо, занятый процессор теперь свободен для выполнения чего-то полезного :)
Отключение динамического PM может повлиять на срок службы батареи, когда у вас подключены USB-устройства, но лишь немногие USB-устройства способны справиться с этим режимом ....
У меня была похожая проблема на ноутбуке Dell. Я читал, что это произошло из-за ошибки в ядре, и его можно было смягчить, очистив кеш ядра, записав некоторые значения в какой-нибудь файл из /sys
, но я сомневаюсь, что это поможет вам.
Я знаю, что kworker
процессы не могут быть убиты. Если верить другим ответам на этот же вопрос в Askubuntu / Unix, kworker
являются процессами-заполнителями, соответствующими активности ядра.
Предлагаемые ниже решения отсортированы от наиболее очевидных и, скорее всего, дадут результаты (если еще не опробованы), до менее вероятных.
На тот случай, если вы еще этого не сделали, я предлагаю вам обновить ядро до последней доступной версии репозиториев (sudo apt update
). Обновление ядра обычно требует перезагрузки, чтобы увидеть эффект.
В противном случае вы можете попробовать установить Ubuntu 18.04, версия ядра которой 4.15.0-22 и, возможно, содержит исправление.
Если вы гуглили свой вопрос, возможно, вы уже нашли сообщения об ошибках, соответствующие вашему описанию. Вы должны прочитать комментарии, которые иногда содержат решения или обходные пути. Ссылка ниже, похоже, очень похожа на вашу, хотя это немного интригует, потому что исправление уже должно было появиться в ядре Ubuntu (комментарий № 18).
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488426
Что-то, что я не пробовал, когда столкнулся с ошибкой, использовал процессор ограничивающее применение, например cpulimit
или cputool
(sudo apt install cpulimit
или sudo apt install cputool
). Я понятия не имею, есть ли шанс для этого подхода к работе. Я сомневаюсь, что это может работать с таким нестандартным процессом.
Примечание. Возможно, вы захотите добавить вывод uname -mr
к вашему вопросу и будущим вопросам, когда они связаны с ядром Linux.
Напишите ответ, если найдете что-то работающее.