服务器测评网
我们一直在努力

Linux CPU使用率查看命令有哪些?详细用法是什么?

在 Linux 系统管理中,CPU 使用率是衡量系统性能的核心指标之一,它直接反映了 CPU 资源的利用情况,帮助管理员快速定位性能瓶颈、排查异常进程,以及优化系统负载,本文将详细介绍 Linux 系统中查看 CPU 使用率的常用命令、参数解析及实际应用场景,助您全面掌握 CPU 性能监控技巧。

Linux CPU使用率查看命令有哪些?详细用法是什么?

基础命令:top——动态监控的“第一视角”

top 命令是 Linux 系统中最常用的实时性能监控工具,能够动态展示 CPU、内存、进程等资源的使用情况,默认情况下,top 每隔 3 秒刷新一次数据,适合快速观察系统整体负载变化。

1 基本用法与界面解读

直接输入 top 命令后,会进入交互式界面,顶部显示系统概览信息,中部为进程列表,底部为交互命令提示。

  • 顶部系统信息

    • top - 10:23:45 up 5 days, 3:12: 系统运行时间。
    • users: 2, load average: 0.20, 0.30, 0.15: 当前登录用户数及 1 分钟、5 分钟、15 分钟的平均负载(负载值理想情况下应不超过 CPU 核心数)。
    • Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie: 进程总数及各状态进程数量。
    • %Cpu(s): 5.3 us, 2.1 sy, 0.0 ni, 92.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st: CPU 使用率核心指标,需重点关注:
      • us(user space): 用户空间占用 CPU 百分比,如应用程序计算任务。
      • sy(system): 内核空间占用 CPU 百分比,如系统调用、进程调度。
      • ni(nice): 优先级进程占用 CPU 百分比(通过 nice 命令调整优先级的进程)。
      • id(idle): CPU 空闲百分比,若长期接近 100%,说明 CPU 负载较低。
      • wa(I/O wait): 等待 I/O 操作(如磁盘读写)的 CPU 时间占比,若过高需检查磁盘性能。
      • hi(hardware interrupts)/si(software interrupts): 硬件/软件中断占用 CPU 时间,通常较低,若异常需检查硬件驱动或系统调用。
      • st(steal time): 虚拟机中被其他虚拟机占用的时间(仅宿主机可见)。
  • 中部进程列表:默认按 %CPU 降序排列,展示进程 ID(PID)、用户、CPU 占用、内存占用、命令等信息,可通过 P 键(大写)按 CPU 使用率排序,M 键按内存使用率排序。

2 常用交互命令

  • q: 退出 top
  • c: 切换命令名与完整路径显示。
  • k: 终止指定进程(需输入 PID)。
  • r: 重新设置进程优先级(需输入 PID 和 nice 值)。
  • 1: 切换 CPU 核心视图(单核/多核详情)。

进阶命令:htop——更友好的可视化监控工具

htoptop 的增强版,以彩色界面、交互操作和更丰富的功能著称,适合需要精细化监控的场景,若系统未安装,可通过 sudo apt install htop(Debian/Ubuntu)或 sudo yum install htop(CentOS/RHEL)安装。

1 界面优势与功能亮点

  • 彩色区分:不同颜色代表不同状态(如绿色为正常,红色为高负载)。
  • 功能键提示:顶部直接显示 F1-F10 功能键作用,无需记忆快捷键。
  • 进程树视图:按 F5t 键可展开进程树,直观查看父子进程关系,适合分析依赖进程的资源占用。
  • 实时参数调整:通过 F2 进入设置界面,可自定义列显示(如添加线程数、虚拟内存等)、排序规则等。
  • 鼠标支持:支持鼠标点击选择进程、终止进程,操作更便捷。

2 CPU 相关操作

  • F2 进入设置,选择 Columns 添加 CPU% 列,默认已包含。
  • F3 搜索特定进程,快速定位高 CPU 占用任务。
  • s 键可设置刷新间隔,默认 1.5 秒,适合高频监控场景。

精准查询:ps——静态进程快照

ps 命令用于查看当前进程的静态快照,适合结合 grep 精准筛选特定进程的 CPU 使用情况。

1 常用参数组合

  • ps aux: 显示所有进程的详细信息(包括用户、CPU、内存、命令等),%CPU 列为进程 CPU 占用率。

    Linux CPU使用率查看命令有哪些?详细用法是什么?

    ps aux | grep nginx

    该命令可筛选所有包含 nginx 的进程,并查看其 CPU 占用。

  • ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu: 按自定义格式输出进程,并按 CPU 使用率降序排序。

    • -eo: 指定输出列(进程 ID、父进程 ID、命令、CPU 占用、内存占用)。
    • --sort=-%cpu: 按 CPU 占用率降序排列, 表示降序。

2 结合 sorthead 提取 Top 进程

若需查看 CPU 占用率最高的前 5 个进程,可执行:

ps aux --sort=-%cpu | head -6

head -6 包含表头,实际进程为前 5 行)

历史统计:sar——系统行为分析利器

sar(System Activity Reporter)是 Linux 系统中记录历史性能数据的工具,需安装 sysstat 包(sudo apt install sysstat),通过 sar 可查看过去某段时间的 CPU 使用率趋势,适合分析长期性能问题。

1 常用查看命令

  • sar -u: 查看 CPU 使用率历史记录,默认显示今日数据。

    sar -u -s 10:00:00 -e 18:00:00  # 查看 10:00-18:00 的 CPU 使用率

    输出中包含 %user%system、%iowait等指标,%idle` 低说明 CPU 长期繁忙。

    Linux CPU使用率查看命令有哪些?详细用法是什么?

  • sar -u -f /var/log/sysstat/saXX: 查看指定文件的历史数据(saXX 为按日期命名的文件,如 sa23 表示 23 点的数据)。

2 实时监控模式

sar -u 1 5  # 每秒采样一次,共采样 5 次

输出结果可实时反映 CPU 短期负载变化,适合突发性能问题排查。

专项分析:mpstat——多核 CPU 细分监控

mpstatsysstat 包中的工具,专门用于分析多核 CPU 的每个核心的使用情况,适合定位特定核心的性能瓶颈。

1 基本用法

  • mpstat: 查看所有核心的平均 CPU 使用率。
  • mpstat -P ALL: 查看每个核心的详细使用情况,包括 %usr(用户空间)、%sys(内核空间)、%idle(空闲)等。

2 实例输出解读

$ mpstat -P ALL 1 2
Linux 5.4.0-80-generic (ubuntu)     10/23/23    _x86_64_    (2 CPU)
10:23:45 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:23:46 AM    all    5.02    0.00    1.51    0.00    0.00    0.00    0.00    0.00    0.00   93.47
10:23:46 AM    0     3.03    0.00    1.01    0.00    0.00    0.00    0.00    0.00    0.00   95.96
10:23:46 AM    1     7.07    0.00    2.02    0.00    0.00    0.00    0.00    0.00    0.00   90.91
  • all: 所有核心的平均值。
  • 0/1: 分别代表 CPU0 和 CPU1 的核心数据,若某个核心 usrsys 占用显著高于其他核心,可能是该核心上运行了高负载进程。

综合应用:排查高 CPU 占用场景

当系统 CPU 使用率过高时,可通过以下步骤定位问题:

  1. 初判整体负载:运行 tophtop,观察 load average%Cpu(s) 中的 ussywa 值,若 us 过高,说明用户进程异常;sy 过高需检查内核进程;wa 过高则需优化磁盘 I/O。
  2. 定位高负载进程:通过 ps aux --sort=-%cpuhtop(按 CPU 排序)找到占用 CPU 最高的进程,记录其 PID 和命令名。
  3. 分析进程行为:若为业务进程,检查是否有死循环、算法效率低等问题;若为系统进程(如 kworkerrcu),需结合日志(dmesg)或工具(strace)分析系统调用异常。
  4. 多核异常排查:使用 mpstat -P ALL 检查是否有特定核心负载过高,可能是进程绑定 CPU(taskset 命令)或硬件问题。
  5. 历史趋势分析:通过 sar -u 查看历史数据,判断是突发负载还是持续增长,后者需考虑扩容或优化。

Linux 系统提供了丰富的 CPU 使用率监控工具,从基础的 topps 到专业的 htopsarmpstat,可满足不同场景的需求,掌握这些命令的参数与使用技巧,不仅能快速定位性能瓶颈,还能为系统优化提供数据支撑,在实际操作中,需结合系统负载、进程状态和历史趋势综合分析,避免单一指标误判,从而保障系统的稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » Linux CPU使用率查看命令有哪些?详细用法是什么?