I'm running some benchmarks on various forks of bitcoind and I noticed some conflicting values when running top.

In the screenshot below, there is an even spread of ~30% cpu utilization across each of the 8 cpus. But in the list view below it, bitcoind shows 105% CPU. Given that this is not in Irix mode, that means that bitcoind is using 100% of 1 cpu. But it is not displaying that way in the breakdown above. Further, the Python processes I'm running report ~40% each in the bottom readout, but none of the cpus on top read ~40%.

The machine does indeed have 8 physical cores, running Ubuntu non-virtualized.

What's going on here? bitcoind top

For comparison, here's running stress on 8 cpus with the same top display. Notice that 8 cpus each have 100% utilization, and the 8 stress processes each have a 100% report. stress top

Update: indeed the variant I was testing is multithread and the H option showed the breakdown, thanks @TheGeek


  • 1
    there's absolutely no problem here. you have 800% of CPU available, top makes a ratio between the CPU time consume by your process and the CPU time a CPUi core is capable to handle. If you have a multi threaded process such as crypto mining the whole process if well written could consume 105% spread between all your CPU core. There's no problem here – Kiwy Apr 29 '18 at 13:00
  • @kiwy oh no problem here, the issue is with my understanding the output e.g. PICNIC – y3sh May 1 '18 at 13:49

It is because your coind is multi-threaded. Press letter "H" in top to turn on threaded mode. This will show you child threads of bitcoind. You can then see the spread of CPU usage.

You can also try gstack to see list of threads.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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