有没有办法来禁用Tomcat的内存限制?

在/etc/tomcat6/tomcat6.conf文件中,JAVA_OPTSconfiguration行使我能够为Tomcat设置内存限制。

例如:

JAVA_OPTS="-Xms256M -Xmx1024M -XX:MaxPermSize=256m -XX:PermSize=128m" 

有没有办法完全禁用Tomcat的内存限制? 我希望Tomcat利用所有可用的内存 – 我不想用这些参数人为地限制JVM。

另外,这些限制真的很大吗?

这实际上与Tomcat无关,而是每个Java应用程序必须处理的事情。 网上有很多资源,例如:

http://javarevisited.blogspot.de/2011/05/java-heap-space-memory-size-jvm.html

你必须指定一个实际的内存量。

但是,如果你把所有的系统内存都给了JVM,那么你就不会为实际的机器本身而使用任何东西,因此你至less会遇到系统崩溃或者性能很差的情况。 此外,如果您唯一的解决方法是在JVM上投入更多内存,则可能需要查看更好,更优化的代码,并通过实际分析来查找问题区域。

我会告诫不要设置这些,特别是在内存泄漏的情况下 – 这可能会占用系统上大部分(所有)内存。 此外,如果垃圾收集,如果内存使用未选中,您的应用程序的暂停时间可能会变得不可接受。

调整JVM的大小取决于很多因素:应用程序的“足迹”,服务器上可用的RAM,服务器上运行的其他进程等。如果使用一些负载testing/性能分析来分析应用程序,那么从长远来看,您将会更高兴工具,检查你的垃圾收集日志,服务器资源消耗等,并调整这些设置,而不是把它们放在外面。 国际海事组织,你应该运行一个精益,调整良好的应用程序( – :