第 3 章 核心基础结构及技巧

重要

若要使用本章论述的 cpupower 命令,请确定已安装 cpupowerutils 软件包。

3.1. CPU 闲置状态

使用 x86 构架的 CPU 支持不同的状态,在这些状态中部分 CPU 会被停用或者以低性能设置运行。这些状态,也就是我们知道的“C 状态”,允许系统通过停用部分不使用的 CPU 达到节能目的。C 状态从 C0 开始用数字编号,数字越大代表 CPU 功能降低越多,也就越节能。虽然给定数字的 C 状态在不同处理器间类似,但为特定处理器或者处理器产品线使用的特定 C 状态的含义是特定的。C 状态 0-3 定义如下:
C0
操作或者运行状态。在这个状态中,CPU 处于工作状态,完全没有闲置。
C1, 挂起
处理器不执行任何指令的状态,但通常不处于较低功率状态。CPU 可继续进行处理而没有延迟。所有提供 C 状态的处理器都需要支持这个状态。奔腾 4 处理器支持改进的 C1 状态,即 C1E,它实际上是一个低能耗状态。
C2, 时钟停止
在这个状态中,处理器会停止时钟,但它让其暂存器和缓冲保持完整状态,因此重新启动时钟后,它可以立即重新启动处理进程。这是一个可选状态。
C3, 休眠
处理器真正进入睡眠状态且不需要一直更新缓冲。因此从这个状态唤醒的时间要大大长于从 C2 唤醒的时间。这也是一个可选状态。
要查看可用闲置状态以及其他 CPU 闲置驱动程序的统计数据,请运行以下指令:
cpupower idle-info
最近使用 "Nehalem" 微构架的英特尔 CPU 有新的 C 状态,即 C6 状态。它可将供应 CPU 的电压降低到 0,但通常的节能率在 80% 到 90% 之间。Red Hat Enterprise Linux  7 中的 kernel 包括对这个新 C 状态的优化。