2.2. PowerTOP

无计时 kernel 使得 CPU 能够更常进入闲置状态,以此减少电量消耗、改善电源管理。新 PowerTOP 工具会识别经常唤醒 CPU 的特定 kernel 组件和使用者空间应用程序。
Red Hat Enterprise Linux 7 提供了 2.x 版本的 PowerTOP。此版本完全重写了 1.x 版本的基本代码。此版本的使用者界面以标签页为基础并且更加清晰,还广泛使用了 kernel 的“perf”框架来提供更准确的数据。系统装置的电源操作将会被追踪并且被明显地显示出来,这样一来就能快速找出问题。更具有实验性的是,2.x 版本的基本代码包括了一个电源估算引擎,能够显示各个装置和进程消耗的电量。请参阅图 2.1 “PowerTOP 操作画面”
若要安装 PowerTOP , 请以 root 身份执行下列命令:
yum install powertop
若要运行 PowerTOP,请以 root 身份执行下列命令:
powertop
PowerTOP 能够对系统的电源使用总量进行估算,并显示每个进程、装置、 kernel 工作、计时器以及中断处理程序的耗电量。笔记本电脑在执行这项任务时应该使用电池电源。如果要校准电源估算引擎,请以 root 身份执行下列指令:
powertop --calibrate
校准需要时间。这项程序会执行很多测试,还将进行屏幕亮度的循环测试,并将装置开启和关闭。校准期间请勿操作机器。 校准程序完成后, PowerTOP 将正常启动。请让它运行约一小时以搜集数据。搜集到足够的数据时,电量估算数据将会显示在第一列。
如果在笔记本电脑上执行这项命令,请使用电池电源,以便得到所有的数据。
当它运行时,PowerTOP 会从系统搜集数据。在“概览”标签页,您可以查看最常唤醒 CPU 或者耗电最多的元件列表 (请参阅图 2.1 “PowerTOP 操作画面”)。相邻的信息栏显示了电源估算、资源使用情况、每秒唤醒次数、元件类别(比如进程、设备或者计时器)以及元件的描述。每秒唤醒次数表明 kernel 的服务或者装置和驱动的效率有多高。唤醒次数越少意味着消耗的电量越低。元件会根据电源使用量能够被优化的程度进行排列。
调试驱动元件通常需要对 kernel 进行改变,这不在本指南的讨论范畴之内。然而,管理传送唤醒信号的使用者空间进程较为容易。首先,请判断服务或应用是否需要在系统上完全运行。如果不需要,请将它关闭。若要永久停用旧的 System V 服务,请运行:
systemctl disable servicename.service
若要了解关于此程序的详细信息,请以 root 身份运行以下指令:
ps -awux | grep processname
strace -p processid
如果追踪记录显示它正在重复执行,它可能是一个忙碌的循环。修正这种错误通常需要修改元件中的代码。
正如图 2.1 “PowerTOP 操作画面” 所述,电源消耗总量和电池剩余电量(若存在)将会被显示。下面是一个简短的概要,包含了每秒唤醒次数总量、每秒 GPU 操作量,以及每秒虚拟文件系统操作量。屏幕剩下的部分是一个包含进程、中断、设备和其它资源的列表,它们是根据使用量排列的。若经过正确校准,每一个列出的项目的电量消耗估算值也会显示在第一栏。
使用 TabShift+Tab 按键来循环浏览标签页。在 Idle stats 页面,会显示所有处理器和核心的 C 状态的使用情况。在 Frequency stats 页面,会显示所有处理器和核心的 P-states 使用情况,包括 Turbo 模式(若可用)。CPU 处于 C 状态或者 P 状态的时间越长越好(C4C3更高)。这能很好的显示 CPU 使用量的优化程度如何。当系统闲置时,C 状态或者 P 状态的停留时间在理想状况下应该是 90% 或者更高。
Device Stats 页面提供了和概览页面类似的信息,但它只提供和装置有关的信息。
Tunables 页面包含了关于优化系统以降低电量消耗的建议。请使用 updown 键浏览建议,使用 enter 键将建议切换为开启或关闭。
PowerTOP 操作画面

图 2.1. PowerTOP 操作画面

你还可以通过运行 PowerTOP 并使用 --html 选项来生成 HTML 报告。将 htmlfile.html 参数替换为您想要的输出文件名称 。
powertop --html=htmlfile.html
PowerTOP 默认每 20 秒进行测量,可通过 --time 选项改变这一设置:
powertop --html=htmlfile.html --time=seconds
欲知更多有关 PowerTOP 的信息,请参阅 PowerTOP 主页
PowerTOP 还可以和 turbostat 实用工具搭配使用。 turbostat 实用工具是一种报告工具,它能显示 Intel 64 处理器上有关处理器拓扑、频率、闲置状态统计、温度和电源使用状况的信息。欲知更多有关 turbostat 实用工具的信息,请参阅 turbostat(8) man page,或参阅《性能微调指南》。