用 btop++ 快速搞定系统监控:从告警到定位的完全实操手册
【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop
凌晨两点告警群炸了:一台生产机响应变慢。你 SSH 上去打开top,满屏滚动数字却找不到元凶。btop++ 是一个跑在终端里的系统监控工具,CPU、内存、磁盘、网络、进程一页看全,适合需要在服务器上快速定位性能问题的开发者和运维。
先跑起来:包管理器安装与首次启动
最省事的走法是包管理器,一条命令装好,装完直接敲btop进主界面:
sudo apt install btop btop上面以 Ubuntu/Debian 为例,Fedora 换成sudo dnf install btop,macOS 用brew install btop。
第一屏被分成四块:上方是 CPU 历史曲线,右侧列出每个核心的占用、频率、温度和负载平均值;左下是内存与磁盘分区的使用率;右下是网络接口上下行曲线;右边整列是进程列表,选中某个进程后,中间会弹出它的状态、常驻内存、IO 读写和父进程详情:
接下来你可以用它做三件事:盯住每个 CPU 核心、揪出吃内存的进程、切到 GPU 面板。下面按使用频率带你看一遍。
核心能力拆解:最常用的四个操作
盯住每个 CPU 核心
总体占用看着不高,但其实是某个核在满负荷?上方区域把 C0 到 C7 每个核心的占用、频率、温度单独列出,配合右下角的 Load AVG 和核心数对比,基本能判断是计算过载还是单核任务打满。按1可随时显示/隐藏 CPU 面板;进程列表里按c切换每核 CPU 视图,能看到每个进程落在哪些核上。小提示:load 明显高于核心数多半是计算型瓶颈,只有个别核满载而 load 正常,则怀疑单线程任务。
揪出吃内存的进程
几百个进程混在一起,肉眼找谁在吃内存不现实。按f或/进入过滤框,输入关键字(比如python)立刻收窄范围;用左右方向键切换排序列(PID、进程名、CPU、MemB 等),r反转排序方向。选中进程后按Enter,中间区域直接显示它的状态、常驻内存、IO 和父进程。小提示:过滤关键字以!开头会按正则匹配,适合批量排除 worker 类进程。
切换进程树视图并跟随可疑进程
扁平列表看不出进程是谁拉起来的。按e切换到树形视图,父子关系一目了然;Space展开/折叠选中节点,C展开/折叠它的子进程,E全部折叠或展开。更实用的是按F跟随选中进程——它掉出视野后依然保持高亮,适合盯一个反复出现又转瞬即逝的进程。小提示:配合u暂停进程列表,可以冻结画面慢慢检查。
切到 GPU 面板
跑训练任务或渲染任务时,光看 CPU 内存不够。按5显示第一块 GPU 的面板,6、7依次是第二、三块,面板里给出利用率、显存、功耗和频率。官方预编译二进制没有编译 GPU 支持,如果你的包按 5 没反应,需要源码重编,后文踩坑部分有命令。
一个完整排障流程:生产机突然变慢,5 分钟定位元凶
场景:一台生产机响应明显变慢,你要在五分钟里告诉开发同学该查哪个服务。
- btop 启动先看 CPU 盒:总体占用高不高?右下角 load 是否超过核心数?占用高且 load 高是计算过载;占用不高但 load 高,多半在等 IO。
- 进程列表切到按 CPU 排序(右方向键),看前三名;如果元凶是明显的常驻服务,直接跳到第 4 步。
- 过滤收窄:按f输入进程名片段;怀疑内存问题时按
%切换列表的内存显示模式,从内存维度再看一遍。 - 按 e 切树形视图看完整调用链:如果父进程是某个 worker 池,瓶颈大概率在这个服务内部。按F跟随它,列表滚动时它始终高亮,方便观察趋势。
- 对元凶按 Enter 看详情:状态、常驻内存、IO 读写、父进程都在这。确认是卡死的进程后,t发 SIGTERM,k发 SIGKILL,
s可以发送任意信号。
如果到这里还没定位:按d把内存盒切到磁盘视图,看各块盘的读写速度——某块盘长期打满说明瓶颈在存储层,而不是某个进程本身;网络侧则用b/n切换接口看上下行曲线。
进阶配置与个性化:改 4 个最实用的配置项
这些选项都可以直接在F2打开的选项菜单里点选并保存;改~/.config/btop/btop.conf文件也一样,程序内按Ctrl+R重新加载即可,不用重启:
update_ms:刷新间隔。默认 2000ms 是官方推荐值,采样质量更好;进程特别多觉得 btop 自身有开销时调大:
update_ms = 3000运行时用+/-也能以 100ms 步进微调。
graph_symbol:图表符号。braille 曲线最细腻,block 兼容性更好,tty 面向纯文本终端:
graph_symbol = block改成 tty 会自动切到 16 色方案,适合 SSH 到配置较老的生产机上。
color_theme:颜色主题。内置四五十个主题,全部文件在 主题目录 里,名字就是文件名去掉后缀:
color_theme = dracula自定义主题放到~/.config/btop/themes/下即可被识别。
show_swap:内存盒是否显示交换空间。服务器没配 swap 或不想看它时关掉,内存盒更聚焦:
show_swap = False踩坑速查:高频问题对照
图表里出现方框、字符错位—— 终端字体缺 braille 字符,是字体问题不是 btop 的 bug。最直接的解法是强制 TTY 模式,16 色加纯文本符号,兼容性最好:
btop -t启动直接报错 No UTF-8 locale—— 环境里没配 UTF-8 locale。确定终端能渲染的话,强制启动:
btop --force-utf看不到别人的进程、发送信号被拒—— 权限不足。最快是直接用 root 跑;源码安装的用户再执行sudo make setcap设置扩展权限,之后不用 sudo 也能给任意进程发信号,Intel GPU 和 CPU 功耗监控同样依赖这一步:
sudo btop按 5 没反应,GPU 面板出不来—— 这个二进制没编译 GPU 支持,官方预编译包不带。需要就源码重编,x86_64 Linux 上 GPU 默认启用:
git clone https://gitcode.com/GitHub_Trending/bt/btop cd btop && make GPU_SUPPORT=true其余命令行参数(预设、过滤、刷新率等)都能在 manpage.md 里查到。
现在回到凌晨那台变慢的机器:btop 一开,谁在空转、谁在吃内存、卡在哪块盘上,一眼就有数。下次告警,你不用再和满屏滚动的 top 对眼了 🚀
【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考