分析WAS产生的GC Log的工具,打开详细垃圾回收产生gc log日志文件native_stderr.log 和 native_stdout.log 。做gc调优目标,就是减少gc频率和耗时,以及减少程序暂停时间。
ga使用实例:
1、下载之后解压。2、双击解压后文件ga414.jar(前提是安装的jdk要求1.6版本)
3、打开第一步骤中,收集到的gc文件,我操作系统是solaris,使用点击open verbosegc files(Solaris/HP_UX)
使用说明,可以看帮助
4、要注意下面红框的内容
Number of all Garbage Collections :垃圾回收总次数
Number of Full Garbage Collections :Full gc总次数
Total Garbage Collection pause :垃圾回收中断总时间
overhead :垃圾回收耗时/垃圾回收间隔时间
First Garbage Collection :首次收集垃圾回收时间
Last Garbage Collection :最后一次收集垃圾回收时间
根据上面参数:
1、 gc频率= Number of all Garbage Collections / (Last Garbage Collection - First Garbage Collection)
2、 Total Garbage Collection pause
3、 overhead
这3个是重要的垃圾回收参数,也可以看作为性能指标。
我们调优的目标就是,期望垃圾回收频率减少,回收中断时间减少,overhead减少。
但是不可能全理想的,因为这些指标相互制约,如果减少回收次数,有可能中断时间增大,回收耗时增大。业界中的说法是,gc一次间隔时间控制大于10秒,gc一次耗时控制小于500毫秒,overhead控制小于13%。
如果,我们gc已经很理想了,我们就没有必要去调试,如果不理想,我们怎么办呢?
gc调优目标就是:
1、 降低Full GC执行频率
2、 降低Full GC消耗时间
3、 降低Full GC所造成的应用暂停时间
4、 降低Minor GC执行频率
5、 降低Minor GC消耗时间