GC日志分析

GC:Garbage Collection 垃圾回收

[b](1)GC种类:[/b]
Scavenge GC 和 Full GC

选择合适的GC收集器(串行、并行、并发)、调整JVM heap的大小、调整young generation的比重。

[b](2)设置输出GC日志:[/b]
[quote]CATALINA_OPTS="-server -Xms3072m -Xmx3072m -XX:PermSize=512m -XX:MaxPermSize=1024m -Xloggc:/usr/local/tomcat/logs/gc.log -XX:+PrintClassHistogram -XX:+PrintGCDetails"[/quote]

堆设置
-Xms:初期Heap大小
-Xmx:最大Heap大小
-Xss:每个线程的堆栈大小
-XX:NewSize
-XX:MaxNewSize
-XX:PermSize
-XX:MaxPermSize
-XX:NewRatio
-XX:SurvivorRatio

垃圾回收统计设置
-Xloggc:<file_path> GC日志文件输出
-XX:+PrintClassHistogram
-XX:+PrintGCDetails 输出GC详细信息(New、Old)
-XX:+PrintGCDateStamps 输出时间戳

持久代一般固定大小为64m

[b](3)GC日志例子:[/b]
[quote]1718.835: [GC [PSYoungGen: 786432K->19883K(917504K)] 786568K->20019K(3014656K), 0.0222160 secs] [Times: user=0.14 sys=0.01, real=0.02 secs] [/quote]
时间: [GC [<回收器名>: <新生代GC前大小> -> <新生代GC后大小>(<可用容量>)] <Heap在GC前大小> -> <Heap在GC后大小><可用容量>, <GC中jvm暂停时间>]
“1718.835”代表了GC发生的时间(从Java虚拟机启动以来经过的秒数)。

[quote]23006.031: [Full GC [PSYoungGen: 8874K->0K(1034752K)] [PSOldGen: 2092515K->135616K(2097152K)] 2101390K->135616K(3131904K) [PSPermGen: 57227K->56746K(524288K)], 0.5162470 secs] [Times: user=0.51 sys=0.00, real=0.52 secs][/quote]
时间: [[Full GC,新生代:回收前->回收之后(回收的容量) 老年代:前->后,总 永久区:前,后,总,用时

GC针对New、Full GC针对New/Old/Perm;
Full GC的时候会停止所有线程处理又名“Stop the World”
Full GC如果是调用System.gc()方法所触发的收集,那么在这里将显示“Full GC (System)”。如果间隔3600s的话就是定时GC处理。

GC发生时机:
New对象时Heap内存不足GC
System.gc(),可通过“-XX:+DisableExplicitGC”禁止
定时GC“-Dsun.rmi.dgc.server.gcInterval”默认1小时

[b](4)工具:[/b]
日志查看
[url=https://github.com/chewiebug/GCViewer]GCViewer[/url]
[url=http://www.hp.com/go/hpjmeter]HPjmeter[/url]

JDK标准工具jconsole、VisualVM
JDK附带命令jps(显示JVM的进程ID)、jstat(监视JVM的GC状况)、jstack(获取JVM堆栈信息)、jmap(获取JVM的HeapDump)、jhat(HeapDump分析工具

HeapDump分析工具
[url=http://www.eclipse.org/mat/]Eclipse Memory Analyzer[/url]

参考:
[url=http://pengjiaheng.iteye.com/blog/518623]http://pengjiaheng.iteye.com/blog/518623[/url]
[url=http://d.hatena.ne.jp/tanakakns/20120508/1336467306]http://d.hatena.ne.jp/tanakakns/20120508/1336467306[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值