Linux如何高效监控CPU利用率?

Linux系统监控CPU利用率可通过top、htop、sar等命令行工具及/proc/stat等系统文件实现,适用于性能优化与故障排查等场景。

top 命令(实时动态视图)

  • 作用:实时显示进程及CPU占用。
  • 操作
    top
  • 解读
    • %Cpu(s) 行:us(用户进程)、sy(系统内核)、id(空闲)的百分比。
    • 1 键:展开多核CPU详情。
    • Shift + P:按CPU使用率排序进程。
  • 退出:按 q 键。

htop 命令(增强版 top

  • 安装(如未预装):
    sudo apt install htop  # Debian/Ubuntu
    sudo yum install htop  # CentOS/RHEL
  • 操作
    htop
  • 优势
    • 彩色界面,直观展示每核利用率。
    • 鼠标支持,可横向滚动查看完整命令。

vmstat 命令(系统资源概览)

  • 作用:报告进程、内存、CPU等整体状态。
  • 操作(每2秒刷新一次,共5次):
    vmstat 2 5
  • 关键列
    • r:等待运行的进程数(>CPU核心数表示过载)。
    • us/sy/id:同 top 中的用户、系统、空闲占比。

mpstat 命令(多核CPU监控)

  • 安装(属于 sysstat 包):
    sudo apt install sysstat  # Debian/Ubuntu
    sudo yum install sysstat  # CentOS/RHEL
  • 操作(每核详细统计):
    mpstat -P ALL 2  # 每2秒刷新,显示所有核心
  • 输出示例
    CPU   %usr  %nice  %sys  %iowait  %irq  %soft  %idle
    0     5.2   0.0    1.3    0.2     0.0   0.1    93.2
    1     8.1   0.0    2.0    0.1     0.0   0.2    89.6

/proc/stat 文件(原始数据源)

  • 作用:直接读取内核提供的CPU时间数据。
  • 操作
    cat /proc/stat
  • 解读
    • 首行 cpu 所有核心总和,后续 cpu0cpu1 等为单核。
    • 列含义:usernicesystemidleiowaitirqsoftirq 的累计时钟周期数。
    • 计算利用率公式
      利用率 = (总时间 - 空闲时间) / 总时间 * 100%

sar 命令(历史数据分析)

  • 安装:同 mpstatsysstat 包)。
  • 操作
    • 查看当天历史记录(默认每10分钟采样):
      sar -u  # 整体CPU使用率
      sar -P ALL  # 每核详情
    • 实时监控(每2秒刷新):
      sar -u 2

图形化工具(可选)

  • GNOME 系统监视器
    • 桌面环境直接运行 gnome-system-monitor
  • Netdata

    实时Web仪表盘,支持Docker部署,提供详细性能可视化。


场景推荐

  • 快速检查tophtop
  • 多核分析mpstat -P ALL
  • 历史趋势sar
  • 脚本开发:解析 /proc/stat

安全提示

  • 除读取 /proc/stat 外,其他命令通常无需 sudo 权限。
  • 避免频繁执行高开销命令(如每秒调用 ps),可能加剧负载。

引用说明: 参考 Linux 官方文档(kernel.org)、sysstat 手册页(github.com/sysstat/sysstat)及 IBM 开发者文档(developer.ibm.com),数据计算逻辑遵循 Linux 内核 procfs 设计规范。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8815.html

(0)
酷番叔酷番叔
上一篇 2025年7月27日 03:36
下一篇 2025年7月27日 03:56

相关推荐

  • Linux下解压.tar文件的操作步骤是怎样的?

    .tar文件是Linux/Unix系统中常见的归档文件格式,它将多个文件或目录打包成一个单一文件,但本身不进行压缩(区别于.tar.gz、.tar.bz2等压缩格式),解压.tar文件主要依赖tar命令,该命令功能强大,支持多种选项来控制解压行为,本文将详细介绍Linux下解压.tar文件的方法、常用参数、场景……

    2025年9月9日
    13900
  • Linux如何查看文件夹的所有者?

    在Linux系统中,文件夹所有者(即文件所有者)是文件权限管理的核心概念,决定了用户对文件夹的读取、写入和执行权限,查看文件夹所有者有助于排查权限问题、管理文件系统安全以及进行系统审计,本文将详细介绍Linux中查看文件夹所有者的多种方法,包括基础命令、高级选项及实际应用场景,基础查看命令:ls命令ls是Lin……

    2025年9月9日
    10500
  • Linux系统中如何设置环境变量PATH?

    在Linux系统中,PATH环境变量是一个重要的配置项,它定义了系统在执行命令时会搜索哪些目录的可执行文件,当用户在终端输入一个命令(如ls、cd等)时,系统会按照PATH中指定的目录顺序依次查找对应的可执行文件,如果找到则执行,否则提示“command not found”,正确设置PATH环境变量能够让系统……

    2025年9月25日
    11600
  • linux如何上传jar包

    Linux中,可使用scp命令上传jar包,格式如

    2025年8月10日
    12700
  • Linux6系统设置中文显示与输入法的详细操作步骤有哪些?

    在Linux 6系列系统中(如CentOS 6、RHEL 6等),设置中文环境涉及语言包安装、系统变量配置、字体支持及输入法调整等多个环节,需逐步操作以确保中文显示、输入及系统界面正常,以下是详细步骤及注意事项:检查当前语言环境在设置中文前,先通过命令查看系统当前的语言环境配置,打开终端,执行以下命令:loca……

    2025年9月24日
    12500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信