☰
btop|终端里的 GPU 监控,一次编译三家通吃
2026/11/2 2:05:55 网站建设 项目流程

btop|终端里的 GPU 监控,一次编译三家通吃

【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop

渲染任务突然变慢,你手边却只有一个top,连 GPU 利用率都看不到——这就是 btop 要解决的场景:一个轻量级终端资源监控器,把 CPU、内存、磁盘、网络和 GPU 利用率实时曲线放进同一个终端窗口。本文按"跑通 → 用起来 → 排障"的顺序讲,读完你能带走:

  • 一条带 GPU 支持的 btop 编译命令
  • GPU 面板是否生效的判定标准(看哪行输出、按哪个键)
  • 三条最常用的配置项和几个马上能试的快捷键
  • 一个四行排障速查表

能力全景:btop 的 GPU 监控到什么粒度

btop 的数据分三层走:

  • 采集层:CPU/内存/磁盘/网络从/proc和 sysfs 读取;GPU 数据在src/linux/btop_collect.cpp里按厂商走不同动态库——NVIDIA 走 nvidia-ml,AMD 走 rocm_smi_lib,Intel 核显走src/linux/intel_gpu_top/下内嵌的采集模块(该目录还带一份 CMake 构建配置)。
  • 渲染层:src/btop_draw.cpp把采样值画成终端图形字符曲线、显存条和温度读数。
  • 交互层:src/btop_menu.cpp提供 F1/F2 菜单和全部快捷键,所有选项都能从 UI 里改。

一句话概括它的差异点:同一份二进制覆盖 NVIDIA、AMD、Intel 三家——多数同类工具只覆盖其中一两家。

从零到跑通

环境自检

这一步确认编译器版本和厂商库齐不齐:

  • 编译器要GCC ≥ 14 或 Clang ≥ 19(C++23,构建脚本会检查std::expected、std::ranges等特性);
  • NVIDIA 用官方驱动(闭源或开源内核模块均可),自带 nvidia-ml 动态库;AMD 需系统里有rocm_smi_lib;Intel 核显额外要求能读 SYSFS,靠make setcap解决。

构建与安装

x86_64 Linux 上 GPU 支持默认开启,Debian/Ubuntu 系装好构建依赖后直接编译安装:

# 构建依赖(Debian/Ubuntu 示例;Fedora 用 dnf install 对应包) sudo apt install build-essential coreutils sed git lowdown # 克隆并编译 git clone https://gitcode.com/GitHub_Trending/bt/btop.git && cd btop make && sudo make install

需要动手的构建参数只有三个:

参数作用什么时候需要
GPU_SUPPORT=false关闭 GPU 支持(x86_64 Linux 默认开)目标机不带显卡时省依赖
RSMI_STATIC=true把 rocm_smi_lib 源码打进lib/rocm_smi_lib/静态编译AMD 卡且发行版没装 rocm_smi_lib
STATIC=true全静态链接目标机环境差异大;注意静态编译会禁用 GPU 支持

验证生效

先看版本号,启动后验证面板:

# 版本信息里应能看到 GPU 支持字样,没有就回头查编译参数 btop -V

判定标准:启动 btop 后按数字键5,界面上出现显卡面板(利用率曲线、显存条、温度/功率)即算成功。没出现?先查编译时GPU_SUPPORT是否生效、对应厂商库是否装好;Intel 核显还要确认做过make setcap。

场景实战:三个盯 GPU 的时刻

推理任务盯显存。现象是吞吐掉、GPU 利用率却不高。这时看 GPU 面板的显存条和利用率:显存贴近上限,btop 看显存能立刻确认是 OOM 边缘在反复重建上下文,而不是算力不够——加显存或降 batch size,方向完全不同。

长批处理盯温度功率曲线。温度/功率的斜率比单点值有用:曲线一路缓升说明散热跟不上负载,可以提前降频或加大风扇;GPU 占用 100% 但温度曲线走平,多半是数据供给没喂满,瓶颈在 CPU 或磁盘。

多卡核对负载。数字键5、6、7依次切换第一到第三块卡(5~9对应 gpu0~gpu4),各卡曲线摆在一起看:高低差明显就是任务没均分,据此改调度;+/-键每次增减 100 ms 刷新间隔,长曲线用 2000 ms 以上采样更平滑。

个性化与进阶

配置都在 F2 选项菜单里,落到~/.config/btop/btop.conf,四个最常被改的参数:

  • shown_boxes:手动指定默认显示的盒子,值里加gpu0(多卡加gpu1、gpu2),启动后 GPU 面板不用再按5;
  • graph_symbol:曲线符号,braille分辨率最高、tty最省字体;
  • update_ms:刷新间隔,默认 2000 ms,低于 100 ms 的取值会被拒;
  • temp_scale:温标,celsius/fahrenheit/kelvin/rankine四选一。

主题放themes/目录,40 多套官方配色;想换风格只需改主题文件里的几个色值,比如 themes/horizon.theme。

踩坑速查

现象根因修复
按5没有 GPU 面板发布/静态二进制未启用 GPU 支持(动态加载厂商库与静态链接互斥)从源码重编,make GPU_SUPPORT=true
Intel 核显无数据普通用户读 SYSFS 无权限sudo make setcap(非默认安装前缀时加PREFIX=...)
AMD 卡缺功耗/频率发行版没打包 rocm_smi_lib源码放lib/rocm_smi_lib后make RSMI_STATIC=true重编
编译报缺std::expected/std::ranges编译器版本不足,C++23 新特性未就绪换 GCC ≥ 14 或 Clang ≥ 19

仓库在https://gitcode.com/GitHub_Trending/bt/btop,需要 Intel 侧更细粒度指标或新版 GPU 行为变化时,先看仓库里的CHANGELOG.md——v1.4.0 起 Intel 支持才纳入主线。

【免费下载链接】btopA monitor of resources项目地址: https://gitcode.com/GitHub_Trending/bt/btop

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询