lscpu gives:

Thread(s) per core:  2
Core(s) per socket:  32

When running an intensive 32-threads process, why does htop show almost 100% CPU activity on #1-32, but very little activity on #33-64? Why aren't the process's 32 threads distributed evenly among CPUs #1-64?


  • what does distributed evenly mean? .... what were you expecting to see?
    – jsotola
    Commented Jan 20, 2019 at 4:32
  • @jsotola Why wasn't there (on average) 100% CPU usage every other CPU? Or why weren't the 32 threads running on CPUs 1-16 and 49-64, or 33-64, or something else?
    – Geremia
    Commented Jan 20, 2019 at 4:40
  • they are distributed evenly .... 16 even numbered cores and 16 odd numbered cores
    – jsotola
    Commented Jan 20, 2019 at 19:09

1 Answer 1


In Linux there is a scheduler. Some systems will push work to faster/cooler/more-efficient cores but the default behavior is an ordered stack. The software you are running needs to take advantage of multiple cores for any benefit to be had, so it may be that your workload can only be split into 32 threads by your choice of software (or configuration).

You must log in to answer this question.

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