Xloggc实践(JVM1.8及之前)

Java服务器调优免不了要对gc日志进行分析,我一般是上传gc日志文件到GCEasy进行处理的,上传的文件有大小限制。另外默认的gc日志打印还会存在重启后丢失的问题。综上,我们希望gc日志文件在不能丢失(但允许超过一定时间或大小被清理掉)的情况下控制gc日志的大小或者按时间切割,即像Java日志框架那样的效果。Java9对jvm的日志系统进行了比较大的升级,可以比较好的实现这些需求,但大部分服务端的Java软件还只支持Jdk8,本文记录作者自己的相关配置。

分析

首先推荐看两篇gceasy的博客文章,网上对UseGCLogFileRotation的相关讨论很多都来自于这里:
https://blog.gceasy.io/2016/11/15/rotating-gc-log-files/
https://blog.gceasy.io/2019/01/29/try-to-avoid-xxusegclogfilerotation/

简单来说,UseGCLogFileRotation 可以控制gc日志文件大小,且按日期分片切割
缺点是:

  1. 记录丢失
    个人认为不是问题,超过指定文件数量及大小的日志被丢弃是预期操作。
  2. 循环打印
    若限制日志文件数共5个,分别为0、1、2、3、4,在文件4达到文件最大值后系统将从1开始覆写,最终的结果就是顺序错乱,不能直接使用(需要人为地修改文件名以修正顺序)
  3. 重启后从编号0开始写入,而非上次的写入位置。结合第2点你就会发现你的日志顺序已经完全不可信了。

应对方法

  1. 直接使用-Xloggc:gc-%t.log(推荐
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tomcat中的JVM优化是指对Java虚拟机的调优,以提高Tomcat服务器的性能和稳定性。根据引用[1],Tomcat的JVM优化主要包括以下几个方面: 1. 内存设置:通过调整JVM的堆内存大小,可以提高Tomcat的性能。可以通过修改Tomcat根目录下的bin目录中的catalina.sh(Linux)或catalina.bat(Windows)文件来设置JVM的内存参数,如-Xms和-Xmx参数分别用于设置JVM的初始堆大小和最大堆大小。 2. 垃圾回收设置:垃圾回收是JVM的重要功能,可以通过调整垃圾回收算法和参数来优化Tomcat的性能。可以使用-Xloggc参数来指定垃圾回收日志文件的路径,以便进行分析和调优。 3. 线程池设置:Tomcat使用线程池来处理客户端请求,可以通过调整线程池的大小和配置来优化Tomcat的性能。可以修改Tomcat根目录下的conf目录中的server.xml文件,通过修改Connector元素的属性来设置线程池的参数,如maxThreads和minSpareThreads。 4. 连接设置:可以通过调整Tomcat的连接参数来优化Tomcat的性能。例如,可以设置maxKeepAliveRequests属性来限制每个连接的最大请求数,以避免产生大量的TIME_WAIT连接。 需要注意的是,JVM优化需要根据具体的应用场景和硬件环境进行调整,不同的应用可能需要不同的优化策略。建议在进行JVM优化之前,先进行性能测试和监测,以便确定需要进行的优化方向和参数调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值