Java Getting OutOfMemoryError:Linux计算机中的Tomcat服务器超出了GC开销限制

Java Getting OutOfMemoryError:Linux计算机中的Tomcat服务器超出了GC开销限制,java,tomcat,out-of-memory,Java,Tomcat,Out Of Memory,我在Linux机器上的Tomcat服务器上得到了“OutOfMemoryError:超出了GC开销限制”。请告诉我是否有任何工具可以帮助我分析Java应用程序中的哪个程序消耗了大量内存。我们是否有任何调试工具可以提供一些信息来知道tomcat服务器在何处出现此错误 提前感谢。请确保您设置了命令行参数:-XX:+heapdumponotofmemoryerror,以便在OOM上进行heapdump。也可以使用:-XX:HeapDumpPath= 当OOM发生时,您可以使用分析堆转储。它是分析堆的非

我在Linux机器上的Tomcat服务器上得到了“OutOfMemoryError:超出了GC开销限制”。请告诉我是否有任何工具可以帮助我分析Java应用程序中的哪个程序消耗了大量内存。我们是否有任何调试工具可以提供一些信息来知道tomcat服务器在何处出现此错误


提前感谢。

请确保您设置了命令行参数:-XX:+heapdumponotofmemoryerror,以便在OOM上进行heapdump。也可以使用:-XX:HeapDumpPath=

当OOM发生时,您可以使用分析堆转储。它是分析堆的非常有用的工具


您还可以使用手动进行堆转储。示例:
jmap-dump:file=

JDK附带了这样一个开箱即用的工具:
jvisualvm
。请检查它是否有用,当我在Linux中运行命令时,我得到了CMM并且没有找到错误:
-bash-3.2$jvisualvm-bash:jvisualvm:command not found
,感谢您的响应。当我通过传递processid作为输入来运行jmap命令时,我得到了一个错误。请帮助解决此问题:
-bash-3.2$jmap 10865附加到进程ID 10865,请稍候。。。线程“main”java.lang.reflect.InvocationTargetException中的异常由以下原因引起:sun.jvm.hotspot.runtime.VMVersionMismatchException:支持的版本为20.0-b11。目标VM是14.3-b01
@user2065083这里有几个解决问题的方法。确保您运行的jmap与使用heapdump的Java版本相同。