JBoss를 사용중인 서버에서 메모리 이슈로 인한 장애로 서버가 죽었을 때 해결했던 과정
exception is java.lang.OutOfMemoryError: Java heap space
OOM이 발생한걸 확인하고 해당 부분에 문제가 발생하지 않게 조치했던 과정 정리
보통 OOM은 heap size 부족으로 발생한다.
App에서 요구하는 메모리가 was에 할당된 메모리보다 클 경우
Memory leak
특정 작업으로 대량의 메모리 사용
위같은 경우에 발생할 수 있는데 OOM이 발생하면 메모리 정리를 위해 GC를 하게 되고 이때 was는 모든 작업을 정지한다.
GC가 자주 발생하여 cpu 사용량이 증가하면 was에 접근하지 못하는 장애가 발생할 수 있음
이 때 WAS의 Java Heap Memory 사이즈를 기존보다 증설히야 해결할 수 있다.
대부분의 WAS는 env.sh 파일이 있는데 해당 파일에서 heap memory size를 변경할 수 있음
export JAVA_OPTS="$JAVA_OPTS -Xms4096m -Xmx4096m -XX:MetaspaceSize=1024m"
변경 후 재기동