掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2023-06-19 10:51:07


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

技术领域

本发明涉及负载状态评估技术领域,尤其是涉及一种JVM负载状态的评估方法、设备及存储介质。

背景技术

java是一种支持跨平台应用软件的面向对象的程序设计语言,它具有卓越的通用性、高效性、平台移植性,广泛运行在windows系统、Linux系统、苹果等系统上,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

JVM是Java Virtual Machine(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的负载水平E

步骤2:基于步骤1中的该集合计算得到所有时刻的JVM的负载水平E

步骤3:再次针对JVM进行运行状态监控,采集JVM在新的时间区间内的相关数据指标并计算出该新的时间区间内所有时刻的JVM的负载水平E

步骤4:判断步骤3中的新的时间区间内所有时刻的JVM的负载水平E

进一步地,所述的步骤1包括以下分步骤:

步骤101:记录JVM在某时间区间内接收到的请求和线程处理请求平均时长;

步骤102:通过JVM的接口获取t时刻JVM的粘滞线程数;

步骤103:通过JVM的启动配置获取t时刻JVM的最大线程数;

步骤104:基于JVM在某时间区间内接收到的请求和线程处理请求平均时长、t时刻JVM的粘滞线程数以及最大线程数计算得到该时间区间内所有时刻的JVM的负载水平E

进一步地,所述步骤104中该时间区间内所有时刻的JVM的负载水平E

式中,E

进一步地,所述的步骤2包括以下分步骤:

步骤201:获取步骤1中的该集合,并得到该集合的均值和方差;

步骤202:基于该集合的均值和方差计算得到所有时刻的JVM的负载水平E

进一步地,所述步骤202中的域值C,其计算公式为:

C=min(0.8,μ+3δ)

式中,μ和δ分别为该集合的均值和方差。

进一步地,所述JVM的负载水平E

进一步地,所述的步骤3包括以下分步骤:

步骤301:记录JVM在新的时间区间内接收到的请求和线程处理请求平均时长;

步骤302:通过JVM的接口获取在新的时间区间内t时刻JVM的粘滞线程数;

步骤303:通过JVM的启动配置获取在新的时间区间内t时刻JVM的最大线程数;

步骤304:基于JVM在新的时间区间内接收到的请求和线程处理请求平均时长、t时刻JVM的粘滞线程数以及最大线程数计算得到该新的时间区间内所有时刻的JVM的负载水平E

进一步地,所述的步骤4中的判定条件为E

本发明还提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的JVM负载状态的评估方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述的JVM负载状态的评估方法的步骤。

与现有技术相比,本发明具有以下优点:

(1)本发明一种JVM负载状态的评估方法,以解决JVM监控中并不能从整体上判断一个JVM负载状态,该方法包括:数据采集指标的确定;模型建立;异常检测。本发明能刻画JVM负载状态,并数值方式直观的体现JVM负载状态。

(2)本发明的评估方法可以应用于各种操作系统中,兼容性好。

附图说明

图1为本发明的方法流程示意图;

图2为本发明中JVM的内部线程运行机制示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

具体实施例

本发明的目的在于提供一种JVM负载状态评估方法,并数值方式直观的体现应用健康状态。为了实现上述目的,研究了JVM内部线程运行机制,如图2所示。

JVM虚拟机接收到请求后,分配线程处理请求,当线程处理完毕任务后,回收资源,重复利用。对于JVM而言,线程是有限的,使用完毕JVM即无法为新的请求提供服务。

本发明提供一种负载状态评估模型,假设:

1、Δt为数据采集窗口,单位:秒;

2、Q

3、R

4、第t时刻JVM的最大线程数T

5、第t时刻JVM的负载水平E

6、第t时刻JVM的粘滞线程数S

式中,E

理论上该值在[0,1]的区间类运行。该值是JVM负载状态的度量指标,也是JVM线程工作繁忙程度的指标。数值越大,表示JVM越繁忙。反之,亦然。

如图1所示为本发明的方法步骤流程图,具体阶段步骤包括:

第一阶段数据采集:

第一步,记录JVM在((t-Δt),t]区间内接收到的请求和线程处理请求平均时长分别为Q

第二步,通过JVM的接口获取S

第三步,通过JVM启动配置获取T

第四步,利用上述(1)式,计算E

循环上述步骤,一定时间,该时间的长短取决于具体项目对E

第二阶段计算E

在第一阶段中,获得集合D={E

定义域值(异常边界),C=min(0.8,μ+3δ)

第三阶段JVM运行状态监控:

第一步,记录JVM在((t-Δt),t]区间内接收到的请求和线程处理请求平均时长分别为Q

第二步,通过JVM的接口获取S

第三步,通过JVM启动配置获取T

第四步,利用上述(1)式,计算E

第五步,判定条件E

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种JVM负载状态的评估方法、设备及存储介质
  • 一种设备状态的评估方法、装置、计算机设备和存储介质
技术分类

06120112707679