Apologies if I’m posting to the wrong forum. I’ve been a long time user of Open Suse distros. Had Suse 12.3 then Tumbleweed and moved over to Leap 15.1 then 15.2 which I ran for quite a while. Upgraded to 15.3 and started noticing some behavioral problems. At first 15.3 ran reasonably but after an recent update noticed some issues with response. Using “top” I found that “kworker” was hogging the 1st cpu almost continuously at 100%. Got so that the system became unresponsive, i.e. the mouse would move in large jumps and apps would essentially grind to a halt. I read up on “kworker” but couldn’t determine a specific issue. Thinking maybe it was the update I re-installed 15.3 from a DVD. Problem remained. Backed off and installed Leap 15.2. There I found that “kworker” was seen but not as much hogging of the cpu’s. Before this incident I don’t think I was really aware of “kworker” as it must have been pretty much a background process. BTW, for anyone not familiar, “kworker” is apparently the designation of the kernel threads being executed in user space? I’m open to correction on this description. Back to my problems. When “kworker” is hogging the cpu it apparently blocks processes executing on the other three cpu’s. Top shows “kworker” with %mem of 0 but substantial amounts of time.
Questions: 1.) has anyone else encountered a similar problem?
2.) if so was there a solution.
3.) any suggestions?
Of interest is that the fan speeds up when kworker hits 100% cpu utilization. So I can hear
the system slowing down as well as see it.But top shows kworker using 0 memory but 100% cpu.
Any thoughts on what might be causing the blockage?
Hi karlmistelberger
Tried your suggestion turning swapoff. Top now shows
top - 23:57:59 up 5 days, 12:42, 14 users, load average: 1.90, 2.01, 2.10
Tasks:** 337 total, 1 running, 336 sleeping, 0 stopped, 0 zombie
top - 23:58:12 up 5 days, 12:43, 14 users, load average: 1.92, 2.01, 2.10
Tasks: 337 total, 2 running, 335 sleeping, 0 stopped, 0 zombie
top - 10:28:57 up 5 days, 23:13, 14 users, load average: 2.13, 1.99, 1.71
Tasks: 343 total, 3 running, 340 sleeping, 0 stopped, 0 zombie
top - 10:29:11 up 5 days, 23:14, 14 users, load average: 2.18, 2.00, 1.72
Tasks: 342 total, 2 running, 340 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 24.4 sy, 0.0 ni, 72.6 id, 0.0 wa, 0.0 hi, 2.9 si, 0.0 st
KiB Mem : 8055184 total, 1445508 free, 3392972 used, 3216704 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3379088 **avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
**14079 root 20 0 0 0 0 R 100.0 0.000 3:38.30 kworker/u8:4+events_unbound **
9183 root 20 0 0 0 0 I 0.332 0.000 0:00.35 kworker/1:1-events
10018 jeff 20 0 3413692 242204 108852 S 0.332 3.007 3:24.04 plasmashell
**14368 jeff 20 0 39428 4248 3372 R 0.332 0.053 0:00.01 top **
1 root 20 0 220676 8628 6064 S 0.000 0.107 0:34.28 systemd
2 root 20 0 0 0 0 S 0.000 0.000 0:00.36 kthreadd
3 root 0 -20 0 0 0 I 0.000 0.000 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.000 0.000 0:00.00 rcu_par_gp
8 root 0 -20 0 0 0 I 0.000 0.000 0:00.00 mm_percpu_wq
9 root 20 0 0 0 0 S 0.000 0.000 0:03.21 ksoftirqd/0
I’m not an expert in sussing out these sort of issues. But it appears to me that
kworker is continuing its set of threads. I rather don’t mind if 1 of 4 cpu’s
is dedicated to the OS but it does appear to slow the overall performance. Is there
anyway to determine what processes are involved with kworker? My thought is the
possibility of some hardware dependency approaching a failure mode and causing
unnecessary spawning of kernel processes.
Thanks for the interest.
J.
To me, swapping would be a symptom, not a cause. Swapping would not normally be expected unless something is pressuring memory. Because kworker does work on behalf of other processes, you really need to find the upstream cause. Maybe you are running too many things? Or something really big like a big VirtualBox or a Android development environment?
Is it the same for all users? You can create a new user to test that. Is it the same if no one is logged in to X11 (use ssh to login remotely and run top/htop)? Or perhaps login to a different kind of X11 session such as LXDE.
For a cause I would be looking at what’s actively running and what resources are being consumed and what resources are running short: CPU, memory, disk, and network.
Does journalctl reveal anything unusual.
Perhaps a filesystem is running out of space and the system is busy looking for blocks. Btrfs can look like it has free space when it doesn’t.
I find I prefer htop for digging around, and I sort by CPU and Memory. There is also iotop for finding IO hogs.
Sorry that these sound so much like stabs in the dark, but these are the places I’d start looking.