JVM堆和Tomcat堆关系

时间:2017-09-28 06:53:54

标签: java tomcat jvm heap-memory

假设在我的机器上[x64,linux,8g Ram],我将堆设置为JAVA_OPTS=-Xmx2048m,将tomcat设置为CATALINA_OPTS="$CATALINA_OPTS -Xmx1024m"

现在,在任何时候,tomcat中应用程序的内存需求超出了CATALINA_OPTS指定的堆大小。

是否会出现Out of Memory错误?或者它可以正常工作,因为JVM有足够的内存(JAVA_OPTS)?

1 个答案:

答案 0 :(得分:1)

当您在tomcat中运行应用程序时,它将使用 CATALINA_OPTS 中指定的堆内存作为tomcat。

您可以在同一台机器上运行多个JVM,在这种情况下,tomcat有单独的JVM,它是一个不同的Java进程。

此外,要检查应用程序的内存使用情况,可以使用JDK附带的任何分析器工具。一个这样的工具是visualvm

编辑: - 由于OP询问如果分配​​给应用程序的内存耗尽会发生什么,那么outofmemory error就会出现。

使用上面提到的探查器工具,您可以调试导致此错误的原因以及应用中消耗大部分内存的位置。