라즈베리파이를 구입해서 며칠째 이것저것 살펴보는 중입니다.
Idle 상태에서도 CPU 발열이 상당히 심하다고 했는데, 역시나 상당합니다.
방열판은 기본으로 장책해야 하는 것 같고, 가급적이면 쿨링팬도 장착하시기를 권장드립니다.
[라즈베리파이 CPU 온도 확인 명령]
라즈베리파이의 CPU 온도를 확인하는 명령은 아래와 같습니다.
<명령어>
$ cat /sys/class/thermal/thermal_zone0/temp |
<출력 결과>
45277 |
출력 결과는 millidegree celsius로 표시됩니다.
45277 millidegree celsius를 1000으로 나누면 45.277 celsius가 되겠습니다.
정밀도는 277 millidegree입니다.
[라즈베리파이 CPU 온도를 1초 단위로 확인하는 스크립트]
이번에는 라즈베리파이 CPU 온도를 1초 단위로 확인하는 간단한 스크립트를 소개합니다.
선호하는 편집기로 아래의 내용을 입력한 이후에 확장자를 sh로 저장합니다.
#!/bin/bash while : do cat /sys/class/thermal/thermal_zone0/temp sleep 1 done |
간단하게 설명드리자면, 1초 간격으로 CPU의 온도를 출력하는 bash 스크립트입니다.
1. while문의 경우 do ~ done 사이를 무한으로 반복합니다.
2. cat /sys/class/thermal/thermal_zone0/temp 명령은 CPU의 온도를 확인하는 명령입니다.
3. sleep 1 명령은 1초 동안 delay를 주기 위한 명령입니다.
<명령어>
$ vi temperature.sh $ chmod +x temperature.sh $ ./temperature.sh |
저는 temperature.sh라는 파일에 위의 스크립트를 입력하고, 실행 권한을 준 이후에 실행하였습니다.
<출력 결과>
45764 45764 45277 45277 |
1초 단위로 CPU의 온도가 millidegree celsius로 표시되는 것을 알 수 있습니다.
이 상태에서 Ctrl + C 또는 Ctrl + Z를 입력하면 스크립트가 종료됩니다.
[1초 단위의 CPU 온도를 파일로 출력]
만약, 1초 단위의 온도를 파일로 출력하고자 한다면 아래와 같이 tee 명령을 사용하면 됩니다.
<명령어>
$ ./temperature.sh | tee temp.txt |
<출력 결과>
45764 45764 45277 45277 |
출력 결과는 기존과 동일하지만, 쉘에 출력된 표준 출력 내용이 temp.txt 파일에 동일하게 저장된 것을 알 수 있습니다.
$ cat temp.txt 45764 45764 45277 45277 |
[발열 그래프 - 방열판만 장착]
파일로 출력한 온도 정보를 표로 확인해보겠습니다.
측정 조건은 상온에서 방열판만 장착한 상태입니다.
방열판만 장착한 라즈베리파이의 발열 그래프를 보면, 약 45℃로 수렴하는 것을 알 수 있습니다.
[발열 그래프 - 쿨러 장착]
쿨링팬까지 장착한 상태에서의 발열을 확인해보겠습니다.
5V 쿨링팬의 경우 GPIO의 4 번핀(5V)과 6 번핀(GND)을 이용하면 됩니다.
추가적으로 쿨링팬까지 장착한 경우 즉각적으로 CPU의 온도가 떨어지면서 약 33℃ 정도로 수렴하는 것을 확인할 수 있었습니다.
[발열 그래프 - USB 선풍기 사용]
이번에는 USB 선풍기를 장착해보겠습니다.
60도 정도로 열평형이 이뤄진 상태에서 USB 선풍기를 동작시켰더니 완만하게 온도가 내려가다가 약 36도로 수렴하는 것을 확인할 수 있습니다. 쿨링팬을 사용하는 것도 방법이지만, USB 선풍기로 충분히 대체가 가능하다고 봅니다.
[라즈베리파이의 동작 온도 및 최대 온도]
라즈베리파이의 Data Sheet를 보면, 0℃ ~ 50℃ 사이의 온도에서 동작시키도록 권장되고 있습니다.
특별한 쿨링 장치 없이 동작하도록 디자인되어 있으나, CPU의 부하가 높아지면 CPU의 동작 스피드와 전압을 낮춰서 절대 85℃가 넘지 않도록 합니다.
만약 CPU 동작 스피드나 전압을 낮추지 않고 동작시키기 위해서는 추가적인 쿨링 장치들을 장착할 필요가 있습니다.
5.6 Temperature Range and Thermals The recommended ambient operating temperature range is 0 to 50 degrees Celcius. To reduce thermal output when idling or under light load, the Pi4B reduces the CPU clock speed and voltage. During heavier load the speed and voltage (and hence thermal output) are increased. The internal governor will throttle back both the CPU speed and voltage to make sure the CPU temperature never exceeds 85 degrees C. The Pi4B will operate perfectly well without any extra cooling and is designed for sprint performance - expecting a light use case on average and ramping up the CPU speed when needed (e.g. when loading a webpage). If a user wishes to load the system continually or operate it at a high termperature at full performance, further cooling may be needed. - 출처 : 라즈베리파이 data sheet - |
결론을 말씀드리자면, 라즈베리파이는 0℃ ~ 50℃ 사이의 환경에서 동작시킨다면, 알아서 CPU 온도를 제어하게 되고, 만약 이런 속도 저하 없이 지속적으로 performance를 유지할 필요가 있다면 방열판이나 쿨링팬 등이 필요합니다.
[쓰로틀 여부 확인 방법]
CPU의 동작 온도가 높아질 경우 라즈베리파이는 자동으로 CPU의 성능을 떨어트리는 쓰로틀(throttle)이라는 동작을 수행합니다. 쓰로틀이 발생했는지 여부를 확인하는 명령은 아래와 같습니다.
$ sudo vcgencmd get_throttled
위와 같이 입력해서 출력된 메시지입니다.
결괏값은 아래와 같습니다. 비트들의 조합으로 출력됩니다.
값 | 의미 | 비고 |
BIT_0 | under-voltage | |
BIT_1 | arm frequency capped | |
BIT_2 | currently throttled | |
BIT_16 | under-voltage has occurred | |
BIT_17 | arm frequency capped has occurred | |
BIT_18 | throttling has occurred |
출처 : https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=147781&start=50#p972790
[끝 맺음말]
간단하게 CPU의 온도를 확인하는 것부터 시작해서, 라즈베리파이의 발열 그래프를 확인해보았습니다.
뿐만 아니라, 라즈베리파이의 Data Sheet의 동작 온도 부분가지 다뤄보았습니다.
이상입니다.
<더보기>
'Study > 라즈베리파이 공부' 카테고리의 다른 글
[라즈베리파이] Ubuntu Linux에 Samba 서버 설치 (0) | 2021.01.19 |
---|---|
라즈베리파이 회로도 & Data Sheet (0) | 2021.01.19 |
[라즈베리파이] 보드 시리얼번호 확인하는 방법 (0) | 2021.01.17 |
라즈베리파이 Ubuntu Linux 초기 비밀번호 (0) | 2021.01.17 |
라즈베리파이 SD카드 최소용량은 4GB면 가능합니다. (Ubuntu Linux Server 기준) (0) | 2021.01.16 |