CPU Turbo boost:修改 14.04 以下的温度限制

CPU Turbo boost:修改 14.04 以下的温度限制

我安装了 kubuntu 14.04,但 CPU 睿频出现了一些问题。我阅读了很多相关资料,但找不到正确的答案。

我的联想 Y580 笔记本中有一个 i7-3630QM CPU @ 2.40GHz,带有 3.20GHz 涡轮增压。如果我让 CPU 满负荷运行(在 8 个线程的 Blender 中进行渲染),所有核心的频率都会跳升到 3.2GHz 左右,但几秒钟后,当温度升高时,频率会降至 2.4GHz,并在渲染期间保持在该频率(风扇不会以最大速度运转)。

当我使用 ubuntu 12.10 时没有出现此问题,但在 13.10 和 14.04 中出现了此问题。

我的笔记本电脑的散热器非常好,因此全速涡轮增压不会出现过热问题(在 ubuntu 12.10 中,CPU 温度在 3.2GHz 时为 85-90°C),所以我想全速使用它。如何在 ubuntu 14.04 中以 3.2GHz 的速度使用涡轮增压 CPU,而不受此(温度?)限制?

(与 terdon 讨论后)我认为问题在于 CPU 频率在风扇能够响应高温之前就被降低了。CPU 从 3.2GHz 降到 2.4GHz 后,风扇会旋转一会儿,但由于 cpufreq 已经降低,它产生的热量较少,因此风扇的转速会回落。如果 CPU 冷却后,频率再次升至 3.2GHz,但保持在 2.4GHz,那就没问题了。

一些测量结果:

渲染刚开始时,i7z 程序的输出:

 Cpu speed from cpuinfo 2394.00Mhz                                                                                                                               
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc                                                                         
Linux's inbuilt cpu_khz code emulated now                                                                                                                       
True Frequency (without accounting Turbo) 2394 MHz                                                                                                              
  CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 MHz                                                                                                    

Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]                                                                                       
  TURBO ENABLED on 4 Cores, Hyper Threading ON                                                                                                                  
  Max Frequency without considering Turbo 2493.75 MHz (99.75 x [25])                                                                                            
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  34x/33x/32x/32x                                                                                      
  Real Current Frequency 3192.01 MHz [99.75 x 32.00] (Max of below)                                                                                             
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp                                                                     
        Core 1 [0]:       3191.98 (32.00x)       100       0       0       0       0    83                                                                      
        Core 2 [2]:       3192.01 (32.00x)      99.8       0       0       0       1    92                                                                      
        Core 3 [4]:       3192.00 (32.00x)       100       0       0       0       0    88                                                                      
        Core 4 [6]:       3192.00 (32.00x)       100       0       0       0       0    76                                                                      
...

5-10秒后(同样满载):

Cpu speed from cpuinfo 2394.00Mhz                                                                                                                               
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc                                                                         
Linux's inbuilt cpu_khz code emulated now                                                                                                                       
True Frequency (without accounting Turbo) 2394 MHz                                                                                                              
  CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 MHz                                                                                                    

Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4]                                                                                       
  TURBO ENABLED on 4 Cores, Hyper Threading ON                                                                                                                  
  Max Frequency without considering Turbo 2493.75 MHz (99.75 x [25])                                                                                            
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  34x/33x/32x/32x                                                                                      
  Real Current Frequency 2462.52 MHz [99.75 x 24.69] (Max of below)                                                                                             
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp                                                                     
        Core 1 [0]:       2394.01 (24.00x)       100       0       0       0       0    65                                                                      
        Core 2 [2]:       2394.00 (24.00x)       100       0       0       0       0    74                                                                      
        Core 3 [4]:       2462.43 (24.69x)       100       0       0       0       0    71                                                                      
        Core 4 [6]:       2462.52 (24.69x)      99.9       0       0       0       0    61        
...

提前感谢您的回答。

答案1

那不是错误,而是一项功能!检查您的温度,CPU 速度降低的唯一原因是您过热。查看您显示的第一个输出,您的一个核心以 92°C 运行!这一开始就相当热,而且在您的时钟速度降低之前,温度可能更高。

您可以通过以下方式检查 CPU 可以处理的最高温度跑步sensors。例如,对于我的 Intel i7:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +77.0°C  (high = +95.0°C, crit = +105.0°C)
Core 2:       +79.0°C  (high = +95.0°C, crit = +105.0°C)

因此,在我的机器上,95.0°C 被认为是高温,而 105°C 是机器关闭的临界温度。您的规格可能略有不同,但 92.0°C 绝对算高。

现在轮到你强制您的 CPU 保持相同的时钟速度。这由 CPU 调节器控制。您可能已将其设置为ondemand,但以下选项可用:

  • 表现使 CPU 保持最高频率
  • 节能将 CPU 保持在尽可能低的频率
  • 用户空间将可用的频率信息导出到用户级(通过 /sys 文件系统),并允许用户空间控制 CPU 频率
  • 一经请求根据 CPU 使用率调整 CPU 频率(类似用户空间频率调整守护进程,但在内核中)
  • 保守的作用类似于按需,但逐步增加频率

例如,要将您的调节器更改为“性能”,请运行以下命令:

echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

然而,可能的结果只是你的电脑在达到高温时会关机。它也可能仍然会降低温度,我不确定安全功能是如何实现的。无论如何,重点是你不想这样做,因为它会严重损害你的硬件

您的计算机不允许超过特定温度是有充分理由的,您不想破坏这一点。我不知道有什么方法可以真正禁用温度限制,即使我知道也不会告诉您。有更简单的方法,但禁用温度安全限制肯定是毁掉您的计算机的好方法。

答案2

经过长时间的搜索,我在这个页面上找到了我的问题的答案: http://www.webupd8.org/2014/04/prevent-your-laptop-from-overheating.html

旧版acpi-cpufreq无法很好地控制涡轮增压,但intel_pstate驱动程序和thermald可以。我已经启用intel_pstate并安装了thermald。现在 CPU 可以在涡轮增压模式下运行,几乎连续以 3.2GHz 运行。这意味着在 Blender 中渲染时性能增加约 25-30%。

不幸的是,这也意味着更多的热量,所以我的 CPU 核心温度在 90-100°C 左右,有时会自动节流。所以 tredon 你说得对,我应该清洁风扇。:)

在英特尔页面上,105°C 是我的 CPU 的最大结温,超过此温度时会激活热节流,因此我不必担心 CPU 过热。

不幸的是,我找不到任何有用的例子来配置和使用thermald,所以我保留默认选项,但正如我所读到的,它可以在冷却方面提供很大帮助。

相关内容