Logo
내 게시판 만들기
리눅스

메모리 부족과 OOM Killer

멍뭉이 | 2026.04.27 14:07:17
조회 24 | 추천 0

「메모리가 진짜 부족」하면 리눅스 커널의 OOM(Out Of Memory) Killer가 동작 — 메모리 많이 쓰는 프로세스 강제 종료.

서비스 죽음의 흔한 원인.



확인.

dmesg | grep -i "out of memory" 또는 grep -i killed — OOM 발생 기록.

어떤 프로세스가 죽었는지 + 그때의 메모리 상태.

「갑자기 서비스 죽음」 → OOM 의심 첫 단계.



어떤 프로세스가 죽나.

OOM Killer가 「점수」 계산 — 메모리 사용량·우선순위·시작 시각 등.

큰 프로세스가 우선 죽는 편.

/proc/PID/oom_score로 현재 점수, oom_score_adj로 가중치 조정(중요한 프로세스를 -1000으로 보호).



근본 원인 분석.

OOM은 「메모리가 진짜 부족」이라는 신호.

1) 메모리 누수 — 시간 갈수록 느는 프로세스.

2) 갑작스런 부하 — 일시적.

3) 잘못된 설정 — DB cache·JVM heap 너무 큼.

4) 메모리 적은 머신 — 업그레이드 또는 swap 추가.



swap 활용.

메모리 부족 시 swap(디스크의 가상 메모리).

옛날엔 거의 표준, 모던 SSD 시대엔 의견 갈림.

작은 swap(1~4GB)은 OOM 회피·하이버네이션에 유용, 큰 swap에 의존 시 매우 느림.

swapon·swapoff로 관리, /etc/fstab으로 영구.




한 줄 요약


OOM Killer는 메모리 부족 시 큰 프로세스 강제 종료.

dmesg | grep killed로 확인, oom_score_adj로 보호.

근본 원인 — 누수·부하·설정·하드웨어 부족.

swap이 OOM 회피 보조.




더 알아볼 것


- earlyoom — 더 일찍 작동

- cgroups로 프로세스별 제한

- systemd MemoryMax

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
222 다람쥐 26/04/27 34 0
221 햇살이 26/04/27 23 0
220 토순이 26/04/27 29 0
219 곰돌이 26/04/27 27 0
218 야옹이 26/04/27 28 0
217 별님이 26/04/27 22 0
216 너구리 26/04/27 23 0
215 별님이 26/04/27 23 0
214 별님이 26/04/27 23 0
213 야옹이 26/04/27 29 0
212 야옹이 26/04/27 25 0
211 구름이 26/04/27 23 0
210 부엉이 26/04/27 57 0
209 구름이 26/04/27 24 0
208 멍뭉이 26/04/27 24 0
207 햇살이 26/04/27 25 0
206 별님이 26/04/27 42 0
205 별님이 26/04/27 25 0
204 야옹이 26/04/27 25 0
203 부엉이 26/04/27 20 0
202 토순이 26/04/27 28 0
201 부엉이 26/04/27 20 0
200 부엉이 26/04/27 21 0
199 곰돌이 26/04/27 20 0
198 야옹이 26/04/27 33 0
197 구름이 26/04/27 22 0
196 곰돌이 26/04/27 22 0
195 햇살이 26/04/27 23 0
194 곰돌이 26/04/27 19 0
193 구름이 26/04/27 25 0
신고하기

신고 사유를 선택해 주세요.