54

I am running a process in a 4 core Ubuntu server. However, the top command shows that the CPU usage is 799% all the time.

How can this be possible? I know for multi-core CPUs, more than 100% CPU usage is expected, but 799% is a really high value.

Can anybody explain to me why and when this could happen?

As per suggestion of Gregory MOUSSAT, using htop, I got the following output:

htop screenshot

9
  • 1
    Do the 4 cores have 2 threads each (e.g. Intel Core i7)?
    – Renan
    Aug 4, 2012 at 19:50
  • @Renan, I am running it on single thread.
    – Arpssss
    Aug 4, 2012 at 19:52
  • OK, then. Because I have seen this happen on some i7 systems.
    – Renan
    Aug 4, 2012 at 19:53
  • 1
    But is the JVM single-threaded? Aug 4, 2012 at 20:02
  • 6
    This really looks like a fully loaded i7, I usually get this when encoding video
    – nohillside
    Aug 4, 2012 at 20:03

1 Answer 1

72

The scale used by top is 100% when a core is fully used. Or when one core is 20% and a second one is 80%. This leads to strange results on multicore computers because it easily can exceed 100%.

If you have 8 cores, then top can display CPU usage from 0% (idle system) to 800% (full power).

Your program is just using your 4 cores with hyper-threading (so 8 virtual cores) at maximum capacity. So top gives you nearly 8 x 100% = 800%.

To change this way of calculating CPU usage (it's called Irix mode), press uppercase 'i': Shift+i

You can't explicitly tell the JVM to use a single thread, it will use multiple threads to do its work, even if you only use a single thread in your application.

You can use the htop utility as a better top alternative. You'll see your program using all of the 8 cores.

2
  • You can limit any set of processes to a set of cores or limit the % of cpu. However I don't remember the commands. (one is cpulimit) Jul 18, 2014 at 8:42
  • Why is htop reporting 300% CPU usage on one thread?
    – user988346
    Nov 26, 2020 at 17:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .