Solution 1:

Not sure what your friend is talking about but it sounds pretty arbitrary and... well, blatantly wrong.

The percentage of CPU measure is somewhat misleading. In fact, any process that is currently "on" the CPU is getting 100% of the CPU, at that moment in time. The percentage refers to how much CPU time those processes have received during the last time sample.

So the fact that they are displaying less than 100% CPU usage is not an indication of a problem.

A more relevant measure in your top output is this line: Cpu(s): 55.0%us, 1.7%sy, 0.0%ni, 42.2%id, 0.5%wa, 0.1%hi, 0.4%si, 0.0%st

It shows 42% idle time on the CPU. So your other processes, whatever they are, are not CPU-bound.

Solution 2:

Programs do more than wait on the CPU. They wait on disk an network I/O; they wait on user input. Not every program that runs is going to use 100% of the CPU for top's refresh quantum. For example, when nothing's running, do you see init consuming 100% CPU? No.

Solution 3:

You can press "1" (one) and top will show the CPU stats at the top on a per-CPU basis. You might find that informative.