菜鸟科技网

Linux查看CPU使用率有哪些常用命令?

在Linux系统中,监控CPU使用率是系统管理和性能优化的基础操作,通过命令行工具可以快速获取CPU的实时负载、进程级占用等关键信息,以下是常用命令的详细说明及使用方法。

Linux查看CPU使用率有哪些常用命令?-图1
(图片来源网络,侵删)

top命令:动态实时监控

top是Linux中最常用的进程监控工具,默认按CPU使用率排序,实时显示进程信息,其核心参数及功能如下:

  • 交互操作:按P键按CPU使用率降序排序,按M键按内存使用率排序,按c切换命令全路径显示,按k终止指定进程。
  • 头部信息解读
    • %us:用户空间进程占用CPU百分比。
    • %sy:内核空间占用CPU百分比。
    • %id:CPU空闲百分比。
    • %wa:等待I/O的CPU时间百分比。
    • load average:1分钟、5分钟、15分钟系统负载均值,超过CPU核心数则表示高负载。

示例top -b -n 1(非交互模式,输出一次后退出)可生成CPU使用率快照。

htop命令:增强版top(需安装)

htop以彩色界面和树状结构展示进程信息,更直观易用:

  • 功能特点:支持鼠标操作、进程树可视化(F5切换)、实时绘制CPU使用率图表。
  • 安装方法:在Debian/Ubuntu系统中运行sudo apt install htop,在RHEL/CentOS中运行sudo yum install htop

示例:直接输入htop即可进入交互界面,按F2可自定义显示列。

Linux查看CPU使用率有哪些常用命令?-图2
(图片来源网络,侵删)

mpstat命令:多核CPU详细统计

mpstat来自sysstat包,用于分析每个CPU核心的使用情况:

  • 常用参数
    • -P ALL:显示所有CPU核心的统计信息。
    • -u:仅显示CPU使用率(默认)。
    • 1 5:每秒更新一次,共更新5次。

示例mpstat -P ALL 1 3会三次显示每个核心的实时CPU占用,帮助定位高负载核心。

vmstat命令:虚拟内存与CPU综合统计

vmstat提供进程、内存、I/O、CPU等多维度数据:

  • CPU相关列
    • us:用户进程占用CPU。
    • sy:内核进程占用CPU。
    • id:CPU空闲。
    • wa:等待I/O。

示例vmstat 2 5每2秒刷新一次,共5次,关注us+sy是否接近100%判断CPU繁忙程度。

Linux查看CPU使用率有哪些常用命令?-图3
(图片来源网络,侵删)

/proc/stat文件:原始CPU数据读取

直接读取系统虚拟文件/proc/stat可获取未处理的CPU数据:

  • 关键字段cpu行包含用户态(user)、内核态(system)、空闲(idle)等CPU时间(单位:jiffies)。
  • 计算公式:CPU使用率 = (1 - idle / total) * 100%,其中total = user + nice + system + idle + iowait + ...

示例:通过grep 'cpu ' /proc/stat结合awk计算实时CPU使用率。

glances命令:系统资源全景监控(需安装)

glances是跨平台监控工具,以仪表盘形式展示CPU、内存、磁盘、网络等信息:

  • 功能:支持自动排序、警告阈值设置、日志导出。
  • 安装sudo pip install glances(需Python环境)。

示例glances -s启动服务器模式,glances -c IP连接远程监控。

ps命令:进程级CPU占用查询

ps可查看特定进程的CPU使用情况:

  • 常用参数
    • -eo pid,ppid,cmd,%cpu,%mem:按指定格式显示进程ID、父进程ID、命令、CPU占用、内存占用。
    • --sort=-%cpu:按CPU使用率降序排序。

示例ps --sort=-%cpu -eo pid,cmd,%cpu | head -n 10查看CPU占用最高的10个进程。

相关问答FAQs

Q1: 为什么top显示的CPU使用率与mpstat不一致?
A: 两者统计粒度不同,top默认显示所有CPU的平均值,而mpstat -P ALL可查看单个核心的占用,若系统存在多核负载不均(如某个核心被进程独占),会导致整体平均值与单核数据差异较大,top的%wa(I/O等待)可能被部分工具计入CPU使用率,需结合iostat排查I/O瓶颈。

Q2: 如何持续监控CPU使用率并记录到日志?
A: 可使用top -b -n 1 | grep "Cpu(s)" >> cpu.log每秒记录一次CPU使用率(需配合while循环),或用sar -u 1 -o cpu.dat(需安装sysstat)将数据保存到二进制文件,后通过sar -f cpu.dat查看历史记录,对于长期监控,建议使用cron定时任务或collectd等工具自动化采集。

分享:
扫描分享到社交APP
上一篇
下一篇