CN112000428B - 基于机器学习的jvm调优方法、装置和电子装置 - Google Patents
基于机器学习的jvm调优方法、装置和电子装置 Download PDFInfo
- Publication number
- CN112000428B CN112000428B CN202010749649.9A CN202010749649A CN112000428B CN 112000428 B CN112000428 B CN 112000428B CN 202010749649 A CN202010749649 A CN 202010749649A CN 112000428 B CN112000428 B CN 112000428B
- Authority
- CN
- China
- Prior art keywords
- tuning
- jvm
- performance
- module
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000010801 machine learning Methods 0.000 title claims abstract description 16
- 238000005457 optimization Methods 0.000 title claims description 62
- 238000003745 diagnosis Methods 0.000 claims abstract description 100
- 238000012549 training Methods 0.000 claims abstract description 74
- 238000013528 artificial neural network Methods 0.000 claims abstract description 16
- 238000012795 verification Methods 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 238000013515 script Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 101100045694 Caenorhabditis elegans art-1 gene Proteins 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 238000002790 cross-validation Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种基于机器学习的JVM调优方法、装置和电子装置,其中,该JVM调优方法包括:获取终端上应用程序的第一性能数据的诊断结果,根据该第一性能数据和该诊断结果生成训练数据;其中,该训练数据包括训练集和验证集;将该训练集输入神经网络,并获取智能诊断模型,进而根据该智能诊断模型获取调优引擎;在该调优引擎获取到第二性能数据的情况下,根据该智能诊断模型生成该第二性能数据的性能问题,以及与该第二性能问题相对应的解决方案;根据该第二性能问题和该解决方案,生成调优结果;通过本申请,解决了JVM调优的效率低的问题,实现了高效、准确的JVM调优。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及基于机器学习的JVM调优方法、装置和电子装置。
背景技术
Java是目前最流行的程序设计语言之一,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,这些特性使得Java语言广泛应用于企业级应用和移动终端;
Java虚拟机(Java Virtual Machine,简称为JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境;通常情况下,为了让一项Java语言开发的服务实现更快速更平稳的运行,开发人员需要按照程序的特点调整JVM参数,如内存分配和垃圾对象回收的处理,如果能够很好的优化JVM参数,将会获得很大的性能提升;
在相关技术中,由于JVM有几百个参数,每个参数对JVM的运行影响各不相同,参数之间还会相互作用,因此对于JVM的调优需要技术人员具有很高的专业知识以及丰富的生产环境调优经验;同时,相关技术中JVM调优,通常通过技术人员根据服务的运行情况做一段时间的观察,并依据JVM各参数的意义,试探性的给出JVM调优方案;该技术人员在服务运行一段时间后检查该方案是否合理,当不合理或者仍需优化时,再给出新的调整优化方案;如此反复从而获得调优结果,浪费了大量劳动力,导致JVM调优的效率较低。
目前针对相关技术中JVM调优的效率低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于机器学习的JVM调优方法、装置和电子装置,以至少解决相关技术中JVM调优的效率低的问题。
第一方面,本申请实施例提供了一种基于机器学习的JVM调优方法,所述方法包括:
获取终端上应用程序的第一性能数据的诊断结果,根据所述第一性能数据和所述诊断结果生成训练数据;其中,所述训练数据包括训练集和验证集;
将所述训练集输入神经网络,以获取智能诊断模型,进而基于所述智能诊断模型获取调优引擎;
在所述调优引擎获取到第二性能数据后,根据所述智能诊断模型生成所述第二性能数据的性能问题,以及与所述第二性能问题相对应的解决方案;
根据所述第二性能问题和所述解决方案,生成调优结果。
在其中一些实施例中,所述根据所述第二性能问题和所述解决方案,生成调优结果包括:
基于所述调优引擎,获取所述解决方案中的可自动修复的第一优化方案;
在所述应用程序和所述调优引擎部署于同一服务器的情况下,通过配置下发模块,完成所述第一优化方案的JVM调优;或者,
在所述应用程序和所述调优引擎部署于不同服务器的情况下,通过配置推送模块,将所述第一优化方案推送至与所述性能问题相匹配的具体应用,进而生成所述调优结果;
基于所述调优引擎,获取所述解决方案中无法自动修复的第二优化方案,并将所述第二优化方案发送至告警模块,进而生成调优结果。
在其中一些实施例中,所述根据所述第二性能问题和所述解决方案,生成调优结果之后,所述方法还包括:
将所述调优引擎的应用优化历史发送至应用性能处置监控平台;其中,所述应用性能处置监控平台提供针对所述第一优化方案的一键还原功能。
在其中一些实施例中,所述获取智能诊断模型之后,所述获取智能诊断模型之后,所述在所述调优引擎获取到所述第二性能数据的情况下,根据所述智能诊断模型生成所述性能数据的性能问题之前,所述方法还包括:
根据所述验证集获取交叉验证结果;基于超参数搜索获取所述智能诊断模型的最优参数组合;在每一次训练遍历结束的情况下,获取所述验证集的精确度;其中,所述精确度用于指示停止训练所述智能诊断模型;
根据所述交叉验证结果、所述最优参数组合和所述精确度,获取调优后的智能诊断模型,进而基于所述调优后的智能诊断模型获取所述调优引擎。
在其中一些实施例中,所述获取终端上应用程序的性能数据的诊断结果,根据所述第一性能数据和所述诊断结果生成训练数据包括:
基于人工诊断获取所述诊断结果以及优化方案;根据所述第一性能数据、所述诊断结果和所述优化方案生成所述训练数据。
在其中一些实施例中,所述基于人工诊断获取所述诊断结果以及优化方案之前,所述方法还包括:
基于解析程序将所述第一性能数据解析为JSON格式,并对解析后的第一性能数据进行数据处理。
在其中一些实施例中,所述获取终端上应用程序的第一性能数据包括:
基于JVM的命令行检测工具,获取实时日志数据和JVM配置信息;或者,基于编写脚本采集操作系统日志;或者,基于所述应用程序的日志数据获取应用程序数据;
其中,所述第一性能数据包括:所述实时日志数据、所述JVM配置信息、所述操作系统日志和所述应用程序数据。
在其中一些实施例中,所述神经网络设置为自适应谐振理论(adaptiveresonance theory,简称为ART)网络。
第二方面,本申请实施例提供了一种基于机器学习的JVM调优装置,所述装置包括:训练模块、诊断模块和调优模块;
所述训练模块,用于获取终端上应用程序的第一性能数据的诊断结果,根据所述第一性能数据和所述诊断结果生成训练数据;其中,所述训练数据包括训练集和验证集;
所述诊断模块,用于将所述训练集输入神经网络,以获取智能诊断模型,进而基于所述智能诊断模型获取调优引擎;
所述调优模块,用于在所述调优引擎获取到第二性能数据后,根据所述智能诊断模型生成所述第二性能数据的性能问题,以及与所述第二性能问题相对应的解决方案;所述调优模块根据所述第二性能问题和所述解决方案,生成调优结果。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于机器学习的JVM调优方法。
相比于相关技术,本申请实施例提供的基于机器学习的JVM调优方法、装置和电子装置,通过获取终端上应用程序的第一性能数据的诊断结果,根据该第一性能数据和该诊断结果生成训练数据;其中,该训练数据包括训练集和验证集;将该训练集输入神经网络,并获取智能诊断模型,进而根据该智能诊断模型获取调优引擎;在该调优引擎获取到第二性能数据的情况下,根据该智能诊断模型生成该第二性能数据的性能问题,以及与该第二性能问题相对应的解决方案;根据该第二性能问题和该解决方案,生成调优结果,解决了JVM调优的效率低的问题,实现了高效、准确的JVM调优。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为根据本申请实施例的一种应用环境的示意图;
图2为根据本申请实施例的一种JVM调优方法的流程图;
图3为根据本申请实施例的一种ART-1网络结构的示意图;
图4为根据本申请实施例的另一种JVM调优方法的流程图;
图5为根据本申请实施例的又一种JVM调优方法的流程图;
图6为根据本申请实施例的一种JVM调优方法架构的示意图
图7为根据本申请实施例的一种JVM调优装置的结构框图;
图8为根据本申请实施例的另一种JVM调优装置的结构框图;
图9为根据本申请实施例的一种计算机设备内部的结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的JVM调优方法,可以应用于如图1所示的应用环境中。其中,终端12通过网络与服务器14通过网络进行通信。服务器14获取终端上各应用程序的性能数据,并且基于训练好的智能诊断模型,以及搭建的调优引擎生成调优结果。其中,终端12可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器14可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本实施例中,提供了一种基于机器学习的JVM调优方法,图2为根据本申请实施例的一种JVM调优方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取终端上应用程序的第一性能数据的诊断结果,根据该第一性能数据和该诊断结果生成训练数据,并从该训练数据中提取特征向量;为了加速学习过程,将该特征向量标准化到0至1之间;其中,该训练数据包括:用于训练模型的训练集,以及用于验证训练后模型的验证集;
需要说明的是,该预先采集的第一性能数据经过处理后,一部分为后续训练模型的样本,另一部分用于验证模型;在其中一些实施例中,可以对收集到的第一性能数据进行人工诊断,并获取相应的诊断结果以及优化方案,以便根据该第一性能数据、该诊断结果和该优化方案整合生成该训练数据;其中,本申请实施例中的人工诊断需要经验丰富的工程师或者专家进行诊断,这将直接关系到后续训练模型的诊断能力与准确性。
步骤S204,将该训练集输入神经网络,并获取智能诊断模型,进而根据该智能诊断模型获取调优引擎;其中,该神经网络可以为霍普菲(Hopfield)网络、卷积神经网络或ART网络等。
以基于ART-1网络训练该智能诊断模型为例,图3为根据本申请实施例的一种ART-1网络结构的示意图,如图3所示,该ART-1网络是Grossberg网络的一个变形,被用来稳定学习过程;该ART-1网络相比于Grossberg网络的改进包括三个部分:第二层F2(识别层)到第一层F1(比较层)的期望值、调整子系统以及增益控制。
该ART-1网络的具体工作过程如下:首先向该ART-1网络提交一个输入模式;识别层接收到比较层的输出作为该识别层的输入,并通过竞争学习产生竞争获胜的类,假设为j,则有然后将该类的代表向量:/>送回到比较层与输入p进行比较,形成新的输出:/>此时a1代表输入与期望值的匹配程度。
最后将输入p,以及比较层的输出a1一起输入调整子系统比较其匹配程度(由警戒参数ρ决定),根据该匹配程度确定a1是否可以代表p;如果a1可以代表p,则网络进行训练期,更新W2:1和W2:1;否则,令并抑制其激活,向量p重新输入比较层,重新返回第一步,知道谐振发生;需要说明的是,由于W2:1和W2:1的更新同时发生,故称为谐振。
需要说明的是,通过上述神经网络可以获取到该智能诊断模型;该智能诊断模型拥有不断学习进化的能力,随着学习不同工程师的JVM调优经验,诊断的准确性会越来越高;训练好的该智能诊断模型以WEB服务的方式部署,提供相应的WEB UI界面,并对外提供一套RESTFUL接口,这就是调优引擎;该调优引擎单独部署,可以和应用程序不在同一台服务器上,提供完整的性能监控与诊断方案。
步骤S206,在该调优引擎获取到第二性能数据后,根据该智能诊断模型生成该第二性能数据的性能问题,以及与该第二性能问题相对应的解决方案;根据该第二性能问题和该解决方案,生成调优结果;该第二性能数据为待诊断的Java应用程序的性能数据。
其中,该调优引擎获取该第二性能数据的方式可以为:应用程序在运行过程中将采集到的所述性能数据,通过web接口推送给该调优引擎;或者,该调优引擎通过部署数据采集程序在应用程序的服务器上主动采集;该调优引擎收到该第二性能数据后会解析处理,例如,基于解析程序将所述性能数据解析为JSON格式,并对解析后的第二性能数据进行数据处理;然后,该调优引擎调用智能诊断模型诊断可能出现的性能问题并给出相应的解决方案,或者给出当前程序的调优方法,该调优方法可以是通过修改JVM块来完成,从而实现JVM调优。
在相关技术中,对于JVM的调优需要Java软件工程师具有很高的专业知识以及丰富的生产环境调优经验,这对于一个初、中级的Java软件工程师来说是很难做到的,但是在企业中大部分的开发人员仍然以初、中级的为主,导致对于拥有大量Java应用程序的企业来说,如何优化好每一个应用程序的性能是一个棘手的问题,并且对JVM的调优效率难以提高。
与相关技术相比,本申请实施例通过上述步骤S202至步骤S206,通过不断采集工程师在调优Java应用系统期间的性能日志数据、JVM配置等数据,并基于神经网络算法学习高级工程师以及Java专家调优JVM的经验,使得经过大量数据训练得到的模型拥有智能诊断性能问题的能力,最终实现专家级别的调优引擎,从而根据第二性能数据输出当前最优的JVM配置和调优方案,大大降低了JVM调优的门槛,有效解决了Java应用调优难的问题,以及解决了Java调优的效率低的问题,实现了高效、准确的调优,同时通过智能诊断模型快速诊断解决常见性能问题,还可以大量减少重复劳动,节省人力成本。
在其中一些实施例中,提供了一种基于机器学习的JVM调优方法,图4为根据本申请实施例的另一种JVM调优方法的流程图,如图4所示,该流程还包括如下步骤:
步骤S402,基于该调优引擎,获取该解决方案中的可自动修复的第一优化方案;例如,该第一优化方案为修改JVM参数。
步骤S404,在该应用程序和该调优引擎部署于同一服务器的情况下,通过配置下发模块,进而生成该调优结果;或者,在该应用程序和该调优引擎部署于不同一服务器的情况下,通过配置推送模块,将该第一优化方案推送至与该性能问题相匹配的具体应用,进而生成该调优结果;其中,具体下发模块可以单独部署,使用Java实现。
步骤S406,基于该调优引擎,获取该解决方案中无法自动修复的第二优化方案,并将该第二优化方案发送至告警模块,进而生成该调优结果;其中,对于严重的性能问题,可以通过邮件或短信通知对应的应用负责人进行调优;对于无法动态更新的一些优化方案,例如,是由于程序代码本身的缺陷导致,可以通知应用负责人手动整改,以便应用负责人及时针对检测到的性能问题进行调优。
通过上述步骤S402至步骤S406,针对应用程序和调优引擎不在同一服务器的情况,通过配置推送模块进行JVM调优,使得调优引擎可以单独部署;同时还提供了可自动修复的优化方案,从而大大提高了JVM调优的效率。
在其中一些实施例中,上述根据该性能问题和该解决方案,生成调优结果之后,该流程还包括如下步骤:将该调优引擎的应用优化历史发送至应用性能处置监控平台;其中,该应用性能处置监控平台用于统一管控接入调优引擎的应用优化历史,因此所有优化历史有据可查;且该应用性能处置监控平台还提供了针对该第一优化方案的一键还原。
通过上述实施例,将应用优化历史发送给可以一键还原第一优化方案的应用性能监控平台,一次你该应用性能监控平台可以提供所有应用的性能状况以及优化历史的WEB平台可视化查询,以便用户查询优化历史,以及对某一自动化优化方案的清理还原,从而进一步提高了JVM调优的效率,实现了用户体验的提升。
在其中一些实施例中,提供了一种基于机器学习的JVM调优方法,图5为根据本申请实施例的又一种JVM调优方法的流程图,如图5所示,该流程还包括如下步骤:
步骤S502,根据该验证集获取交叉验证结果;基于超参数搜索获取该智能诊断模型的最优参数组合;在每一次训练遍历结束的情况下,获取该验证集的精确度;其中,该精确度用于指示停止训练该智能诊断模型。
需要说明的是,使用步骤S202中分离的一部分验证模型的数据获取交叉验证结果来验证模型的准确性;基于超参数搜索获取该智能诊断模型的最优参数组合,即需要对该智能诊断模型预设几种超参数组合,每组超参数都采用交叉验证来进行评估,并选出最优参数组合;其中,该超参数是指需要手动指定的参数;此外,通过该验证集的精确度缓解过拟合,提高模型泛化性;例如,一个Epoch集为对所有的训练数据的一轮遍历,则在每一个Epoch结束时计算验证集的精确率,当精确率不再提高时就停止训练,及早的停止训练也可以在一定程度上避免训练模型对于训练数据的过拟合。
步骤S504,根据该交叉验证结果、该最优参数组合和该精确度,获取调优的该智能诊断模型,进而根据该调优后的智能诊断模型获取该调优引擎。
通过上述步骤S502至步骤S504,通过交叉验证、超参数搜索以及缓解过拟合的方案对智能诊断模型进行调优,使得基于该智能诊断模型获得的调优结果更加精确,从而在保证JVM调优效率的情况下,提高了JVM调优的准确性。
在其中一些实施例中,获取终端上应用程序的第一性能数据还包括如下步骤:基于JVM的命令行检测工具,获取实时日志数据和JVM配置信息;或者,基于编写脚本采集操作系统日志;或者,基于该应用程序的日志数据获取应用程序数据;其中,该第一性能数据包括:该实时日志数据、该JVM配置信息、该操作系统日志和该应用程序数据。
应该理解的是,虽然图2、图4和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
下面结合实际应用场景对本发明的实施例进行详细说明,图6为根据本申请实施例的一种JVM调优方法架构的示意图,如图6所示,多个应用程序在运行过程中主动采集原始性能数据,并通过WEB接口推送性能数据到调优引擎,这样就不必在应用程序所在的服务器部署数据采集程序模块;该数据采集程序模块可单独部署,利用现有工具采集原始性能数据,调用WEB接口推送性能数据到调优引擎;数据解析模块解析该性能数据,并统一解析为JSON格式;数据处理模块对该性能数据进行去重、过滤,标准化为智能诊断模型可以接收的数据格式;智能诊断模块调用智能诊断模型,并输出诊断结果和优化方案;告警模块对于严重的性能问题,通过邮件或短信通知应用负责人,对于无法动态更新的一些优化方案,则通知应用负责人手动修改。
通过判断模块判断应用程序和调优引擎是否在同一服务器上;在该应用程序和该调优引擎在同一服务器上的情况下,配置下发模块,具体下发模块可以单独部署,使用Java实现;在该应用程序和调优引擎不在同一服务器上的情况下,配置推送模块,并推送优化配置到具体应用完成JVM调优;同时,应用性能处置监控平台统一管控接入调优引擎的应用优化历史,所有优化历史有据可查,并提供针对自动化优化方案的一键还原。
其中,该JVM调优方法的具体实施步骤如下:
步骤S1,采集JVM、操作系统性能数据、应用性能数据,并整合人工诊断性能问题的关键点以及结果;对上述第一性能数据提取特征,使用ART-1网络进行训练模块,得到智能诊断模型。
步骤S2,使用交叉验证、超参数搜索和缓解过拟合等方法优化该智能诊断模型,并基于该智能诊断模型调优引擎平台;其中,该调优引擎提供一套RESTFUL接口,可以接收性能日志数据,输出诊断结果及解决方案;该调优引擎的数据采集模块和配置下发模块均可单独部署,以便应对应用程序和调优引擎不在同一台服务器的情况;并且,一个调优引擎可同时接入多个应用,进而同时对多个应用进行性能诊断。
步骤S3,一个完整的诊断流程如下:数据采集模块采集应用的第二性能数据,通过WEB接口推送至调优引擎;该调优引擎对接收的第二性能数据进行统一解析、处理成智能诊断模型可以接收的格式;调用智能诊断模型,得到解决方案;该调优引擎根据解决方案的类型,可以自动修复的项目通过配置下发平台下发具体应用,不能自动修复的通过邮件、短信等方式通知应用负责人整改;所有的诊断调优历史均可在应用性能处置监控平台查询,并且提供针对某次自动优化方案一键还原的功能。
在本实施例中,提供了一种基于机器学习的JVM调优装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7为根据本申请实施例的一种JVM调优装置的结构框图,如图7所示,该装置包括:训练模块72、诊断模块74和调优模块76。
该训练模块72,用于获取终端上应用程序的第一性能数据的诊断结果,根据该性第一能数据和该诊断结果生成训练数据;其中,该训练数据包括训练集和验证集;该诊断模块74,用于将该训练集输入神经网络,并获取智能诊断模型,进而根据该智能诊断模型获取调优引擎;该调优模块76,用于在该调优引擎获取到该第二性能数据的情况下,根据该智能诊断模型生成该第二性能数据的性能问题,以及与该第二性能问题相对应的解决方案;该调优模块76根据该第二性能问题和该解决方案,生成调优结果。
通过上述实施例,诊断模块74通过神经网络算法学习高级工程师以及Java专家调优JVM的经验,使得训练得到的模型拥有智能诊断性能问题的能力,最终由调优模块76实现专家级别的调优引擎,从而大大降低了JVM调优的门槛,有效解决了Java应用调优难的问题,以及解决了Java调优的效率低的问题,实现了高效、准确的调优,同时该调优模块76通过智能诊断模型快速诊断解决常见性能问题,还可以大量减少重复劳动,节省人力成本。
图8为根据本申请实施例的另一种JVM调优装置的结构框图,如图8所示,该装置包括图8所示的所有模块,此外还包括:第一优化模块82和第二优化模块84。
该第一优化模块82,用于基于该调优引擎,获取该解决方案中的可自动修复的第一优化方案;该第一优化模块82在该应用程序和该调优引擎部署于同一服务器的情况下,通过配置下发模块,完成该第一优化方案的JVM调优;或者,该第一优化模块82在该应用程序和该调优引擎部署于不同服务器的情况下,通过配置推送模块,将该第一优化方案推送至与该第二性能问题相匹配的具体应用,进而完成该JVM调优;该第二优化模块84,用于基于该调优引擎,获取该解决方案中无法自动修复的第二优化方案,并将该第二优化方案发送至告警模块,进而完成该JVM调优。
在其中一些实施例中,该装置还包括还原模块,该还原模块用于将该调优引擎的应用优化历史发送至应用性能处置监控平台;其中,该应用性能处置监控平台提供针对该第一优化方案的一键还原功能。
在其中一些实施例中,该诊断模块74还用于根据该验证集获取交叉验证结果;该诊断模块74基于超参数搜索获取该智能诊断模型的最优参数组合;该诊断模块74在每一次训练遍历结束的情况下,获取该验证集的精确度;其中,该精确度用于指示停止训练该智能诊断模型;该诊断模块74根据该交叉验证结果、该最优参数组合和该精确度,获取调优的该智能诊断模型,进而根据该调优后的智能诊断模型获取该调优引擎。
在其中一些实施例中,该训练模块72还用于基于人工诊断获取该诊断结果以及优化方案;该训练模块72还根据该第一性能数据、该诊断结果和该优化方案生成该训练数据。
在其中一些实施例中,该装置还包括解析模块,该解析模块用于基于解析程序将该第一性能数据解析为JSON格式,并对解析后的第一性能数据进行数据处理。
在其中一些实施例中,该训练模块72还用于基于JVM的命令行检测工具,获取实时日志数据和JVM配置信息;或者,该训练模块72基于编写脚本采集操作系统日志;或者,该训练模块72基于该应用程序的日志数据获取应用程序数据;其中,该第一性能数据包括:该实时日志数据、该JVM配置信息、该操作系统日志和该应用程序数据。
在其中一些实施例中,该调优模块76还用于将采集到的该第二性能数据,通过web接口推送给该调优引擎;且诊断模块74中的神经网络设置为ART网络。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在其中一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,图9为根据本发明实施例的一种计算机设备内部的结构图,如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储调优引擎。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种JVM调优的方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取终端上应用程序的第一性能数据的诊断结果,根据该第一性能数据和该诊断结果生成训练数据;其中,该训练数据包括训练集和验证集。
S2,将该训练集输入神经网络,并获取智能诊断模型,进而根据该智能诊断模型获取调优引擎。
S3,在该调优引擎获取到该第二性能数据的情况下,根据该智能诊断模型生成该第二性能数据的性能问题,以及与该第二性能问题相对应的解决方案根据该第二性能问题和该解决方案,生成调优结果。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的JVM调优的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于机器学习的JVM调优方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于机器学习的JVM调优方法,其特征在于,所述方法包括:
获取终端上应用程序的第一性能数据的诊断结果,根据所述第一性能数据和所述诊断结果生成训练数据;其中,所述训练数据包括训练集和验证集;
将所述训练集输入神经网络,以获取智能诊断模型,进而基于所述智能诊断模型获取调优引擎;
在所述调优引擎获取到第二性能数据后,根据所述智能诊断模型生成所述第二性能数据的性能问题,以及与所述性能问题相对应的解决方案;
根据所述性能问题和所述解决方案,生成调优结果,包括:
基于所述调优引擎,获取所述解决方案中的可自动修复的第一优化方案;
在所述应用程序和所述调优引擎部署于同一服务器的情况下,通过配置下发模块,完成所述第一优化方案的JVM调优;或者,
在所述应用程序和所述调优引擎部署于不同服务器的情况下,通过配置推送模块,将所述第一优化方案推送至与所述性能问题相匹配的具体应用,进而生成所述调优结果;
基于所述调优引擎,获取所述解决方案中无法自动修复的第二优化方案,并将所述第二优化方案发送至告警模块,进而生成调优结果。
2.根据权利要求1所述的JVM调优方法,其特征在于,所述根据所述性能问题和所述解决方案,生成调优结果之后,所述方法还包括:
将所述调优引擎的应用优化历史发送至应用性能处置监控平台;其中,所述应用性能处置监控平台提供针对所述第一优化方案的一键还原功能。
3.根据权利要求1所述的JVM调优方法,其特征在于,所述获取智能诊断模型之后,所述在所述调优引擎获取到所述第二性能数据的情况下,根据所述智能诊断模型生成所述性能数据的性能问题之前,所述方法还包括:
根据所述验证集获取交叉验证结果;基于超参数搜索获取所述智能诊断模型的最优参数组合;在每一次训练遍历结束的情况下,获取所述验证集的精确度;其中,所述精确度用于指示停止训练所述智能诊断模型;
根据所述交叉验证结果、所述最优参数组合和所述精确度,获取调优后的智能诊断模型,进而基于所述调优后的智能诊断模型获取所述调优引擎。
4.根据权利要求1所述的JVM调优方法,其特征在于,所述获取终端上应用程序的性能数据的诊断结果,根据所述第一性能数据和所述诊断结果生成训练数据包括:
基于人工诊断获取所述诊断结果以及优化方案;根据所述第一性能数据、所述诊断结果和所述优化方案生成所述训练数据。
5.根据权利要求4所述的JVM调优方法,其特征在于,所述基于人工诊断获取所述诊断结果以及优化方案之前,所述方法还包括:
基于解析程序将所述第一性能数据解析为JSON格式,并对解析后的第一性能数据进行数据处理。
6.根据权利要求1所述的JVM调优方法,其特征在于,所述获取终端上应用程序的第一性能数据包括:
基于JVM的命令行检测工具,获取实时日志数据和JVM配置信息;或者,基于编写脚本采集操作系统日志;或者,基于所述应用程序的日志数据获取应用程序数据;
其中,所述第一性能数据包括:所述实时日志数据、所述JVM配置信息、所述操作系统日志和所述应用程序数据。
7.根据权利要求1至6任一项所述的JVM调优方法,其特征在于,所述神经网络设置为自适应谐振理论ART网络。
8.一种基于机器学习的JVM调优装置,其特征在于,所述装置包括:训练模块、诊断模块、调优模块、第一优化模块和第二优化模块;
所述训练模块,用于获取终端上应用程序的第一性能数据的诊断结果,根据所述第一性能数据和所述诊断结果生成训练数据;其中,所述训练数据包括训练集和验证集;
所述诊断模块,用于将所述训练集输入神经网络,以获取智能诊断模型,进而基于所述智能诊断模型获取调优引擎;
所述调优模块,用于在所述调优引擎获取到第二性能数据后,根据所述智能诊断模型生成所述第二性能数据的性能问题,以及与所述性能问题相对应的解决方案;所述调优模块根据所述性能问题和所述解决方案,生成调优结果;
所述第一优化模块,用于基于所述调优引擎,获取所述解决方案中的可自动修复的第一优化方案;
所述第一优化模块在所述应用程序和所述调优引擎部署于同一服务器的情况下,通过配置下发模块,完成所述第一优化方案的JVM调优;或者,
所述第一优化模块在所述应用程序和所述调优引擎部署于不同服务器的情况下,通过配置推送模块,将所述第一优化方案推送至与所述性能问题相匹配的具体应用,进而生成所述调优结果;
所述第二优化模块,用于基于所述调优引擎,获取所述解决方案中无法自动修复的第二优化方案,并将所述第二优化方案发送至告警模块,进而生成调优结果。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的JVM调优的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749649.9A CN112000428B (zh) | 2020-07-30 | 2020-07-30 | 基于机器学习的jvm调优方法、装置和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749649.9A CN112000428B (zh) | 2020-07-30 | 2020-07-30 | 基于机器学习的jvm调优方法、装置和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000428A CN112000428A (zh) | 2020-11-27 |
CN112000428B true CN112000428B (zh) | 2024-03-22 |
Family
ID=73462418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010749649.9A Active CN112000428B (zh) | 2020-07-30 | 2020-07-30 | 基于机器学习的jvm调优方法、装置和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000428B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113608798A (zh) * | 2021-08-06 | 2021-11-05 | 中航金网(北京)电子商务有限公司 | 一种对非java的应用、对云原生的应用使用资源进行配置的方法及其装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766123A (zh) * | 2017-10-11 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种jvm调优方法 |
CN110795357A (zh) * | 2019-11-04 | 2020-02-14 | 中国工商银行股份有限公司 | 程序监控方法及装置 |
CN111190832A (zh) * | 2020-01-06 | 2020-05-22 | 成都库珀区块链科技有限公司 | 一种性能瓶颈定位和调优方法、装置及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10708795B2 (en) * | 2016-06-07 | 2020-07-07 | TUPL, Inc. | Artificial intelligence-based network advisor |
US20180349158A1 (en) * | 2017-03-22 | 2018-12-06 | Kevin Swersky | Bayesian optimization techniques and applications |
CN110390387B (zh) * | 2018-04-20 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
-
2020
- 2020-07-30 CN CN202010749649.9A patent/CN112000428B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766123A (zh) * | 2017-10-11 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种jvm调优方法 |
CN110795357A (zh) * | 2019-11-04 | 2020-02-14 | 中国工商银行股份有限公司 | 程序监控方法及装置 |
CN111190832A (zh) * | 2020-01-06 | 2020-05-22 | 成都库珀区块链科技有限公司 | 一种性能瓶颈定位和调优方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112000428A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10877863B2 (en) | Automatic prediction system for server failure and method of automatically predicting server failure | |
US7499777B2 (en) | Diagnostic and prognostic method and system | |
EP4012525A1 (en) | Method for event-based failure prediction and remaining useful life estimation | |
CN109308488B (zh) | 乳腺超声图像处理装置、方法、计算机设备及存储介质 | |
CN110704842A (zh) | 一种恶意代码家族分类检测方法 | |
CN112820367B (zh) | 病历信息校验方法、装置、计算机设备及存储介质 | |
CN113807353B (zh) | 图像转换模型训练方法、装置、设备及存储介质 | |
CN110659495A (zh) | 一种恶意代码家族分类方法 | |
CN113705685B (zh) | 疾病特征识别模型训练、疾病特征识别方法、装置及设备 | |
CN111971545A (zh) | 用于处理机动车辆的数据的诊断系统和方法 | |
CN112000428B (zh) | 基于机器学习的jvm调优方法、装置和电子装置 | |
CN113379070A (zh) | 一种深度学习框架转换方法、系统、存储介质及设备 | |
WO2023236319A1 (zh) | 一种面向微控制器的卷积神经网络部署和优化方法 | |
CN113541985A (zh) | 物联网故障诊断方法、模型的训练方法及相关装置 | |
CN113326177A (zh) | 一种指标异常检测方法、装置、设备及存储介质 | |
CN113808727B (zh) | 设备监控方法、装置、计算机设备和可读存储介质 | |
CN114898446A (zh) | 基于人工智能的人脸识别方法、装置、设备及存储介质 | |
CN115346084A (zh) | 样本处理方法、装置、电子设备、存储介质及程序产品 | |
CN111931926A (zh) | 一种用于卷积神经网络cnn的硬件加速系统及控制方法 | |
CN110889357A (zh) | 基于标注区域的地下电缆故障检测方法和装置 | |
CN111309572B (zh) | 测试分析方法、装置、计算机设备及存储介质 | |
CN116340765B (zh) | 一种窃电用户预测方法、装置、存储介质及电子设备 | |
US20240152805A1 (en) | Systems, methods, and non-transitory computer-readable storage devices for training deep learning and neural network models using overfitting detection and prevention | |
US20220414495A1 (en) | System and method for determining expected loss using a machine learning framework | |
CN116755836A (zh) | 容器异常重启预测方法、训练方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |