Linux Watchdog Timeout 오류가 발생하는 원인과 해결 방법

Linux 서버를 운영하다 보면 커널 로그에서 Watchdog detected hard LOCKUP, Watchdog timeout, watchdog: BUG와 같은 메시지를 확인하는 경우가 있습니다. 이러한 오류는 단순한 경고가 아니라 CPU 또는 커널이 일정 시간 이상 정상적으로 응답하지 못하고 있다는 의미입니다.

Watchdog은 운영체제나 하드웨어가 시스템의 응답 상태를 지속적으로 감시하는 기능입니다. CPU나 커널이 멈춘 것으로 판단되면 오류를 기록하거나 시스템을 자동으로 재부팅하여 장애를 최소화합니다.

이번 글에서는 Linux Watchdog Timeout 오류의 원인과 실무에서 사용하는 진단 및 해결 방법을 알아보겠습니다.

Watchdog Timeout이란 무엇인가?

Watchdog은 일정 시간마다 시스템이 정상적으로 동작하는지 확인합니다.

정해진 시간 동안 응답이 없으면 Timeout으로 판단하고 다음과 같은 로그를 출력합니다.

watchdog: BUG: soft lockup - CPU#2 stuck for 22s

또는

NMI watchdog: Watchdog detected hard LOCKUP

또는

watchdog: watchdog0: watchdog did not stop!

운영 환경에서는 이러한 메시지가 반복된다면 반드시 원인을 분석해야 합니다.

Watchdog Timeout이 발생하는 대표적인 원인

다음과 같은 상황에서 자주 발생합니다.

  • CPU 과부하
  • Soft Lockup
  • Hard Lockup
  • 커널 버그
  • 인터럽트 처리 지연
  • 메모리 오류
  • 디스크 I/O 병목
  • 하드웨어 장애
  • BIOS 및 펌웨어 문제
  • 가상화 환경 문제

실무에서는 Watchdog 로그와 Call Trace를 함께 분석하는 것이 가장 중요합니다.

1. Watchdog 로그 확인하기

먼저 커널 로그를 확인합니다.

dmesg | grep -i watchdog

또는

journalctl -k | grep -i watchdog

Watchdog이 어떤 이유로 Timeout을 감지했는지 확인합니다.

2. Soft Lockup 및 Hard Lockup 확인하기

다음 로그도 함께 확인합니다.

dmesg | grep -Ei "soft lockup|hard lockup"

또는

journalctl -k | grep -Ei "soft lockup|hard lockup"

Watchdog Timeout은 대부분 Soft Lockup 또는 Hard Lockup과 함께 발생합니다.

3. Call Trace 확인하기

Call Trace를 확인하면 CPU가 어느 함수에서 멈췄는지 알 수 있습니다.

journalctl -k | grep -A 40 "Call Trace"

또는

dmesg | grep -A 40 "Call Trace"

호출된 함수와 커널 모듈을 함께 분석합니다.

4. CPU 상태 확인하기

CPU 사용률을 확인합니다.

top

또는

mpstat -P ALL 1

특정 CPU가 지속적으로 100%에 가까운 사용률을 보이는지 확인합니다.

5. Load Average 확인하기

uptime

또는

cat /proc/loadavg

CPU 개수보다 Load Average가 계속 높다면 CPU 병목을 의심할 수 있습니다.

6. 인터럽트 상태 확인하기

cat /proc/interrupts

특정 CPU에 인터럽트가 몰려 있는지 확인합니다.

IRQ 불균형이 발생하면 Watchdog Timeout으로 이어질 수 있습니다.

7. 메모리 상태 확인하기

메모리 부족이나 스왑 과다 사용 여부를 확인합니다.

free -h

또는

vmstat 1

메모리 압박이 심하면 CPU 응답 지연이 발생할 수 있습니다.

8. 디스크 I/O 확인하기

디스크 응답이 느리면 커널 작업이 지연될 수 있습니다.

iostat -x 1

또는

iotop

다음 항목을 확인합니다.

  • await
  • %util
  • r/s
  • w/s

응답 시간이 지속적으로 높다면 디스크 병목 가능성이 있습니다.

9. 하드웨어 이벤트 로그 확인하기

서버에서는 반드시 하드웨어 로그를 확인합니다.

ipmitool sel list

다음과 같은 항목이 있는지 확인합니다.

  • CPU Error
  • ECC Error
  • Machine Check Exception
  • Thermal Event
  • Voltage Error

하드웨어 문제는 Watchdog Timeout의 주요 원인 중 하나입니다.

10. BIOS 및 펌웨어 확인하기

오래된 BIOS나 펌웨어도 CPU 응답 지연을 유발할 수 있습니다.

다음 항목을 점검합니다.

  • BIOS 업데이트
  • CPU Microcode
  • RAID Firmware
  • BMC Firmware

제조사에서 제공하는 최신 안정 버전을 사용하는 것이 좋습니다.

Watchdog Timeout 문제를 확인하는 순서

실무에서는 다음 순서대로 점검하는 것이 효율적입니다.

  1. dmesg에서 Watchdog 로그 확인
  2. Soft Lockup 및 Hard Lockup 확인
  3. Call Trace 분석
  4. CPU 사용률 확인
  5. Load Average 확인
  6. 인터럽트 상태 확인
  7. 메모리 상태 확인
  8. 디스크 I/O 확인
  9. 하드웨어 이벤트 로그 확인
  10. BIOS 및 펌웨어 점검

이 순서대로 점검하면 대부분의 원인을 빠르게 파악할 수 있습니다.

Watchdog Timeout을 예방하는 방법

Watchdog Timeout은 CPU와 커널 응답 지연이 누적될 때 발생하는 경우가 많습니다.

다음과 같은 예방 방법을 권장합니다.

  • 최신 안정 커널 사용
  • CPU 과부하 방지
  • IRQ Balance 활성화
  • ECC 메모리 사용
  • 디스크 성능 모니터링
  • CPU 온도 관리
  • BIOS 및 펌웨어 최신 상태 유지
  • 정기적인 하드웨어 진단

운영 서버에서는 Watchdog 로그가 한 번이라도 발생했다면 반드시 원인을 확인하는 것이 좋습니다.

자주 묻는 질문

Watchdog Timeout이 발생하면 바로 재부팅해야 하나요?

시스템이 응답하지 않는다면 재부팅이 필요할 수 있습니다. 하지만 재부팅 전에 가능한 한 로그와 Crash Dump를 확보하는 것이 원인 분석에 도움이 됩니다.

Watchdog은 비활성화해도 되나요?

권장되지 않습니다. Watchdog은 시스템 이상을 조기에 감지하는 중요한 기능이므로 특별한 이유가 없다면 활성화 상태를 유지하는 것이 좋습니다.

Watchdog Timeout은 하드웨어 문제인가요?

하드웨어 문제일 수도 있지만, 커널 버그, 드라이버 오류, CPU 과부하, 인터럽트 지연 등 다양한 원인으로 발생할 수 있으므로 종합적인 분석이 필요합니다.

마무리

Watchdog Timeout은 Linux 서버에서 CPU와 커널이 정상적으로 응답하지 못하고 있다는 중요한 경고입니다. dmesg, journalctl, Call Trace, mpstat, iostat, ipmitool 등을 함께 활용하면 CPU 병목과 하드웨어 문제를 효과적으로 분석할 수 있습니다. 반복적으로 Watchdog Timeout이 발생한다면 단순 재부팅으로 끝내지 말고 원인을 분석하고 근본적인 해결책을 적용하는 것이 안정적인 서버 운영의 핵심입니다.

댓글 남기기