
我已經安裝了 kubuntu 14.04,並且在 CPU Turbo 頻率存在一些問題。我讀了很多相關內容,但找不到正確的答案。
我的 Lenovo 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中3.2GHz時CPU溫度為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
。例如,對於我的英特爾 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 頻率(與用戶空間頻率縮放守護程式一樣,但在核心中)
- 保守的行為類似點播,但頻率逐步增加
例如,若要將調控器變更為“Performance”,請執行下列命令:
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 可以在 Turbo Boost 模式下運行,幾乎連續運行在 3.2GHz 上。這意味著在 Blender 中渲染時效能可提高約 25-30%。
不幸的是,這也意味著更多的熱量,所以我的 CPU 核心溫度在 90-100°C 左右,有時會自行調節。所以你是對的,我應該清潔風扇。 :)
Intel的頁面上105°C是我的CPU的最高結溫,超過它就會啟動熱節流,所以我不用擔心CPU過熱。
不幸的是,我找不到任何有用的範例來配置和使用thermald
,因此我保留了預設選項,但正如我所讀,它對冷卻有很大幫助。