游乐游手机版
首页/系统平台/文章详情

Linux查看每个CPU核心空闲率分布的方法

时间:2026-08-18 07:27
在 Linux 系统中运行 top 后,直接按主键盘上的数字 1,就可以快速查看每个 CPU 核心的实时空闲率分布。比如 %Cpu0 这一行末尾的 id 数值如果是 99 7,就表示 CPU0 当前大约有 99 7% 处于空闲状态;而命令 mpstat -P ALL 1 1 显示的,则是各个 CPU

在 Linux 系统中运行 top 后,直接按主键盘上的数字 1,就可以快速查看每个 CPU 核心的实时空闲率分布。比如 %Cpu0 这一行末尾的 id 数值如果是 99.7,就表示 CPU0 当前大约有 99.7% 处于空闲状态;而命令 mpstat -P ALL 1 1 显示的,则是各个 CPU 核心在当前采样周期内的平均 %idle。再查看 /proc/stat 时,cpuN 对应行中的第 5 个字段就是 idle 时间,但它不能直接当作 CPU 使用率来理解,必须通过两次采样并结合差值计算,才能更准确地判断真实的 CPU 占用情况。还需要特别注意:%idle 较高,并不代表系统一定没有性能瓶颈,还应结合 %iowait、%st 以及进程状态一起综合分析。

Linux怎么查看每核心空闲率分布

top 按 1 查看每个 CPU 核心空闲率最直观

直接执行 top,然后按主键盘上方的数字 1(不是小键盘区域),页面顶部会立即显示 %Cpu0、%Cpu1 等多行信息——每一行末尾的 id 数值就是对应 CPU 核心当前的空闲率。例如 %Cpu0 :0.0 us,0.3 sy,0.0 ni, 99.7 id,表示 CPU0 当前空闲率为 99.7%。

常见误操作:

  • 误按小键盘 1:通常没有反应,必须使用主键盘数字行上的 1
  • 只看到第一行 %Cpu(s) 就停止查看:这一行显示的是所有 CPU 核心的平均值,可能会掩盖单核负载过高或各核心空闲率不均衡的问题
  • 在 top -b -n 1 非交互模式下再按 1:不会生效,因为 -b 批处理模式不支持按键切换视图

mpstat -P ALL 输出包含 %idle 的更精确统计

mpstat 查看的不是瞬时数值,而是一个采样周期内的平均空闲率,因此更适合用来判断 CPU 核心负载是否长期不均衡。常用命令如下:

mpstat -P ALL 1 1:每秒采样一次,只获取 1 次快照,输出每个 CPU 核心的 %idle 字段

mpstat -P ALL 2:每 2 秒刷新一次,持续输出结果(需要按 Ctrl+C 手动中断)

注意参数陷阱:

  • 漏写 -P,误写成 mpstat ALL:会报错 Unknown option 'A'
  • 写成 mpstat -p ALL(小写 p):旧版本可能兼容,但新版 sysstat 通常要求使用大写 -P
  • %idle 高 ≠ 没有瓶颈:如果某个核心的 %iowait 同时也很高(例如 >20%),说明它在等待磁盘或 I/O 资源,并不是真正意义上的“空闲”

/proc/stat 解析后可以计算任意精度的 CPU 空闲率差值

如果你需要编写监控脚本、配置告警规则,或者希望获得比 mpstat 更细粒度的时间分辨率,那么 /proc/stat 才是最可靠的数据来源。每一行 cpuN 后面的第 5 个字段就是 idle 时间(单位为 jiffies,通常 1 jiffy = 0.01 秒)。

快速对比两个时刻的 CPU 核心空闲程度:

grep '^cpu[0-9]' /proc/stat → 记录各核心第 5 列数值 → 等待几秒后再次执行 → 差值越大的核心,通常表示越空闲

更真实的 CPU 使用率计算公式为:(total_jiffies_diff - idle_jiffies_diff) / total_jiffies_diff * 100%。不要直接参考 idle 的绝对值,必须基于两次采样之间的差值来计算。

容易忽略的点:

  • /proc/stat 中的 cpu 行表示所有核心的总和,只有 cpu0、cpu1 等才表示单个 CPU 核心,不能混在一起分析
  • 字段顺序虽然固定,但非常容易数错:依次是 user、nice、system、idle、iowait……第 5 个字段才是 idle,不是第 4 个
  • 不同 Linux 内核版本的字段数量可能略有差异(例如是否包含 guest 字段),更稳妥的方式是使用 awk 提取第 5 列:awk '/^cpu[0-9]/ {print $5}' /proc/stat

不要把 idle 当成判断剩余 CPU 资源的唯一指标

CPU 空闲率高,并不等于系统运行状态就一定健康。例如:

  • 某个核心的 %idle 达到 95%,但 %iowait 也高达 80%:说明它实际上在等待 I/O,系统已经出现卡顿或阻塞
  • 所有核心的 %idle 都很高,但 load a verage 却明显升高:这通常意味着存在不可中断睡眠进程(D 状态)阻塞,可以在 top 中观察 S 或 D 状态的进程
  • 在虚拟机环境中,如果 %st(steal time)很高:说明 CPU 时间被宿主机占用或“偷走”,即使 %idle 很高也不能说明系统资源充足

如果要准确判断“当前系统还剩多少可用 CPU 资源”,应当同时结合 %idle、%iowait、%st 以及进程状态一起分析,而不能只盯着单一的空闲率数字。

来源:https://www.php.cn/faq/2987827.html
上一篇Linux中如何配置日志远程同步记录方法 下一篇Linux查看网络套接字收发缓冲区数值的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。