13 个版本
0.2.4 | 2024 年 8 月 16 日 |
---|---|
0.2.3 | 2024 年 4 月 12 日 |
0.2.2 | 2024 年 3 月 18 日 |
0.2.1 | 2024 年 2 月 24 日 |
0.0.8 | 2023 年 7 月 24 日 |
243 在 命令行工具 中
214 每月下载量
405KB
2.5K SLoC
pumas
苹果硅 Mac 的 nvtop 风格命令行工具:即 M1、M2 等。这基本上是 Rust 中对 asitop 的重实现。
类型 | 指标 | 可用 | 评论 |
---|---|---|---|
利用率 | CPU 集群、GPU、ANE | ✓ | 历史值和当前值。ANE 利用率通过功耗测量 |
功耗 | CPU、GPU、ANE、总封装 | ✓ | 历史值和当前值 |
频率 | CPU 集群、GPU | ✓ | 当前平均值 |
频率 | CPU 集群、GPU | 计划 | 驻留分布直方图 |
内存 | RAM & 交换:大小和利用率 | ✓ | 苹果从 powermetrics 中移除了内存带宽。 |
为了收集数据,Pumas 同时使用 macOS 内置的 powermetrics
工具和 sysinfo
库(与 htop
相同的数据)。
内置的 powermetrics
允许访问各种硬件性能计数器。请注意,Pumas 仅因 powermetrics
需要root权限运行,所以需要 sudo
才能运行。
Pumas 轻量级且对性能影响最小。
安装
brew install graelo/tap/pumas
或
cargo install pumas
快速入门
sudo pumas run
使用箭头键在选项卡之间切换。按 Esc
、q
或 x
退出。
截图
概述选项卡:利用率和功耗的全球指标。
CPU 选项卡:每个集群的 CPU 利用率(带简短历史记录)和频率(带简短历史记录)
GPU 选项卡:GPU 利用率(带简短历史记录)和频率(带简短历史记录)
SoC 选项卡:关于 SoC 的其他信息
启动
使用
$ pumas --help
A power usage monitor for Apple Silicon.
Usage: pumas <COMMAND>
Commands:
run Run the power usage monitor
generate-completion Print a shell completion script to stdout
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Pumas 可以在两种模式下运行:UI 模式(默认)和 JSON 模式。
$ pumas run --help
Run the power usage monitor
Usage: pumas run [OPTIONS]
Options:
-i, --sample-rate <SAMPLE_RATE_MS>
Update rate (milliseconds): min: 100 [default: 1000]
--history-size <HISTORY_SIZE>
History buffer size: default: 128 [default: 128]
--accent-color <ACCENT_COLOR>
Accent color for labels: ASCII code in 0~255, default: green [default: 2]
--gauge-fg-color <GAUGE_FG_COLOR>
Gauge foreground color: ASCII code in 0~255, default: green [default: 2]
--gauge-bg-color <GAUGE_BG_COLOR>
Gauge background color: ASCII code in 0~255, default: white [default: 7]
--history-fg-color <HISTORY_FG_COLOR>
History foreground color: ASCII code in 0~255, default: blue [default: 4]
--history-bg-color <HISTORY_BG_COLOR>
History background color: ASCII code in 0~255, default: white [default: 7]
--json
Print metrics to stdout as JSON instead of running the UI
-h, --help
Print help (see more with '--help')
-V, --version
Print version
JSON 模式
在 JSON 模式下,Pumas 将将指标作为 JSON 流式传输到 stdout,而不是运行 UI。然后您可以将指标传递到 jq
,或创建 Prometheus 的 node-exporter 等。
例如,以下命令将在每个样本间隔流式传输第一个 CPU 集群的第三个 CPU 核心的活动比率
$ sudo pumas run --json | jq '.metrics.e_clusters[0].cpus[2].active_ratio'
0.04624276980757713
0.11764705926179886
^C
JSON 架构和示例在 架构 目录中。
指标来源
sysinfo
库用于测量以下内容:
- 每个集群的CPU利用率
- 每个核心的CPU利用率
- RAM & 交换分区使用量和大小
powermetrics
库用于测量以下内容:
通过powermetrics
的CPU利用率(已移除:在M2芯片上不正确)- 通过活动驻留的GPU利用率
- CPU & GPU 频率
- 封装/CPU/GPU/ANE 能耗
sysctl
库用于测量以下内容:
- CPU 名称
- CPU 核心数
system_profiler
库用于测量以下内容:
- GPU 核心数
由于系统上似乎没有官方来源,一些信息是估算的并且硬编码的
- CPU、GPU & ANE 最大功耗
许可证
根据 MIT 许可证 许可。
贡献
除非你明确声明,否则,根据 MIT 许可证定义的,你提交的任何有意包含在工作中的贡献都应按 MIT 许可,不得附加任何额外条款或条件。
依赖项
~12MB
~207K SLoC