티스토리 뷰
톰캣 힙 메모리 올리기
* 개요
- 새로만든 Spring MVC 용 프로그램이
Exception in thread “main”: java.lang.OutOfMemoryError: Java heap space 보이며 동작하지 않음.
- 톰캣의 힙 사이즈 올려줄 필요 있다고 생각됨.
#tomcat memory #톰캣 메모리
* 환경
Ubuntu 16.04
Tomcat 8.5
* Tomcat 이 사용중인 Heap memory size 확인
1. jMap 설치
sudo apt install openjdk-8-jdk-headless
2. tomcat8 의 pid 확인
ps -aux | grep tomcat
- 참고 : PID 확인
...
root 3257 54.9 29.0 7756368 2334148 pts/8 Sl+ 15:36 163:41 /usr/lib/jvm/java-8-oracle/bin/java -Dcatalina.base=/home/udell/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1 -Dcatalina.home=/home/udell/tomcat/apache-tomcat-8.5.30 -
... [생략]
20722 0.0 0.0 17184 2124 pts/3 S+ 18:52 0:00 grep --color=auto tomcat8
- 주의 : 실행중인 ps 명령에 대한 pid 도 함께 나오므로 혼동하지 않아야 함
3. sudo jmap -heap 3257
- sudo 안하면 DebuggerException
https://blog.outsider.ne.kr/793
* 톰캣 Heap Memory size 올리기
- 다음 내용에 대한 환경변수 설정이 필요함
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx8192m"
#export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
#Heap 과는 무관
- 설정후 시스템 재시작 하면 (service tomcat8 restart)
위의 jmap 통한 방법으로 heap size 증가 된것을 확인할 수 있음..
- 다른 확인 방법으로 로그파일 (/var/log/catalina.날짜.log) 에서 설정확인할 수 있음
cat /var/log/tomcat/catalina.날짜.log | grep Xms
(catalina.out 아님.. )
* 메모리를 얼마로 설정할 것인가?
http://bcho.tistory.com/788 "아파치 톰캣 튜닝 가이드"
- Heap size 는 1G가 적당..
1G 설정시 Process 가 사용하는 공간은 Heap 1G + Perm 128 + JVM 자체 0.5G = 1.5G 전후가 되는데,
이 사이즈가 2G 를 넘지 않는 것이 좋고, 최대 3G를 권장.
(너무 크면 Full GC 의 시간이 높아짐.)
- 가용 메모리가 많다면 Heap 을 높이기보단 톰캣 인스턴스를 여러개 띄워서 클러스터링 등 사용을 권장
- 크다고 좋은것도 아냐..
https://okky.kr/article/256552
* 기타 : 다른 OutOfMemoryError
http://www.nextree.co.kr/p3878/
* 기타 : JVM 메모리 구조
http://huelet.tistory.com/entry/JVM-%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0
* 기타 : JMX - JConsole 이용한 메모리 모니터링
https://gs.saro.me/#!m=elec&jn=776
- 나는 톰캣 서비스 시작이 안되어 실패
'SW개발' 카테고리의 다른 글
C언어 증감연산자 오동작? (0) | 2018.12.18 |
---|---|
A cycle was detected in the build path of project ... / ClassNotFound (0) | 2018.07.29 |
자바 클래스패스 가져오기 (0) | 2018.06.06 |
자바 환경변수 가져오기 등 (0) | 2018.06.06 |
Cannot change version of project facet Dynamic Web Module to 2.5 (0) | 2018.05.03 |