我对 Linux 平均负载的粗略理解是,每个整数都表示一个 CPU 核心一直在工作。例如,1 表示在 4 核系统上,1 个核心正在满负荷工作。超线程如何影响这个因素?在平均负载中是否考虑了它?
答案1
我通常认为超线程核心是真实核心的 20%-30%,具体取决于您的应用程序如何有效地利用多个线程。它们是在平均负载和平均负载阈值中考虑。
以下是启用超线程之前和之后的双插槽 Intel X5570 Nehalem 系统的示例。操作系统是 CentOS 5.8。实际平均系统运行队列/平均负载没有发生很大变化(应用程序几乎是单线程的),但负载阈值发生了变化。
话虽如此,我还是多次禁用了超线程……对于我的低延迟和确定性应用程序,我希望更好地控制应用程序资源的调度位置。在这些情况下,使用超线程核心会受到惩罚。此外,我遇到过一种特殊情况,即应用程序在具有超线程的 4 插槽 8 核 CPU 上运行。核心太多了……所以我只是禁用了 HT,将逻辑 CPU 从 64 个减少到 32 个。