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程序的关键步骤与基础方法有哪些?

    在Linux环境下编写程序,通常涉及从环境搭建到代码编写、编译调试、部署维护的全流程,Linux作为开源操作系统,其工具链和系统调用为程序开发提供了强大支持,以下是详细步骤和关键要点,开发环境准备Linux程序开发需先安装必要的工具链,以C语言为例,常用工具包括GCC(编译器)、GDB(调试器)、Make(构建……

    2025年10月1日
    9000
  • 如何查看Linux系统中所有用户名和对应的密码信息?

    在Linux系统中,用户名和密码的管理遵循严格的安全机制,直接“查看”所有用户的明文密码是不可行的,因为密码以加密形式存储在/etc/shadow文件中,该文件仅对root用户开放,且加密算法(如SHA-512)确保了密码的不可逆性,我们可以通过合法途径查看系统中的所有用户名,并在特定权限下管理密码(如重置……

    2025年9月13日
    10400
  • 在Linux系统中如何判断网卡是否处于正常工作状态?

    在Linux系统中,判断网卡是否正常工作需要从多个维度进行综合检查,包括网卡硬件识别、驱动加载状态、链路连通性、网络配置及服务运行状态等,以下是详细的排查步骤和方法,帮助用户全面评估网卡的健康状况,基础识别:确认网卡是否被系统检测到首先需要确认Linux系统是否已识别到网卡硬件,这是判断网卡正常工作的前提,使用……

    2025年8月25日
    11800
  • Ubuntu升级后无法联网?

    在 Linux 系统中安装 DHCP 服务器可为网络设备自动分配 IP 地址,简化网络管理,以下是详细安装配置指南,适用于主流发行版(Ubuntu/Debian 和 CentOS/RHEL):准备工作获取 root 权限sudo -i # 或使用 sudo 执行后续命令更新系统# Ubuntu/Debianap……

    2025年7月26日
    11300
  • 安全模式为何是必备选择?

    在Linux系统中,类似Windows”安全模式”的功能通常称为单用户模式(Single-User Mode)或恢复模式(Recovery Mode),它提供最小化系统环境,用于修复系统故障、重置密码或诊断问题,以下是详细操作指南:重置root密码修复损坏的文件系统卸载冲突的内核模块或驱动修复错误的系统配置诊断……

    2025年7月31日
    13800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信