探究JVM内存泄露

WEB服务总是莫名其妙的运行一段时间后JVM直接OutOfMemory错误,内存泄漏的问题不容易查找,本文就一些查找内存泄露基本知识做个总结,未涉及到具体案例的分析。

1         JVM内存异常的数据显示
1.1       java.lang.OutOfMemoryError: PermGen space异常的例子

Heap
PSYoungGen      total 44928K, used 916K [0x4e3c0000, 0x50fe0000, 0x51b10000)
  eden space 44736K, 2% used [0x4e3c0000,0x4e4a5318,0x50f70000)
  from space 192K, 0% used [0x50f70000,0x50f70000,0x50fa0000)
  to  space 192K, 0% used [0x50fb0000,0x50fb0000,0x50fe0000)
PSOldGen        total 453312K, used 125529K [0x32910000, 0x4e3c0000, 0x4e3c0000)
  object space 453312K, 27% used [0x32910000,0x3a3a6498,0x4e3c0000)
PSPermGen      total 65536K, used 65535K [0x2e910000, 0x32910000, 0x32910000)
  object space 65536K, 99% used [0x2e910000,0x3290fff8,0x32910000)

permanent space持久空间: 用于类和方法对象的存储。springAOP时使用CBLIB会动态产生很多类,当类太多,超过MaxPermSize的时候,就会抛出此异常。参数问题可以设置jvm启动参数: PermSize, MaxPermSize。程序问题就要进行内存分析了,详见下文。

1.2       java.lang.OutOfMemoryError: Java heap space异常的例子

Heap
PSYoungGen total 88320K, used 67673K [0x44880000, 0x4ba40000, 0x4ba40000)
eden space 61952K, 100% used [0x44880000,0x48500000,0x48500000)
from space 26368K, 21% used [0x48500000,0x48a96490,0x49ec0000)
to space 24512K, 16% used [0x4a250000,0x4a6283e0,0x4ba40000)
PSOldGen total 932096K, used 582090K [0x0ba40000, 0x44880000, 0x44880000)
object space 932096K, 62% used [0x0ba40000,0x2f2b2a78,0x44880000)
PSPermGen total 131072K, used 35124K [0x03a40000, 0x0ba40000, 0x0ba40000)
object space 131072K, 26% used [0x03a40000,0x05c8d330,0x0ba40000)

eden space使用率100%,总是被占满,参数问题可以设置jvm启动参数: Xms, Xmx。程序问题就要进行内存分析了,详见下文。

1.3       查看jvm内存状态:

jstat -gcutil pid 1000 20

异常情况的例子

jstat -gcutil pid 1000 20

 S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT  
  0.00   0.00  99.99  82.51  53.11   2409    1.205 10117 7250.393 7251.598
  0.00   0.00  83.42  82.55  53.10   2409    1.205 10118 7252.650 7253.855
  0.00   0.00  56.06  82.46  53.10   2410    1.205 10120 7254.467 7255.672
  0.00   0.00  32.11  82.55  53.10   2411    1.205 10121 7256.673 7257.877
  0.00   0.00  99.99  82.55  53.10   2412    1.205 10123 7257.026 7258.231
  0.00   0.00  76.00  82.50  53.10   2412    1.205 10124 7259.241 7260.446

这个数据显示Full GC频繁发生。

 

正常情况的例子

  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值