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命令行工具

Download history 6/week @ 2024-05-20 4/week @ 2024-05-27 3/week @ 2024-06-10 51/week @ 2024-07-29 163/week @ 2024-08-12

214 每月下载量

MIT 许可证

405KB
2.5K SLoC

pumas

crate documentation minimum rustc 1.74 rust 2021 edition

logo

苹果硅 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

使用箭头键在选项卡之间切换。按 Escqx 退出。

截图

概述选项卡:利用率和功耗的全球指标。

Overview dark

Overview light

CPU 选项卡:每个集群的 CPU 利用率(带简短历史记录)和频率(带简短历史记录)

CPU-dark

CPU-light

GPU 选项卡:GPU 利用率(带简短历史记录)和频率(带简短历史记录)

GPU-dark

GPU-light

SoC 选项卡:关于 SoC 的其他信息

SoC

启动

Startup

使用

$ 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