记录一次JVM简单调优01

前续:

kafka部分partition消息堆积问题解决记录01

1、尝试调优kafka消费端模块:

  首先通过 jstat 配合 watch 命令监听程序GC情况:

watch -n [间隔时间] -d "jstat -gc [pid]" 

  监听与分析发现:

  1. YGC频率较为频繁,基本都在每秒5~10次。
  2. 堆空间新生代与老年代、Eden区与Survivor区 内存分配不合理:
      程序新生代对象创建速率非常大,但是基本都是朝生夕逝,只有极少量能在survivor区生存一定年龄,而能达到15进入老年代的更是少之又少。

  查询启动配置项,发现JVM没有配置堆内存各代占比参数,只是配置了整体堆空间为4G。
  这就意味着会执行JVM默认配置:

  1. New:Survivor = 8: 1 : 1
  2. Old : New = 2 :1

  分析认为该程序对4G内存的利用率低下,需要进行内存占比调整。通过调整参数-XX:SurvivorRatio、-XX:NewRatio甚至-Xmn使新生代比老年代占比大,尽量使Eden区大小设置在合理的范围,最终调整为:

-Xmx4096m -Xms4096m -Xmn2560m -XX:SurvivorRatio=23

该参数配置达到效果:

  1. YGC频率降低到1~2次每秒,FGC平均半天执行一次

  后续尝试调整了一些-XX:ParallelGCThreads等参数,效果不大,不再记录。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值