bottom 是一个跑在终端里的系统监控面板,主程序 5325600 字节。CPU、内存和交换区,加上网络与磁盘,连温度和进程表都放在一屏,方向键翻,鼠标也能点。

它解决的问题是「看资源占用要开一个大窗口」。任务管理器一开就是几百兆内存加一个图形界面,远程连上去还传不动。bottom 常驻 35.5 MB,在 SSH 里就能画图。

这次在 Windows 10 22H2 上跑了完整一轮:解压 0.04 秒,版本命令 168 毫秒,从下令到画出第一帧 1123 毫秒,空载常驻 35.5 MB。

一个 5325600 字节的监控面板

官方 zip 1926802 字节,解开 9 个条目。主程序直接放在压缩包根目录,不像别的工具套一层版本号目录。

文件字节作用
btm.exe5325600主程序,单文件
zip 整体1926802解压后 9 个条目
completion\5 个脚本bash / zsh / fish / elvish / nushell
README.md约 6 KB安装与配置说明

版本命令 168 毫秒

连跑三次分别是 214 毫秒 / 194 毫秒 / 168 毫秒。第一次的差值同样是杀毒软件扫描新文件。

# 三次耗时 214 / 194 / 168 毫秒
btm --version
bottom 0.14.9

输出只有一行。它是 Rust 写的单文件程序,不需要 .NET 或 Node 这类运行时。

首帧 1123 毫秒

首帧是从 ConPTY 里下令开始,到输出流里出现 CPU 面板字样为止。1123 毫秒里有相当一部分是 cmd 与 ConPTY 建立的开销,程序本身的热启动在 168 毫秒上下。

环节耗时说明
解压0.04 秒9 个条目
--version 第 1 次214 毫秒冷启动
--version 第 3 次168 毫秒趋于稳定
ConPTY 首帧1123 毫秒含 cmd 与 PTY 建立

第一帧要采一次全量数据

CPU 百分比、内存和网络速率,加上磁盘占用与进程表,这五块在首帧都要有值,所以启动时要先把每个数据源读一遍。1123 毫秒里这一轮采样占掉大头。

之后是增量刷新,默认一秒一帧。滚到别的面板不会重新采样,只是换个视图渲染。

五块面板各看什么

默认布局把 CPU 放最大,右边是内存与网络,下面是磁盘与进程表。截图那次 CPU 已经接近打满,内存也用掉九成。

面板实测内容怎么用
CPU每核一条柱状图,右侧标百分比看出是单核打满还是全核平均
MEM / SWP29.3GiB / 31.9GiB 与交换区用量判断是内存不够还是泄漏
NETRX 2.9M/s、TX 1.9M/s 加累计流量确认有没有在偷偷传数据
DISKS各分区占用条与读写速率看是哪个盘在忙
进程表PID / CPU / 内存 / 读写 / 状态定位具体是哪个进程

CPU 面板用柱状而不是折线

终端里画折线要占两三倍行高,柱状一行就够表示一个核。核多的机器上,这个取舍尤其明显。

网络与磁盘面板反过来用折线加面积,因为它们要看趋势而不是瞬时值,默认 1 秒刷新一帧。这两种画法在同一屏里混着用。

它自己占多少资源

监控工具最容易被忽略的一点是自身开销。这次单独起一个进程,等五秒后读它的资源占用。

指标实测值说明
常驻内存35.5 MB空载,只显示面板
线程数11采样与渲染分开
空闲 CPU1.6%一秒一帧的刷新成本
启动到首帧1123 毫秒含终端建立

1.6% 在低配机器上要留意

这个数字是在一台多核机器上测的,摊到单核占比很小。换成两核的旧机器,同样的刷新频率会明显占一个核的份额。

嫌吵就调刷新间隔,配置文件里把 update_rate 从一千毫秒改成两千,成本直接减半,代价是曲线变粗。

和任务管理器的分工

两者不是替代关系,看场景选。

场景任务管理器bottom
本地看总体顺手,点开就有要开终端
远程 SSH传不过去能跑,只要有终端
看历史曲线有,但粗可以按秒级滚动
结束进程右键就杀要进面板选进程再按确认

远程场景才是它的主场

SSH 进一台机器,没有图形界面,想看负载只能靠 top 那种纯文本。bottom 在同样条件下把曲线画了出来,常驻 35.5 MB,这是它和任务管理器最本质的差别。

两者可以并存。日常扫一眼用任务管理器,要盯某台机器的趋势就开 bottom。

四个真会踩的地方

配置文件路径不在程序目录

第一次运行会创建配置,位置在 %APPDATA%\bottom\bottom.toml。改布局、改刷新间隔和配色都在这个文件里,放在程序目录旁边的那个不会被读。

进程名是真实的

面板直接显示进程名,没有打码参数。做截图发出去之前要考虑这一屏里有没有不该公开的东西,这次的处理是把名字那一列糊掉,其余 7 列原样保留。

conhost 里颜色发灰

老版控制台只支持十六色,柱状图看起来是一坨。换 Windows Terminal 才有渐变与真彩色,同一条命令两种观感。

窄窗口下布局会折叠

列数小于八十时右侧面板被挤掉,只剩 CPU 与进程表。窗口拉到一百二十列以上,五块面板才排得开。

什么场景值得上

管远程机器的人最合适。5325600 字节的单文件,scp 上去就能跑,不装包、不依赖桌面环境,1123 毫秒出第一屏。

排查「机器为什么卡」时也顺手。CPU 柱状图能直接看出是单核打满还是全核平均,比看一个总百分比有用。

反过来,只在自己电脑上偶尔看一眼占用,任务管理器够用。多装一个终端工具,收益不明显。

项目数值
exe 字节5325600
zip 字节1926802
常驻内存35.5 MB
空闲 CPU1.6%
首帧1123 毫秒