背景
计算机系统需要电力来执行各种活动,比如CPU需要从内存获取数据和应用程序、执行指令、显示输出结果,同时它也通过各种接口与用户通信,如使用网卡与网络上的其他计算机交互。这些功能是计算机系统中的各硬件部件协作来完成的,而每个部件都需要不同的电力去运作。
一项数据中心的电力消耗研究表明,近50%的输入电力被空调和电力传输子系统消耗,而服务器本身占用了剩下的50%电力。试想一下,如此大的一个数据机房,一天要损耗多少电费??
我们把计算机系统各个部件的损耗,进一步分解为下图所示的各个元素。
可以看到,服务器中处理器所消耗的大约30%的电能,本文主要针对CPU部分相关的功耗管理技术。(其他部件暂不做分析讨论,其实我也没去研究过)
那么,如何让CPU不损失性能的情况下,达到功耗最小?
Demand Based Switching (DBS) 按需调节
DBS是由Intel公司开发的一种电源管理技术,该技术将微处理器的电压和时钟速度保持在最低的必要水平,以实现所需操作的最佳性能。一个支持DBS的处理器会尽可能的让CPU处于一个较低的电压和时钟速度工作,直到系统需要更多的处理能力。
如何实现?
这其实是通过监视应用程序级工作负载对处理器的使用来实现的,比如,在CPU空闲时就降低CPU速度,而在负载增加时提高CPU速度。该技术作为Intel®SpeedStep®技术引入服务器市场。通常,没有启用DBS的处理器总是以额定速度运行,并消耗相应的功率,与工作负载无关,即使处理器有能力以较低的工作电压和频率方式运行。因此,当工作负载级别较低时,我们就有机会降低功耗。
在讨论DBS技术之前,需要了解一下intel的2个状态: C-state、p-state。
C-state:是CPU的睡眠状态。
处理器c状态是处理器进入各种低功耗空闲状态的能力(具有不同的唤醒延迟)。基于Intel体系结构的处理器有几个c状态,表示可以关闭这些c状态以节省电能。C0是操作状态,意味着CPU正在做有用的工作。C1是第一个空