CPU 节能与修改

一、CPU 节能概念 

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

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

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

而在一些 case 中,CPU 节能会带一些不稳定的因素,如 unstable issue 或performance issue,所以我们可以通过系统层面来 disable CPU 节能。 

二、常见的几种 C-states

 

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

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

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

更多状态请查看下面链接:

https://www.dell.com/support/article/us/en/19/qna41893/what-is-c-state?lang=en 

三、Linux 系统上查看 CPU 节能 

1.Linux 下命令快速查看 

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

  1. 使用 i7z 工具检查 

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

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

所有核心都运行 C0 模式下:

图中红框部分说明,所有核心都工作在 C0 模式下,没有降频的发生。 

四、从系统层面禁止 CPU 节能 

 

  1. RHEL6.X 的调整方法 

RHEL6.X 的设置相对比较简单,可直接在系统 grub 中添加:intel_idle.max_cstate=0 和 idle=poll 这两个参数,如下图: 

修改完成后保存退出,重启系统。 

 

2.RHEL7.X 的调整方法 

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

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

 2)编辑 grub2 文件。

3)重启系统

4)检查当前 CPU MHz

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值