Linux 서버를 운영하다 보면 CPU 사용률은 높지 않은데도 성능이 갑자기 떨어지거나, 동일한 작업이 평소보다 오래 걸리는 현상을 경험할 수 있습니다. 이런 경우 CPU 과열로 인해 Thermal Throttling(열 스로틀링) 이 발생했을 가능성이 있습니다.
Thermal Throttling은 CPU 온도가 안전 기준을 초과했을 때 CPU가 스스로 클럭 속도를 낮춰 발열을 줄이는 보호 기능입니다. 시스템을 보호하는 데는 효과적이지만, 성능 저하와 서비스 지연을 유발할 수 있습니다.
이번 글에서는 Linux에서 CPU Thermal Throttling이 발생하는 원인과 진단 및 해결 방법을 알아보겠습니다.
CPU Thermal Throttling이란?
CPU에는 일정 온도를 초과하면 자동으로 동작 속도를 낮추는 기능이 있습니다.
예를 들어 기본 클럭이 3.8GHz인 CPU가 과열되면 다음과 같이 동작할 수 있습니다.
정상 상태
3.8GHz
과열 발생
2.6GHz
심한 과열
1.8GHz
이 과정에서 CPU 사용률은 높지 않아 보여도 실제 처리 성능은 크게 감소합니다.
Thermal Throttling이 발생하는 대표적인 원인
다음과 같은 상황에서 자주 발생합니다.
- CPU 쿨러 이상
- 방열판 먼지
- 서멀구리스 노후
- 서버 내부 온도 상승
- 장시간 CPU 100% 사용
- 팬(FAN) 고장
- BIOS 설정 문제
- 랙 내부 냉각 부족
- 오버클럭
- 전원 공급 문제
실무에서는 CPU 온도를 가장 먼저 확인해야 합니다.
1. CPU 온도 확인하기
가장 먼저 CPU 온도를 확인합니다.
sensors
예시
Package id 0: +94.0°C
Core 0: +92.0°C
Core 1: +91.0°C
90℃ 이상이라면 Thermal Throttling 가능성이 매우 높습니다.
2. CPU 클럭 확인하기
현재 CPU 동작 속도를 확인합니다.
cat /proc/cpuinfo | grep "cpu MHz"
또는
lscpu
평상시보다 클럭이 지속적으로 낮다면 스로틀링을 의심할 수 있습니다.
3. CPU 사용률 확인하기
top
또는
mpstat -P ALL 1
CPU 사용률과 실제 클럭이 함께 감소하는지 확인합니다.
4. 커널 로그 확인하기
CPU 과열 관련 메시지를 확인합니다.
dmesg | grep -Ei "thermal|temperature|throttle"
또는
journalctl -k | grep -Ei "thermal|temperature"
예시
CPU0: Temperature above threshold
또는
Thermal event detected
5. 하드웨어 이벤트 로그 확인하기
서버에서는 BMC/IPMI 로그를 확인합니다.
ipmitool sel list
다음 항목을 확인합니다.
- Thermal Event
- Fan Failure
- CPU Over Temperature
- Temperature Critical
제조사 서버에서는 매우 중요한 진단 자료입니다.
6. 팬(FAN) 상태 확인하기
팬 회전 속도를 확인합니다.
ipmitool sdr
또는
sensors
RPM이 0이거나 매우 낮다면 팬 이상일 수 있습니다.
7. CPU Governor 확인하기
CPU 주파수 정책을 확인합니다.
cpupower frequency-info
Governor가 powersave로 설정되어 있다면 성능이 낮게 유지될 수 있습니다.
현재 Governor 확인
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
8. BIOS 설정 확인하기
다음 항목을 확인합니다.
- Thermal Control
- CPU Power Limit
- Turbo Boost
- Fan Profile
BIOS에서 절전 위주로 설정되어 있으면 성능이 제한될 수 있습니다.
9. 스트레스 테스트 수행하기
CPU 부하 테스트를 수행합니다.
stress-ng --cpu 8 --timeout 300
테스트 중 CPU 온도와 클럭 변화를 함께 확인합니다.
운영 서버에서는 유지보수 시간에 수행하는 것이 좋습니다.
10. 냉각 시스템 점검하기
다음 사항을 확인합니다.
- 먼지 제거
- 쿨러 재장착
- 서멀구리스 재도포
- 팬 교체
- 서버실 온도 확인
- 랙 공기 흐름 개선
실무에서는 물리적인 냉각 문제가 가장 흔한 원인입니다.
CPU Thermal Throttling 문제를 확인하는 순서
실무에서는 다음 순서대로 점검하는 것이 효율적입니다.
sensors로 CPU 온도 확인- CPU 클럭 확인
- CPU 사용률 확인
dmesg확인journalctl -k확인- IPMI 이벤트 로그 확인
- 팬 상태 확인
- CPU Governor 확인
- BIOS 설정 확인
- 냉각 시스템 점검
이 순서대로 진행하면 대부분의 원인을 빠르게 파악할 수 있습니다.
Thermal Throttling을 예방하는 방법
CPU 과열은 예방이 가장 중요합니다.
다음과 같은 관리 방법을 권장합니다.
- 서버 내부 먼지 청소
- CPU 팬 정기 점검
- 서멀구리스 주기적 교체
- 서버실 온도 관리
- BIOS 최신 버전 유지
- CPU 온도 모니터링
- 부하 분산
- 적절한 공기 순환 확보
특히 여름철에는 서버실 온도를 지속적으로 모니터링하는 것이 중요합니다.
자주 묻는 질문
Thermal Throttling은 CPU 고장인가요?
아닙니다. CPU를 보호하기 위한 정상적인 기능입니다. 하지만 지속적으로 발생한다면 냉각 환경을 점검해야 합니다.
CPU 온도는 몇 도부터 위험한가요?
CPU 모델마다 다르지만 일반적으로 85~90℃ 이상에서는 성능 저하가 발생할 수 있으며, 95℃ 이상에서는 Thermal Throttling이 활성화되는 경우가 많습니다.
팬만 교체하면 해결되나요?
팬 고장이 원인이라면 해결될 수 있습니다. 하지만 먼지, 서멀구리스, BIOS 설정, 서버실 온도 등도 함께 점검해야 합니다.
마무리
CPU Thermal Throttling은 Linux 서버에서 CPU를 보호하기 위한 중요한 기능이지만, 장시간 지속되면 성능 저하와 서비스 장애로 이어질 수 있습니다. sensors, lscpu, dmesg, ipmitool 등을 활용하면 원인을 효과적으로 분석할 수 있으며, 냉각 시스템 관리와 정기적인 하드웨어 점검을 통해 충분히 예방할 수 있습니다.