Linux:了解平均负载和 CPU 百分比?

use*_*603 8 linux cpu performance cpu-usage cpu-architecture

当我top在 ubuntu 系统上执行命令时,我看到以下结果

top - 07:58:58 up 1:21, 1 user, load average: 0.82, 0.73, 0.55 任务:总共 293,1 运行,292 睡眠,0 停止,0 僵尸 %Cpu(s):0.8 us,0.8 sy , ....

我需要了解load average%cpu

我的理解基于我的知识和高 CPU 利用率但低负载平均

平均负载

平均负载是衡量一段时间内内核运行队列中等待的任务数量(不仅是 CPU 时间,还有磁盘活动)。这是否意味着根据上述结果有 0.83 个任务正在等待?怎么可能是十进制数?还有什么是三个不同的数字0.83 0.73, 0.55

%中央处理器

这表示 CPU 在过去 x 秒内工作了多长时间。例如:- 如果 CPU 利用率显示 60%,则表示在过去 x 秒内 cpu 在 x 秒内工作了 60%。我的理解是否正确?如果是,%Cpu(s): 0.8 us代表什么?

另外,如果我有 4 个 CPU 处理器,并且 %CPU 显示 50%,这是否意味着所有内核都在 50% 工作或 2 个 CPU 正在 100% 工作?

DrZ*_*Zoo 11

了解平均负载:0.83 0.73, 0.55

  • 负载是系统执行的计算工作量的度量。这三个值是一段时间内的平均负载。间隔是最后 1 分钟、5 分钟和 15 分钟。平均负载计算为指数移动平均。如果您愿意,您可以深入了解并阅读Examining Load Average

  • 单核系统

    • 负载平均值在范围内变化。对于单核系统,该值0.83意味着您的 CPU 在最后一分钟内达到 83% 的容量。值1.0表示您的 CPU 处于精确容量 (100%)。有了这个价值1.0,系统就会因为增加一点额外的工作而过载。值大于1.0意味着它得到的超出了它的处理能力。这还不错,只是意味着更多的进程正在等待 CPU 时间。你会看到计算机的缓慢。
  • 多核系统

    • 对于多核系统,您可以将平均负载除以您拥有的内核数。因此,例如,平均负载0.83为 4 个内核,您需要0.83 / 4获取0.2075(0.83 / 4) * 100获取20.75%容量。对于四核系统,如果负载平均值大于4.0该值,则表示所有内核都处于 100% 的容量,任何过载都会导致进程等待 CPU 时间。
  • 当您超过最大容量时会发生过载。平均负载作为过载阅读起来可能有点混乱,因为它基于您的内核。如果您有四核 CPU,则在负载值结束之前您不会超载4.0。如果第一个负载平均值是5.50那意味着您的系统过载了 150%,并且在最后一分钟平均有 1.5 个进程不得不等待 CPU 时间。

了解 %Cpu(s): 0.8us, 0.8sy....

  • 此部分显示 CPU 的使用情况。每个后缀代表特定的内容,并表示 CPU 在该组任务上花费的时间。如果将该输出行中的所有数字相加,则相加为 100%。

  • 任务被定义为...

    • us用户进程的 CPU 百分比
    • sy系统进程的 CPU 百分比
    • ni是优先升级的 CPU 进程的百分比nice Ni 复活节彩蛋
    • id未使用CPU 的百分比
    • wa是等待I/O 操作的 CPU 进程的百分比
    • hi是 CPU 服务硬件中断的百分比
    • si是 CPU 服务软件中断的百分比
    • ST在虚拟化环境中,CPU资源的一部分被给予每个虚拟机(VM)。操作系统检测到它何时有工作要做,但它无法执行它们,因为 CPU 在某个其他 VM 上很忙。这样损失的时间就是抢断时间