Kworker, mi az, és miért takarítson annyi CPU-t?

112

Nemrég frissítettem a Kubuntu Natty Beta 1-re, és nagyon sok kérdésem van a kworker folyamattal. Pillanatokban majdnem fele a CPU-jámat használja. Szintén furcsa módon úgy tűnik, hogy befolyásolja az USB portokat; amikor csatlakoztatom az USB-meghajtót, az kworker folyamat hyperdrive-ba megy, ami miatt nem tudok dolgozni.

Gondoltam egy hiba beadására, de mivel még nem találtam ésszerű magyarázatot arra, hogy mi az kworker , gondoltam, először meg kell találnom.

    
készlet davorao 05.04.2011 15:57
forrás

6 válasz

95

A "kworker" helyőrző eljárás a rendszermag-szálak számára, amelyek a rendszermag tényleges feldolgozását végzik el, különösen olyan esetekben, ahol vannak megszakítások, időzítők, I / O stb. minden elosztott "rendszer" idő a futó folyamatokhoz. Ez nem olyan, ami biztonságosan eltávolítható a rendszerből, és teljesen független a nepomuktól vagy a KDE-től (kivéve, hogy ezek a programok rendszerhívásokat tehetnek, amelyekhez a rendszermagnak szüksége lehet valamire).

Viszonylag nagy számban jelentettek a túlzott kworker tevékenységről idle rendszerek, amelyek a 2.6.36-os fejlesztés során kezdődnek ( példa vita ), és széleskörű jelentések az összetévesztésről és a 2.6-os problémákról .38 (bár ezek közül számos jelentés tartalmazza a "Natty" szót, ezért feltételezem, hogy ezek az emberek nem használtak kernelt a 2.6.35 (Ubuntu 10.10-ben terjesztett) és a 2.6.38 között (Ubuntu 11.04-ben terjesztették).

Sok olyan jelentést találtam, ami "fixálta" ezt egy vagy másik felhasználó számára. A legtöbb "javítás" kapcsolatban áll a különböző rendszermag frissítéseivel. Ha a frissítést egy adott kérdéshez lehet nyomon követni, gyakran úgy tűnik, hogy valamilyen illesztőprogram vagy rendszermag-szolgáltatás van, amelyet nem rendeltetésszerűen rendeztek: az a benyomásom, hogy nagyon sok dolog van a rendszermagban, ami viselkedést okozhat ami túlzott kworkerhasználatnak tekinthető.

Ha a rendszert használhatatlanná teszi a túlzott krafter tevékenység miatt, azt javasolnám, hogy kevesebb dolgot próbálj meg csinálni. Ha úgy gondolja, hogy nem tesz semmit, próbálja meg kikapcsolni a hosszú távú szolgáltatásokat vagy az időzítőt (RSS-olvasók, levélolvasók, fájl-indexelők, tevékenységkövetők stb.). Ha ez nem működik, próbálkozzon újra. Ha a rendszer lehetővé teszi a hardverek engedélyezését vagy letiltását a rendszerindítás előtti környezetben, próbálja meg kikapcsolni a nem használt hardvert. Ha minden újraindításkor megtörténik, mielőtt bármit megtennél, megpróbálhatod eltávolítani a dolgokat, de ezen a ponton syscall-profilkészítő eszközöket kell futtatnia ahhoz, hogy nyomon lehessen azokat a konkrét alkalmazásokat, amelyek a túlterhelést okozzák.

Remélhető, hogy az Ön speciális rendszere leállítja ezt a viselkedést egy jövőbeli kernelfrissítéssel (és ennek számos leggyakoribb oka is megoldódott).

    
válasz adott Emmet Hikory 08.07.2011 12:44
forrás
70

Mi a kworker? Akworker egy Linux-rendszermag-folyamat, amely "munka" -ot (feldolgozó rendszerhívásokat) tesz. Számos tagja lehet a folyamatlistában:kworker/0:1 az első CPU magodon,kworker/1:1 a másodpercben stb.

Miért van a kworker a CPU-jáért? Annak megállapításához, hogy egy kworker miért pazarolja a CPU-jét, létrehozhat CPU backtrace-t: figyelje a processzor terhelését (top vagy valami) nagy terhelés akworker alatt, hajtsa végre aecho l > /proc/sysrq-trigger parancsot egy backtrace létrehozásához. (Az Ubuntuban ehhez be kell jelentkeznie asudo -s -kal). Ezt többször is megteheti, majd admesg kimenet végén nézze meg a visszalépéseket. Nézze meg, mi történik gyakran a CPU-visszaadásokban, és remélhetőleg a probléma forrására mutat.

Példa: e1000e. Az én esetemben ezúttal szinte minden alkalommal találtam egy backtrace-t:

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]

Ae1000e Ethernet kártyamodul problémájára figyelmeztetett, és valójában egysudo rmmod e1000e a nagy CPU terhelést azonnal elindította [ e1000e bug # 26 ].

    
válasz adott tanius 17.02.2014 03:42
forrás
52

Miért van a kworker a CPU-ját (folytatás)? A az én másik válaszom itt , a Perf egy professzionálisabb módja annak, hogy elemezze a rendszermag feladatait a CPU-ról:

  1. Telepítse aperf:

    fájlt
    sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic
    

    (A második csomagnak meg kell egyeznie a rendszermag verziójával. Először csaklinux-tools-common -ot telepíthet, és hívja aperf -ot, hogy megmondja, melyik csomagra van szüksége.)

  2. Felvétel körülbelül 10 másodperces visszalépésekre minden processzoron:

    sudo perf record -g -a sleep 10
    
  3. Elemezze a felvételt:

    sudo perf report
    

    (Keresse meg a hívásgrafikont , , ↑ < és .

válasz adott tanius 17.02.2014 16:26
forrás
6

Csak azért, hogy mindenki tudjon. Befejeztem ezt a problémát, installált perf (ami nagyszerű eszköz), rámutatott a spin-reteszelésre és az XFS-re. Ez mutatott az NFS-re. Aztán rájöttem, hogy az egyik tartóm nem volt a térben. A szabadtér felszabadítása miatt a kworker CPU értéke 0-ra csökken.

Szóval nyilvánvalóan ez egy tünet lehet, ha a meghajtóterületen elfogyott a forgalmas NFS-kiszolgáló!

    
válasz adott Erik Aronesty 19.03.2014 14:40
forrás
4

Nemrég telepítettem az Ubuntu Natty-t egy külső meghajtó usb-útlevélre. Amikor két éven át dolgozom az asztalon, minden úgy működik, mint egy varázsa. Amikor az új laptopom (MSI gt680r rendszer) elindul, lelassul, miután felizgattam a számítógépet alvó állapotból, vagy ha egy másik usb lemezt csatlakoztattam.

A Kworker folyamatok egyre több cpu-ot igényelnek, és az egér időről időre lefagy.

Több megoldást olvastam különböző fórumokon, amelyek nem működtek.

Beléptem a laptopom bioszába, ahol ott volt:

Hand XCHI OFF: Enabled
EHCI Hand OFF: disabled

Megváltoztattam:

Hand XCHI OFF: disabled
EHCI Hand OFF: disabled

és ettől kezdve nem fagyasz meg többé a laptopon.

Engedélyezném a kéz vissza, ha és amikor a probléma kijavult.

    
válasz adott CedCannes 01.07.2011 11:08
forrás
0

Szerintem a Nepomuk letiltása segíthet:

link

    
válasz adott Extender 06.05.2011 08:02
forrás