PowerTOP - 分析和管理 Linux 中的功耗
一台好的 Linux 机器(尤其是笔记本电脑)最重要的特性之一是电源管理,以延长电池寿命。
Linux 提供了一些实用程序,可以帮助您监控和跟踪电池性能,尽管我们中的许多人仍然面临着如何获得正确的电源设置来管理功耗和延长电池寿命的问题。
在本文中,我们将介绍一个名为 PowerTOP 的 Linux 实用程序,它可以帮助您获取适当的系统设置来管理 Linux 计算机上的电池电源。
什么是PowerTOP?
PowerTOP是Intel开发的基于终端的诊断工具,可帮助您在未插入电源的情况下监控Linux系统上运行的程序的电量使用情况。
PowerTOP的一个重要功能是它提供了一种交互模式,允许用户尝试不同的电源管理设置。
要求
PowerTOP 需要以下组件:
- 开发工具,例如C++、g++、libstdc++、autoconf、automake和libtool。
- 除了上述之外,还需要pciutils-devel、ncurses-devel和libnl-devel组件
- 内核版本 => 2.6.38
如何在 Linux 中安装 Powertop
可以使用特定 Linux 发行版各自的包管理器从默认系统存储库轻松安装 PowerTOP。
sudo apt install powertop [On Debian, Ubuntu and Mint]
sudo yum install powertop [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/powertop [On Gentoo Linux]
sudo apk add powertop [On Alpine Linux]
sudo pacman -S powertop [On Arch Linux]
sudo zypper install powertop [On OpenSUSE]
sudo pkg install powertop [On FreeBSD]
重要: 请注意,从默认系统存储库安装 Powertop 将为您提供旧版本。
如果您想要安装 Powertop 的最新版本(即 2022 年 9 月 29 日发布的 v2.15),您必须构建它并从源代码安装它,为此,您必须在系统上安装以下依赖项。
------------------- On Debian based Systems -------------------
sudo apt install build-essential ncurses-dev libnl-dev pciutils-dev libpci-dev libtool
------------------- On RedHat based Systems -------------------
sudo dnf install gcc-c++ ncurses-devel libnl-devel pciutils-devel libtool
安装上述所有必需的软件包后,现在是时候下载最新版本的 PowerTop 并按照建议安装它:
wget https://github.com/fenrus75/powertop/releases/download/v2.15/powertop.tar.gz
tar -xvf powertop.tar.gz
cd powertop/
./configure
sudo make && make install
如何在 Linux 中使用 PowerTop?
要使用此工具,需要 root 权限,因为 Powertop 测量应用程序功耗所需的所有信息都是直接从系统硬件收集的。
尝试使用笔记本电脑电池供电,看看对系统的影响。它显示系统和系统各个组件的总用电量,按不同类别列出:设备、进程、系统计时器、 内核工作和中断。
了解 PowerTop 选项和用法
要将所有可调选项设置为最佳设置而不使用交互模式,请使用--auto-tune
选项。
要在校准模式下运行它,请使用--calibrate
选项。如果您使用笔记本电脑电池运行 Powertop,它会跟踪功耗以及系统上运行的进程,并在获得足够的功率测量值后,报告功率估计值。
然后,您可以使用此选项在使用此选项时获得更合适的估计,通过不同的显示级别和工作负载实施校准周期。
要在调试模式下运行它,请使用--debug
选项。
您还可以使用--csv=filename
生成数据分析报告。生成的报告称为 CSV 报告,当您未拼写文件名时,将使用默认名称 powertop.csv。
要生成 html 报告文件,请使用 --html=filename
选项。您可以使用 --time=seconds
指定生成报告的时间(以秒为单位)。
在生成报告之前,您可以使用 --workload=workload_filename
指定要在校准过程中执行的工作负载文件。
要显示帮助消息,请使用 --help
选项或查看联机帮助页。
要指定应使用 --iteration
选项运行测试的次数。
PowerTop 用法与示例
如果您在没有任何上述选项的情况下运行 Powertop,它将以交互模式启动,如下面的输出所示。
powertop
概览屏幕
通过此显示屏幕,您可以查看最频繁地向 CPU 发送唤醒或在系统上使用最多电量的系统组件列表。
空闲统计屏幕
它显示有关处理器 C 状态的各种信息。
频率统计屏幕
该屏幕显示 CPU 唤醒的频率。
设备统计屏幕
它提供与概览显示屏幕类似的信息,但仅适用于设备。
可调参数屏幕
它提供了优化系统以获得良好功耗的建议。
从上面的输出中可以看出,有不同的显示屏幕可用,要在它们之间切换,您可以使用 Tab 和 Shift+Tab 键。按屏幕底部列出的 Esc 键退出 powertop。
它显示系统每秒唤醒的次数,当您查看设备统计显示屏幕时,它显示不同硬件组件和驱动程序的电量使用统计信息。
为了最大限度地提高电池电量,您必须最大限度地减少系统唤醒。为此,您可以使用可调参数显示屏幕。
“坏”表示该设置不会节省电量,但可能有利于系统性能。
然后“好”标识了正在节省电量的设置。在任何可调参数上按[Enter]键将其切换到其他设置。
下面的示例显示了使用 --calibrate
选项时的输出。
powertop --calibrate
校准周期结束后,powertop 将显示概览屏幕,其中包含如下操作摘要。
生成 PowerTop CSV 报告
下一个示例显示生成 20 秒的 CSV 报告。
powertop --csv=powertop_report.txt --time=20s
现在让我们使用 cat 命令查看 CSV 报告。
cat powertop_report.csv
生成 PowerTop HTML 报告
您可以按如下方式生成 html 报告,html 文件扩展名会自动添加到文件名中。
powertop --html=powertop
从浏览器中查看示例 html 报告文件。
该工具还有一个守护程序服务,可帮助自动将所有可调参数设置为“Good”以实现最佳节能,您可以按如下方式使用它:
systmctl start powertop.service
要使守护程序服务在引导时启动,请运行以下命令:
systemctl enable powertop.service
概括
使用守护程序服务时需要小心,因为某些可调参数会带来数据丢失或奇怪的系统硬件行为的风险。这一点在“虚拟机写回超时”设置中表现得很明显,该设置会影响系统在将任何数据更改写入实际磁盘之前等待的时间。
当系统失去所有电源时,您将面临丢失最后几秒钟内对数据所做的所有更改的风险。因此,您必须在节能和保护数据之间做出选择。
尝试使用该工具一段时间并观察电池的性能。您可以发表评论来告诉我们许多其他类似的工具或添加有关 Powertop 的使用以及您遇到的错误的信息。
请记住始终与 Howtoing 保持联系以获得更多此类指南。