JVM GC日志设置滚动输出

 

 

假笨说参数-GC日志其实也支持滚动输出的 

2017-08-11 09:12

概述

上篇文章分享了一个在群里分享的参数,昨天晚上回到家在群里又做了一次分享,主要分享了四个和GC日志相关的参数,因为我并没有将每次分享的内容都分享出来,所以如果你也想听分享可以通过下面的方式加入进来

QQ群号:462563010

GC是JVM的一大特性,JVM调优绝大部分也是调优GC,所以GC日志是关键,也许很多生产环境都没有打开GC日志开关的,我在此还是建议大家将GC日志开起来,加上参数,同时还可以通过-Xloggc:xxxx来指定GC日志的路径,但是进程一旦重启,这个文件就会被重新覆盖,当然如果你这个gc路径每次都不一样,那就不存在这个问题了,随着时间的推移,GC日志可能会越来越大,大到一定程度,打开都可能很慢,那今天要分享的几个参数就是为了能让GC日志支持滚动输出,而不是都一直在一个文件里

主要分这么几步来实现这功能:

  • 打开GC日志

  • 设定GC日志路径

  • 打开支持滚动的参数

  • 设定滚动文件的个数

  • 设定每个文件的大小

打开GC日志

打开GC日志,有多种方法,不过我最常用的是上面提到的参数,这个参数加上之后,GC日志就打开了,默认情况下GC日志会在进程的标准输出里打印,如果你想指定自己的GC路径怎么办?

指定GC日志路径

可以通过-Xloggc:xxxx这个参数来指定GC日志的路径,这样可以让你输出一份比较干净的GC日志,而不是里面混有System.out这些的输出内容,比较难找,因为这个参数我也建议大家加上

支持GC日志滚动输出

这个参数支持GC日志的滚动输出,默认是关闭的,所以大家

要想滚动输出GC日志可以通过这个参数来设定

指定滚动输出的文件个数

可以通过这个参数来指定要滚动输出的GC日志文件个数,日志名在上面提到的-Xloggc参数指定的路径后面加上序号,默认从0号开始,那什么时候换到下一个文件输出呢?

指定每个GC文件的大小

GC日志并不是根据时间来进行滚动,而是当文件大小达到多大的时候就切换到下一个GC文件里,就是用来指定当当前GC日志文件大小达到100KB的时候就写入到下一个GC日志文件里,如果当前文件已经是最后一个了,那下一个目标GC日志文件将会是0号GC日志文件

Demo

通过上面的5个步骤就可以实现GC日志的滚动输出,下面我将参数都写出来

这样就会产生gc.log.0~99这100个文件,每个文件最多存100KB的大小

最后的敬告

不过我这里还是说一句,其实最好能不滚动输出最好啦,因为可能之前的内容可能会被冲掉,能写入到一个文件里比较好分析,如果正好被冲掉的内容是你当时出问题的时候的GC日志,那估计就难分析了,哈哈,是不是有种被骗的感觉,不过不管怎么样,前面的两步,你完全可以做起来啦。

,详情可以看这篇文章

如果您是JVMPocket的受益者,可以通过下面的二维码赞助小程序购买的服务器费用,目前已经续费了3年,费用是2k多,陆续收到不少童鞋的赞助,在此深表表示感谢

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值