作为站长或开发者,你一定经常需要排查服务器或本地机器的性能问题。通常的做法是:开 htop 看 CPU,开 iostat 看磁盘,开 nettop 看网络,开 vm_stat 看内存……每个工具一个终端窗口,手忙脚乱。
现在有了一个更优雅的方案:syswatch——一个 Rust 写的系统诊断 TUI,用 12 个标签页覆盖了你需要的所有系统信息。
syswatch 是什么
syswatch 的自我介绍很到位:「当你感觉哪里不对劲时打开的那个终端——在你去拿 htop、iostat、nettop、powermetrics 和一堆笔记本之前。」
它是一个单机系统诊断终端界面(TUI),用 Rust 编写,支持 macOS 和 Linux。它的兄弟项目 NetWatch 专注于网络诊断。
12 个标签页
| 按键 | 标签页 | 替代工具 |
|---|---|---|
| 1 | Overview(总览) | 所有子系统的仪表盘 |
| 2 | CPU | htop、top、mpstat |
| 3 | Memory(内存) | free、vm_stat、htop 内存面板 |
| 4 | Disks(磁盘) | iostat、iotop |
| 5 | Filesystems(文件系统) | df -h、df -i、mount |
| 6 | Procs(进程) | htop、ps auxf、pstree |
| 7 | GPU | ioreg AGXAccelerator / /sys/class/drm |
| 8 | Power(电源) | pmset、ioreg AppleSmartBattery |
| 9 | Services(服务) | launchctl list / systemctl list-units |
| 0 | Net(网络) | nettop、iftop |
| – | Timeline(时间线) | 无等价工具——会话日志 + 拖拽回放 |
| + | Insights(洞察) | 无等价工具——英文异常卡片 |
两个独特功能
Insights 标签页
这是 syswatch 最有特色的功能。它通过启发式算法分析整个会话的历史数据,自动检测异常并以英文卡片形式展示:
- Swap 抖动(Swap thrash)
- 失控进程(Runaway processes)
- 磁盘将满(Disk full)
- 内存压力(Memory pressure)
- 高负载(High load)
- 僵尸进程(Zombie processes)
每张卡片会指出问题所在,并建议你切换到哪个标签页查看详细信息。
Timeline 标签页
Timeline 记录了整个会话的历史快照。你可以用 ← / → 键来回放历史状态——不是只看 CPU 曲线,而是整个应用的所有面板都回到那个时间点的状态。这对排查间歇性问题非常有用。
安装方法
前提条件
- Rust 1.75+
- macOS 或 Linux
从源码编译
git clone https://github.com/matthart1983/syswatch.git
cd syswatch
cargo build --release
./target/release/syswatch
使用方法
# 默认 1Hz 刷新
syswatch
# 2Hz 刷新
syswatch --tick 500
# 直接打开进程标签页
syswatch --tab procs
快捷键
1-9→ 切换标签页0 - +→ 网络 / 时间线 / 洞察Tab / Shift-Tab→ 循环切换标签↑ / ↓→ 选择行s→ 切换排序方式← / →→ 回放历史 / 回到实时Home / End→ 最早采样 / 实时p→ 暂停q / Ctrl-C→ 退出
设计哲学
syswatch 有一个很清晰的设计哲学,它明确列出了自己的反目标:
- 不是多主机监控工具(那是 Prometheus/Grafana 干的事)
- 不是守护进程(只做一次性诊断)
- 不是交互式修复工具(只读,不帮你 kill 进程)
- 不是日志产品
- 不是为了截图好看的漂亮图表
它诚实地面对平台限制——不需要 sudo 就能展示可用信息,标注哪些功能需要特权,不会伪造数据。
适合谁
- 站长:排查服务器性能问题时,一个工具搞定
- 开发者:本地开发环境的性能监控
- 运维:快速诊断单机问题
- macOS 用户:替代系统活动监视器和一堆命令行工具
与 htop 的区别
htop 专注于 CPU 和进程,而 syswatch 覆盖了整个系统——包括 GPU、电源、服务、网络、磁盘 I/O 等。Insights 的异常检测和 Timeline 的会话回放是 htop 完全没有的功能。如果你只是看 CPU 占用,htop 够用;如果你需要全面诊断,syswatch 更合适。
注意事项
- 项目处于早期阶段(v0.3.1),部分功能还在开发中
- 只支持单机监控,不支持远程
- GPU 信息在 macOS 上通过 system_profiler 获取,在 Linux 上通过 sysfs DRM 获取
- CPU 开销目标:空闲时 < 0.5%
本文参考来源:












GitHub – TauricResearch/TradingAgents


GitHub – docusealco/docuseal

暂无评论内容