记一次JVM参数调优

背景:升级某银行风控系统内存数据库,8亿数据。升级后存在性能下降的风险,切换一台后端服务对接新的内存数据库,对比发现超时率上升(要求TP99 18ms),性能果然下降(此时怀疑新版本内存数据库性能更差)

问题分析过程:

1. 抽取超时数据对比,发现数据量比较小的交易经常超时,数据量比较大的交易新的服务性能反而更好,排除内存数据库问题

2. 进一步统计这些数据量比较小的数据超时时间点,发现超时时间点和JVM GC时间点完全一致

3. 对比新的服务JVM GC日志和老的JVM GC日志,发现

1)新的服务GC时间更长(40ms左右),老的服务GC时间只需要10ms左右

2)新的服务GC频率更频繁

4. GC频率频繁可能是新的服务SDK新起的线程变多了,调大Xmn,性能变好了一些,但是比老的服务性能还是更差

5. GC日志中

[Times: user=0.11 sys=0.76, real=0.04 secs]

sys耗时比较长,说明CPU被系统调度占用较多,这个应该是新的服务所在机器外部服务较多导致,调小-XX:ParallelGCThreads,让CPU对GC回收的影响较少,性能进一步提升

最终新的服务性能和老的服务相当,甚至稍微更好一些(升级后的内存数据库性能更好),至此jvm性能调优结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值