메모리 넘 침
2903 단어 오류 해결 방안
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
아래 에 추가 합 니 다.JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"
그 중에서
JAVA_OPTS='-Xms512m -Xmx1024m'
Tomcat 이 사용 하 는 메모리 의 크기 를 설정 합 니 다.-XX:PermSize=64M -XX:MaxPermSize=256m
클래스 공간(로 딩 클래스 에 사용)의 메모리 크기 ② 오류 로 그 를 검사 하고'OutOfmMemory'오류 전에 다른 이상 이나 오류 가 있 는 지 확인 합 니 다.--java.lang.OutOfMemoryError: ......java heap space....
--java.lang.OutOfMemoryError: GC overhead limit exceeded
JDK6 , GC ; , , 。
【 】:
1、 ;
2、 JVM , :
< jvm-arg>-XX:-UseGCOverheadLimit< /jvm-arg>
--java.lang.OutOfMemoryError: PermGen space: P , JVM :
< jvm-arg>-XX:MaxPermSize=128m< /jvm-arg>
< jvm-arg>-XXermSize=128m< /jvm-arg>
【 】:
JVM Perm Class Meta ,Class Loader PermGen space, ,GC , 64M , , 64M , , 128m 。
③ 코드 를 조사 하고 분석 하여 메모리 가 넘 칠 수 있 는 위 치 를 찾아낸다.몇 가 지 를 중점적으로 살 펴 보 자.-코드 에 사 순환 이나 재 귀적 호출 이 있 는 지 확인 하 자.-새로운 대상 의 실체 가 반복 되 는 지 확인 하 자.-데이터베이스 조회 에서 모든 데 이 터 를 얻 은 조회 가 있 는 지 확인 하 자.일반적으로 한 번 에 10 만 개 를 메모리 에 기록 하면 메모리 가 넘 칠 수 있다.List,Map 등 집합 대상 이 사용 후 제거 되 지 않 은 문제 가 있 는 지 확인 합 니 다.List,Map 등 집합 대상 은 항상 대상 에 대한 인용 이 저장 되 어 있어 서 이 대상 들 이 GC 에 회수 되 지 못 하 게 한다.④ 메모리 보기 도 구 를 사용 하여 메모리 사용 상황 을 동적 으로 봅 니 다:Optimizeit Profiler,JProbe Profiler,JinSight 와 Java 1.5 의 Jconsole 등.일반적으로 정상 적 인 시스템 이 시작 이 끝 난 후에 메모리 의 사용량 은 기본적으로 안정 적 이 며 무제 한 성장 이 아니 라 안정 적 이다.시스템 이 실 행 될 때 사용 하 는 메모리 의 크기 를 지속 적 으로 관찰 하면 메모리 사용 모니터링 창 에서 기본 규칙 인 톱니 모양 의 그림 선 을 볼 수 있 습 니 다.메모리 의 크기 가 지속 적 으로 증가 하면 시스템 에 메모리 누 출 문제 가 존재 한 다 는 것 을 의미 합 니 다.