btop:在终端里查看 NVIDIA / AMD / Intel 显卡监控数据
2026/9/8 21:42:42 网站建设 项目流程

btop:在终端里查看 NVIDIA / AMD / Intel 显卡监控数据

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

btop 是一款运行在终端里的资源监控器,它的 GPU 监控模块能同时覆盖 NVIDIA、AMD 与 Intel 三家显卡,把利用率、显存、温度、功耗等指标直接画在 TUI 面板上。当渲染任务跑飞、游戏掉帧时,你不必靠猜——打开 btop 的显卡监控面板,就能判断瓶颈是否真的出在 GPU 上。

项目速览

btop 的定位是轻量级终端 TUI 资源监控器,CPU、内存、网络、进程之外,GPU 面板是 Linux 平台上的一个亮点。GPU 部分大致分三层:最底层的硬件抽象由 src/linux/btop_collect.cpp 统一收口,负责屏蔽不同发行版与内核的采集差异;中间是品牌适配层,NVIDIA 走 nvidia-ml 动态库,AMD 走 ROCm SMI 库,Intel 则直接读/sys/class/drm下的 PMU 性能计数器,后两者对应的采集逻辑分别封装在厂商库和 intel_gpu_top 模块里;最上层由 btop_draw.cpp 统一渲染成曲线与数值面板。整体设计不依赖驱动厂商的臃肿套件,这也是它适合放进 SSH 会话使用的原因。

从克隆到运行:安装全流程

先确认环境:内核建议 5.4 以上,三家厂商的官方驱动都要正常装好——NVIDIA 需要随驱动附带的nvidia-ml动态库,AMD 需要rocm_smi_lib(很多发行版有现成包),Intel 集显则无需额外库,但读取性能计数器需要提升权限。x86_64 Linux 下编译时 GPU 支持默认开启,一般直接make即可;如果发行版没有打包 ROCm SMI,可以静态链接该库,源码需放进lib/rocm_smi_lib目录,否则编译会失败。

克隆并编译安装的核心命令如下:

git clone https://gitcode.com/GitHub_Trending/bt/btop cd btop make sudo make install sudo make setcap

其中setcap给 btop 授予扩展能力,Intel 显卡监控和 CPU 功耗读取都依赖这一步;不需要 Intel 支持的用户可跳过。常用编译参数一览:

参数说明适用场景
GPU_SUPPORT=false关闭 GPU 支持(x86_64 默认开启)无独显/核显、仅需 CPU 监控
RSMI_STATIC=true静态链接 ROCm SMI 库AMD 显卡且发行版未打包 rocm_smi_lib
DEBUG=true降低优化等级并输出调试日志排查监控数据异常
STATIC=true静态编译注意:静态链接下 NVIDIA/AMD GPU 支持失效

装好后运行btop,若 GPU 面板出现曲线,说明安装成功;底部状态栏会显示主题与更新间隔等信息。

上手体验:GPU 面板怎么看

打开 btop 后,GPU 面板默认可能未展开。数字键570分别控制第一到第四块显卡面板的显示与隐藏,多卡机器按数字键逐一切出即可;按F2进入选项菜单,可把 GPU 利用率曲线叠加到 CPU 面板里显示(show_gpu_info)。面板内每条曲线对应一个采样周期,右侧列出显存用量/总量、温度、功耗与核心频率等瞬时值,刷新间隔可用+/-微调——观察长时间渲染时调慢一些,快速排查瓶颈时调快一些更直观。

三大品牌:各能拿到什么数据

品牌依赖接口可采集指标
NVIDIAnvidia-ml(NVML)动态库利用率、显存用量/总量、温度、功耗、核心与显存频率
AMDrocm_smi_lib(ROCm SMI)利用率、显存、温度、功耗(部分旧卡或旧库版本缺功耗)
Intel/sys/class/drm+ PMU 性能计数器利用率、功耗、频率(较新内核可细分到引擎级)

NVIDIA 是覆盖最完整的一家,闭源与开源内核驱动均已验证可用,注意必须使用官方驱动。AMD 走 ROCm SMI 通道,功耗字段依赖库版本,数据不全时通常先升级rocm_smi_lib。Intel 是三家中最"底层"的实现:btop 通过 PMU 计数器逐引擎统计忙闲,结构定义见 intel_gpu_top.h,粒度比单纯的"整机利用率"细一档:

struct engine { const char *name; unsigned int class; struct pmu_counter busy; // 忙碌 struct pmu_counter wait; // 等待 struct pmu_counter sema; // 信号量等待 };

配置与主题:把面板调成你的风格

行为配置集中在~/.config/btop/btop.conf,与 GPU 相关的几个关键项:

shown_boxes="cpu mem net proc gpu0" show_gpu_info=On graph_symbol_gpu=braille updates=2000

shown_boxes决定哪些面板常驻,graph_symbol_gpu可选 braille / block / tty 三种曲线符号,updates是刷新间隔(毫秒)。外观方面,themes/目录提供了三十多个主题文件,每个文件用theme[变量名]=颜色的形式定义标题、曲线、高亮等配色,在F2菜单里即可切换。深色终端里可以试试 themes/horizon.theme,它的低饱和底色配紫色高亮,长时间盯着 GPU 曲线不容易疲劳;偏好亮色背景的话 themes/adwaita.theme 更清爽。

实战场景

🎮 游戏掉帧定位,逻辑是"看指标 → 下结论 → 调设置":

  • 利用率曲线长时间贴着 100% 且帧时间上升:GPU 是瓶颈,降分辨率或特效
  • 显存逼近总量上限:显存不足,降低贴图质量与抗锯齿等级
  • 利用率忽高忽低而 CPU 面板负载很高:瓶颈在 CPU,看进程列表找出吃核的进程

🎬 视频渲染(Blender、Premiere 等):

  • 观察显存占用趋势:接近上限前调整队列规模或输出规格,避免中途爆显存
  • 看温度与功耗曲线是否同步抬升后回落:回落点往往是撞温度墙,该检查散热了
  • 对比 CPU 与 GPU 两条负载曲线:若 GPU 长期空闲而任务在跑,说明加速选项没生效

排障速查

现象可能原因处理命令 / 措施
NVIDIA 显卡不显示nvidia-ml 缺失或编译时关了 GPU 支持nvidia-smi验证驱动;make GPU_SUPPORT=true重编
AMD 功耗等数据缺失rocm_smi_lib 未装或版本过旧装发行版包,或源码放入lib/rocm_smi_libmake RSMI_STATIC=true
Intel 集显无数据普通用户无 PMU 计数器读权限sudo make setcap(或sudo make setuid

btop 把三家显卡的监控收进同一块终端面板,少装驱动套件,多一分跨平台一致。仓库地址:git clone https://gitcode.com/GitHub_Trending/bt/btop。下一期打算写 btop 的主题定制与进程面板,感兴趣可以留意 CHANGELOG 的更新。

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

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

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

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

立即咨询