Ran the top command to check CPU performances and memory usage on the New RPi3 while running a browser.

Since we have a 4× ARM Cortex-A53, 1.2GHz, how should I read the result?

$ top

Mem: 327132K used, 620864K free, 29124K shrd, 5800K buff, 164492K cached
CPU:  80% usr   8% sys   0% nic   2% idle   0% io   0% irq   9% sirq
  • 80% un-niced processes
  • 8% system processes
  • 2% idle?

My understanding is that when it shows 80%, that means 80% out of 400% full capacity, since we have 4 cores right?

Does that mean that the top command doesn't not calculate the idle correctly?

How do I check the % usage/idle for each core?

  • 1
    Press 1 when in top to see the information for each core.
    – joan
    Commented Mar 21, 2016 at 23:25

1 Answer 1


I'm afraid you are misunderstanding busybox top output:

80% usr   8% sys   0% nic   2% idle   0% io   0% irq   9% sirq 

If you sum up all the counters, you can see %idle is not miscalculated. According to the reported values, the CPUs are doing something during 80 + 8 + 9 = 97% of the time and nothing during 2%. The missing 1% is simply due to the rounding to the closest integer display.

You also misinterpret the first two columns:

usr and sys do not mean the CPU was serving un-niced and system processes. usr means it was processing userland code and sys it was processing kernel code.

The former is the code written by application and libraries developers while the latter is essentially due to the same application code performing system calls.

Finally, the sirq value you overlook is showing the percentage of time the CPU spent to process software interrupts, probably triggered by a driver.

To answer to your question, if you want to check the usage of a CPU, either compute 100 minus ( %idle + %io ), or sum up all remaining values.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.