타사 소프트웨어없이 온도를 어떻게 찾습니까?


12

YouTube 동영상을 볼 때 시스템이 계속 종료되므로 sensors-detect시스템에서 실행 중 입니다.lm-sensors

그래서 타사 소프트웨어없이 팬과 CPU의 온도를 수동으로 어떻게 찾을 수 있을지 궁금합니다 lm-sensors. 어디에 저장되어 있는지 잘 모르겠습니다.

processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 16
model       : 6
model name  : AMD Athlon(tm) II X2 240e Processor
power management: ts ttp tm stc 100mhzsteps hwpstate

x86_64


어떤 버전의 Ubuntu를 실행하고 있습니까?
wjandrea

1
프로세서에 따라 다릅니다. 많은 최신 인텔 프로세서의 경우 turbostat 프로그램은 MSR (Machine Specific Registers)을 읽고 패키지 및 코어 온도를 표시합니다. 질문을 편집하고 프로세서를 추가하여 모델을 만드십시오. 그것이 내가 아는 것이라면, 나는 그것을 수동으로하는 방법으로 대답 할 것입니다.
Doug Smythies

추가 된 추가 RAM에 문제가 있습니까

11
타사의 의미는 무엇입니까? 자사 소프트웨어가 우분투라고 생각하십니까?
muru

1
사용자가 배포를 사용하기 전에 Ubuntu가 얼마나 많은 당사자를 사용하는지 확실하지 않습니다. 나는 우분투가 내가 제일 먼저 언급 한 리눅스 운영 체제라는 것을 알고있다. 그 다음에 나에게 당면한 질문이있다. 또는 ubtunu 스폰서 및 / 또는 자발적인 프로그래머 소프트웨어 이후에, 나는 정확히 모른다.

답변:


12

그것은 당신이 원하는 같은 소리 /sys/class/hwmon하고 /sys/class/thermal.

이 두 가지 모두 원하는 데이터에 대한 간단한 쉘 기반 액세스를 제공합니다 (hwmon 디렉토리에는 다른 센서 유형도 포함됨). 각 시스템에는 시스템의 각 센서 인터페이스에 대해 하나 이상의 디렉토리가 있습니다 (하나 이상의 센서가있을 수 있음).

그래도 참고해야 할 세 가지 사항 :

  • 실제로 시스템이 나쁜 경우가 아니라면 sensors1 초에 한 번이라도 명령을 실행해도 영향을 미치지 않습니다. 실제로, 위에서 언급 한 디렉토리에서 파일을 정기적으로 읽는 것이 더 효과적 일 수 있습니다.
  • 그래프는 당신의 친구입니다. netdata 또는 수집 된 실행과 같은 것을 가져 와서 실시간 (또는 거의 실시간) 데이터를 볼 것을 제안합니다.
  • 전압도 확인하십시오. 설명은 시스템의 전원 요구 사항을 충족 할 수없는 전원 공급 장치가 있기 때문일 수도 있습니다. 이는 시스템의 부하가 높을 때 전압이 크게 떨어지는 것으로 나타납니다.

"실제로 온도를 찾을 수있는 방법은 ... [...] 수동으로 [...]? 어떻게 저장되어 있는지 잘 모르겠습니다." 그런 다음 일부 /proc/cpuinfo는 AMD 프로세서를 보여줍니다. OP가 다른 도구를 설치해야하는 인텔 고유의 답변을 수락 한 이유를 잘 모르겠습니다.
Aaron F

@AaronF : 동의하지 않습니다. OP가 요구 한 결과 인텔 고유의 답변을 작성했습니다. 다른 도구를 설치할 필요가 없습니까? 비아 /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input가 아닌 MSR을 통해 패키지 온도를 직접 읽는 이유 는 대부분의 작업이 매우 유휴 상태 인 시스템이고 후자의 방법이 훨씬 더 많은 오버 헤드를 가져서 일관된 4-5도 높은 결과를 얻기 때문입니다. 물론,로드가 많은 시스템에는 차이가 없습니다.
Doug Smythies

1
@DougSmythies 나는 당신의 대답이 매우 좋고 완전하다고 생각했기 때문에 그 아래에 부정적인 의견을 남기지 않았거나 부정적인 의견을 남기지 않았습니다. machine (Ubuntu 실행, Intel을 감지하면 기본적으로 다른 배포판 설치)?
Aaron F

@AaronF : msr-tools가 필요한 추가 패키지라는 것을 잊었습니다. 그래서 내 방법에는 OP가 원했던 것이 아닌 추가 도구가 필요합니다.
Doug Smythies

2
안녕하세요 @ DougSmythies와 Aaron F, 저는 처음으로 DougSmythies를 기본 답변으로 선택했습니다. 그가 도움을 제공 한 최초의 사람이었으며, 수동으로 온도를 검색하는 방법과 수동 솔루션을 사용하기 쉬운 방법에 대해 매우 명확했습니다. mdmsr 지원 프로그램을 사용하면 실제로 두 답변 모두 매우 유익한 결정을 내릴 수 없었지만이 답변이 가장 적합하다는 데 동의 했으므로 둘 다 동의했습니다. 나는 Aaron에게 일차적 인 대답을 되 돌렸다. 당신의 지원에 감사한다. 행복한 사냥

9

이 답변은 MSR (machine specific registers)에 직접 액세스하여 일부 인텔 프로세서의 프로세서 온도를 수동으로 모니터링하는 한 가지 방법입니다.

첫 번째로 주목해야 할 것은이 경우 MSR에서 읽은 것은 한계 온도 인 Tcc에 대한 것이므로 실제 온도를 결정하기 위해 추가 계산이 필요합니다.

참고하여주십시오 인텔 ® 64 및 IA-32 아키텍처 소프트웨어 개발자 설명서 , 또는 경우에 AMD에 해당.

제 경우에는 0x1B1, 즉 IA32_PACKAGE_THERM_STATUS에서 MSR의 비트 22-16을 원합니다. 이전 i7-2600K의 Tcc는 98 도입니다.

다음은 온도 및 CPU 주파수를 수동으로 모니터링하는 간단한 스크립트입니다.

#! /bin/dash
#
# temp_mon3 Smythies 2016.10.05
#       a simplified version of temp_mon2,
#       for monitoring temp.
#       Note: it is on purpose that -a is not used.
#       Also CPU0 frequency (1 is good enough, when all
#       are loaded).
#
# temp_mon2 Smythies 2016.09.29
#       Monitor Package temperatures.
#       Use clock modulation to control temps.
#       i.e. simulate the second to last level
#       of defense.
#       Use simple primatives.
#       run as sudo
#       hardcoded for my tcc of 98 degrees.
#
echo ... begin package temperature monitoring ...

#
# In case I forgot (which I often do)

modprobe msr

#
# first let the drastic effect of the sudo command decay
# Done later in temp_mon3.

#
# some stuff

COMMAND="rdmsr --bitfield 22:16 -u 0x1B1"
COMMAND2="cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq"

#
# then get on with it

while [ 1 ];do
  sleep 4
  TEMP_RAW=$(eval $COMMAND)
  CPU0_FREQ=$(eval $COMMAND2)
  TEMP_ACT=$((98-TEMP_RAW))
  echo "$TEMP_ACT   $CPU0_FREQ"
done

그리고 약간의 샘플 출력이 있습니다. 여기서 약간의 CPU로드를 추가하십시오 (온도는 31도에서 73도까지)

$ sudo ./temp_mon3
[sudo] password for doug:
... begin package temperature monitoring ...
31   1605275
31   1605154
32   1605164
30   1605148
31   1605176
51   3511279
54   3511278
55   3511279
57   3511283
58   3511279
60   3511278
61   3511284
63   3511279
64   3511280
64   3511280
66   3511280
67   3511278
68   3511280
68   3511281
69   3511278
71   3511280
70   3511281
71   3511281
71   3511280
72   3511276
72   3511277
73   3511283
73   3511279
^C

왜 사용 eval합니까?
wjandrea

@Doug : msr을 사용하는 것이 좋습니다! 그러나 올바른 msr 레지스터 0x19c 아닙니까 ? 그리고 온도는 TEMP = TCC-[0x19c 비트 22:16]입니다. 따라서 먼저 TCC를 읽어야합니다.
abu_bua

@abu_bua : 0x19c가 작동하는지 여부는 알지 못하지만 사용중인 것은 작동합니다. 그리고 예, 프로세서에서 TCC를 읽는 것이 더 나은 솔루션보다는 프로세서에 맞게 TCC를 하드 코딩했습니다.
Doug Smythies 1

1
설치 sudo apt install msr-tools했습니까?
abu_bua

1
msr-tools는 패키지입니다. 그것은 것 man rdmsrman wrmsr패키지 내의 개별 명령의 두하십시오.
Doug Smythies

6

나는 당신이 정말로 원하는 것을 모른다. lm-sensor 프로그램 (및 sensors명령)은 libsensor 라이브러리를 사용 합니다. Ubuntu 18.04를 사용하는 경우 libsensors4 , 버전 3.4.0-4입니다. 이것은 sys디렉토리 에서 볼 수있는 온도를 읽는 동일한 라이브러리입니다 .

요약하면 센서가 좋은 선택입니다. 온도를 지속적으로 보려면

watch -n 1 sensors

프로그램을 작성하려면를 사용하여 libsensor를 man libsensors보거나를 참조해야합니다 /usr/share/doc/. 포함해야합니다 #include <sensors/sensors.h>. /etc/sensors3.conf 및 / 또는 /etc/sensors.confsensors.conf 파일 을 사용합니다 . 추가 (사용자) 구성은 사용되는 경우 에서 찾을 수 있습니다 ./etc/sensors.d/

일부 센서가 누락되었다고 생각되면 /sys/class/thermal또는 연결된 /sys/devices/virtual/thermal디렉토리를 살펴보십시오 .

모든 열 영역의 온도를 얻으려면

$ cat /sys/devices/virtual/thermal/thermal_zone?/temp

77000
66000
67000

온도는 77.0, 66.0, 67,0 ° C 이상인 경우 miliCelcius (mC)로 측정됩니다.

계속 사용하려면

watch -n 1 cat /sys/devices/virtual/thermal/thermal_zone?/temp

이 디렉토리에서 냉각 (팬) 장치에 대한 정보와 PID 조정기가 프로그래밍되는 방법도 찾을 수 있습니다.

또한 일부 과열 보호는 데이터가 바이오스에 저장되는 하드웨어 기반 (이것은 좋은 생각입니다)으로 코딩되어 있다고 말하고 싶습니다.


프로그램이 있다는 것을 알고 있지만 수동으로 etemps를 찾는 방법을 찾고있었습니다

1
수동으로 무엇을 의미합니까? 온도를 인쇄하는 것은 모두 프로그램입니다.
abu_bua

thermal_zone이없고 cooling_device0 1과 2 만 있지만 파일 온도를 유지하지 못합니다. cur_state 장치 max_state 전원 하위 시스템 유형 uevent

cur 및 max 상태는 0과 10입니다.

정확히 무엇입니까 thermal_zones? 내 4 코어 Intel CPU는 단일 온도 인 것 같습니다 thermal_zone( sensors그러나 모든 4 코어 온도를 정확하게 나열합니다).
Gwyneth Llewelyn

5

기본 Ubuntu 리포지토리에서 Psensor ( psensor )를 설치 하고 온도가 사용자가 결정한 최대 값을 초과 할 때마다 경고음을 자동으로 재생하도록 Psensor를 구성하십시오. 이것의 목적은 시스템에 추가 응용 프로그램 오버 헤드를 추가하지 않고 시스템이 종료 되기 전에 경고음을들을 수 있도록 하는 것입니다.

Psensor는 바탕 화면 오른쪽 상단의 알림 영역에서 시계 옆에 작은 온도계 아이콘으로 바탕 화면에 표시됩니다. 언제든지 온도계 아이콘을 마우스 오른쪽 버튼으로 클릭하여 하드웨어 온도를 표시 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.