Permgen을 128m 이상으로 설정할 때 Sun JVM이 초기화되지 않는 이유는 무엇입니까?
문제
내 영구를 늘려야합니다. 현재 다음을 명령 줄 매개 변수로 전달합니다.
-XX:PermSize=128m
-XX:MaxPermSize=128m
이것은 작동합니다. 그러나 값을 높이려고하면 JVM이 초기화되지 않아이 오류가 발생합니다.
[2009-06-18 01:39:44] [info] Error occurred during initialization of VM
[2009-06-18 01:39:44] [info] Could not reserve enough space for object heap
[2009-06-18 01:39:44] [info]
[2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed
구체적으로, 나는 부팅하려고합니다 수코양이 포함 JRE6, 그러나 나는 이것이 중요하지 않다고 생각합니다.
편집하다: 2GB RAM으로 Win2K3 VM 이미지를 실행하고 있습니다. 나는 그것을 사용하여 JVM을 부팅한다 Tomcat을 모니터링하십시오 다음 매개 변수가있는 응용 프로그램 :
초기 메모리 풀 : 1024, 최대 메모리 풀 : 1536
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=E:\tomcat\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties
해결책
Perm Gen은 힙에 부가가치이므로 프로세스를 확인하십시오. 2G를 1.5 GB 이상으로 사용할 수 있어야합니다.
다른 팁
-xmx512m로 더 큰 힙을 제공하십시오 (이것은 512MB를 줄 것입니다).
다른 메모리 매개 변수를 사용하십니까? 컴퓨터에 얼마나 많은 메모리가 있습니까? 32 비트 또는 64 비트 기계를 사용하고 있습니까?
2GB의 메모리가 있고 설정 -xmx1024m -xx : permsize = 512m -xx : maxpermsize = 512m로 tomcat을 실행합니다. 이것은 일반적으로 잘 실행됩니다.