ACTIVE INCIDENT
00:00 elapsed
LABLAB-LINUX-10-MEMORY-LEAKSEV-1
메모리 누수 진단 — valgrind/smem/pmap 분석
ELAPSED
00:00
PHASE
0 / 5
SLA
45분
🐧 Linux
← 목록
INCIDENT RESPONSE
0 / 6 단계 완료
📚 PREREQUISITES
Lablinux-process-cpu-memory
Theorylinux/process-management
Theorylinux/system-monitoring
Theorylinux/memory-management
TRACK
LINUX
SLA
45분
SEV
SEV-1
PHASES
4단계
ENV
local
INCOMING TICKET
모니터링 알림: "app-server-01 메모리 사용률이 3일째 지속 상승. 현재 92%, 재시작 없이는 48시간 내 OOM 예상"
YOUR ROLE
인프라/SRE 엔지니어
IMPACT IF UNRESOLVED
메모리 누수로 인한 서버 점진적 성능 저하 및 72시간 이내 OOM killer 발동 + 서비스 강제 다운 예상. 근본 원인 없이 재시작만 반복하면 주기적 다운타임 불가피
🚨INCIDENT BRIEF
3일 전부터 모니터링 대시보드에서 app-server-01의 메모리 사용량이 완만하지만 꾸준히 우상향 그래프를 그리고 있습니다.
처음에는 62%였던 사용률이 지금은 92%까지 올라왔고, 이 추세라면 48시간 내에 OOM killer가 발동될 것으로 예상됩니다.
서비스를 재시작하면 일시적으로 해결되지만, 3주 전에 배포된 코드 이후로 이 현상이 반복되고 있습니다.
"메모리 누수(Memory Leak)"가 의심됩니다.
free, smem, pmap, /proc/meminfo를 순서대로 활용하여 어떤 프로세스가 메모리를 반환하지 않고 쌓아가는지 특정하고, 가능하다면 valgrind로 누수 지점까지 좁혀야 합니다.
⏱ 45분📊 고급🔧 4단계#memory-leak#valgrind#smem#pmap
MISSION
1
메모리 증가 추이 확인 — free와 smem
free -h와 smem으로 현재 메모리 상태와 프로세스별 실제 메모리 점유량을 파악하여 누수 의심 프로세스를 특정한다
2
프로세스 메모리 상세 분석 — pmap
pmap -x <PID>로 의심 프로세스의 메모리 맵을 분석하여 어느 메모리 영역(힙/스택/공유 라이브러리)이 비정상적으로 크게 할당되었는지 파악한다
3
/proc/meminfo 분석 — Cached/Buffers/Slab
/proc/meminfo의 주요 항목(Cached, Buffers, Slab, AnonPages, Mapped)을 해석하여 메모리 누수가 커널 메모리인지 사용자 공간인지를 구분한다
4
valgrind로 메모리 누수 탐지 (선택 사항)
valgrind --leak-check=full로 C/C++ 프로그램의 메모리 누수 발생 위치(파일:라인)를 정확히 탐지한다
📌 선수 지식
• [실습] linux-process-cpu-memory
• [이론] linux/process-management
• [이론] linux/system-monitoring
• [이론] linux/memory-management
ℹ️ 실습 환경
환경: local
필요 도구: bash, free, ps, pmap, cat
검증 스크립트: /labs/lab-linux-10-memory-leak/scripts/verify.sh
🔒
실습 실행은 Pro 플랜 전용입니다
인시던트 브리프와 학습 자료는 지금 바로 확인할 수 있습니다. 실제 실습 진행 및 터미널 사용은 Pro 플랜에서 가능합니다.
Pro로 업그레이드 →
>_ LAB TERMINAL↔ 너비 조절
NOTES