최소한의 스크립팅으로 경고를 표시하기 위해 CPU 온도를 모니터링하는 방법은 무엇입니까?

최소한의 스크립팅으로 경고를 표시하기 위해 CPU 온도를 모니터링하는 방법은 무엇입니까?

내 데스크탑에는 나쁜 습관이 있습니다. 여러 개의 고강도 응용 프로그램을 실행하고 CPU를 일정 시간 동안 최대 사용량으로 사용하면 코어 온도가 올라가고 컴퓨터가 자동으로 종료됩니다.

백그라운드에서 CPU 온도를 모니터링(스크립트)하고 특정 온도 이상이 되면 경고를 표시할 수 있는 방법이 있습니까?

Opensuse를 실행하고 dwm을 창 관리자로 사용하고 있습니다. 나는 보통 이것을 sensorsCPU 온도를 확인하는 데 사용합니다.

답변1

dwm의 상태 표시줄에 온도를 표시하는 스크립트를 작성할 수 있습니다. 예를 들면 다음과 같습니다.

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

sensors설정에 따라 출력이 더 복잡해질 수 있습니다. 이는 내 컴퓨터 중 하나에서 작동합니다 .

 awk '/temp1/ {print +$2"°C"}' <(sensors)

패치하면상태 색상$temp, 더 높은 값에 도달하면 출력 색상이 변경되도록 할 수도 있습니다 .

Arch Wiki에서 설정 방법을 설명합니다.기본 상태 표시줄 스크립트dwm 사이트에는 다음이 포함됩니다..xinitrc 예.

dwm-status자세한 내용은 내 스크립트를 확인하세요 .http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status

답변2

이 문제를 해결하기 위해 다음 세 가지를 권장합니다.

물리적 쿨타임을 확인하세요

CPU 자동 종료 시스템은 내부 온도 제한 전략(아래 참조)이 작동하지 않는 극단적인 상황에서 CPU를 보호하는 데 사용됩니다.

냉각 시스템을 확인하는 것이 좋습니다. 컴퓨터에서 먼지를 제거하고, 팬이 작동하는지 확인하고, 방열판이 충분히 "큰"지 확인하고, 적절한 열 페이스트(또는 패드)를 사용하여 적절한 냉각을 보장하십시오.

CPU 내부 온도 제한 구성

CPU에는 위험한 과열을 방지하기 위해 내부 온도 제한 시스템이 내장되어 있는 경우가 많습니다. 이 보호는 일반적으로 다음과 같이 성능(제한)을 감소시키는 전략을 활용합니다.

  • CPU 주파수를 줄이고,
  • CPU 전압을 낮추고,
  • CPU 클럭 신호를 잠시 중지합니다.

내 노트북의 Intel Core CPU에서 자동 보호가 시작되도록 허용되는 최대 온도는 다음과 같습니다 100°C(이는 매우 일반적인 하드 제한입니다). Intel은 또한 이 값을 더욱 줄이기 위해 구성 가능한 오프셋을 제공합니다. 얻을 수 있는 offset=8결과 92°C에는 한계 가 있습니다.

리눅스 5.4부터 시작sysfs, 다음을 통해 Intel CPU 제한을 읽고 업데이트할 수 있습니다.

# cd /sys/bus/pci/drivers/proc_thermal/0000:00:04.0
# cat tcc_offset_degree_celsius
3
# echo 8 >| tcc_offset_degree_celsius
# cat tcc_offset_degree_celsius
8

이렇게 하면 CPU 자체에 추가적인 과열 보호 기능이 제공되어 마음의 평화를 얻을 수 있습니다.

시스템 데몬( thermald)을 사용하여 CPU 온도 관리

또 다른 옵션은 이 프로그램을 사용하는 것입니다 thermald. 이 프로그램의 주요 목적은 운영 체제 측에서 CPU 온도를 모니터링하고 발열을 제한하는 조치를 취하는 것입니다.앞으로하드웨어 한도에 도달했습니다.

또한 다음 기술을 사용합니다. CPU에 전력 소비 제한(TDP 제한) 요청, CPU에 p_state(주파수) 감소 요청, 커널 변경cpufreq특정 "CPU 유휴 시간"을 삽입하여 매개변수(예: 절전 방법을 사용하도록 요구)커널 드라이버, 팬 속도를 높이세요...

이 페이지좋은 소개를 제공합니다 thermald.

답변3

나는 똑같은 문제를 겪었습니다. "cpufreqtools"(또는 그냥 "cpufreq" - 기억이 나지 않습니다!) 패키지를 사용하고 있었습니다.

cpufreq-info 및 cpufreq-set라는 두 가지 명령을 제공합니다.

cpufreq-info는 현재 CPU 속도와 최소 및 최대 속도를 나열합니다. 및 사용 가능한 단계.

cpufreq-set은 CPU가 달성할 수 있는 최대 속도를 제한할 수 있기 때문에 더 유용합니다.

쉽게 과열되는 내 CPU의 사용 가능한 속도는 800MHz, 1.60GHz 및 1.80GHz입니다. 그래서 저는 다음과 같이 1.60GHz로 제한했습니다.

cpufreq-set --최대 1.60Ghz

기적적으로 작동합니다!

Linux 기술이 더 고급이라면 이를 시작 스크립트에 넣어 Linux가 부팅되자마자 항상 실행되도록 할 수도 있습니다.

행운을 빌어요.

답변4

이러한 과열 문제를 직접적으로 해결하기 위해 스크립트를 만들었습니다. 원하는 온도에 따라 CPU를 제한하십시오. 다음과 같이 백그라운드에서 자동으로 실행됩니다.

sudo ./temp_throttle.sh 80

이 명령을 사용하면 CPU 코어 온도가 섭씨 80도에 도달하면 속도가 느려집니다. 온도가 떨어지면 CPU 코어가 다시 더 빠르게 실행됩니다. 당신은 찾을 수 있습니다temp_throttle이 여기에 있습니다.

관련 정보