一文搞定 btop++:5 分钟看懂 CPU、内存和磁盘的性能瓶颈
【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop
btop++ 是一个 C++23 编写的终端资源监控工具,覆盖 Linux、macOS 和三大 BSD。它把 CPU、内存、磁盘 I/O、网络和 GPU 的实时数据画成滚动图表,配一个游戏式的菜单系统,让只会基本命令行的新手也能 5 秒定位性能瓶颈。
装好跑起来:三种安装方式从快到慢
方式一:包管理器(最快,推荐)
大多数发行版的软件源里都有 btop,一条命令搞定,不需要任何编译依赖:
# Debian / Ubuntu sudo apt install btop # Fedora / RHEL sudo dnf install btop # Arch sudo pacman -S btop # macOS brew install btop方式二:源码编译(想要最新特性或 GPU 监控时用这个)
源码编译在 Linux x86_64 上默认开启 GPU 支持(对应 CMakeLists.txt 里的BTOP_GPU选项),装到当前用户目录不需要 sudo:
git clone https://gitcode.com/GitHub_Trending/bt/btop cd btop make # 编译,需要 GCC 14+ 或 Clang 19+ make install PREFIX=~/.local # 装到用户目录,免 sudo方式三:官方预编译二进制
从发布页下载btop-版本号-x86_64-linux-musl.tbz解压后执行sudo make install即可。musl 静态编译的包在 2.6.39 以上的老内核上也能跑,适合环境较老的机器。
装完先跑一下验证,能显示版本号就说明装好了,再直接运行btop进入主界面:
btop --version btop图注:btop++ 主界面,左列 CPU / 内存 / 网络图表,右列进程列表,选中进程后下方显示详细信息
它到底能干嘛:四个核心能力
资源图表 + 进程列表:CPU、内存、磁盘、网络一屏看完
场景:服务器突然变慢,但你不知道是 CPU 满了、内存不够,还是磁盘 I/O 卡住了。
- CPU 盒子里逐核心显示使用率,还能看频率、温度,多核负载不均衡一眼就能发现
- 磁盘盒子显示每个分区的读写速度和 I/O 占用
- 网络盒子自动缩放纵轴,千兆跑满和百兆慢速都能清晰呈现
- 鼠标全支持:点菜单、滚动进程列表都行,不强制背快捷键
进程树视图 + 信号操作:排查失控进程不用开第二终端
场景:一个 Java 服务 OOM 了,你需要先找到它、看清它的子进程,然后发信号杀掉。
- 按
t在扁平列表和树形视图之间切换,父子进程关系不用翻文档 - 按
/输入关键字筛选进程,p直接看选中进程的详细统计 - 按
k或s向选中进程发送 SIGKILL 或任意信号,全程不切出 btop++
图注:按 m 弹出的 btop++ 主菜单,切换主题、预设和排序都在这里
主题系统:30+ 套配色开箱即用
场景:你喜欢深色终端,但默认主题颜色太淡。
- themes/ 目录内置 dracula、nord、tokyo-night、gruvbox 等 30 多套主题,按
m打开主菜单即可切换 - 主题文件是简单的
.theme文本,自己写一个扔进~/.config/btop/themes/就能生效 - 图表符号可选
braille(分辨率最高)、block、tty(兼容性好),适配不同终端字体
全功能可配置:F2 选项菜单改完自动存盘
场景:你觉得刷新太快、图表太花哨,想调一调。
- 按
F2打开选项菜单,所有配置项都能在界面里改,改完自动写入~/.config/btop/btop.conf - 支持
presets布局预设,最多存 9 套"显示哪些盒子、用什么符号"的组合 vim_keys = true开启后可以用h/j/k/l方向键操作列表
三个真实场景:从症状到定位只要几步
场景一:Web 服务响应慢,但 CPU 内存都正常
现象:高峰时段 Nginx 响应变慢,top里 CPU 只有 30%,看不出问题。
操作:1. 运行btop盯住磁盘盒子;2. 发现磁盘 I/O 长期打满,用/筛选php-fpm进程;3. 切树视图确认是日志写入导致的。
结果:调整日志级别和轮转策略后,磁盘 I/O 从 95% 回落到 10% 左右,响应时间恢复正常。
场景二:Java 服务内存持续增长
现象:内存使用率逐小时爬升,最终触发 OOM Killer。
操作:1. 按/筛出 java 进程,盯住 MEM 列;2. 开启进程树视图确认是同一棵进程树在涨;3. 记录 PID 后用p看线程数和详细统计。
结果:内存增长模式清晰可辨,配合 jstack 定位到泄漏线程,修复后内存曲线从持续上行变为平稳波动。
场景三:GPU 利用率低,训练任务跑不满
现象:深度学习训练速度低于预期,GPU 显存占了一半但利用率只有 30%。
操作:1. 源码编译带 GPU 支持的 btop++;2. 启动后 GPU 盒子与 CPU、内存图表同屏显示;3. 对比发现 CPU 使用率 90%,判断瓶颈在数据预处理。
结果:增加数据加载 worker 后 GPU 利用率提升到 80%,训练吞吐明显加快。
进阶调优:GPU 监控、快捷键和配置微调
GPU 监控开启方法
场景:想监控 NVIDIA / AMD / Intel 显卡的利用率和温度。
- 前提:官方 NVIDIA 驱动 +
nvidia-ml库,或 AMD 的rocm_smi_lib,Intel 核显需要 SYSFS 读权限 - Linux x86_64 上
make默认已启用 GPU 支持,要关掉才需要make GPU_SUPPORT=false
Intel 核显还需要给二进制文件加扩展权限,装完源码编译版后执行:
sudo make setcap # Intel GPU 监控和 CPU 功率读取需要快捷键肌肉记忆
场景:每天用 btop++ 排障,想少按几次鼠标。
F1帮助菜单、F2选项菜单、m主菜单,三个入口记住就够- 进程操作高频键:
/筛选、t树视图、k杀进程、s发信号、Esc返回 - 完整键位随时按
F1查看,不用翻文档
图注:btop++ 帮助菜单,列出全部快捷键与功能说明
配置文件微调(btop.conf)
场景:想让每次启动就是"少刷新、少盒子、暗色主题"的固定形态。
配置文件在~/.config/btop/btop.conf,首次运行自动生成,常用键位如下:
# ~/.config/btop/btop.conf 关键项 color_theme = "Dracula" # 主题名,对应 themes/ 里的文件 update_ms = 2000 # 刷新间隔,官方建议 2000ms+ graph_symbol = "block" # braille / block / tty 三选一 shown_boxes = "cpu mem proc" # 控制显示哪些监控盒 proc_tree = true # 启动即树形进程视图更多命令行参数和细节见 manpage.md。
图注:btop++ 的 TTY 模式,16 色终端下依然完整可用
避坑指南:症状 → 修复
症状:图表里的点阵字符显示成方块或乱码 →修复:终端字体缺少点字(Braille)字符,换个支持该字符集的字体,或在配置里改graph_symbol = "block"。
症状:某些进程显示不到 CPU / 内存明细(/proc权限受限)→修复:源码编译版执行sudo make setcap,或直接sudo btop。
症状:GPU 盒子根本不出现 →修复:确认二进制是带 GPU 支持编译的(GPU_SUPPORT=true),并装好对应驱动库;静态链接 glibc/musl 的版本不支持 NVIDIA/AMD GPU 监控。
症状:Web 终端或 SSH 客户端里中文、宽字符错位 →修复:改用本地终端,或加-t参数强制 TTY 模式(btop -t),只用 16 色和安全字符。
收尾
btop++ 把"系统资源监控"这件需要翻命令的事,压缩成开一个窗口、看几块图表的事。现在就apt install btop(或brew install btop)跑起来,按F1把快捷键过一遍,下次服务器变慢你就能 5 秒内说出瓶颈在哪。🚀
【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考