jvm调优之分层编译

1 问题

     最近,在某个高QPS的服务在重启的时候,如图1.1所示,重启会load 非常高,出现尖刺,短信报警CPU使用率过高,然后一段时间负载就降下来。搜索下网络的文章,启动后高负载的原因大致是由于启动,随着代码的执行,jvm的jit编译器会将部分热点代码编译为目标机器代码,这时产生的编译线程会占用大量的cpu 导致系统负载高。但是通过top -H -p 查看编译线程的cpu 使用率,发现cpu 使用率比其他线程略高,但是没有明显差距,但是比较其他的请求线程,加在一起的cpu 使用率还是很可观。所以在此怀疑,JIT编译器需要代码执行一定的频率才会进行编译优化,系统刚启动的时候大部分的代码只是解释执行,解释执行的性能比编译执行的性能当然要差很多,所以系统的负载高,等到主要热点代码都是编译执行,系统负载就降下来。 那接下来如何对这个问题调优呢?

2  jvm  调优

  针对上面的问题,有两个解决方案:

  2.1 纯编译执行(-Xcomp)

     jvm提供了一个参数-Xcomp ,这个参数可以使jvm运行在纯编译的模式,所有的方法在第一次调用的时候就会编成机器代码,但是现实的话,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值