kworker processes are kernel worker processes, and having many of them is likely to be harmless.
Kernel worker threads could be doing any number of things, as some random examples:
- Doing page cache writebacks
- Handling certain kinds of hardware events
- Many, many other things
To know what any kworker is doing, you can look at
/proc/<kworker_pid>/stack. For example:
$ cat /proc/$(pgrep -of kworker)/stack
This kworker is acting on an ACPI event. You can tell this because it's inside its "processing" function,
process_one_work, which eventually leads to functions related to processing ACPI events (like
You'll probably find many have this stack, or something similar:
These kernel workers are simply sitting waiting for work to do.
Depending on your system configuration, it could well be normal to have many kworkers. Unless they are actively causing problems, I wouldn't worry about them.