【问题标题】:Getting OutOfMemoryError: GC overhead limit exceeded with Tomcat server in Linux machine出现 OutOfMemoryError:Linux 机器中的 Tomcat 服务器超出 GC 开销限制
【发布时间】:2013-02-12 14:38:45
【问题描述】:

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

提前致谢。

【问题讨论】:

  • JDK 自带这样一个开箱即用的工具:jvisualvm
  • 在 Linux 中运行命令时出现 cmmand not found 错误:-bash-3.2$ jvisualvm -bash: jvisualvm: command not found

标签: java tomcat out-of-memory


【解决方案1】:

确保设置命令行参数:-XX:+HeapDumpOnOutOfMemoryError 以在 OOM 上进行堆转储。也很有用:-XX:HeapDumpPath=堆转储文件夹>。

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

您也可以使用jmap 手动进行堆转储。示例:jmap -dump:file=<output-filename> <java process id>

【讨论】:

  • 感谢您的回复。当我通过传递 processid 作为输入来运行 jmap 命令时,出现错误。请帮助如何解决这个问题:-bash-3.2$ jmap 10865 Attaching to process ID 10865, please wait... Exception in thread "main" java.lang.reflect.InvocationTargetException Caused by: sun.jvm.hotspot.runtime.VMVersionMismatchException: Supported versions are 20.0-b11. Target VM is 14.3-b01
  • @user2065083 这里java-monitor.com/forum/showthread.php?t=974 几个食谱如何解决你的问题。确保你运行的 jmap 与你使用 heapdump 的 Java 版本相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
  • 2017-04-20
  • 2017-12-27
  • 2013-07-13
  • 2018-03-29
  • 2012-04-02
相关资源
最近更新 更多