CPU使用率:用户、系统、空闲加起来总是100%?

CPU使用率:用户、系统、空闲加起来总是100%?

https://www.opsdash.com/blog/cpu-usage-linux.html

CPU 使用率的组成部分

那么有哪些“任务类型”呢?最明显的是“用户”和“系统”:

系统:CPU正在运行内核代码。这包括设备驱动程序和内核模块。

User:CPU正在用户模式下运行代码。这包括您的应用程序代码。请注意,如果应用程序尝试从磁盘读取或写入网络,它实际上会在内核执行该工作时进入睡眠状态,并再次唤醒应用程序。

Idle:当内核实在无事可做时,就等于浪费了这段时间。从技术上讲,当可运行队列为空并且没有 I/O 操作正在进行时,CPU 使用率被标记为空闲。

我是否正确理解用户、系统和空闲百分比加起来总是 100%?

答案1

可能的状态取决于操作系统(Linux 或 Unix、变体和版本)。

所有可能的状态值总和为 100%,因为它们是这样计算的。

除了用户、系统和空闲等主要状态外,一个值得注意的状态是,其级别可能很重要被盗,其中 CPU 被同一硬件上运行的另一个虚拟机使用。其他状态是用于等待某些 I/O 完成(等待)以及软件和硬件中断的状态。

答案2

事实上,没有。还有其他类型的 CPU 使用情况。如果执行sar -u ALL可以看到cpu使用情况

00:00:01        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest     %idle
00:10:01        all     89.42      0.00      0.28      0.00      0.00      0.00      0.02      0.00     10.28

正如作者指出的,还有其他类型的 cpu 使用情况,包括用户空间程序 (%usr)、niced 进程时间 (%usr)(不确定这是如何计算的)、内核空间程序 (%sys)、等待时间I/O(磁盘)(%iowait)、从一个 cpu 窃取周期所花费的时间 (%steal) 以及中断请求(%irq、%soft)。如果 cpu 没有执行这些操作,则将其视为空闲 (%idle)。这些的总和应始终为 100%。

相关内容