当前位置:首页 > 每日看点 > 正文内容

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

卡卷网11个月前 (12-08)每日看点197

针对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

分享给朋友:

相关文章

小米14和华为mate60怎么选?

手持荣耀20,用了五年多了,使用仍然较为流畅,但是电池不太行了,于是2024年8月在家乡的小米之家购买了小米14(12+256),用了快两个月吧,说说使用体验。 外观层面,由于我使用的荣耀20放在现在妥妥地属于小屏,习惯了小屏...

为什么我感受不到 1500 元的手机比四五千的差?

我长期使用两千元左右的安卓机,一天接近8小时的重度手机使用者。某天我突然想试试看传说中非常赛艇的苹果。狠了心,砸了钱。七千大样买了爱疯。就这?什么辣鸡玩意。而且因为我一直更新软件,用了两年爱疯就卡了。并没有传说中的用四五年不卡。用了这么一次...

为什么工资五千的人会一下花八九千买手机呢?

这其实是一个何不食肉糜的问题,这个问题其实很现实,越是月薪5000越需要高档手机。 前段时间看了一个纪录片,讲外卖小哥都用什么手机,结果发现绝大多数外卖小哥用的手机都是旗舰机型,有的时候宁可买二手也要买旗舰。 因为1外卖小哥对ip6...

鸿蒙到底是不是安卓套壳?

鸿蒙到底是不是安卓套壳?

把它是不是套壳先放在一边吧。我讲一个事情,大家自己判断。华为有一个应用,叫手机管家。这个手机管家对一些系统底层设置有影响:比如华为从 EMUI 9 开始不允许将第三方启动器设置为默认启动器,依靠的就是这个手机管家。为什么这么说呢?在网上搜索...

抖音上有一些账号搬运别人的视频,几乎一模一样,也没判搬运,他们是怎么做到的??

对于任何短视频平台来说,如何用最低的成本快速实现伪原创搬运都是需要解决的问题。所有的短视频平台,包括抖音、快手、tiktok、视频号、小红书、B站,甚至是FB、推特、INS、YouTube,它们的查重技术都是类似的,只要你在网络环境设置得当...

测试用例是怎么写的?

测试用例是怎么写的?

测试用例对于测试人员而言,虽说是最最基础的技能,但却非常重要。测试用例是支撑我们在测试道路上进一步学习其他测试技能的基本功。那测试用例如何撰写,完整来说应该包含两部分内容:内容1: 测试用例撰写(按照八大要素);内容2: 测试用例(测试点)...

发表评论

访客

看不清,换一张

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