PowerEdge服务器在Linux OS下关闭CPU节能方法

摘要: 本文章提供PowerEdge服务器在Linux OS下关闭CPU节能方法。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

说明

一、CPU节能概念

随着CPU的发展,Intel出现了EIST技术,它可以动态的调整CPU的频率。当CPU使用率地下或者接近0时候,能降低CPU频率并且降压,从而降低功耗和发热。当检测到CPU使用率增高,它会马上回到原始工作频率,但是你必须考虑CPU被唤醒的时间,并且确保它会再次100%运行。这一系列的过程通常被称为“C-states”或“C-modes”,它是从C0开始的。

随着C-states的不断增加,CPU睡眠模式就更深,即更多的电路和信号被关闭,并且CPU将需要更多时间返回到C0模式,即唤醒。

对于每个模式也有不同的名称与不同功耗的子模式,从而唤醒时间级别等。

 

二、常见的几种C-states

C0 :工作状态,CPU完全运行。

C1 :停止状态,主CPU停止内部时钟经由软件;总线接口单元和APIC保持全速运行。

C3 :深度睡眠,止所有CPU内部和外部时钟。

C6 : 深度功率下降, 将CPU内部电压降低到任何值,包括0V。

deep power down

 

三、Linux 系统上查看CPU节能

1. 通命令检查

CPU MHz

从图可以看出当前超线程cpu NHz各有不同,说明都不是跑在C0模式下。

2. 使用i7z工具检查

它是Linux下查看C-state的小工具,使用简单,直接上传i7z_64bit文件到系统里,命令添加可执行权限,如:chmod +x i7z_64bit,然后直接执行 ./i7z_64bit,就能看到下面的信息。

cpuinfo

从这个图我们可以看到目前所有核心都没有100%在C0的状态,没有降频的发生。

 

四、C0模式调整

1. RHEL6的调整方法:

直接在系统grub中添加:intel_idle.max_cstate=0和idle=poll这两个参数。

grub  

2. RHEL7 、8、9的调整方法:

intel_idle.max_cstate=0 processor.max_cstate=1 intel_pstate=disable idle=poll

1)修改配置文件添加“intel_idle.max_cstate=0 processor.max_cstate=1 intel_pstate=disable idle=poll”设置。

[root@localhost ~]# cat /etc/default/grub

add grub

2)编辑grub2文件。

grub2

3)重启系统

4)检查当前CPU MHz

check CPU MHz

3.Ubuntu的调整方法:

在kernel选项添加下面两个参数,具体加入位置请看图红框位置。

processor.max_cstate=1 intel_idle.max_cstate=0

add gurb

然后运行grub-mkconfig -o /boot/grub/grub.cfg命令,重启机器。

 

Redhat参考KB: https://access.redhat.com/solutions/202743

 

五、总结

这里所使用的方法是从系统kernel层面设置参数关闭CPU节能模式,不管BIOS里的C1E与C States是否设置了Enable,CPU节能都会被Disable。

受影响的产品

Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8
文章属性
文章编号: 000269821
文章类型: How To
上次修改时间: 18 2月 2025
版本:  3
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。