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 所有核心总和,后续 cpu0、cpu1 等为单核。
    • 列含义:user、nice、system、idle、iowait、irq、softirq 的累计时钟周期数。
    • 计算利用率公式:
      利用率 = (总时间 - 空闲时间) / 总时间 * 100%

sar 命令(历史数据分析)

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

图形化工具(可选)

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

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


场景推荐

  • 快速检查:top 或 htop。
  • 多核分析: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中常用nets……

    2025年9月30日
    22700
  • Linux系统如何调用C语言程序?

    在Linux操作系统中,C语言作为系统级开发的核心语言,其调用与执行过程涉及环境搭建、代码编写、编译链接及系统交互等多个环节,本文将详细说明Linux环境下C语言的完整调用流程,从基础环境准备到高级系统调用实现,帮助读者全面掌握Linux与C语言的协同工作方式,需确保系统已安装C语言编译工具链,Linux主流发……

    2025年9月19日
    21900
  • Linux服务重启的命令与操作步骤是什么?

    在Linux系统中,服务是后台运行的关键程序,负责提供特定功能(如Web服务、数据库服务等),当服务配置更新、出现故障或需要优化性能时,重启服务是最常见的操作之一,本文将详细介绍Linux系统中重启服务的多种方法,包括主流的systemctl命令、传统的service命令,以及底层的init.d脚本操作,并说明……

    2025年9月17日
    23700
  • Linux文件夹如何高效存储与查找?

    Linux如何存储文件夹?Linux通过文件系统(如Ext4、XFS、Btrfs)管理文件夹,核心机制包括:Inode 索引节点每个文件夹对应一个唯一的inode,记录权限、时间戳、物理位置等元数据,文件夹实际存储为特殊文件是其包含的文件/子目录名及对应inode列表,目录结构采用树状层级,从根目录()开始逐级……

    2025年6月19日
    21800
  • Linux下如何高效搜索文件?find与grep命令用法详解!

    在Linux系统中,高效搜索文件是日常管理和运维的核心技能之一,Linux提供了多种命令工具,支持基于文件名、内容、属性等不同维度的搜索,掌握这些工具能显著提升工作效率,本文将详细介绍常用搜索命令的使用方法、参数及场景示例,基于文件名或属性的搜索:find命令find是Linux中最强大的文件搜索工具,支持按文……

    2025年8月31日
    23900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信