dmesg — 커널 메시지 확인

Linux / 서버 로그 기록 및 분석 / dmesg.html

서버 로그 기록 및 분석원문등록 2026-10-18

💬 "dmesg 명령어"

dmesg는 커널 링 버퍼 메시지를 보여줍니다. 디스크 오류, 네트워크 링크, OOM kill 같은 정보가 여기 남습니다.

사용자 공간 애플리케이션 로그와 별개이므로, 원인 모를 문제에서 함께 봐야 합니다.

  • 개념: 커널이 출력한 메시지를 시간순으로 보여줍니다.
  • 왼쪽: [ 12.345678] 형식의 커널 시간(부팅 후 경과 초)입니다.
  • 내용: 드라이버, 디스크 I/O 오류, OOM killer, 링크 상태 등입니다.
  • -T: 사람이 읽는 실제 시각으로 변환해 보여줍니다.

자주 쓰는 옵션

옵션설명
-T타임스탬프를 실제 시각으로 변환
-l err,warn특정 레벨만 표시합니다
-k커널 메시지만 표시
-w / --follow새 메시지를 실시간으로 follow합니다

필수 명령어 조합 3가지

  • dmesg -T | tail -50 — 최근 커널 메시지 확인
  • dmesg -T | grep -i -E 'oom|killed process' — OOM kill 발생 여부 확인
  • dmesg -T | grep -i -E 'error|fail|i/o' — 하드웨어·I/O 오류 찾기

💬 "이 명령을 안전하게 되돌리는 예시 보여줘"

실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.

1단계 · 최근 메시지 확인

부팅/장치 관련 최근 로그를 봅니다.

dmesg -T | tail -50

2단계 · OOM 여부 확인

메모리 부족으로 프로세스가 죽었는지 봅니다.

dmesg -T | grep -i -E 'oom|killed process'

3단계 · 디스크 오류 확인

I/O 오류가 있는지 확인합니다.

dmesg -T | grep -i -E 'i/o error|medium error|ata'

실무에서는 이렇게 씁니다

1. 프로세스가 갑자기 죽음

상황 — 앱 프로세스가 예고 없이 종료됩니다.

dmesg -T | grep -i -E 'oom|killed process'

결과 — Out of memory: Killed process 메시지가 있으면 OOM killer가 종료시킨 것입니다.

포인트 — 메모리 사용량과 함께 확인하고, 필요하면 스왑이나 메모리 제한을 조정합니다.

2. 원인 모를 재부팅

상황 — 서버가 새벽에 재부팅된 기록이 있습니다.

dmesg -T | head -30

결과 — 부팅 초기 메시지에서 하드웨어 초기화와 이전 셧다운 흔적을 확인합니다.

포인트 — journalctl --list-boots와 함께 보면 재부팅 시점을 정확히 알 수 있습니다.

주의할 점

  • 링 버퍼는 크기가 제한되어 오래된 메시지는 사라집니다. 영구 보관은 journal/rsyslog를 씁니다.
  • 커널 시간만 보면 실제 시각을 알기 어려우므로 -T를 씁니다.
  • 일부 배포판은 dmesg 접근에 권한 제한(kernel.dmesg_restrict)이 있습니다.

실제 실행 화면

OOM kill과 디스크 I/O 오류를 확인한 결과입니다.

dmesg 명령어 실행 결과: 커널 OOM·I/O 오류

실제 운영 중인 서버

이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.