CPU Turbo Boost: Temperaturgrenze unter 14.04 ändern

CPU Turbo Boost: Temperaturgrenze unter 14.04 ändern

Ich habe Kubuntu 14.04 installiert und es gibt ein Problem mit der CPU-Turbofrequenz. Ich habe viel darüber gelesen, kann aber keine richtige Antwort finden.

In meinem Lenovo Y580-Notebook steckt eine i7-3630QM-CPU mit 2,40 GHz und 3,20 GHz Turbo. Wenn ich die CPU voll auslaste (mit Rendering in Blender auf 8 Threads), springt die Frequenz für alle Kerne auf etwa 3,2 GHz, aber nach ein paar Sekunden, wenn die Temperatur steigt, sinkt die Frequenz auf 2,4 GHz und bleibt während des Renderings auf diesem Niveau (der Lüfter läuft nicht mit Höchstgeschwindigkeit).

Als ich Ubuntu 12.10 verwendet habe, ist dieses Problem nicht aufgetreten, bei 13.10 und 14.04 jedoch schon.

Der Kühler meines Notebooks ist wirklich gut, sodass es bei voller Turbo-Boost-Geschwindigkeit kein Überhitzungsproblem gibt (die CPU-Temperatur lag bei 3,2 GHz in Ubuntu 12.10 bei 85–90 °C), daher möchte ich es mit voller Geschwindigkeit verwenden. Wie kann ich die CPU mit Turbo-Boost bei voller Geschwindigkeit von 3,2 GHz in Ubuntu 14.04 ohne diese (Temperatur-?)Begrenzung verwenden?

(nach Diskussion mit Terdon) Ich denke, das Problem ist, dass die CPU-Frequenz heruntergeregelt wird, bevor der Lüfter auf die hohe Temperatur reagieren kann. NACHDEM die CPU von 3,2 GHz auf 2,4 GHz heruntergeregelt wurde, dreht der Lüfter kurz auf, aber da die CPU-Frequenz bereits heruntergeregelt wurde, erzeugt er weniger Wärme, sodass die Drehzahl des Lüfters zurückgeht. Es wäre ok, wenn die Frequenz nach dem Abkühlen der CPU wieder auf 3,2 GHz ansteigt, aber sie bleibt bei 2,4 GHz.

Einige Messungen:

Ausgabe des i7z-Programms, wenn das Rendern gerade gestartet wurde:

 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                                                                      
...

Und 5-10 Sekunden später (ebenfalls bei Volllast):

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        
...

Danke im Voraus für die Antworten.

Antwort1

Das ist kein Fehler, sondern eine Funktion! Überprüfen Sie Ihre Temperaturen. Der einzige Grund, warum die CPU-Geschwindigkeit abnimmt, ist Überhitzung. Sehen Sie sich die erste Ausgabe an, die Sie anzeigen. Einer Ihrer Kerne läuft bei 92 °C! Das ist schon ziemlich heiß und wahrscheinlich ist es noch höher geworden, bevor Ihre Taktfrequenz reduziert wurde.

Sie können die maximale Temperatur überprüfen, die Ihre CPU aushält, indem Sieläuftsensors. Zum Beispiel für meinen 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)

Bei meiner Maschine gelten 95,0 °C als hoch und 105 °C als kritische Temperatur, bei der die Maschine abgeschaltet wird. Ihre Angaben könnten etwas anders sein, aber 92,0 °C sind definitiv hoch.

Jetzt dudürfenzwingt Ihre CPU, die gleiche Taktrate beizubehalten. Dies wird vom CPU-Governor gesteuert. Sie haben ihn wahrscheinlich auf eingestellt ondemand, aber die folgenden Optionen sind verfügbar:

  • Leistunghält die CPU auf der höchstmöglichen Frequenz
  • Energiesparhält die CPU auf der niedrigstmöglichen Frequenz
  • Benutzerbereichexportiert die verfügbaren Frequenzinformationen auf die Benutzerebene (über das /sys-Dateisystem) und ermöglicht die Steuerung der CPU-Frequenz im Benutzerbereich
  • Auf Anfrageskaliert die CPU-Frequenzen entsprechend der CPU-Auslastung (wie die Userspace-Frequenzskalierungs-Daemons, aber im Kernel)
  • Konservativfunktioniert wie OnDemand, erhöht aber die Frequenz schrittweise

Um Ihren Governor beispielsweise auf „Leistung“ zu ändern, führen Sie Folgendes aus:

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

Das wahrscheinliche Ergebnis wird jedoch einfach sein, dass Ihr Computer herunterfährt, wenn die hohen Temperaturen erreicht werden. Es könnte auch immer noch heruntergefahren werden, ich bin mir nicht sicher, wie die Sicherheitsfunktionen implementiert sind. In jedem Fall ist der Hauptpunkt, dassSie möchten dies nicht tun, da dies Ihre Hardware ernsthaft beschädigen kann.

Es gibt sehr gute Gründe, warum Ihr Computer bestimmte Temperaturen nicht überschreiten lässt, und Sie sollten sich nicht daran stören. Ich kenne keine Möglichkeit, die Temperaturbegrenzung tatsächlich zu deaktivieren, und ich würde es Ihnen auch nicht sagen, wenn ich es wüsste. Es gibt einfachere Möglichkeiten, aber die Deaktivierung der Temperatursicherheitsgrenzen ist sicherlich eine gute Möglichkeit, Ihren Computer zu zerstören.

Antwort2

Nach langem Suchen habe ich auf dieser Seite die Antwort auf meine Frage gefunden: http://www.webupd8.org/2014/04/prevent-your-laptop-from-overheating.html

Das alte acpi-cpufreqkann Turbo Boost nicht gut steuern, aber intel_pstateTreiber und thermaldkönnen es. Ich habe es aktiviert intel_pstateund installiert thermald. Jetzt kann die CPU im Turbo Boost-Modus laufen, bei 3,2 GHz fast kontinuierlich. Das bedeutet etwa 25-30 % zusätzliche Leistung beim Rendern in Blender.

Leider bedeutet das auch mehr Hitze, sodass die Kerntemperatur meiner CPU bei etwa 90-100°C liegt und sie sich manchmal selbst drosselt. Also, Tredon, du hattest Recht, ich sollte den Lüfter reinigen. :)

Auf der Intel-Seite ist 105 °C als maximale Junction-Temperatur meiner CPU angegeben, darüber ist Thermal Throttling aktiviert, sodass ich mir über eine Überhitzung der CPU keine Sorgen machen muss.

Leider kann ich kein brauchbares Beispiel zur Konfiguration und Verwendung finden thermald, daher belasse ich es bei den Standardoptionen, aber wie ich gelesen habe, könnte es bei der Kühlung sehr hilfreich sein.

verwandte Informationen