在 Linux 系统中,查看 CPU 使用情况是性能分析和故障排查的重要环节。查看 CPU 使用情况,使用 top 命令或者 htop 命令来查看。

top 命令是 Linux 的一个快速动态进程监视器,可以实时显示特定系统监视器核心指标,示例如下:

1. top 命令

top
top - 19:30:10 up  2:33,  1 user,  load average: 0.44, 0.47, 0.45
Tasks: 183 total,   1 running,   1 sleeping,  182 stopped,   0 zombie
Cpu(s):  3.6%us,  0.3%sy,  0.0%ni, 95.7%id,  0.3%wa,  0.0%hi,  0.1%si,  0.0%st

从上面的情况来看,CPU 当前使用率为 3.6%us ,这部分使用率代表在用户空间内的 CPU 时间 ,另外的 0.3%sy 指代表系统空间内的 CPU 时间, 95.7%id 表示 CPU 当前空闲时间占总时间百分比。

核心功能:动态显示系统资源使用情况,默认按 CPU 占用排序。

关键指标

  • %Cpu(s) 行:

    • us:用户态进程占用 CPU 时间(非 root)。
    • sy:内核态进程占用 CPU 时间。
    • ni:调整过优先级的用户进程占用时间。
    • id:空闲时间(Idle)。
    • wa:等待 I/O 完成的时间(iowait)。
    • hi:硬件中断时间。
    • si:软件中断时间。
    • st:虚拟化环境下被偷取的时间(steal time)。

操作

  • 按 1 展开多核 CPU 详情。
  • 按 P 以 CPU 使用率排序。
  • 按 Shift + H 显示线程级数据。

2. htop 命令

使用 htop 查看 CPU 使用情况,它可以显示更详细的信息,包括内存使用情况、进程、CPU 使用率等。使用htop 命令后,可以看到 CPU 的状态:

htop
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   3 root           20   0    8572    768    584 S  0.0  0.1   0:00.01 init
   4 root           20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd

优势:比 top 更友好的交互式界面,支持颜色标记、鼠标操作和垂直/水平滚动。

htop 命令还可以读到进程的 PID , USER 名,PR 和 NI 的优先级以及 CPU 的占用率等等,从而更加直观地了解各个进程和 CPU 的使用情况。

多核 CPU 分析

3. mpstat 命令

mpstat -P ALL 1  # 每秒报告所有 CPU 核心的使用情况

来源:sysstat 工具包(需安装)。

  • 输出解析

    • %usr:用户态 CPU 使用率。
    • %nice:调整优先级的用户进程。
    • %sys:内核态 CPU 使用率。
    • %iowait:I/O 等待时间。
    • %irq:硬件中断时间。
    • %soft:软件中断时间。
    • %idle:空闲时间。
  • 用途:诊断 CPU 核心负载不均问题。

综合性能工具

4. vmstat 命令

vmstat 1  # 每秒输出一次系统状态
  • 核心指标

     

    • r:等待运行的进程数(可判断 CPU 是否饱和)。
    • us, sy, id, wa:同 top 的 CPU 分类。
    • cs:上下文切换次数(过高可能因进程争抢 CPU)。

<!---->

  • 特点:结合 CPU、内存、I/O 综合分析。

查看 CPU 使用情况,有助于 Linux 管理员深层次地探究性能状况,找出进程所占系统资源的大小,检查 CPU 运行率是否过高,查看 CPU 是否存在僵尸进程等,可以很方便的查看关键的系统指标,进而优化 Linux 系统的性能。


打盹的猴子
6 声望0 粉丝