这个问题确实有点反直觉,但服务器CPU在低频时功耗相对“大”(或者说不成比例地降低)的现象,通常是由以下几个关键因素共同作用造成的:
1、静态功耗(漏电流功耗)成为主导因素:
动态功耗 这是CPU执行计算(晶体管开关)时消耗的功率,与频率(f)
和电压的平方(V²)
成正比,当频率降低时,这部分功耗会显著下降。
静态功耗 这是CPU即使不进行任何计算(晶体管处于关闭状态)时,由于物理效应(主要是亚阈值漏电流和栅极漏电流)而持续消耗的功率,它与电压(V)
呈指数级关系(非常敏感),并且与芯片上的晶体管数量成正比。
低频时的问题 当CPU频率降低时,为了保持稳定性,电压(V)
不能按比例线性降低(有时降低幅度很小,甚至在某些状态下不降低),因为电压对静态功耗的影响是指数级的(远大于频率对动态功耗的线性影响),即使电压只是稍微降低一点点,静态功耗下降的幅度也远小于频率降低的幅度,结果就是:
* 动态功耗虽然降低了。
* 但静态功耗下降得很少,甚至几乎不变(如果电压没变)。
* 在低频、低负载状态下,静态功耗在整个CPU功耗中的占比变得非常高(可能超过50%,甚至70-80%),成为主要的耗电源。
2、电压无法与频率同步线性降低:
* 为了保证CPU在低电压下稳定工作(避免计算错误),电压不能随意降低,降低电压需要降低频率,但反过来,频率降低到一定程度后,电压的下限就基本固定了(由工艺特性和设计决定)。
* 现代CPU的节能技术(如Intel SpeedStep, AMD PowerNow!)虽然会根据负载调整频率(P-states)
和电压,但在最低的几个P-states(低频状态)下,电压的下降空间已经非常有限,在最低频率附近,功耗下降的曲线会变得非常平缓,功耗/频率比会显著变差。
3、核心/线程并未完全休眠:
* 即使整个服务器的负载很低,操作系统或后台服务(监控、日志、网络心跳、虚拟化管理程序等)通常也需要至少一个核心(或一个线程)保持一定的活动状态来处理这些任务。
* 当部分核心处于活动状态(即使是低频)时,其他处于C-states
(睡眠状态)的核心虽然动态功耗极低,但其静态功耗(漏电流)依然存在,整个CPU的功耗是所有核心功耗之和。
* 即使只有1个核心在低频运行,整个CPU的功耗也不会降到接近0,因为其他核心的静态功耗还在持续消耗。
4、服务器其他组件的固定开销:
* 服务器的功耗不仅仅是CPU,内存、芯片组、硬盘/SSD、网卡、风扇、电源转换效率等都会消耗功率。
即使在CPU空闲时
* 内存需要保持刷新。
* 网卡需要保持链路状态。
* 风扇可能仍需要低速运转。
* 电源模块在低负载下的转换效率通常不如在中等负载时高(Gold/Platinum/Titanium认证电源在20%-100%负载区间效率较高,在<20%负载时效率会下降)。
* 这些组件的功耗构成了一个相当可观的“基础功耗”,当CPU功耗降低时,这部分基础功耗在总功耗中的占比就变大了,使得整体的“能效比”在低负载时看起来更差。
5、操作系统调度和中断开销:
* 即使没有用户任务,操作系统内核也需要处理定时器中断、调度空闲任务等,这些微小的活动也会消耗一定的能量,尤其是在核心处于浅睡眠状态(C1)
时,虽然每个中断消耗的能量很少,但累积起来在极低负载状态下也相对明显。
总结一下核心逻辑:
高频高负载 动态功耗是绝对主力,总功耗很高,但效率(性能/瓦特)可能不错,因为大量的能量被用于实际计算。
低频低负载
* 动态功耗大幅下降。
* 静态功耗(漏电流)下降非常有限(受限于电压不能同比例降)。
* 服务器其他组件的“基础功耗”占比变大。
* 可能仍有少量核心/线程在处理后台任务。
结果总功耗虽然比高负载时低很多,但相对于其提供的非常低的计算性能来说,这个功耗就显得“大”了(能效比差)。 功耗下降的幅度远小于性能(频率)下降的幅度。
为什么服务器尤其明显?
1、核心数量巨大: 现代服务器CPU通常有数十甚至上百个核心,即使大部分核心处于空闲状态,其累积的静态功耗总量也非常可观。
2、追求性能密度: 服务器CPU设计首要目标是高性能和高吞吐量,晶体管密度极高,这直接导致了更大的漏电流(静态功耗)。
3、高基础功耗: 服务器的内存容量大(功耗高)、高速网络接口、冗余电源/风扇等,其“基础功耗”本身就远高于家用PC或笔记本。
4、24/7运行: 服务器需要长时间运行,即使空闲功耗节省不多,累积起来的电费也非常可观,因此这个问题更受关注。
简单比喻:
想象一辆超级跑车(高性能服务器CPU):
全速行驶(高频满载)油耗极高,但速度也极快,单位距离的油耗(能效)可能还行。
怠速(低频空载)发动机转速很低(频率低),做的功很少(几乎没移动-性能低),但发动机仍然在烧油(静态功耗+基础功耗),相对于它几乎为零的“移动”(性能),怠速的油耗就显得“大”了,而且这辆跑车的引擎结构复杂(晶体管多漏电大),怠速油耗本身就比普通家用车高。
服务器在低负载时功耗相对“高”,主要是静态功耗在总功耗中占比过大,以及服务器平台自身存在较高的固定功耗开销共同导致的,这也是为什么现代服务器和CPU设计非常注重降低静态功耗(如更先进的制程工艺、更好的电源门控技术)和提高低负载效率的原因。
文章摘自:https://idc.huochengrm.cn/js/13360.html
评论