当前位置:首页 > 每日看点

java服务在运行过程中触发C2编译导致cpu抖动影响服务质量,该如何改善?

卡卷网2年前 (2024-12-08)每日看点300

针对Java服务在运行过程中触发C2编译导致CPU抖动影响服务质量的问题,以下是一些改善方法:

1. 调整Code Cache大小:

• 通过JVM参数-XX:ReservedCodeCacheSize=256M设置Code Cache的总容量上限。具体的设置应根据监控数据估算,例如单位时间增长量、系统最长连续运行时间等。如果没有相关统计数据,一种推荐的设置思路是设置为当前值(或者默认值)的2倍。

2. 使用龙井预热(Jwarmup):

• 根据前一次程序运行的情况,记录热点代码以及类加载顺序等信息。在应用下一次启动的时候积极主动地对相关类进行加载,并积极编译相关代码,进而使得应用尽快使用上C2编译优化的指令。从而在流量进来之前,提前完成类的加载、初始化和方法编译,避免一面解释执行一面后台编译带来的CPU与load飙高,rt超时等问题。

3. 逐步放开流量:

• 通过控制发布机器的流量大小,用低流量去先诱发JIT,再把发布机器的流量设置到正常水位,避免在JIT过程中,因为全量流量进来导致的CPU飚高、LOAD飚高、RT飚高等问题,使得应用发布或重启时顺滑平稳。

4. 调整JIT编译阈值:

• 通常情况下,我们可以使用-XX:CompileThreshold=5000修改JIT编译阈值为5000。将上述阈值调高意味着提高即时编译的门槛,将热点代码的编译工作分散开来,以防止某一时刻CPU的飙高。

5. 增加C2编译线程数:

• 通过JVM参数-XX:CICompilerCount=threads增加C2编译线程数,可以减少单个编译线程的负载,从而降低CPU占用率。

6. 关闭分层编译:

• 通过JVM参数-XX:-TieredCompilation关闭分层编译,这样可以避免C2编译器的介入,减少CPU的占用,但可能会牺牲一些性能。

7. 监控和分析:

• 使用工具如Arthas进行监控和分析,观察各线程对CPU的使用情况,定位问题线程。

8. 预热流量:

• 在系统启动时使用提前录制好的流量来使系统热点代码完成即时编译,然后再接收真正的流量,以减少对正式环境流量的影响。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3456.html

分享给朋友:

相关文章

怎么用游戏搬砖挣钱呢?

怎么用游戏搬砖挣钱呢?

今天,我把我多年操作的经验分享出来,以供各位老板们学习借鉴,胆小的老板就离开吧,心里承受能力太弱了,会刷新你的认知的。 有些新人在计算收益的时候,会以机器数来计算,其实是有误区的, 比如,一台机器一个月搞400元,平均每天搞13元钱,搞上1…

支付宝碰一碰市场如何?

支付宝碰一碰市场如何?

今年,支付宝又整了新的大活,即无须扫码即能完成支付操作的“支付宝碰一碰”正式登场。 下面就来给大家分析分析,这是个什么情况,为什么都在说能赚钱。 支付宝碰一下怎么赚钱的?都有谁能赚到这份钱?1.支付宝碰一下原理支付宝碰一下的本质依旧是“条码…

为什么说不懂电脑的不要碰AMD?

作为一个资深垃圾佬,说缺点前,先说优点吧AMD CPU(后续简称AU)的优点:处理器对比Intel,三级缓存更大,最明显的感知就是,网游帧数更高(5900X,7900X之类高端型号都是双CCX共享大缓存,反而不如次一点的CPU帧数更高);相…

拼多多百亿补贴买手机电脑等数码产品靠谱吗?

大家很多人都在问pdd百亿补贴购机靠谱吗? 首先声明一下,我不是pdd的人,我只是一个普普通通混迹从事pc行业的数码玩家,我只是在评论区看到很多人都在无脑推百亿补贴,特地发一条怗子来说明一下这个东西。此怡不存在偏向引导,此站仅站在我个人角度…

为什么小公司留不住人?

为什么小公司留不住人?

我估计,整个知乎,可能没有比我公司再小得了,。。 正对面就是我唯一的一个员工的工位。 为啥留不住人。因为那些留不住人的老板,太拿自己当回事。 大公司靠制度。小公司靠人情。 我这儿的业务,因为全都是线上,所以员工来不来坐班都不重要。 天太…

你怎么看待软件测试这个工作的?

你怎么看待软件测试这个工作的?

先说一个插曲:上个月我有同学在深圳被裁员了,和我一样都是 软件测试,不过他是平安外包,所以整个组都撤了,他工资和我差不多都是14K。现在IT互联网已经比较寒冬,特别是软件测试,裁员先裁测试,这几乎都是定律。我最近看了某音很多应届生以及去年毕…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。