Linux의 CPU 온도: 조절 또는 읽기 오류?

Linux의 CPU 온도: 조절 또는 읽기 오류?

i7-7700HQ(기본 클럭 2.8Ghz) 및 GTX 1050과 함께 Lenovo Legion Y520을 사용합니다.

Linux에서 CPU 과열 경고가 표시되고 이는 게임 성능에 영향을 미칩니다(Payday 2 및 CS:GO에서 확인). 저는 Windows에서 문제가 발생한 적이 없습니다.

이 문제를 해결하려고 하던 중 발견한 내용은 다음과 같습니다.

Windows 10(aida64 사용)

  • Windows는 유휴 상태일 때 약 3.4Ghz를 유지하며(전원 설정이 기본 "균형" 대신 "고성능"으로 설정되어 있기 때문에) 온도는 약 50C입니다.

  • CPU에 스트레스가 가해지면 온도는 약 50C에서 약 75C까지 천천히(순간이 아닌 몇 초에 걸쳐) 상승하여 편안하게 유지됩니다. 스트레스를 받을 때 클럭 속도는 약 2.9Ghz입니다. 활용도는 항상 100%입니다. Aida64는 제한을 보고하지 않습니다. 스트레스를 받으면 CPU 코어의 전압이 약 1.1에서 약 0.9로 변경됩니다.

Arch Linux에서(s-tui 사용)

  • Linux는 유휴 상태일 때 약 2.0Ghz를 유지하며 온도는 약 50C입니다.

  • 여기가 이상해졌습니다. CPU에 스트레스를 가하면 온도가 즉시 50C에서 약 93C로 올라갔습니다. 스트레스를 받을 때 클럭 속도는 정확히 3.4Ghz입니다. 활용도는 항상 100%입니다. 압력 테스트가 꺼지자 온도는 아무 일도 없었던 것처럼 곧바로 50℃ 안팎으로 돌아갔다. 이 작업을 수행할 때 노트북은 장기간 스트레스를 받은 후에도 확실히 90C+만큼 뜨겁게 느껴지지 않습니다.

아래 그래프는 온도, 전력, 주파수가 동시에 어떻게 감소하는지 보여줍니다. 이렇게 짧은 시간 동안 CPU 온도가 얼마나 변했는지 확인하세요. Linux의 제한 다이어그램

이 조절 문제를 해결하는 방법은 무엇입니까? Linux에서 CPU 전압을 낮췄나요? Linux에서는 온도가 잘못 읽히지만 Windows에서는 온도가 잘못된 이유는 무엇입니까?

CPUpower를 사용하여 프로파일을 에너지 절약에서 성능으로 변경했습니다. s-tui에서도 여전히 동일한 제한 사항이 표시됩니다. 성능으로 설정하면 유휴 CPU 주파수가 2000~2500Mhz에서 항상 3400Mhz로 바뀌는 대신 점프가 있지만 변경되는 것은 그것뿐입니다.

팬 제어

다음을 사용하여 팬을 제어하려고 합니다.팬 제어(lm_sensors), 그러나 pwmconfig는 PWM 지원 센서 모듈이 설치되지 않았음을 나타냅니다.

나는 전에 시도했다NBFC, 그런데 어떤 프로필을 선택해도 아무런 효과가 없는 것 같습니다. NBFC가 내 팔로워를 제어할 수 있는지조차 모르겠지만 프로필을 선택하는 동안 오류가 보고되지 않습니다.

나도 시도했다시판, 하지만 조절에는 도움이 되지 않는 것 같습니다. 또한 내 팬 속도가 8RPM이라고 생각합니다.이 스레드

해결책

나는 cpupower를 사용하여 최대 허용 CPU 주파수를 (기본값 3800 대신) 3100MHz로 낮추면 모든 문제가 해결된다는 것을 발견했습니다.

sudo cpupower frequency-set -u 3100MHz

또한 max_freq를 동일한 값으로 변경하여 /etc/default/cpupower영구적으로 만들었습니다. 나는 이로 인해 게임에서 fps가 약간 떨어지지만 심각한 것은 아니라는 것을 알았습니다. 적어도 내 fps는 안정적입니다 :)

안타깝게도 이로 인해 게임이 아닌 작업(예: 무언가를 컴파일할 때)에서 성능 저하가 발생할 수 있다고 생각합니다.

1.5년 후

방금 AIDA64를 사용하여 Windows 안정성을 다시 테스트한 결과 이제 열 조절 기능도 있음을 발견했습니다. 아래 이미지에서 볼 수 있듯이 온도가 빠르게 90도까지 올라갔고 AIDA64가 스로틀링을 보고했습니다. 클럭 속도는 3.4GHz에서 유휴 상태로 있다가 테스트 시작 몇 초 후에 약 800MHz로 떨어졌다가 1초 후에 다시 3.4GHz로 올라갑니다. (이전처럼) 스트레스 테스트 시 클럭 속도를 2.9GHZ로 낮추기로 결정하지 않습니다.

Windows의 AIDA64, 전원 설정 = 고성능

Windows에서 최대 주파수가 갑자기 감소하지 않는 이유는 무엇입니까?

답변1

차이점은 Windows와 Linux에서 사용되는 CPU 조절 프로필이 다르기 때문입니다.

Linux에서는 이를 어느 정도 제어할 수 있습니다. 예를 들어 다음 명령은 현재 사용 중인 프로필을 표시합니다.

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

사용할 프로필을 선택하는 방법에는 여러 가지가 있습니다. Arch Linux 위키에는 이에 대한 자세한 내용이 있으며 읽어 볼 가치가 있습니다.

CPU 주파수 스케일링 - Arch Wiki

팬 제어 문제도 있습니다. 팬을 제어할 수 있는 적절한 드라이버가 있는지, 게임을 할 때 팬 속도가 충분히 높게 설정되어 있는지 확인해야 합니다.

노트북의 Linux도움이 되는 자료가 될 수 있습니다.

답변2

차이점이 있는 이유는 Windows 설치에Intel 동적 플랫폼 및 열 프레임워크온도를 관리하기 위해 주파수를 조정하는 드라이버. Linux 설치에는 이 기능이 없으므로 CPU는 온도에 관계없이 최대 주파수에서만 실행되므로 CPU 펌웨어가 온도가 떨어질 때까지 모든 주파수를 최소화할 때까지 최대 100C로 점프한 다음 다시 최대 주파수로 돌아갑니다. 반복합니다.

불행하게도 Intel DPTF 드라이버는 Linux AFAIK에서 작동하지 않습니다. 따라서 동일한 작업을 수행하도록 일부 소프트웨어를 설정할 수 없다면(Thermald일까요?) 간단히 최대 주파수를 제한할 수 있을 것입니다.

온도가 어떻게 순간적으로 변할 수 있는지 이해가 안 됩니다(내 친구의 Y520에서는 1초도 안 되어 60C와 100C 사이에서 변하는데, Intel DPTF 드라이버가 없습니다. CPU 온도가 이렇게 빨리 변하는 것을 본 적이 없습니다). CPU와 방열판 사이의 열 접촉 불량으로 인해 발생하는 것으로 생각되지만 칩이 그런 식으로 설계되었으며 제대로 작동하려면 Intel DPTF 드라이버로 관리해야 할 수도 있습니다.

관련 정보