Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.2. PowerTOP

在 Red Hat Enterprise Linux 7 中引入无空内核可让 CPU 更频繁地进入空闲状态,从而减少功耗并改进电源管理。PowerTOP 工具识别频繁唤醒 CPU 的内核和用户空间应用程序的特定组件。powertop 的开发用于执行审计,这会导致在此版本中调整许多应用程序,从而减少了 10 倍的 CPU 唤醒。
Red Hat Enterprise Linux 7 附带 PowerTOP 版本。这个版本是 1.x 代码库的完整重写。它具有基于 tab 的更清晰的用户界面,并广泛使用内核"完美"基础架构来提供更多准确的数据。系统设备的电源行为会被跟踪并实际显示,因此可以快速发现问题。在实验性上,2.x 代码库包含一个电源估算引擎,可以指示消耗电源各个设备和进程的数量。请参阅 图 2.1 “操作中的 powertop”
要安装 PowerTOP 运行,以 root 用户身份运行以下命令:
~]# yum install powertop
要运行 PowerTOP,请以 root 用户身份使用,使用以下命令:
~]# powertop
powertop 可以提供系统总功耗的估算,并为每个进程、设备、内核工作、计时器和中断处理程序显示单独的功耗。在此任务期间,笔记本电脑应在电池电源上运行。要校准电源估算引擎,以 root 用户身份运行以下命令:
~]# powertop --calibrate
校准需要时间。进程执行各种测试,并将通过亮度级别和切换设备进行循环。让进程完成,且不会在校准期间与机器进行交互。完成校准过程后,PowerTOP 会正常启动。让它运行大约一小时以收集数据。收集足够数据后,将在第一列中显示节能数据。
如果您在笔记本电脑上执行命令,它仍然应在电池电源上运行,以便显示所有可用的数据。
在运行期间,PowerTOP 会从系统中收集统计信息。在 Overview 选项卡中,您可以查看将 wake-ups 发送到 CPU 最频繁或消耗最多电源的组件列表(请参阅 图 2.1 “操作中的 powertop”)。相邻列显示电源估算、如何使用资源、每秒唤醒、组件的分类,如进程、设备或计时器以及组件的描述。每秒唤醒数代表如何高效地执行内核的服务或设备和驱动程序。较少的 wakeups 表示消耗较少的电源。组件按照可进一步优化的电源使用量排序。
调整驱动程序组件通常需要内核更改,这超出了本文档的范围。但是,发送 wakeups 的 userland 进程更容易管理。首先,确定该服务或应用程序是否需要在此系统上运行。如果没有,只需取消激活它。要永久关闭旧的 System V 服务,请运行:
~]# systemctl disable servicename.service
有关进程的详情,请以 root 身份运行,使用以下命令:
~]# ps -awux | grep processname
~]# strace -p processid
如果 trace 看起来像是重复自己,则可能是一个忙碌的循环。修复此类错误通常需要该组件中的代码更改。
图 2.1 “操作中的 powertop” 中所示,如果适用,则会显示总功耗和剩余电池生命周期。以下简短概述包括每秒唤醒的总唤醒、每秒 GPU 操作数和每秒虚拟文件系统操作。在屏幕的其余部分中,有一个进程、中断、设备和其他资源列表,并根据它们的利用率排序。如果正确校准,则会显示第一列中每个列出的项目的功耗估算。
使用 TabShift+Tab 键通过选项卡进行循环。在 Idle stats 选项卡中,显示所有处理器和内核使用 C-states。在 Frequency stats 选项卡中,显示所有处理器和内核,使用 P-states 包括 Turbo 模式(如果适用)。CPU 越长,CPU 保持在更高的 C- 或 P-states 中,更好(C4 大于 C3)。这对 CPU 用量的优化方式是一个很好的指示。在系统闲置时,最好最好在 C- 或 P-state 中达到 90% 或更高。
Device Stats 选项卡提供与 Overview 选项卡类似的信息,但只适用于设备。
Tunables 选项卡包含优化系统以降低功耗的建议。使用 updown 键移动建议,使用 enter 键打开和关闭建议。

图 2.1. 操作中的 powertop

操作中的 powertop
您还可以使用 --html 选项运行 PowerTOP 来生成 HTML 报告。将 htmlfile.html 参数替换为输出文件所需名称:
~]# powertop --html=htmlfile.html
默认情况下,PowerTOP 使用 20 秒的测量,您可以使用 --time 选项更改它:
~]# powertop --html=htmlfile.html --time=seconds
有关 PowerTOP 的更多信息,请参阅 PowerTOP 主页
powertop 也可以与 turbostat 实用程序一起使用。这是一个报告工具,显示 Intel 64 处理器上的处理器拓扑、频率、空闲的电源状态统计、温度和功耗的信息。有关 turbostat 实用程序的更多信息,请参阅 turbostat(8) man page,或阅读 性能调优指南