Tomcat JVM内存调整

3

我正在使用tomcat7,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

即使我将NewSize增加到512或1024,情况仍然相同。只有在删除NewSize选项时才有效。对于2048MB的堆大小,以下大小是否有效?
2个回答

1

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

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

此外,请检查VM是否正确解析了您的参数,例如,JVM可能会认为您想要256B而不是256MB的YoungGen。


0

我的电脑是4GB内存64位系统。我之前也遇到了同样的错误,但是通过这个配置解决了。设置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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接