Linux查看CPU和内存占用 top与htop命令实操

风明小哥_4054

风明小哥_4054

2026-05-03

612人浏览

原创

直接运行top可查看实时cpu和内存占用:第三行%cpu(s)中id值为空闲率,100%减之得实际使用率;第四行avail mem为真正可用内存;按1键展开多核cpu使用率,按m键按内存排序,top -b -n 1可抓取快照。

linux查看cpu和内存占用 top与htop命令实操

top 命令怎么看 CPU 和内存占用

直接运行 top 就能看到实时 CPU 和内存使用率,但默认界面里关键指标藏在顶部几行,容易被忽略。

第一行末尾的 load average 是系统负载,不是 CPU 使用率;真正要看的是第三行以 %Cpu(s) 开头的部分,比如 0.7 us, 0.3 sy, 99.0 id —— 这里的 id 是空闲率,100% 减去它才是实际使用率。

第四行 KiB Mem 后面的 used 是已用物理内存,avail Mem 才是真正可用的内存(含可回收缓存),比 free 值更有参考价值。

  • 按 1 键可展开显示每个 CPU 核心的使用率(多核机器必须按这个才看得清是否单核打满)
  • 按 M 键能按内存占用排序,快速定位吃内存的进程
  • top -b -n 1 可用于脚本中一次性抓取快照,避免交互式卡住
  • 如果提示 bash: top: 未找到命令,CentOS/RHEL 系统需先执行 yum install -y procps-ng

htop 比 top 多了什么,值不值得装

htop 不是 top 的替代品,而是补足它交互短板的工具:颜色、鼠标支持、滚动查看全部进程、树状视图、直接搜索过滤 —— 这些对排查问题效率提升明显。

但它默认不预装,且依赖 EPEL 源(RHEL/CentOS)或第三方仓库(如 Ubuntu 的 universe)。安装后启动,CPU/内存使用率以彩色条形图形式直接显示在顶部,比数字更直观。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • RHEL/CentOS:先 yum install -y epel-release,再 yum install -y htop
  • Ubuntu/Debian:sudo apt install htop
  • 启动后按 F3 输入进程名即可高亮定位,F4 能过滤出匹配项(不是高亮,是只留匹配进程)
  • 按 F5 切换树状视图,一眼看出哪个父进程拉起了大量子线程
  • 终端乱码?检查 locale 输出是否含 UTF-8,否则 htop 图形符号会显示异常

怎么用 top/htop 快速定位高 CPU 或高内存进程

高 CPU 不等于问题进程一定排在第一行——top 默认按 CPU% 排序,但若某进程刚启动、还没积累足够采样时间,可能暂时排不上去;htop 同理,需确认当前排序列确实是 CPU% 或 MEM%。

更可靠的做法是结合字段筛选和时间维度判断:

  • top 中按 P(大写)确保按 CPU% 降序,看前 3 个进程的 %CPU 是否持续 >80%
  • htop 中按 P 键或点击 CPU% 列标题,再按 F6 确认排序生效
  • 内存方面,top 的 RES(常驻内存)比 VIRT 更反映真实压力;htop 默认显示 MEM%,但注意它基于 RES / total memory 计算,不含缓存
  • 若发现某个进程 %CPU 很低但 TIME+(累计 CPU 时间)暴涨,说明它长期运行且可能有逻辑缺陷

为什么有时 top 显示 CPU 使用率很低,系统却卡顿

因为 top 和 htop 展示的只是“CPU 时间分配”结果,不是全貌。常见陷阱有:

  • %wa(iowait)高:CPU 在等磁盘 I/O,此时 %id 可能仍很高,但进程实际被阻塞 —— 需配合 iotop 或 iostat -x 1 查看
  • %st(steal time)高:宿主机上其他虚拟机抢走了 CPU,本机看到的 %id 是虚高的
  • 短时脉冲:top 默认 3 秒刷新,突发性 CPU 尖峰可能被平均掉;改用 top -d 0.5 缩短间隔可捕捉
  • 内核线程干扰:默认 top 显示所有线程,kthreadd、ksoftirqd 等内核线程占 CPU 高,往往指向硬件或驱动问题,而非用户进程

真正卡顿的时候,别只盯着 %CPU 数字,先看 %wa 和 %st 是否异常,再查 I/O 和虚拟化层 —— 这一步跳过,就容易在用户进程里白忙活。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

3149

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

2308

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

1240

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

1198

4

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

2023.09.05

1356

5

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2023.09.20

2138

7

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

2023.09.20

3440

8

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

2023.09.22

15615

6

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习