作为免责声明,我已阅读与该主题相关的问题,但对于我所看到的情况仍然有点困惑。
并且:
我担心我的一台服务器上的负载。
运行 htop 时,显示我有 40 个核心。我的平均负载是 9.35、9.58、8.55。
我最初的想法是这个值很高,但服务器中安装的处理器是: INTEL XEON E5-2650V3 (2.3GHZ/10-CORE/25MB/105W) FIO PROCESSOR KIT INTEL XEON E5-2650V3 (2.3GHZ/10-CORE) /25MB/105W) 处理器套件
我的困惑是,我不确定为什么 htop 列出了 40 个核心,但我只有两个 10 核处理器。
2个问题:
如果我有两个 10 核处理器(总共 20 个核),负载为 10 是否合理?
另外,为什么 htop 会在顶部显示 40 个核心?
答案1
在这种情况下,负载为 10 是合理的。经验法则是您希望平均负载小于核心总数。您似乎拥有双倍核心数量的原因是超线程。以下是链接的维基百科文章的摘录:
对于物理上存在的每个处理器核心,操作系统会寻址两个虚拟或逻辑核心,并在可能的情况下在它们之间分担工作负载。超线程的主要作用是增加流水线中独立指令的数量;它利用超标量架构,其中多个指令并行地对单独的数据进行操作。借助 HTT,一个物理核心对于操作系统来说表现为两个处理器,操作系统可以使用每个核心同时调度两个进程。此外,两个或多个进程可以使用相同的资源:如果一个进程的资源不可用,则另一进程如果其资源可用则可以继续。
答案2
您有两个 10 核 CPU,总共 20 个核心,但每个核心都是超线程的,并且在操作系统中显示为两个 CPU:最终总共有 40 个 CPU。 (我稍微简化了;内核知道核心和线程之间的差异并考虑到它。)这就是htop
显示的内容。
就你的负载而言,10 就可以了;一条经验法则(在对答案的评论中给出)了解系统负载)是,如果负载大于 CPU 数量,但在您的情况下它小于(实际)核心数量,则监视应发出警告。