Java-No.15 内存泄露和内存溢出问题定位

本文详细解析了Java进程的内存使用情况,通过jstat命令监控GC活动,并利用visualVM工具进行深入分析。同时,介绍了如何通过jmap导出dump文件并使用MAT工具进行故障诊断,最终达到优化内存管理和GC性能的目的。

1、top 查看pid

Mem:  32845176k total,  9200084k used, 23645092k free,    16988k buffers
Swap:  8191992k total,   214004k used,  7977988k free,   456988k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                     
  346 root      39  19     0    0    0 S  1.0  0.0   2569:47 kipmi0                                                                                                                                       
26931 root      20   0 17.9g 2.2g  20m S  1.0  7.1 453:14.89 java                                                                                                                                         
19179 root      20   0 15308 1532  928 R  0.7  0.0   0:00.03 top                                                                                                                                          
 2067 root      20   0  146m 2228  588 S  0.3  0.0 431:58.74 redis-server                                                                                                                                 
 2073 root      20   0  146m 2736  596 S  0.3  0.0 144:56.11 redis-server                                                                                                                                 
 2080 root      20   0  146m 1928  592 S  0.3  0.0 145:44.90 redis-server                                                                                                                                 
24592 root      20   0 21.2g 2.3g  13m S  0.3  7.5  12:19.31 java                                                                                                                                         
    1 root      20   0 19232  464  280 S  0.0  0.0   4:57.93 init

2、jstat -gcutil pid 1000 100 查看fullgc次数,是否有内存溢出

[root@localhost ~]# jstat -gcutil 26931 1000 10
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
 58.94   0.00  16.20  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.21  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.45  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.45  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.45  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.69  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.69  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.69  75.23  99.48   9294  194.745   177   50.703  245.447
 58.94   0.00  16.92  75.23  99.48   9294  194.745   177   50.703  245.447

1000表示打印的时间间隔,毫秒

100为打印显示的次数

S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)

EC、EU:Eden区容量和使用量

OC、OU:年老代容量和使用量

PC、PU:永久代容量和使用量

YGC、YGT:年轻代GC次数和GC耗时

FGC、FGCT:Full GC次数和Full GC耗时

GCT:GC总耗时

3、java visualVM工具查看

4、jmap -dump:format=b,file=/tmp/heap.bin pid 导出dump文件

5、使用MAT分析dump文件

转载于:https://my.oschina.net/shma1664/blog/626915

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值