性能

perf 是 Linux 系统中强大的系统级检测服务。本文讨论了它如何与功耗分析相关。

注意:如果您还没有阅读功耗分析概述,建议您阅读一下。这可能有助于您更好地理解本文档的部分内容。

能耗估算

perf 可以访问 Intel RAPL 能耗估算。以下示例显示了如何为此目的调用它。

sudo perf stat -a -r 1 \
    -e "power/energy-pkg/" \
    -e "power/energy-cores/" \
    -e "power/energy-gpu/" \
    -e "power/energy-ram/" \
    <command>

-a 是必要的;它表示“所有核心”,如果没有它,所有测量结果都将为零。-r 1 表示<command> 执行一次;可以使用更高的值来获取变化。

输出将如下所示。

Performance counter stats for 'system wide':

   51.58 Joules power/energy-pkg/     [100.00%]
   14.80 Joules power/energy-cores/   [100.00%]
    9.93 Joules power/energy-gpu/     [100.00%]
   27.38 Joules power/energy-ram/     [100.00%]

5.003049064 seconds time elapsed

从输出中不清楚,但存在以下关系。

energy-pkg >= energy-cores + energy-gpu

测量单位为焦耳,通常不如瓦特实用。

由于这些原因,rapl 通常是测量 Linux 上功耗的更好工具。

唤醒 {#Wakeups}

perf 也可用于进行唤醒的高上下文分析