it-swarm.com.de

Ubuntu 16.04 kworker mit hoher CPU ständig

Auf Ubuntu 16.04-Computern habe ich gesehen, dass kworker konsistent 80% einer CPU beansprucht.

Ich habe einen Leistungsbericht erstellt:

  • Sudo apt-get install linux-tools-common linux-tools-$(uname -r)
  • Zeichnen Sie etwa 10 Sekunden Backtraces auf allen CPUs auf Sudo perf record -g -a sleep 10
  • Zeigen Sie es mit Sudo perf report an.

Top paar Ergebnisse sind:

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

Ich weiß nicht, wie ich es reproduzieren soll. Es verschwindet nach einem Neustart. Was ist los?

3
sunapi386

Gleiches Problem hier auf einem Dell XPS Laptop und Kernel 4.4.0-130

Ich habe es durch Deaktivieren von dynamisches USB-Power-Management im Kernel behoben

Ich habe usbcore.autosuspend=-1 zur Boot-Kommandozeile meines Kernels hinzugefügt:

GRUB_CMDLINE_LINUX_DEFAULT="<existing stuff> usbcore.autosuspend=-1"
  • Öffnen Sie dazu die Grub-Konfigurationsdatei

    Sudo nano /etc/default/grub
    

und fügen Sie das oben beschriebene Flag hinzu.

  • Als nächstes musst du deine Auswahl über aktualisieren

    Sudo update-grub
    
  • Nach dem Neustart sollte alles in Ordnung sein, die ausgelastete CPU ist jetzt frei, um etwas Nützliches zu tun :)

Das Deaktivieren von dynamic PM kann sich auf die Akkulaufzeit auswirken, wenn Sie USB-Geräte angeschlossen haben, aber nur wenige USB-Geräte können diesen Modus verarbeiten.

3
Francois P.

Früher hatte ich ein ähnliches Problem bei einem Dell-Laptop. Ich habe gelesen, dass dies auf einen Fehler im Kernel zurückzuführen ist, der durch das Leeren des Kernel-Caches durch das Schreiben einiger Werte in eine Datei in /sys behoben werden könnte, aber ich bezweifle, dass dies Ihnen helfen wird.

Ich weiß, dass kworker Prozesse nicht abgebrochen werden können. Wenn ich anderen Antworten auf dieselbe Frage unter Askubuntu/Unix glauben möchte, sind kworker Platzhalterprozesse, die der Aktivität des Kernels entsprechen.

Die nachfolgend vorgeschlagenen Lösungen sind die offensichtlichsten und wahrscheinlichsten (wenn noch nicht erprobten) bis die weniger wahrscheinlichen.

Für den Fall, dass Sie dies noch nicht getan haben, schlage ich vor, dass Sie Ihren Kernel auf die letzte verfügbare Version der Repositorys aktualisieren (Sudo apt update). Das Aktualisieren des Kernels erfordert normalerweise einen Neustart, um den Effekt zu sehen.

Andernfalls könnten Sie versuchen, Ubuntu 18.04 zu installieren, dessen Kernel-Version 4.15.0-22 ist und wahrscheinlich einen Fix enthält.

Wenn Sie Ihre Frage gegoogelt haben, haben Sie wahrscheinlich bereits Fehlerberichte gefunden, die Ihrer Beschreibung entsprechen. Sie sollten die Kommentare durchlesen, die manchmal Lösungen oder Problemumgehungen enthalten. Der unten stehende Link scheint eng mit Ihrem zu übereinstimmen, obwohl es ein bisschen faszinierend ist, da der Fix inzwischen im Ubuntu-Kernel angekommen sein sollte (Kommentar Nr. 18).

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488426

Als ich den Fehler entdeckte, habe ich nicht versucht, eine CPU-beschränkende Anwendung wie cpulimit oder cputool (Sudo apt install cpulimit oder Sudo apt install cputool) zu verwenden. Ich habe keine Ahnung, ob es eine Chance gibt, dass dieser Ansatz funktioniert. Ich bezweifle, dass es mit einem solchen nicht standardmäßigen Prozess funktionieren kann.


Hinweis: Möglicherweise möchten Sie die Ausgabe von uname -mr zu Ihrer Frage und zu zukünftigen Fragen hinzufügen, wenn sie sich auf den Linux-Kernel beziehen.

Schreiben Sie eine Antwort, wenn Sie etwas finden, das funktioniert.

0
Mathieu CAROFF