Hi, I am using Tumbleweed in text-mode only with 4.8.6-2-default kernel on x64 system. This problem first appeard after updating to 4.8.x kernel from 4.7.x kernel. I can see 259 kworker threads for each core on the system (kworker/0:0, kworker/0:1 … kworker/0:259). That is over 2000 kworker threads on my system. The workers consume no memory nor CPU time and they sleep most of the time. From time to time load goes from almost zero to over a hundred but within a few minutes it is back to almost zero. I have disabled the NTPD service which was advised on some threads but that didn’t help. Can someone please give me any advice how to solve this issue? Thank you.
First, you should probably be looking at a newly booted system unless you really want to be looking at what ran or is running in during your current session.
Awhile back, I think I found that htop can be more useful than top when looking at process trees.
Install it and see if it displays your running processes in a better graphical way.
You might also try running the pstree command…
Here is one guy’s short instruction and introduction to pstree
It was the apparmor service. I did not researched the reason it missbehaved. Stopping and disabling the service reduced the count of kworker threads to 40 +/-.
I do not recommend simply stopping the apparmor service, it’s an important part of securing your system against misbehaving apps.
Instead, I recommend you read up on the following and troubleshoot the source of your errors.
If the errors you see already do not already identify the misbehaving app,
Briefly you should set your apparmor in complain mode instead of enforcing mode which would generate a log of problem events,
Then you should be able to either fix those events or use them to create a modified AppArmor profile which would accommodate that app.
The AppArmor Wiki page
openSUSE documentation(Although it currently says for LEAP 42.2, it should be completely applicable to current TW as well)