Tomcat中的内存分配

根据建议,我刚刚在我的tomcat 6.0.26安装中将以下行添加到catalina.bat文件中:

set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=128m

我知道那些设置:

Xms128m -Xmx512m

控制初始堆大小及其可以扩展的内容.但究竟是什么:

-XX:MaxPermSize参数=128米

Tomcat自己的话:

Following advice found elsewhere on the internet

总是要服用大块的盐.

set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=128m

您最好使用CATALINA_OPTS,因为设置JAVA_OPTS会无意义地影响关闭脚本以及启动脚本.

I know that settings:
Xms128m -Xmx512m

Control the initial heap size and what it can expand to.

在服务器环境中,您通常希望Xms和Xmx设置为相同的值以避免堆抖动.确切的大小完全取决于您的webapps需要什么.

But what exactly is:
-XX:MaxPermSize=128m

这是所谓的永久世代可以扩展的空间量. PermGen主要包含java.lang.Class的实例,因此只有在环境中有大量类时才需要指定它.

Should it be set to an addition of the other settings, or the other
settings to an addition of it?

这个问题意味着什么? PermGen大小完全独立于堆大小.

确保系统上有足够的RAM可用于支持Xmx PermGen a_lot_of_other_stuff.监控系统以确保您没有进入分页.

最佳答案
This post解释得比我好.该大小是文章中该永久代框的大小.

另见here

点赞