[发明专利]JVM负载量化及优化方法有效
申请号: | 202010259528.6 | 申请日: | 2020-04-03 |
公开(公告)号: | CN111427667B | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 陈成;陈亮;靳博凯 | 申请(专利权)人: | 帆软软件有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 姚宇吉 |
地址: | 214000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | jvm 负载 量化 优化 方法 | ||
本发明公开了一种JVM负载量化及优化方法,包括:当垃圾收集器执行GC时通过GC回调获取GC数据;根据GC数据计算衡量指标;根据计算得到的衡量指标的值执行对应的运维操作。本发明的JVM负载量化及优化方法,通过GC数据构建衡量JVM负载的衡量指标,并根据衡量指标进行相关运维操作。一方面,通过GC数据构建的衡量指标能够更加准确的反应JVM负载的真实情况,同时,JVM负载发生变化的时候一定会发生GC,所以通过GC回调的数据评估JVM负载情况在时效上更加及时。
技术领域
本发明涉及一种JVM负载量化及优化方法。
背景技术
JVM(Java Virtual Machine,Java虚拟机)负载的量化一直是个技术难题,市面上很少见到Java软件产品会在内置功能中包含自动化的负载量化机制。现有技术一般通过轮询的方式获取内存使用率来表征JVM负载高低。这种方式存在以下缺陷:
1.轮询获取内存使用率,响应不够及时:JVM负载的变化在时间维度上是毫秒级别的,但是轮询获取内存使用率,一般只会做到秒级,而秒级的轮询在遇上负载剧烈变化时响应不够。但是如果做毫秒级的轮询,整体性能较差。
2.JVM由于GC(Garbage Collection,垃圾回收)机制的作用(JVM内存快用满的时候,系统会自动触发垃圾回收,清除掉一些无用的Java对象,回收内存空间),通过内存使用率来表征JVM负载高低的方式并不能很好地反应JVM真实负载情况。内存使用率很高的时候,很可能JVM中的Java对象可以被GC有效回收,这种情况下JVM负载的真实情况是不高的,如果直接用内存使用率来表征,就会误判为高负载,进而做出一系列不必要的响应措施、影响用户的使用体验(例如频繁发送风险预警、频繁限制用户请求,等等)。而在内存使用率不是很高的时候,有可能JVM中的活动线程正在飞快地创建Java对象,按照Java对象的生命周期规律,这种对象一般在短时间内很难被GC有效回收,这会导致JVM迅速进入超负荷状态,这种情况下JVM负载的真实情况是很高的,如果直接用内存使用率来表征,就会误判为中低负载,因此错失采取有效运维措施的良机、进而影响系统稳定运行
发明内容
本发明提供了一种JVM负载量化及优化方法,采用如下的技术方案:
一种JVM负载量化及优化方法,其特征在于,包括以下步骤:
当垃圾收集器执行GC时通过GC回调获取GC数据;
根据所述GC数据计算衡量指标;
根据计算得到的所述衡量指标的值执行对应的运维操作。
进一步地,所述衡量指标为释放推荐值RPS,由以下公式计算得到:
RPS=100*min(HaF,1),
其中,HaF为FGC后堆实际使用空间占可用空间OG_M的比例。
进一步地,当所述释放推荐值RPS大于等于85且小于100,针对已经计算完成但仍然存活的报表会话执行小规模报表会话释放;
当所述释放推荐值RPS大于等于100,针对已经计算完成但仍然存活的报表会话执行大规模报表会话释放;
当所述释放推荐值RPS连续5次大于等于100,针对已经计算完成但仍然存活的报表会话执行超大规模报表会话释放。
进一步地,所述衡量指标为负载平衡推荐值BPS;
若所述垃圾收集器本次执行的GC为YGC,则,
BPS=100*min(HaY2,0.75)+10000*min(LP*LPB,0.0045);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于帆软软件有限公司,未经帆软软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010259528.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动蜡烛机
- 下一篇:电解液及其制备方法和锂离子电池