性能问答>JDK6环境下进程永久区内存溢出>
3回复
5年前

JDK6环境下进程永久区内存溢出



1.问题描述
JDK6环境下一后台进程永久区内存溢出。

2.做过的分析
在进程正常运行时,用jmap -perstat取了2次dump进行对比。
结论为:Intern strings存在显著增长,而类的容量基本维持不变。
同时我们尝试在测试环境复现,但未复现出Perm内存溢出。

3.求助:如何定位什么程序导致了Inern strings的增长?
不知道有没有方法,能在线上诊断这个问题。

4.jmap -perstat获取信息:
Attaching to process ID 90362, please wait…
Debugger attached successfully.
Server compiler detected.
JVM version is 20.4-b02
1228626 intern Strings occupying 179718920 bytes.
finding class loader instances …Finding object size using Printezis bits and skipping over…
Finding object size using Printezis bits and skipping over…
Finding object size using Printezis bits and skipping over…

done.
computing per loader stat …done.
please wait… computing liveness…liveness analysis may be inaccurate …
class_loader classes bytes parent_loader alive? type

<bootstrap> 1747 10475200 null live <internal>
0x0000000780add9d0 1 3104 null dead sun/reflect/DelegatingClassLoader@0x00000007600675e8
0x00000007811eacc0 1 3088 0x00000007809af1d8 dead sun/reflect/DelegatingClassLoader@0x00000007600675e8
<>
total = 118 4072 29170752 N/A alive=4, dead=114 N/A

5307 阅读
请先登录,查看3条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步