lscpu
給出:
Thread(s) per core: 2
Core(s) per socket: 32
當執行密集的 32 執行緒程序時,為什麼htop
在 #1-32 上顯示幾乎 100% 的 CPU 活動,但在 #33-64 上幾乎沒有活動?為什麼程序的 32 個執行緒在 CPU #1-64 之間沒有均勻分佈?
在 Linux 中有一個調度程序。一些系統會將工作推送到更快/更冷/更高效的核心,但預設行為是有序堆棧。您正在執行的軟體需要利用多個核心才能獲得任何好處,因此您的工作負載可能只能通過您選擇的軟體(或配置)分成 32 個執行緒。
引用自:https://unix.stackexchange.com/questions/495555