티스토리 뷰

728x90
반응형
시청 관련하여 작업을 진행하던 중에 PermGen space라는 이슈가 발생해서 이와 관련 처리 방법에 대하여 정리하고자 합니다.
근본적으로 발생 원인은 Tomcat이 가용할 수 있는 최대 메모리를 넘어 섰을 경우 발생하는 이슈입니다.
이런 최대 메모리 초과 이슈의 조건은 여러가지가 있겠지만
대표적인 발생 원인은 코드 작성 시 메모리를 신경쓰지 않고 만들었거나?
또는  톰켓 자체 설정의 문제가 될 수 있습니다.
 
이 문제 이슈를 해결하기 위해서 대표적인 방법 두가지가 있습니다.
 
일단 대표적인 두가지라고 했는데 뭐 제일 발생하지 않도록 하는 방법은 코드를 잘 짜는거?가 우선적으로 되야겠지만
 
두가지를 말해 보자면
 
첫번째 : 톰켓 설정 하는 것
 
 
기본적인 톰켓 설정의 메모리 크기값이 있겠지만 이러한 이슈가 발생할 경우 자체적으로 옵션을 설정하면 됩니다.
 
걍 영역을 더 크게 잡아주자 이겁니다~
 
스크립트를 수정하기위해 먼저 톰켓 catalina.sh 위치를 찾습니다.
 
 
vi catalina.sh 편집을 들어가서
 
JAVA_OPTS="$JAVA_OPTS -Xms1024M -Xmx1024 -XX:PermSize=256M -XX:MaxPermSize=512M" 설정 추가
기본 옵션 내용은
 
  • Xms = Min Memory
  • Xms = Max Memory
  • XX:PermSize = Min Perm Memory
  • XX:MaxPermSize = Max Perm Memory
두번째 방법 JAVA 버전 업데이트 (8버전 이상)

 

흠 이번에 시청 작업한 곳은 기존에는 jdk 1.8에서 jdk1.7로 변경한 케이스였습니다.
 
그래서 그랬는지 처음 1.8로 진행할 때는 없었던 이슈였지만 버전을 다운그레이드 하면서 발생하였습니다.
 
찾아보니 JAVA7 까지는 메모리 영역 처리가 Permanent 영역에 저장 되던 정보들을 Metaspace 영역으로
 
이동시키면서 이러한 이슈가 발생한다고 합니다... 흠 그렇다는군요..
 
그러니 왠만하면 버전은 높게 잡아서 하는게... 몸에 좋은듯 헙니다..
 
728x90
반응형
250x250
반응형
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함