web-dev-qa-db-ja.com

CPU Turbo Boost:14.04未満の温度制限を変更

Kubuntu 14.04をインストールしましたが、CPUのターボ周波数に問題があります。私はそれについて多くを読みましたが、正しい答えを見つけることができません。

私のLenovo Y580ノートブックには、3.20GHzターボ搭載のi7-3630QM CPU @ 2.40GHzがあります。 CPUを最大負荷(8スレッドでブレンダーでレンダリング)にすると、すべてのコアで周波数が3.2 GHz付近にジャンプしますが、数秒後に温度が上昇すると周波数が2.4 GHzに低下し、そのままになりますレンダリング中(ファンは最大速度で動作しません)。

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は既に縮小されているため、発熱量が少ないため、ファンのrpmは低下します。 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        
...

答えてくれてありがとう。

4
liszi

長い間検索した後、このページの質問に対する答えを見つけました: http://www.webupd8.org/2014/04/prevent-your-laptop-from-overheating.html

古いacpi-cpufreqはターボブーストをうまく制御できませんが、intel_pstateドライバーとthermaldはできます。 intel_pstateを有効にし、thermaldをインストールしました。これで、CPUは3.2 GHzでほぼ継続的にターボブーストモードで実行できます。これは、ブレンダーでのレンダリング中に約25〜30%の追加パフォーマンスを意味します。

残念ながら、それはまたより多くの熱を意味するため、私のCPUコアの温度は約90〜100°C移動し、時々それ自体を調整します。だからトレドンは正しかった、私はファンを掃除する必要があります。 :)

Intelのページでは105°CがCPUの最大ジャンクション温度であり、それを超えるとサーマルスロットリングがアクティブになるため、CPUの過熱を心配する必要はありません。

残念ながら、thermaldを構成して使用するための有用な例を見つけることができないため、デフォルトのオプションのままにしますが、読んでいると、冷却に大いに役立ちます。

4
liszi

それはバグではなく、機能です!温度を確認してください。CPU速度が低下する唯一の理由は、過熱しているためです。最初に表示される出力を見てください。92°Cで実行されているコアの1つがあります。そもそもかなり暑く、おそらくクロック速度が低下する前にさらに高くなったでしょう。

running 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は間違いなく高いです。

これで、canでCPUに同じクロック速度を維持させることができます。これは、CPUガバナーによって制御されます。おそらくondemandに設定されていますが、次のオプションを使用できます。

  • パフォーマンスはCPUを可能な限り高い周波数に保ちます
  • PowersaveはCPUを可能な限り低い周波数に保ちます
  • Userspaceは、使用可能な周波数情報を(/ sysファイルシステムを介して)ユーザーレベルにエクスポートし、CPU周波数のユーザースペース制御を許可します。
  • Ondemandは、CPU使用率に応じてCPU周波数をスケーリングします(ユーザー空間周波数スケーリングデーモンと同様ですが、カーネル内)
  • Conservativeはオンデマンドのように機能しますが、段階的に頻度を増やします

ガバナーを「パフォーマンス」などに変更するには、次を実行します。

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

ただし、可能性が高い結果は、高温に達するとコンピューターがシャットダウンすることです。それはまだそれを縮小するかもしれない、私は安全機能がどのように実装されているかわからない。いずれにせよ、主なポイントは、ハードウェアに深刻な損害を与える可能性があるため、これを行いたくないということです。

コンピュータが特定の温度を超えないようにし、それでねじ込みたくない理由は非常にあります。私は実際に温度制限を無効にする方法を知りません、そして、もし私がそうしたかどうかあなたに話しません。より簡単な方法がありますが、温度の安全限界を無効にすることは確かにコンピューターを破壊する良い方法です。

5
terdon