通过GC日志简单分析是否存在内存泄露的脚本

通过GC日志简单分析是否存在内存泄露的脚本(前提是使用CMSGC方式进行内存回收,并且打开GCDetails开关),思路是取出每次CMSGC|FullGC后的第一次MinorGC后,老生代剩余内存大小(总剩余内存-新生代剩余),如果一直增加则肯定有内存泄露:
grep -E -A1 "(CMS-concurrent-reset)|(Full GC)" gc.log |grep "\[ParNew" |awk '{print $6" "$9" "$1}' |awk -F'K' '{print substr($2,3,length($2))" "substr($5,3,length($5))" "substr($7,3)'} |awk '{print $3" new="$1/1024"M total="$2/1024"M old="($2-$1)/1024"M"}'

你可能感兴趣的:(jvm,GC)