概述
上篇文章分享了一个在群里分享的参数假笨说参数-对象晋升相关的MaxTenuringThreshold,昨天晚上回到家在群里又做了一次分享,主要分享了四个和GC日志相关的参数,因为我并没有将每次分享的内容都分享出来,所以如果你也想听分享可以通过下面的方式加入进来
QQ群号:462563010
GC是JVM的一大特性,JVM调优绝大部分也是调优GC,所以GC日志是关键,也许很多生产环境都没有打开GC日志开关的,我在此还是建议大家将GC日志开起来,加上-XX:+PrintGCDetails参数,同时还可以通过-Xloggc:xxxx来指定GC日志的路径,但是进程一旦重启,这个文件就会被重新覆盖,当然如果你这个gc路径每次都不一样,那就不存在这个问题了,随着时间的推移,GC日志可能会越来越大,大到一定程度,打开都可能很慢,那今天要分享的几个参数就是为了能让GC日志支持滚动输出,而不是都一直在一个文件里
主要分这么几步来实现这功能:
打开GC日志
设定GC日志路径
打开支持滚动的参数
设定滚动文件的个数
设定每个文件的大小
打开GC日志
打开GC日志,有多种方法,不过我最常用的是上面提到的参数-XX:+PrintGCDetails,这个参数加上之后,GC日志就打开了,默认情况下GC日志会在进程的标准输出里打印,如果你想指定自己的GC路径怎么办?
指定GC日志路径
可以通过-Xloggc:xxxx这个参数来指定GC日志的路径,这样可以让你输出一份比较干净的GC日志,而不是里面混有System.out这些的输出内容,比较难找,因为这个参数我也建议大家加上
支持GC日志滚动输出
-XX:+UseGCLogFileRotation这个参数支持GC日志的滚动输出,默认是关闭的,所以大家
要想滚动输出GC日志可以通过这个参数来设定
指定滚动输出的文件个数
-XX:NumberOfGCLogFiles=100可以通过这个参数来指定要滚动输出的GC日志文件个数,日志名在上面提到的-Xloggc参数指定的路径后面加上序号,默认从0号开始,那什么时候换到下一个文件输出呢?
指定每个GC文件的大小
GC日志并不是根据时间来进行滚动,而是当文件大小达到多大的时候就切换到下一个GC文件里,-XX:GCLogFileSize=100K就是用来指定当当前GC日志文件大小达到100KB的时候就写入到下一个GC日志文件里,如果当前文件已经是最后一个了,那下一个目标GC日志文件将会是0号GC日志文件
Demo
通过上面的5个步骤就可以实现GC日志的滚动输出,下面我将参数都写出来
这样就会产生gc.log.0~99这100个文件,每个文件最多存100KB的大小
最后的敬告
不过我这里还是说一句,其实最好能不滚动输出最好啦,因为可能之前的内容可能会被冲掉,能写入到一个文件里比较好分析,如果正好被冲掉的内容是你当时出问题的时候的GC日志,那估计就难分析了,哈哈,是不是有种被骗的感觉,不过不管怎么样,前面的两步,你完全可以做起来啦。
假笨说-查JVM参数就找JVMPocket(JVM口袋)小程序吧,详情可以看这篇文章
如果您是JVMPocket的受益者,可以通过下面的二维码赞助小程序购买的服务器费用,目前已经续费了3年,费用是2k多,陆续收到不少童鞋的赞助,在此深表表示感谢
标签: nfs日志客户端
评论列表
到一定程度,打开都可能很慢,那今天要分享的几个参数就是为了能让GC日志支持滚动输出,而不是都一直在一个文件里 主要分这么几步来实现这功能:打开GC日志设定GC日志路径打开支持滚动的参数设定滚动文件的个数设定每个文件的大小打开GC日志
听分享可以通过下面的方式加入进来 QQ群号:462563010 GC是JVM的一大特性,JVM调优绝大部分也是调优GC,所以GC日志是关键,也许很多生产环境都没有打开GC日志开关的,我在此还是建议大家将GC日志开起来,加上-XX:+Pri
序号,默认从0号开始,那什么时候换到下一个文件输出呢? 指定每个GC文件的大小 GC日志并不是根据时间来进行滚动,而是当文件大小达到多大的时候就切换到下一个GC文件里,-XX:GCLogFileSize=100K就是用来指定当当前GC日志文件大
步骤就可以实现GC日志的滚动输出,下面我将参数都写出来 这样就会产生gc.log.0~99这100个文件,每个文件最多存100KB的大小 最后的敬告 不过我这里还是说一句,其实最好能不滚动输出最好啦,因为可能之前的内容可能会被冲掉,能写入到一个文件里比较好分