对于操作系统,我们通常监控CPU、内存、网络和磁盘。
CPU
top命令
Top命令是Linux下一个实时的、交互式的,对操作系统整体监控的命令,可以对CPU、内存、进程监控。是Linux下最常用的监控命令。
* PID很小的通常是操作系统的进程。因为启动比较早。
但是我们一般使用它来监控CPU
- us:用户进程占用的CPU百分比 - user
- sy:系统进程占用的CPU百分比 - system
- id:CPU的空闲百分比 - idle
- wa:CPU等待磁盘所占用的百分比 - wait
CPU使用率=100-id%
top 1 命令
将展示每个核的CPU使用情况
按M键可以让进程按照内存使用率排序,按P让进程按照CPU使用率排序
关于CPU使用率的疑问:TOP命令结果中,总体CPU使用率与进程的%CPU值为什么对不上
如上图,PID=1579的进程所占CPU已经是16%了,可是最上面id是88%,使用率才12%,为什么数据对不上?
1. 多核系统的计算基准差异
-
总体CPU使用率(由
id
推导):
id=70%
表示所有核心的平均空闲时间为70%,因此总体使用率为 30%(即100% - id
)。这里的30%是各核心使用率的平均值。例如,在4核系统中,总CPU时间为400%(每核100%),30%的平均使用率意味着实际已用时间为 120%(4核 × 30%
)。 -
进程的
%CPU
值:
表示该进程占用所有核心的总时间百分比。例如,一个进程在4核系统上占用了两个核心的50%时间,则其%CPU
为 100%(2核 × 50%
)。此时,该进程的%CPU
(100%)会超过总体使用率的平均值(30%)。
2. 瞬时值 vs 平均值
-
TOP的
%Cpu
行统计的是全局平均值,而进程的%CPU
可能是瞬时峰值。若某个进程在短时间内占满一个核心(如100%),而其他核心空闲,则瞬时%CPU
为100%,但总体平均值可能仍较低(例如在4核系统中总体使用率为25%)。
3. 超线程(HT)与多核混淆
-
若系统支持超线程(如逻辑核数为8),一个进程可能跨多个逻辑核运行。此时其
%CPU
值可超过100%(如800%表示占满8个逻辑核)