btop 完整指南:在 Linux 终端里做 GPU 监控
【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop
跑完一个训练任务,第一反应往往是打开 btop 确认 GPU 是否真的满载。btop 是一个 C++ 编写的终端监控工具,界面覆盖 CPU、内存、磁盘、网络与进程,v1.3 起在 Linux 上内置 GPU 监控,NVIDIA、AMD、Intel 三家卡都能读取,全程不需要图形化套件。下面把安装、读数和排障这条路径完整走一遍。
三分钟装好并跑起来 📦
环境要求不复杂,记住三条:
- 编译器:GCC 14 或 Clang 19 及以上(代码基于 C++23)
- 构建工具:make + coreutils/sed,或 CMake 3.25+
- 显卡侧:对应厂商驱动已装好,动态库随驱动一起提供(差异见下文品牌速查表)
克隆仓库并编译安装:
git clone https://gitcode.com/GitHub_Trending/bt/btop cd btop make && sudo make installx86_64 Linux 上 GPU 支持默认开启,无需额外传参;想关掉才需要显式执行make GPU_SUPPORT=false。Intel 核显用户安装后补一步权限设置:
sudo make setcap验证方式:启动btop,按5切换第一块 GPU 面板。能看到卡名、利用率曲线、显存和温度,说明整条数据链路已经通了。
动手看效果:界面指标解读
GPU 面板的信息基本分四类,建议带着问题去读,而不是扫一遍就关掉:
- 利用率曲线:持续 100% 表示算力饱和。若任务耗时没有同比下降,瓶颈就在 GPU 本身或数据喂给它的速度;曲线呈锯齿状,则多半是 IO 或 CPU 预处理没跟上。
- 显存(used/total):重点盯占用接近上限的时刻。大模型、大场景一旦显存触顶,轻则频繁卡顿,重则直接 OOM,这是训练和渲染失败最常见的信号。
- 温度与功耗:看温度趋势判断散热是否需要加强;功耗可与 TDP 对比,估算实际负载强度。
- 核心频率:图形/显存频率明显掉档时,结合温度一起看即可定位是过热降频还是功耗墙。
多卡机器上,5、6、7依次切换前三块 GPU 面板;配置项shown_boxes最多支持gpu0到gpu5共六块卡。注意 Intel 卡目前只暴露利用率、功耗和频率三项指标,这是 v1.4.0 引入该支持时的既定范围。
各品牌使用速查
| 品牌 | 前置依赖 | 可读取指标 | 常见坑 |
|---|---|---|---|
| NVIDIA | 官方驱动(闭源或开源均可)+ nvidia-ml 动态库 | 利用率、显存、温度、功耗、频率、PCIe 吞吐 | 静态链接的预编译包不带 GPU 支持,需源码编译 |
| AMD | rocm_smi_lib(ROCm SMI 库) | 利用率、温度、功耗、频率、PCIe | 发行版未打包该库时,编译传RSMI_STATIC=true静态链接 |
| Intel | C 编译器 + SYSFS 读权限(make setcap) | 利用率、功耗、频率 | 普通用户无权限时数据全 0,别误判成没有卡 |
三家的采集逻辑都集中在 src/linux/btop_collect.cpp,其中 Intel 部分内嵌了一份 src/linux/intel_gpu_top/ 的实现;各厂商的行为细节以 README.md 的 GPU compatibility 一节为准。
进阶玩法:配置、主题与快捷键 ⌨️
- 配置文件:
~/.config/btop/btop.conf(TOML 格式,首次运行自动生成)。GPU 相关的关键项:shown_boxes(显式列出要显示的面板,含gpu0–gpu5)、shown_gpus(nvidia amd intel apple自由组合)、show_gpu_info(Auto/On/Off)、graph_symbol_gpu(GPU 面板图形符号)、update_ms(刷新间隔,毫秒)。 - 命令行覆盖:
-u <ms>设刷新间隔、-p <id>载入预设、-t强制 TTY 16 色模式、-d输出调试日志、--themes-dir指定主题目录。 - 主题:themes/ 目录下有 40 余个
.theme文件,在配置里改color_theme即可切换;自己写的主题放进~/.config/btop/themes会被自动发现。 - 快捷键:
F2打开选项菜单,F1是快捷键总表,5/6/7切换 GPU 面板,q退出。
排障速查
| 症状 | 原因 | 解决 |
|---|---|---|
按5没有 GPU 面板 | 二进制未启用 GPU 支持(静态链接或无 GPU 的预编译包) | 从源码重新编译,x86_64 Linux 上默认即启用 |
| Intel 卡数据全 0 或不显示 | 无 SYSFS 读权限 | sudo make setcap(或make setuid、以 root 运行) |
| AMD 功耗/显存字段为空 | rocm_smi_lib 缺失或版本不匹配 | 安装 ROCm 包,或编译时传RSMI_STATIC=true |
| 曲线字符错乱、缺块 | 终端字体缺少 Braille 点阵字符 | 把graph_symbol改成block或tty,或换带该字符集的字体 |
| 静态链接后 GPU 功能消失 | GPU 支持依赖动态加载厂商库 | 去掉STATIC=true,改用动态链接 |
btop 适合两类场景:长任务期间开一个终端窗口盯住 GPU 利用率、显存与温度;以及给没有桌面环境的服务器提供轻量入口,替代更重的图形化监控栈。源码与更新记录都在 gitcode 的 GitHub_Trending/bt/btop 仓库中:
git clone https://gitcode.com/GitHub_Trending/bt/btop【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考