Powertop

出自 ArchWiki

Powertop 是由英特尔提供的工具,用于在用户空间、内核和硬件中启用各种节电模式。它可以监控进程,并显示哪些进程正在利用 CPU 并将其从空闲状态唤醒,从而能够识别功耗特别高的应用程序。

安装

安装 powertop 软件包,或 powertop-gitAUR 以获取最新的开发版本。

用法

Powertop 的交互模式可以通过以下命令调用

# powertop

在交互模式下,您可以在“可调参数”和“唤醒”选项卡中修改推荐的设置。这允许您更改设置并监控它们在“概述”选项卡中如何影响您的功耗。但是,这不会持久保存任何设置,更改将在重启后丢失。

生成报告

Powertop 可以生成 CSV 或 HTML 格式的报告。HTML 导出是一个交互式文档,显示推荐的设置。请确保在生成报告之前重启以恢复系统默认设置!

您还可以按照以下步骤提取推荐的参数

  1. 使用 powertop 生成参数报告
    # powertop --html=powerreport.html
  2. 在您喜欢的网络浏览器中打开报告。报告的“调优”选项卡现在显示了该工具建议应用的实际参数,以节省电量。您可以使用以下命令提取命令
    $ awk -F '</?td ?>' '/tune/ { print $4 }' powerreport.html

较新版本的 Powertop 包含 --auto-tune-dump 选项,该选项将输出 Powertop 的 --auto-tune 将要运行的命令。如果您不想运行 Powertop 的所有建议,这对于包含在脚本中非常有用。

应用设置

有两种方法可以自动应用建议的设置

  • 推荐: 您可以在启动时通过使用模块参数udev 规则sysctl 来应用这些设置。有关详细信息,请参阅电源管理页面。您还可以使用 powertop-to-tmpfileAUR 助手通过 systemd-tmpfiles 应用设置。
  • 您可以使用 powertop 的 --auto-tune 功能,该功能将所有可调选项设置为其“良好”设置。这可以与 systemd 服务结合使用,以便在启动时设置可调参数。请记住启用/启动该服务。
/etc/systemd/system/powertop.service
[Unit]
Description=Powertop tunings

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/powertop --auto-tune

[Install]
WantedBy=multi-user.target

您还可以将此行添加到 [Service] 部分,以防止您的“鼠标”在启动时断开连接(如果它已连接到您的系统)。

ExecStartPost=/bin/sh -c 'for f in $(grep -l "Mouse" /sys/bus/usb/devices/*/product | sed "s/product/power\\/control/"); do echo on >| "$f"; done'

故障排除

错误:无法从文件加载

如果您在启动 powertop 时收到如下错误,则可能是 powertop 尚未收集到足够的测量数据。要解决此问题,请保持 powertop 运行一段时间,仅连接电池电源。

Loaded 39 prior measurements
Cannot load from file /var/cache/powertop/saved_parameters.powertop
Cannot load from file /var/cache/powertop/saved_parameters.powertop

校准以防止测量不准确

如果您遇到测量不准确的情况,则可能是您需要先校准 powertop。这可以通过使用 --calibrate 参数运行 powertop 来完成。

注意: 校准将切换背光或 Wi-Fi 等各种功能。因此,它可能会在一段时间内使您的屏幕变黑,丢失您的连接等等。在校准期间请勿触摸机器。
# powertop --calibrate

显示功耗估算

在显示功耗估算列之前,powertop 需要运行 270 次测量。每次测量持续 20 秒,这意味着您需要让 powertop 总共运行 1 小时 30 分钟。

参见