728x90
반응형

원인 파악

2주 전까지 정상적으로 서비스 중이던 페이지가 갑자기 500 에러를 출력시켰다.

 

분명 변경 사항도 없었고 데이터 조회하는 페이지라서 데이터를 많이 조회하나..? 싶어서

 

데이터 건 수를 확인했더니 겨우 157건 데이터 조회하고 있었음.

 

부랴부랴 운영서버 들어가서 로그를 확인하니 아래와 같았다.

 

nov 15, 2023 1:40:24 pm
org.apache.catalina.core.standardwrappervalve invoke severe: 
servlet.service() for servlet [jsp] in context with path [] threw exception 
[javax.servlet.servletexception: java.lang.outofmemoryerror: java heap space] with root cause 
java.lang.outofmemoryerror: java heap space

 

heap 영역의 공간이 부족해져서 발생한 오류로 확인되었고, 힙 영역의 공간을 늘려주면 해결 가능하다고 한다.

 

아래 명령어를 통해 현재 톰캣의 메모리 값을 확인해 보았다.

 

ps -ef | grep tomcat

# -Xms2g  -Xmx2g

 

MAX 메모리가 2g로 되어 있었다.

 

해결 방안

가용 메모리가 생각보다 많이 남아있어서 톰캣 MAX 메모리 값을 2g → 4g로 변경하는 것으로 결정되었다.

 

#경로: tomcat/bin/catalina.sh

vi catalina.sh


# vi를 통해 확인해보면 JAVA_OPTS 설정값이 보인다.
# 해당 설정 값을 -Xms2g -Xms2g → -Xms4g -Xms4g로 변경해주자.

JAVA_OPTS="-Xms4g -Xms4g"

 

위와 같이 톰캣 메모리 설정을 변경한 뒤에 톰캣 서비스를 재시작해준다.

 

결론

해당 톰캣으로 여러 서비스를 물려 놓아서 위와 같은 문제가 발생한 것으로 가장 유력하다.

추후 위와 같은 현상이 발생하지 않도록 구비가 필요하다.

참.. 이왕 확인하는 거 힙 메모리 JVM 관련해서도 추가 공부하자.

끝이 없다 우아아아


728x90
반응형