平均负载如何与现代 CPU 配合使用?

Mat*_*ley 6 linux cpu load

我对平均负载的理解让我对我当前的系统感到非常震惊。我工作站中的 CPU 是启用了超线程的 i7,并cat /proc/cpuinfo产生 4 个“CPU”。

综上所述,在为 Gentoo 编译包时,我的 PC 可以在 1 分钟到 15 分钟的所有负载平均时隙中生成超过 16 个,但仍然可以完美地处理所有其他任务。我什至看到它高达 24,尽管那时它开始放缓。如果 1.0 应该代表一个核心充分利用,这是如何工作的?

Sir*_*rex 10

1.0 是在给定时间段内等待的平均一项作业,而不是 100% 利用率的 1 个核心。

空闲计算机的负载数为 0,每个使用或等待 CPU(就绪队列或运行队列)的进程将负载数增加 1。大多数 UNIX 系统仅计算正在运行(在 CPU 上)或可运行(等待CPU)状态。然而,Linux 还包括处于不间断睡眠状态(通常等待磁盘活动)的进程,如果由于繁忙或停滞的 I/O 系统而导致许多进程在 I/O 中被阻塞,这可能会导致明显不同的结果。例如,这包括由于 NFS 服务器故障或慢速介质(例如 USB 1.x 存储设备)而导致的进程阻塞。这种情况可能会导致平均负载升高,这并不能反映 CPU 使用的实际增加(但仍然可以了解用户必须等待多长时间)。

这里