What does it mean exactly when a processes “Time” has stopped in top

cpuhtopprocessswaptop

I'll be looking into why we're getting critical swap alerts, and I'll find something like:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
14683 user1     30  10 16.0g 772m  744 S  0.3  0.3 277:24.87 6.5g MATLAB
14576 user1     30  10 8125m 1.1g  736 S  0.3  0.4 261:16.73 4.1g MATLAB

where the TIME+ column is frozen for those processes.

My question is, in the above, what does this imply?

As I understand it, stopped time means that it's a dormant process/not being processed by the CPU. However the above example shows 0.3% CPU use, so despite the fact that it's very small, shouldn't the time column continue incrementing?

Are these processes "finished"? In which case, how are they cleaned up? Does the user who started them need to acknowledge them or something for those resources to be freed up?

Best Answer

If you run a fake job such as sleep 120 and then watch it in htop you'll notice that its state is S aka "SLEEP" and the processes TIME remains at 0:00.00 for the duration.

That's because that process is consuming 0 CPU time, which is the intent of the TIME column. It tracks the amount of CPU time a given process has used.

              ss #1

This count can be confusing at times if a process can run on multiple CPU cores, since it can seemingly consume more time than is available. All that's going on there is that if you have X number of cores, then your time can show up as X * TIME.