繁体   English   中英

使用Eclipse Memory Analyzer分析Java tomcat线程转储-错误

[英]Analyzing a java tomcat thread dump using Eclipse Memory Analyzer - erroring out

所以我使用kill -3得到了一个Java tomcat堆/线程转储。 转储似乎以以下形式进入catalina.out

Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.2-b06 mixed mode):

"RMI TCP Connection(2018)-50.28.31.254" daemon prio=10 tid=0x00007f743cb90800 nid=0x2624        runnable [0x00007f7438ef7000]
   java.lang.Thread.State: RUNNABLE

Heap
 PSYoungGen      total 570432K, used 315753K [0x00000007d5560000, 0x0000000800000000,     0x0000000800000000)
  eden space 442752K, 71% used     [0x00000007d5560000,0x00000007e89ba460,0x00000007f05c0000)
  70000000,0x000000077848b090,0x0000000780000000)

...

我复制并粘贴了上面的内容(以及两者之间的所有内容)。Eclipse在尝试“打开转储”时出错并显示以下错误:

Error opening heap dump 'dump2.txt'. Check the error log for further details.
Error opening heap dump 'dump2.txt'. Check the error log for further details.
Invalid HPROF file header. (java.io.IOException)
Invalid HPROF file header.

我究竟做错了什么?

您在做错的是这是线程转储,而不是堆转储。 进行堆转储的最简单方法是使用VisualVM

另外,您可以使用jmap创建堆转储,例如:

jmap -dump:file=app.bin 123456

这将为进程ID 123456创建一个名为app.bin的堆转储

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM