Ubuntu 16.04 kworker использующий высокий ЦП постоянно

На компьютере Ubuntu 16.04 я видел kworker поднимите 80% ЦП, последовательно.

Я генерировал отчет о перфекте:

  • sudo apt-get install linux-tools-common linux-tools-$(uname -r)
  • Запишите приблизительно 10 секунд следов на всех центральных процессорах 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

Я не знаю, как воспроизвести. Это уходит после перезагрузки. Что продолжается?

3
задан 8 June 2018 в 21:08

2 ответа

Та же проблема здесь на ноутбуке 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-устройства способны справиться с этим режимом ....

8
ответ дан 1 December 2019 в 15:49

У меня была похожая проблема на ноутбуке 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.

Напишите ответ, если найдете что-то работающее.

0
ответ дан 1 December 2019 в 15:49

Другие вопросы по тегам:

Похожие вопросы: