
[Java] Java 프로세스 메모리 - Reserved, Committed, RSS 이해하기
2025. 10. 19. 18:54
Java & Kotlin
1. 들어가며서버를 운영하다보면 힙 설정을 하였는데 k8s pod OOM kill이 나기도 하고, jcmd로 본 JVM 메모리 사용량과 top으로 본 Java 프로세스의 메모리가 차이가 나기도 한다. Java 프로세스가 사용하는 메모리는 단순히 -Xmx로 정한 힙 크기로 끝나지 않는다. JVM은 메모리를 예약(Reserved)하고, 그 중 일부를 커밋(Committed) 해서 논리적으로 확보한 뒤, 필요할 때마다 OS가 실제 물리 메모리(RAM)를 할당하는 과정을 거친다. 즉, JVM과 OS는 다른 기준으로 메모리를 바라본다. JVM은 “쓸 수 있는 공간”을 기준으로, OS는 “이미 매핑된 페이지”를 기준으로 계산하는 것이다. 이 글에서는 JVM의 메모리 관리 단계를 Reserved → Committed..