Frage Kworker, was ist es und warum ist es so viel CPU-Auslastung?


Ich habe vor kurzem auf die Kubuntu Natty Beta 1 aufgerüstet und ich hatte viele Probleme mit dem Prozess kworker. In Momenten verwendet es fast die Hälfte meiner CPU. Seltsamerweise scheint es auch meine USB-Anschlüsse zu beeinflussen; Immer wenn ich ein USB-Laufwerk einstecke, läuft der Vorgang ab kworker geht in hyperdrive, so dass ich nicht arbeiten kann.

Ich habe darüber nachgedacht, einen Fehler zu melden, aber da ich noch keine vernünftige Erklärung dafür gefunden habe kworker soll ich zuerst herausfinden.


110
2018-04-05 13:57


Ursprung


Merkwürdig, kworker läuft und trägt zu den Wakeups um 10% bei, aber ich habe keine Kubuntu-Programme installiert. Alos Nepomuk ist nicht installiert. - dago
aus der antwort von afrazier denke ich jetzt, dass es etwas mit dem kern zu tun hat (der k in kworker ist also für den kernel). Aus diesem Grund würden Sie auch kworker auf Ihrem Ubuntu-Rechner laufen lassen. - davorao
Diese Antwort kann auch hilfreich sein, um herauszufinden, was ein kworker macht: unix.stackexchange.com/questions/22851/... - anarcat
Sie sollten das letzte Betriebssystem-Update nicht ausgeführt haben. Wenn du Glück hast, wird der nächste es reparieren. - nobar


Antworten:


"kworker" ist ein Platzhalterprozess für Kernel-Worker-Threads, die den Großteil der tatsächlichen Verarbeitung für den Kernel ausführen, insbesondere in Fällen, in denen Interrupts, Timer, I / O usw. auftreten. Diese entsprechen typischerweise der überwiegenden Mehrheit aller zugewiesenen " System "Zeit zu laufenden Prozessen. Es ist nicht etwas, das sicher aus dem System in irgendeiner Weise entfernt werden kann, und ist völlig unabhängig von Nepomuk oder KDE (außer dass diese Programme Systemaufrufe machen können, die den Kernel etwas tun müssen).

Es gab einige Berichte über übermäßige Kworker-Aktivität für relativ Leerlaufsysteme, die während der 2.6.36 Entwicklung beginnen (Beispiel Diskussion) und breite Berichte über Verwirrung und Probleme mit 2.6.38 (obwohl viele dieser Berichte das Wort "Natty" enthalten), nehme ich an, dass diese Leute keinen Kernel zwischen 2.6.35 (in Ubuntu 10.10) und 2.6 verwendet haben. 38 (in Ubuntu 11.04 verteilt).

Ich habe viele Berichte über etwas gefunden, das dies für den einen oder anderen Benutzer "repariert" hat. Die meisten "Fixes" scheinen mit Aktualisierungen des Kerns verschiedener Art zusammenzuhängen. Wenn das Update einem bestimmten Problem zugeordnet werden kann, scheint es oft ein Treiber oder ein Kernel-Service zu sein, der gepatcht wurde, um sich nicht zu benehmen: Ich habe den Eindruck, dass es sehr viele Dinge im Kernel gibt, die ein Verhalten verursachen können was als übermäßige kworker Verwendung beobachtet wird.

Wenn Sie feststellen, dass das System aufgrund übermäßiger Kworker-Aktivität unbrauchbar ist, würde ich empfehlen, weniger zu tun. Wenn Sie der Meinung sind, dass Sie nichts tun, versuchen Sie, lang laufende Dienste oder Timer (RSS-Reader, Mail-Reader, Datei-Indexer, Activity-Tracker usw.) herunterzufahren. Wenn dies nicht funktioniert, versuchen Sie es erneut. Wenn Ihr System es Ihnen ermöglicht, Hardware in einer Pre-Boot-Umgebung zu aktivieren oder zu deaktivieren, versuchen Sie, die Hardware, die Sie nicht verwenden, auszuschalten. Wenn es bei jedem Neustart passiert, bevor Sie etwas tun, können Sie versuchen, Dinge zu deinstallieren, aber an diesem Punkt sollten Sie syscall Profiling-Tools ausführen, um bestimmte Anwendungen aufzuspüren, die diese Überlastung zu verursachen scheinen.

Es ist zu hoffen, dass Ihr spezifisches System dieses Verhalten mit einem zukünftigen Kernel-Upgrade nicht mehr ausdrücken wird (und viele der häufigsten Ursachen dafür gelöst wurden).


94
2017-07-08 10:44



Ich hatte ein langsames Login-Problem, von dem ich denke, dass es damit zusammenhängt. Ich schaffe es, es zu umgehen, indem ich alles, was auf diese Weise gestartet wird, hinauszöge: askubuntu.com/a/484856/46437 - Aquarius Power
Vielleicht ist das überflüssig, aber eine sehr klar geäußerte Antwort. Das ist ein fein ausgedrücktes Englisch, Sir. - Jon Carter


Was ist kworker?  kworker bedeutet ein Linux-Kernel-Prozess, der "Arbeit" ausführt (Systemaufrufe verarbeitet). Sie können mehrere davon in Ihrer Prozessliste haben: kworker/0:1 ist die auf Ihrem ersten CPU-Kern, kworker/1:1der eine auf deinen zweiten usw.

Warum hackt Kworker Ihre CPU? Um herauszufinden, warum ein kworker Ihre CPU verschwendet, können Sie CPU-Rückverfolgungen erstellen: Beobachten Sie Ihre Prozessorlast (mit top oder etwas) und in Momenten hoher Belastung durch kworker, ausführen echo l > /proc/sysrq-trigger ein Backtrace erstellen. (Unter Ubuntu müssen Sie sich damit anmelden sudo -s). Tun Sie das mehrmals, dann schauen Sie sich die Backtraces am Ende an dmesg Ausgabe. Sehen Sie, was häufig in den CPU-Rückverfolgungen vorkommt, es hofft Sie hoffnungsvoll zur Quelle Ihres Problems.

Beispiel: e1000e. In meinem Fall fand ich fast jedes Mal ein Backtrace wie dieses:

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]

Es deutete mich auf ein Problem in der e1000e Ethernet-Kartenmodul, und in der Tat a sudo rmmod e1000e ließ die hohe CPU-Last sofort weg [e1000e Fehler # 26].


68
2018-02-17 02:42



echo l > /proc/sysrq-trigger scheint nicht auf proxmox sagen zu arbeiten sysrq: SysRq : This sysrq operation is disabled. traurig. - hak8or
sysrq muss mit sysctl -w kernel.sysrq = 1 erneut aktiviert werden askubuntu.com/questions/911522/... - Sebastien


Warum packt Kworker Ihre CPU (Forts.)? Als Alternative zu meine andere Antwort hier, Perf ist eine professionellere Methode, um zu analysieren, welche Kernel-Tasks Ihre CPU behindern:

  1. Installieren perf:

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

    (Das zweite Paket muss mit Ihrer Kernel-Version übereinstimmen. Sie können zuerst nur installieren linux-tools-common und Ruf an perf um es Ihnen sagen zu lassen, welches Paket es braucht.)

  2. Zeichnen Sie 10 Sekunden Backtraces auf all Ihren CPUs auf:

    sudo perf record -g -a sleep 10
    
  3. Analysiere deine Aufnahme:

    sudo perf report
    

    (Navigieren Sie im Anrufdiagramm mit , , ,  und Eingeben.)


52
2018-02-17 15:26



Auf meinem System läuft es innerhalb einer virtuellen VMware-Maschine mit perf Ich verfolgte das Problem bis zum sd_mod Kernelmodul. Deaktivieren von SCSI in der vmx Datei verhinderte das Laden des Moduls und brachte das System auf normale Geschwindigkeit zurück: scsi0.present = "FALSE" - feklee


Nur um es alle wissen zu lassen. Ich stieß auf dieses Problem, installierte perf (das ist ein großartiges Werkzeug), zeigte auf Spin Locking und XFS. Das zeigte auf NFS. Dann wurde mir klar, dass eines meiner Reittiere nicht mehr im Raum war. Das Freigeben von Speicherplatz führte dazu, dass die Kworker-CPU auf 0 fiel.

Offensichtlich kann dies ein Symptom dafür sein, dass auf einem ausgelasteten NFS-Server kein Speicherplatz mehr verfügbar ist!


5
2018-03-19 13:40



Ich bemerkte, dass ich eine K-Worker-Kernschmelze hatte, als eine bestimmte Virtualbox lief. Es stellte sich heraus, dass jemand ein NFS mit meinem Host für die Freigabe von Dateien ausgeführt hat. Es war jedoch nicht annähernd voll. Das Entfernen des NFS "löste" das Problem. Ich denke, ich teile es mit einem sshfs-Mount. - Programster


Ich habe vor kurzem Ubuntu Natty auf einem externen Laufwerk USB-Pass installiert. Wenn ich auf meinem Desktop anfange, der ungefähr zwei Jahre alt ist, funktioniert alles wie ein Zauber. Wenn ich auf meinem neuen Laptop (MSI gt680r System) starte, wird es langsamer, wenn ich den Computer aus dem Ruhezustand wecke oder wenn ich eine andere USB-Festplatte einstecke.

Kworker-Prozesse nehmen immer mehr CPU-Leistung an und die Maus friert von Zeit zu Zeit ein.

Ich habe mehrere Lösungen in verschiedenen Foren gelesen, die nicht funktionierten.

Ich ging in das BIOS meines Laptops, wo es war:

Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled

Ich wechselte für:

Hand XCHI OFF: disabled
EHCI Hand OFF: disabled

und seit dem friert es nicht mehr auf meinem Laptop ein.

Ich würde die Rückübertragung aktivieren, wenn und wenn das Problem behoben wird.


4
2017-07-01 09:08



Kann jemand erklären, warum das passiert? Wie ist XCHI verbunden? - GuySoft


Ich denke Nepomuk kann dir helfen:

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


0
2018-05-06 06:02



Danke, aber ich habe seitdem eine neue Kopie von Kubuntu 11.04 installiert und das vorher erwähnte Problem ist verschwunden. - davorao
Während dies theoretisch die Frage beantworten könnte, es wäre vorzuziehen um die wesentlichen Teile der Antwort hier einzubeziehen und den Link als Referenz bereitzustellen. - fossfreedom♦