一种JVM负载状态的评估方法、设备及存储介质技术

技术编号:28320569 阅读:10 留言:0更新日期:2021-05-04 13:00
本发明专利技术涉及一种JVM负载状态的评估方法、设备及存储介质,其中方法包括以下步骤:步骤1:采集JVM在某时间区间内的相关数据指标并计算出该时间区间内所有时刻的JVM的负载水平E

【技术实现步骤摘要】
一种JVM负载状态的评估方法、设备及存储介质
本专利技术涉及负载状态评估
,尤其是涉及一种JVM负载状态的评估方法、设备及存储介质。
技术介绍
java是一种支持跨平台应用软件的面向对象的程序设计语言,它具有卓越的通用性、高效性、平台移植性,广泛运行在windows系统、Linux系统、苹果等系统上,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。java应用运行在JVM之上,JVM的负载状态直接影响着java应用的运行水平。因此,现有监控JVM的流程具体如下:1、选择某一具体的JVM的指标(例如FullGC频率),根据业务特点或经验值预先设定该指标的监控时间间隔和该指标的报警阈值(例如:2分钟内FullGC超过2次异常)。2、按照预先设定的时间间隔,采集异常数据3、发现异常,发出报警,通知用户现有技术中的JVM监控方法或系统主要具有以下缺点:现有方法或系统仅对单个/多个指标本身做监控和报警,不能从整体上判断一个JVM负载状态现有方法或系统中,虽然能够针对具体某项JVM的指标绘制变化曲线,但由于不能以数值的方式直观体现JVM负载状态,用户无法了解JVM负载状态的变化率。现有方法或系统中,当应用指标发生异常时,一般以报警的方式通知用户,后续处理工作将由用户接手。因而,在发现JVM负载状态存在问题后,整体自动化处理和智能自我修复能力不强现有方法或系统中,没有对JVM负载状态进行深度刻画,以至于JVM负载状态的监控及时性和准确性不高综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种JVM负载状态的评估方法、设备及存储介质。本专利技术的目的可以通过以下技术方案来实现:一种JVM负载状态的评估方法,该方法包括以下步骤:步骤1:采集JVM在某时间区间内的相关数据指标并计算出该时间区间内所有时刻的JVM的负载水平Et并记录于某集合中;步骤2:基于步骤1中的该集合计算得到所有时刻的JVM的负载水平Et的域值C;步骤3:再次针对JVM进行运行状态监控,采集JVM在新的时间区间内的相关数据指标并计算出该新的时间区间内所有时刻的JVM的负载水平Et;步骤4:判断步骤3中的新的时间区间内所有时刻的JVM的负载水平Et与步骤2中的域值C,当满足判定条件时则发送异常发送通知给管理员,若不满足判定条件则返回至步骤1再次循环。进一步地,所述的步骤1包括以下分步骤:步骤101:记录JVM在某时间区间内接收到的请求和线程处理请求平均时长;步骤102:通过JVM的接口获取t时刻JVM的粘滞线程数;步骤103:通过JVM的启动配置获取t时刻JVM的最大线程数;步骤104:基于JVM在某时间区间内接收到的请求和线程处理请求平均时长、t时刻JVM的粘滞线程数以及最大线程数计算得到该时间区间内所有时刻的JVM的负载水平Et。进一步地,所述步骤104中该时间区间内所有时刻的JVM的负载水平Et,其计算公式为:式中,Et为该时间区间内所有时刻的JVM的负载水平,Qt和Rt为某时间区间内接收到的请求和线程处理请求平均时长,St为t时刻JVM的粘滞线程数,Tt为t时刻JVM的最大线程数,Δt为数据采集窗口。进一步地,所述的步骤2包括以下分步骤:步骤201:获取步骤1中的该集合,并得到该集合的均值和方差;步骤202:基于该集合的均值和方差计算得到所有时刻的JVM的负载水平Et的域值C。进一步地,所述步骤202中的域值C,其计算公式为:C=min(0.8,μ+3δ)式中,μ和δ分别为该集合的均值和方差。进一步地,所述JVM的负载水平Et的运行区间为[0,1]。进一步地,所述的步骤3包括以下分步骤:步骤301:记录JVM在新的时间区间内接收到的请求和线程处理请求平均时长;步骤302:通过JVM的接口获取在新的时间区间内t时刻JVM的粘滞线程数;步骤303:通过JVM的启动配置获取在新的时间区间内t时刻JVM的最大线程数;步骤304:基于JVM在新的时间区间内接收到的请求和线程处理请求平均时长、t时刻JVM的粘滞线程数以及最大线程数计算得到该新的时间区间内所有时刻的JVM的负载水平Et。进一步地,所述的步骤4中的判定条件为Et>C。本专利技术还提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的JVM负载状态的评估方法的步骤。本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的JVM负载状态的评估方法的步骤。与现有技术相比,本专利技术具有以下优点:(1)本专利技术一种JVM负载状态的评估方法,以解决JVM监控中并不能从整体上判断一个JVM负载状态,该方法包括:数据采集指标的确定;模型建立;异常检测。本专利技术能刻画JVM负载状态,并数值方式直观的体现JVM负载状态。(2)本专利技术的评估方法可以应用于各种操作系统中,兼容性好。附图说明图1为本专利技术的方法流程示意图;图2为本专利技术中JVM的内部线程运行机制示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。具体实施例本专利技术的目的在于提供一种JVM负载状态评估方法,并数值方式直观的体现应用健康状态。为了实现上述目的,研究了JVM内部线程运行机制,如图2所示。JVM虚拟机接收到请求后,分配线程处理请求,当线程处理完毕任务后,回收资源,重复利用。对于JVM而言,线程是有限的,使用完毕JVM即无法为新的请求提供服务。本专利技术提供一种负载状态评估模型,假设:1、Δt为数据采集窗口,单位:秒;2、Qt为JVM在((t-Δt),t]区间内接收到的请求,受到前端用户的活动影响;3、Rt为JVM在((t-Δt),t]区间段内线程处理请求平均时长,受到后端服务方的服务水平和JVM自身处理水平影响,单位:秒;4、第t时刻JVM的最大线程数Tt,受到JVM所在主机的性能影响;5、第t时刻JVM的负载水平Et,监控指标;6、第本文档来自技高网
...

【技术保护点】
1.一种JVM负载状态的评估方法,其特征在于,该方法包括以下步骤:/n步骤1:采集JVM在某时间区间内的相关数据指标并计算出该时间区间内所有时刻的JVM的负载水平E

【技术特征摘要】
1.一种JVM负载状态的评估方法,其特征在于,该方法包括以下步骤:
步骤1:采集JVM在某时间区间内的相关数据指标并计算出该时间区间内所有时刻的JVM的负载水平Et并记录于某集合中;
步骤2:基于步骤1中的该集合计算得到所有时刻的JVM的负载水平Et的域值C;
步骤3:再次针对JVM进行运行状态监控,采集JVM在新的时间区间内的相关数据指标并计算出该新的时间区间内所有时刻的JVM的负载水平Et;
步骤4:判断步骤3中的新的时间区间内所有时刻的JVM的负载水平Et与步骤2中的域值C,当满足判定条件时则发送异常发送通知给管理员,若不满足判定条件则返回至步骤1再次循环。


2.根据权利要求1所述的一种JVM负载状态的评估方法,其特征在于,所述的步骤1包括以下分步骤:
步骤101:记录JVM在某时间区间内接收到的请求和线程处理请求平均时长;
步骤102:通过JVM的接口获取t时刻JVM的粘滞线程数;
步骤103:通过JVM的启动配置获取t时刻JVM的最大线程数;
步骤104:基于JVM在某时间区间内接收到的请求和线程处理请求平均时长、t时刻JVM的粘滞线程数以及最大线程数计算得到该时间区间内所有时刻的JVM的负载水平Et。


3.根据权利要求2所述的一种JVM负载状态的评估方法,其特征在于,所述步骤104中该时间区间内所有时刻的JVM的负载水平Et,其计算公式为:



式中,Et为该时间区间内所有时刻的JVM的负载水平,Qt和Rt为某时间区间内接收到的请求和线程处理请求平均时长,St为t时刻JVM的粘滞线程数,Tt为t时刻JVM的最大线程数,Δt为数据采集窗口。


4.根据权利要求1所述的一种JVM负载状态的评估方法,其特征在于,所述的步骤2包括以下分步骤...

【专利技术属性】
技术研发人员:李井波王东
申请(专利权)人:中国人寿保险股份有限公司上海数据中心
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1