拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

btop:5分钟上手这套终端系统资源监控工具

btop:5分钟上手这套终端系统资源监控工具

btop:5分钟上手这套终端系统资源监控工具

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

btop 是一个跑在终端里的 C++ 系统资源监控工具,CPU、内存、磁盘、网络、GPU 的实时数据全部画成图表,一眼看清系统卡在哪。它是 bashtop 和 bpytop 的 C++ 重写版,覆盖 Linux、macOS 和 FreeBSD / NetBSD / OpenBSD。写代码、调服务、盯训练任务的人,值得把它放在手边。

用包管理器装好 btop,三步完成首次配置

发行版源里就有现成的,优先走这条路:

sudo apt install btop # Ubuntu / Debian sudo dnf install btop # Fedora / RHEL 8+(先装 epel-release) brew install btop # macOS,x86_64 和 ARM64 都有

只有两种情况值得自己编译:要 GPU 监控(部分发行版包没带),或要最新特性。x86_64 Linux 上自编译默认开启 GPU 支持,编译器要求 GCC 14 或 Clang 19 以上:

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

装完可选再做一步sudo make setcap:给二进制加扩展权限。Intel 核显监控、CPU 功耗瓦数、向任意进程发信号,都依赖它。macOS 上对应的是sudo gmake setuid。

启动之后,两个入口能解决 90% 的问题:F1(或?)看完整键位表,F2进选项菜单。鼠标滚轮在进程列表和菜单里都直接可用。

读懂 btop 主界面:四个框各回答什么问题

从上往下分四块:

  • CPU 区(左上):整体使用率历史曲线 + 逐核条形图,回答"哪个核在发热"。频率、温度、单核占用直接可读,右上角还有开机时长和 CPU 功耗(瓦数,依赖 setcap)。负载不均在这块直接暴露。
  • 内存区(左中):物理内存加 swap,紧张时颜色向红端移动。按d切到磁盘视图,逐个挂载点看容量、读写速度和 I/O 忙碌度。
  • 网络区(左下):上下行带宽曲线,默认自动缩放,最低到 10 KiB 也能看清。多网口按b切换设备。
  • 进程列表(右侧):默认按 CPU 排序。↑↓选中、Enter展开详情(完整命令行、线程数、打开文件数),左右方向键换排序列。

完整的快捷键表在F1的帮助菜单里,第一次用建议扫一遍:

打通 btop GPU 监控的三个前提

GPU 打不开时,先排三关:

  1. 二进制本身:必须带 GPU 支持编译。部分发行版包没带;自编译在 x86_64 Linux 上默认开启。
  2. 驱动库到位:NVIDIA 用官方驱动(闭源或开源内核模块均可),nvidia-ml动态库一般随驱动包自带;AMD 需要rocm_smi_lib,发行版没有包时用RSMI_STATIC=true静态链接编译;Intel 核显能读 SYSFS 即可,普通用户需要sudo make setcap授权。
  3. 一个容易忽略的坑:静态链接(STATIC=true)的二进制加载不了动态 GPU 库,GPU 监控直接失效,两者不可兼得。

三关都过了,按5/6/7依次显示 GPU 1 / 2 / 3 的框,出现在主界面上方。不想占独立框位,可以在选项菜单的 cpu 分类里把 GPU 占用 / 功耗 / 频率曲线内嵌进 CPU 框,更紧凑。macOS 上 Apple Silicon GPU 同样支持;三大 BSD 平台没有 GPU 监控。

抓住吃资源的进程:过滤、跟随、处置

四个动作按顺序来:

  1. 过滤:按f(或/)输入关键字,列表只剩匹配的进程;!开头可以用正则。命令行也能一步到位:btop -f "php-fpm"启动就带上过滤条件。
  2. 看结构:按e切进程树视图,父子关系一目了然;浏览器、服务管理器这类多进程应用,用 Spacebar 展开或折叠子进程。
  3. 盯住它:选中进程按F进跟随模式,列表滚动时始终锁定高亮它;按u暂停列表刷新,方便截图或细看某一瞬间。
  4. 动手:t发 SIGTERM 优雅退出,k发 SIGKILL 强杀,s指定任意信号,N调 nice 值。Enter的详情面板里能核对完整命令行再下手。

实战里这套流程是这样的:Web 高峰变慢,但 CPU 内存都"正常"。按d切磁盘视图,发现某块盘的写带宽长期打满;回到进程列表按f过滤php-fpm,再按e看进程树,确认是十几个子进程在疯狂写日志。调整日志级别加轮转策略后,I/O 曲线回落,响应恢复。整个过程 btop 只干了两件事:证明瓶颈在磁盘,再锁定具体进程。

把 btop 界面调成自己的样子

F2选项菜单里所有配置项都能改,改完自动写回~/.config/btop/btop.conf,不用手编辑文件:

  • 主题:内置 Default 和 TTY 两档;仓库 themes/ 目录自带 41 套(dracula、tokyo-night、gruvbox、nord 都有),和 bpytop、bashtop 的主题文件通用。自己写的主题放~/.config/btop/themes就能被识别。
  • 图表符号:braille分辨率最高但挑字体,block折中,tty只用 3 种字符、兼容最好,适合 SSH 直连的纯 TTY 环境。
  • 更新间隔:update_ms默认 2000ms,官方建议不低于这个值;运行时按+/-每次调 100ms,按住连按会加速。
  • 布局预设:按p循环切换,最多存 9 组;shown_boxes决定显示哪些框(cpu / mem / net / proc 加 gpu0~gpu5),关掉不看的模块能直接降低 btop 自身开销。

btop 常见坑位排查:一次对照解决

症状处理
图表显示成方块、错位终端字体缺 Braille 字符(U+2800–U+28FF),换字体,或把graph_symbol改成block/tty
纯 TTY 下显示差命令行加-t强制 TTY 模式,自动切 16 色和 tty 符号;-l可降到 256 色
看不到他人进程详情 / 发信号失败sudo make setcap(macOS 用sudo gmake setuid),或临时sudo btop
btop 自身占 CPU 偏高调大update_ms,或在shown_boxes里关掉不看的模块
Konsole / Yakuake 文本错位关掉终端的 "Bi-Directional text rendering"

平台层面,Linux 功能最完整(NVIDIA / AMD / Intel GPU 全支持);macOS 支持 Apple Silicon GPU,编译依赖可用 Homebrew 装好;三大 BSD 有基础监控、进程和网络,但没有 GPU 监控。更多细节见 manpage.md 和 README 的 Prerequisites 一节。

装好之后先做两件事:按F2把主题和update_ms调到舒服,再按F1把键位表过一遍。下次系统变慢时,打开 btop,按d看一眼磁盘,按e看一眼进程树——瓶颈大多藏在这两处。

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

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

返回列表