线程在CPU之间的分配?

线程在CPU之间的分配?

lscpu给出:

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

当运行密集型 32 线程进程时,为什么htop#1-32 上几乎显示 100% CPU 活动,但 #33-64 上几乎没有活动?为什么进程的 32 个线程没有均匀地分布在 CPU #1-64 之间?

顶部

答案1

在Linux中有一个调度程序。有些系统会将工作推送到更快/更冷/更高效的核心,但默认行为是有序的。您运行的软件需要利用多核才能获得任何好处,因此您的工作负载可能只能通过您选择的软件(或配置)分为 32 个线程。

相关内容