CPU 터보 부스트: 온도 제한을 14.04 이하로 수정

CPU 터보 부스트: 온도 제한을 14.04 이하로 수정

쿠분투 14.04를 설치했는데 CPU 터보 주파수에 문제가 있습니다. 나는 그것에 대해 많이 읽었지만 정답을 찾을 수 없습니다.

내 Lenovo Y580 노트북에는 i7-3630QM CPU @ 2.40GHz 및 3.20GHz 터보가 있습니다. CPU를 최대 부하로 설정하면(8개 스레드의 블렌더에서 렌더링) 주파수는 모든 코어에 대해 약 3.2GHz로 점프하지만 몇 초 후 온도가 상승하면 주파수는 2.4GHz로 감소하고 그 상태를 유지합니다. 렌더링 중에는 팬이 최대 속도로 작동하지 않습니다.

우분투 12.10을 사용할 때는 이 문제가 발생하지 않았지만 13.10 및 14.04에서는 발생합니다.

내 노트북 ​​쿨러가 정말 좋아서 최고 속도 터보 부스트(Ubuntu 12.10에서 CPU 온도는 3.2GHz에서 85-90°C였습니다)로 과열 문제가 없으므로 최고 속도로 사용하고 싶습니다. 이 (온도?) 제한 없이 우분투 14.04에서 최대 3.2GHz 속도로 터보 부스트 기능이 있는 CPU를 어떻게 사용할 수 있습니까?

(terdon과 논의한 후) 팬이 고온에 반응하기 전에 CPU 주파수가 축소되는 것이 문제라고 생각합니다. 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        
...

답변에 미리 감사드립니다.

답변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의 터보 부스트 모드에서 실행될 수 있습니다. 이는 블렌더에서 렌더링하는 동안 약 25-30%의 추가 성능을 의미합니다.

불행하게도 이는 더 많은 열을 의미하므로 내 CPU 코어 온도는 약 90~100°C로 움직이고 때로는 스스로 조절됩니다. 그래서 tredon 당신 말이 옳았습니다. 팬을 청소해야합니다. :)

Intel 페이지에는 105°C가 내 CPU의 최대 접합 온도이며, 그 이상에서는 열 조절이 활성화되므로 CPU 과열에 대해 걱정할 필요가 없습니다.

아쉽게도 구성 및 사용에 유용한 예제를 찾을 수 없어서 thermald기본 옵션을 그대로 둡니다. 하지만 읽으면서 냉각에 많은 도움이 될 수 있습니다.

관련 정보