I have newly installed a redhat 7.4 on a physical server and only oracle database 12 C is running on it. I found there is more than 200 processes is "kworker", the number of process is keep increasing.
I would like to know what is this process is about and why my server is forking this process continually? It should be a kernel process, but it seems consuming a lot of process ID and CPU loading.
Thank you.
Best Answer
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:
To know what any kworker is doing, you can look at
/proc/<kworker_pid>/stack
. For example: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 (likeacpi_os_execute_deferred
).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.