2013-10-24 40 views
3

我使用tomcat7和JVM内存选项设置为Tomcat的JVM内存调整

-Xms2048m -Xmx2048m 
-XX:NewSize=256m -XX:MaxNewSize=256m 
-XX:PermSize=256m -XX:MaxPermSize=256m 

这些设置服务器无法启动,错误

Error occurred during initialization of VM 
Too small initial heap for new size specified 

它不变,即使我增加新尺寸来512或1024,它只有当我删除NewSize选项时才起作用。 2048MB的堆大小,这些有效大小?

回答

1

删除NewSize参数,然后在运行应用程序时监视YoungGen的占用情况。根据YoungGen的大小,您可以返回并将参数更改为最佳值。

使用例如gc logging和/或jstat来查看堆中每个区域的占用情况。

另外,检查您的参数是否已被VM正确解析,例如,而不是256MB的YoungGen JVM可以认为你想要256B。

0

我有4GB RAM 64位。我也得到了同样的错误,但修正了这种配置。 set JAVA_OPTS =%JAVA_OPTS%-Xms2560m

set JAVA_OPTS=%JAVA_OPTS% -Xmx2560m 
set JAVA_OPTS=%JAVA_OPTS% -XX:NewSize=1280m 
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxNewSize=1280m 
set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize=400m 
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=400m 
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseCompressedOops 
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParNewGC 
set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC 
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseConcMarkSweepGC 
set JAVA_OPTS=%JAVA_OPTS% -XX:SurvivorRatio=6 
set JAVA_OPTS=%JAVA_OPTS% -XX:+CMSClassUnloadingEnabled 
set JAVA_OPTS=%JAVA_OPTS% -Dsun.rmi.dgc.client.gcInterval=3600000 
set JAVA_OPTS=%JAVA_OPTS% -Dsun.rmi.dgc.server.gcInterval=3600000