jstat 内存泄漏_Java内存泄漏 - jmap不显示类,但jstat确实

我解决了一个奇怪的内存泄漏问题。这是Java8特有的,并没有发生在7u79。Java内存泄漏 - jmap不显示类,但jstat确实

我无权访问Java代码。 我确切地知道哪些用户动作导致的泄漏,我知道泄漏是关于类(不是堆)和违规类是容易察觉+ TraceClassLoading + TraceClassUnloading:

[Loaded com.mastercard.mcwallet.sdk.xml.allservices.ShoppingCartRequest$JaxbAccessorF_oAuthToken from __JVM_DefineClass__]

[Loaded com.mastercard.mcwallet.sdk.... thousand similar classes per one user action... ]

这些类似乎会增加通过jstat -class输出类计数器:

Loaded Bytes Unloaded Bytes Time

14045 26138.8 0 0.0 110.00 << buggy user action

14675 26754.6 0 0.0 110.05

15300 27364.9 0 0.0 110.10

15304 27370.9 0 0.0 110.11

15304 27370.9 0 0.0 110.11

15304 27370.9 0 0.0 110.11

15306 27374.0 0 0.0 110.11

15306 27374.0 0 0.0 110.11

15306 27374.0 0 0.0 110.11

15306 27374.0 0 0.0 110.11 << buggy user action

15930 27982.2 0 0.0 110.18

16553 28589.3 0 0.0 110.23

16553 28589.3 0 0.0 110.23

的事情是,这些类是从来没有垃圾收集从元空间中,从来没有[Unloaded]和他们不jmap -clstats显示。该命令报告的类别数量较少,数量不增加,有没有可疑的类装载器:

class_loader classes bytes parent_loader alive? type

2574 4493256 null live

0x0000000087d016d0 1 1471 0x000000008237f088 dead sun/reflect/[email protected]

... some lines omitted ...

0x000000008237f088 6505 12228227 0x0000000080383938 dead org/apache/catalina/loader/[email protected]

... some lines omitted ...

total = 600 14002 25351427 N/A alive=1, dead=599 N/A

这是否环任何钟或带来任何提示我可以传递给程序员?他们说他们无法找到泄漏。我可以通过摆脱JVM选项来阻止这种泄漏吗?

+0

只有'MetaSpace'的问题?那么'堆'呢?你也可以提供'Java'进程的内存使用情况统计信息吗? –

+0

只有Metaspace,堆是稳定的而不是满的。究竟是什么统计数据? –

+0

我的意思是Java进程内存使用增长的速度有多快? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值