Tip

[Tip | Java] 메모리 사용현황 체크 및 힙메모리 설정

t-opendocs 2025. 2. 24. 14:47
반응형

자바 프로세서가 사용하는 메모리 환경을 확인하는 방법을 정리한다.


> 작성일 : 2025-02-24
> EC2 : t3.medium (CPU : 2core / RAM : 4GB)
> OS : Amazon Linux 2 AMI (HVM)

 

<1> 문제상황

Spring Boot 기반 API + Vue 기반 Web 환경의 서버가 버벅이다 멈추는 현상이 발생했다.

 


 

<2> 문제확인

콘솔에 접속해 다음 명령으로 메모리 설정값을 확인한다.

# PID 확인
jps

메모리 설정 기본값을 확인한다. (InitialHeapSize는 메모리의 1/64, MaxHeapSize는 1/4 가 기본으로 설정됨)

# PID 확인
java -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|metaspacesize|version'
# 1.8 이전버전 (metaspacesize -> permsize)
java -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
# For Windows
java -XX:+PrintFlagsFinal -version 2>&1 | findstr /I "heapsize metaspacesize version"

java Processor의 PID로 사용중인 메모리 확인

jhsdb jmap --heap --pid {PID}

서버의 메모리 확인

free -h

서버의 자원현황 확인

top
# VIRT : 프로세스가 사용중인 메모리 (디스크 가상메모리 포함)
# RES : 프로세스가 RAM에서 사용중인 메모리


 

<3> 문제해결

API용도로만 활용하는 서버이지만 Java 프로세스에 할당된 메모리가 너무 작다 힙메모리를 더크게 할당한다.

힙사이즈를 늘리는 과정에서 GC가 자주 발생하지 않도록 초기 힙사이즈와 최대 힙사이즈를 동일하게 한다.

# Xms : 초기 힙메모리
# Xmx : 최대 힙메모리
> java -Xms2048m -Xmx2048m -jar api-server.jar



반응형