본문 바로가기
관리자

Programming-[Backend]/Java

[TIL] JVM HeapSize, HeapDumpPath 설정

728x90
반응형

 

buildPack의 bootBuildImage를 통해 JvmOption을 줄 때, 아래와 같이 설정함

 

static def getEnvs(heapDumpPath, envVal) {
def jvmOptions = [
"-Xms512m",
"-Xmx1024m",
"-XX: MaxDirectMemorySize=100M",
"-XX:+HeapDumpOnOutOfMemoryError",
"-XX:HeapDumpPath=${heapDumpPath}"
]


return [
        "BPE_DELIM_JAVA_TOOL_OPTIONS": " ",
        "BPE_APPEND_JAVA_TOOL_OPTIONS": jvmOptions.join(" ")
]

 

Heap Memory Size를 512 ~ 1024 MB로 설정, nio 패키지에서 네트워크 및 디스크를 효율적으로 사용하기 위한 외부 Direct memory는 Max의 10% 정도인 100MB로 설정했다.

 

 

그리고 HeapDump 관련 설정들을 하였는데, OutOfMemory가 발생하면 설정한 컨테이너 내부 경로의 heapDumpPath로 힙덤프 파일이 떨어지게 된다. 이후 이 파일을 AWS S3 등 저장소로 옮겨 분석하면 메모리 누수가 나는 부분을 분석할 수 있게 된다.

728x90
반응형