CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。
CPU 使用率
为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机一来的节拍数。每发生一次时间中断,Jiffies 的值就加 1。
Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息,而 /proc/stat 提供的就是系统的 CPU 和任务统计信息。
第一列是 CPU 编号,其他列则表示不同场景下 CPU 的累加节拍数。
诸如 top、ps 之类的性能工具展示的 %user、%nice、%system、%iowait、%steal 等等,它们都代表什么意思呢?
- user(通常缩写为 us),代表用户态 CPU 时间。注意,它不包括下面的 nice 时间,但包括了 guest 时间。
- nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。这里注意,nice 可取值范围是 -20 到 19,数值越大,优先级反而越低。
- system(通常缩写为 sy)&