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

我安装了kubuntu 14.04,CPU turbo频率有问题。 我已经阅读了很多关于它的内容,但找不到正确的答案。

在我的联想Y580笔记本电脑中有一个i7-3630QM CPU @ 2.40GHz,3.20GHz turbo。 如果我将cpu置于满负荷状态(在8个线程上使用混合器渲染),所有内核的频率会跳至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 freq在风扇响应高温之前按比例缩小。 在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 ... 

提前谢谢你的答案。

这不是一个错误,它是一个function! 检查你的温度,CPU速度降低的唯一原因是因为你的过热。 看看你展示的第一个输出,你的一个内核运行在92°C! 这开始时非常热门,在你的时钟速度降低之前可能会更高。

您可以通过运行sensors来检查CPU可以处理的最高温度。 例如,对于我的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保持在尽可能高的频率
  • Powersave将CPU保持在尽可能低的频率
  • 用户空间将可用频率信息导出到用户级别(通过/ sys文件系统),并允许用户空间控制CPU频率
  • Ondemand根据CPU使用情况缩放CPU频率(就像用户空间频率缩放守护进程一样,但在内核中)
  • 保守行为就像按需,但逐步增加频率

要将州长更改为“性能”,请运行以下命令:

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

但是,可能的结果只是在达到高温时计算机将关闭。 它可能还会缩小它,我不确定如何实现安全function。 在任何情况下,重点是你不想这样做,因为它会严重损害你的硬件

有很好的理由说明为什么你的电脑不会让你超过某些温度,而你又不想搞砸。 我不知道有什么方法可以实际禁用温度限制,如果我这样做,我也不会告诉你。 有更简单的方法,但禁用温度安全限制肯定是破坏您的计算机的好方法。

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

旧的acpi-cpufreq无法很好地控制turbo boost,但intel_pstate驱动程序和thermald可以。 我启用了intel_pstate并安装了thermald 。 现在cpu几乎可以连续在3.2GHz的涡轮增压模式下运行。 这意味着在搅拌机中渲染期间的附加性能约为25-30%。

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

在英特尔的页面上,105°C是我CPU的最高结温,超过热量限制被激活,所以我不必担心CPU过热。

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