假设在我的机器x64、linux、8gRAM上,我将堆设置为JAVA_OPTS=-Xmx2048m,将tomcat设置为CATALINA_OPTS="$CATALINA_OPTS -Xmx1024m"。
现在,tomcat中应用程序的内存需求随时会超过CATALINA_OPTS中指定的堆大小。
是否会出现内存不足错误?或者它将没有问题地工作,因为有足够的内存给JVM(由JAVA_OPTS提供)?
发布于 2017-09-28 14:58:11
当您在tomcat中运行应用程序时,它将使用tomcat的CATALINA_OPTS中指定的堆内存。
您可以在同一台机器上运行多个,在本例中,tomcat有单独的JVM,它是一个不同的Java进程。
此外,要检查应用程序的内存使用情况,可以使用JDK附带的任何分析器工具。visualvm就是这样一个工具。
编辑 :-因为OP询问如果分配给应用程序的内存耗尽了会发生什么,那么在这种情况下outofmemory error就会出现。
使用上面提到的分析器工具,你可以调试是什么导致了这个错误,以及你的应用程序中消耗了大部分内存的地方。
https://stackoverflow.com/questions/46462731
复制相似问题