테스트 데이터를 많이 넣고 실행하면 토이 프로젝트하면서도 이런 일 을 겪어볼 수 있을까?
대용량 데이터를 다룰 때, 용량이 너무 커서 톰캣 서버가 죽는 현상이 있을 경우. catalina.bat에서 힙 메모리 설정을 해주면 됩니다.
tomcat으로 서비스를 하다가 out of memory 오류가 나는경우가 있을것이다. 자주 발생하는 에러로는
Java.lang.OutOfMemoryError: Java heap Space Heap size error
Java.lang.OutOfMemoryError: Permgen space PermGen space error
이런 메모리 오류의경우 여러가지 원인이 있을수 있으나 메모리공간의 부족으로 일어나는 에러로써, ‘일단은’ 메모리 사이즈를 늘려주는 방법으로 문제를 해결 해 줄 수있다.
실제로 에러가 났을때는, 원인파악이 가장 중요할것이다.
tomcat 설치 폴더/bin/catalina.sh 파일에 자바 옵션 설정을 추가하여 톰캣 메모리 할당 옵션을 지정할 수 있습니다.
JAVA_OPTS="$JAVA_OPTS -Xms512m -Xms512m -XX:MaxPermSize=128m"
아래 설정의 변경으로 사이즈를 원하는대로 설정해 줄 수 있다.
catalina.sh파일에는 자바 옵션 설정 및 톰캣 로그 경로등 각종 설정을 저장할 수 있습니다.
설정 변경 후
ps -ef|grep tocat Java 메모리 옵션 확인
JVM Heap Memory Size 변경
bin\catalina.sh 파일을 열어 가장 상단에 아래 내용 추가 한다.
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024M -Xmx1024M -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+DisableExplicitGC"
JRE 메모리 누수 처리
conf\server.xml 파일에 아래 코드를 찾아 없으면 추가, 주석이라면 주석 제거 한다.
Thread pool 설정
conf\server.xml 에서 사용할 포트 커넥터에 아래 내용으로 변경 한다.
https://inpa.tistory.com/entry/TOMCAT-%E2%9A%99%EF%B8%8F-%ED%86%B0%EC%BA%A3-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%8A%98%EB%A6%AC%EA%B8%B0
http://www.kkujunhee.net/bbs/board.php?bo_table=os&wr_id=19
https://taes-k.github.io/2019/06/17/server-tomcat-memory/