第一次: 243036.600: [GC 1155784K->1155439K(4132864K), 0.1700614 secs] 243040.779: [Full GC 1155439K->313334K(4132864K), 262.5038522 secs] 243343.120: [GC 804854K->321769K(4132864K), 0.0754559 secs] 第二次: 317991.181: [GC 4101931K->4108973K(4132864K), 0.4839274 secs] 318075.730: [Full GC 4108973K->600718K(4132864K), 1659.2852112 secs] 319735.947: [GC 1092238K->644746K(4132864K), 0.1394256 secs] 第三次: 407903.702: [GC 4048274K->3609573K(4132864K), 16.1494817 secs] 408055.891: [Full GC
这是tomcatGC日志下的三次full gc
第一次full gc前,1155784K到1155439K,正常
第二次full gc前,4101931K到4108973K,不增反而降了,并且这次full gc花了接近半个小时
//老年代空间使用60%就开始cmsgc
-XX:CMSInitiatingOccupancyFraction=60
-XX:CMSMaxAbortablePrecleanTime=100
第三次full gc不完整,是因为控制台出错,运维人员立刻就拷贝出了日志,然后重启了服务器(不在服务器重启之前拷贝日志,日志会被tomcat清除)
日志里面的一些单词介绍
串行收集器: DefNew:是使用-XX:+UseSerialGC(新生代,老年代都使用串行回收收集器)。
并行收集器: ParNew:是使用-XX:+UseParNewGC(新生代使用并行收集器,老年代使用串行回收收集器)
或者-XX:+UseConcMarkSweepGC(新生代使用并行收集器,老年代使用CMS)。 PSYoungGen:是使用-XX:+UseParallelOldGC(新生代,老年代都使用并行回收收集器)
或者-XX:+UseParallelGC(新生代使用并行回收收集器,老年代使用串行收集器) garbage-first heap:是使用-XX:+UseG1GC(G1收集器)