CPU Utilization high for sleeping processes CPU Utilization high for sleeping processes linux linux

CPU Utilization high for sleeping processes


There is no correlation between CPU usage as reported by top and process state. The man page says (emphasis mine):

%CPU -- CPU usage

The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time.

So, your process indeed used a huge amount of processor time since the last screen update. It is sleeping, yes, but that's because the currently running process is top itself (which makes sense, since it's currently updating the screen).


Does your application fork child processes? The strace output may indicate that the main process is just waiting for child processes to finish their work. If so, you could try running

strace -f -p 5075

to trace the child processes as well.


The top output is perfectly normal.

The load average calculations include processes that are waiting on something (mutexes/futexes, IO etc) as well as processes that are actually using the CPU. Test it by, say, running something like:

dd if=/dev/sda of=/dev/null

and watching top output to see what happens. It will increase the load average by 1.

If you look at this line:

Cpu(s):  8.1%us,  0.1%sy,  0.0%ni, 91.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

the "id" in "91.8%id" means "idle". So the CPU isn't actually doing much at all.