虚拟机内存的管理方法和管理系统技术方案

技术编号:13293740 阅读:94 留言:0更新日期:2016-07-09 11:38
本发明专利技术实施例提供的虚拟机内存的管理方法,包括:操作虚拟机解释和执行业务系统;在虚拟机运行期间,将所述虚拟机的内存快照存储到数据仓库;从所述内存快照中解析所述业务系统的状态数据;以及将所述状态数据存储到所述数据仓库。通过将内存快照和状态数据进行永久化存储,满足研发人员在定位问题时需要查看虚拟机内存的历史数据的需求。尤其在业务系统已经投入运营的情况下,本发明专利技术实施例提供的方案能够帮助运营人员监控虚拟机的内存,出现问题时,帮助研发人员迅速定位和解决问题。本发明专利技术同时提供对应的管理系统。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体地,涉及一种虚拟机内存的管理方法和管理系统
技术介绍
JAVA大量作用于分布式系统,同时JAVA虚拟机是JAVA程序的绝对核心和基础。对JAVA虚拟机的实时监控是控制JAVA系统稳定的重中之重。其中内存管理,是很重要的一部分。由于业务不断发展,业务代码不断更新。稍不注意,经常会出现内存溢出的情况。解决的方式是通过JDK(JavaDevelopmentKit,JAVA语言的开发包)自带的工具jmap或者jconsle分析内存。该分析方式有以下缺点:第一、观察的只是某个具体时间点的状态,没有历史状态,对时间点的把控依赖人为操作;第二、对内存信息没有一个持久化的功能,基本没法进行后期内存信息比较、风险预警、类加载详情、空间分配的详情进行比较;第三、需要远程连接,开放机器指定端口,性能和安全都有风险;第四、只能作为工具使用,不容易被业务系统集成。以上缺点导致通过JDK工具定位问题需要很长的时间,缺少虚拟机内存监控同时增加了系统崩溃的风险。
技术实现思路
有鉴于此,本专利技术提供一种应用于程序的内存管理方法和内存管理系统,以解决上述问题。根据本专利技术的第一方面,提供一种虚拟机内存的管理方法,包括:操作虚拟机解释和执行业务系统;在虚拟机运行期间,将所述虚拟机的内存快照存储到数据仓库;从所述内存快照中解析所述业务系统的状态数据;以及将所述状态数据存储到所述数据仓库。优选地,还包括:在所述虚拟机的内存快照存储到数据仓库之前,从配置服务器读取配置信息。优选地,所述虚拟机包括JAVA虚拟机,所述业务系统包括预编译为字节码的JAVA程序。优选地,所述配置信息包括快照采集的包目录和/或类名,所述包目录和/或类名用于限定所述虚拟机的内存快照。优选地,通过JAVA虚拟机的DUMP命令获取所述将虚拟机的内存快照。优选地,还包括:从所述业务系统中接收执行指令,根据所述执行指令触发所述将所述虚拟机的内存快照存储到数据仓库的步骤。优选地,还包括:获取所述虚拟机的堆内存的使用情况,根据所述堆内存的使用情况触发所述将所述虚拟机的内存快照存储到数据仓库的步骤。优选地,所述状态数据包括类和实例的描述数据,所述状态数据用于定位问题。根据本专利技术的第二方面,提供一种虚拟机内存的管理系统,包括:虚拟机节点,所述虚拟机节点包括虚拟机、业务系统和组件客户端,所述虚拟机解释和执行所述业务系统和所述组件客户端,在所述虚拟机运行期间,所述组件客户端将所述虚拟机的内存快照存储到数据仓库;快照分析节点,用于从所述内存快照中解析所述业务系统的状态数据;存储节点,用于将所述状态数据存储到所述数据仓库。优选地,还包括:配置服务器,用于提供所述虚拟机监视系统的配置信息。优选地,所述配置信息包括快照采集的包目录和/或类名,所述包目录和/或类名用于限定所述虚拟机的内存快照。优选地,所述虚拟机包括JAVA虚拟机,所述业务系统包括预编译为字节码的JAVA程序。优选地,所述组件客户端由所述业务系统进行触发。优选地,所述组件客户端监视虚拟机的堆内存的使用情况,根据使用情况进行触发。优选地,所述状态数据包括类和实例的描述数据,所述状态数据用于定位问题。本专利技术实施例提供的虚拟机内存的管理方法,包括:操作虚拟机解释和执行业务系统;在虚拟机运行期间,将所述虚拟机的内存快照存储到数据仓库;从所述内存快照中解析所述业务系统的状态数据;以及将所述状态数据存储到所述数据仓库。通过将内存快照和状态数据进行永久化存储,满足研发人员在定位问题时需要查看虚拟机内存的历史数据的需求。尤其在业务系统已经投入运营的情况下,本专利技术实施例提供的方案能够帮助运营人员监控虚拟机的内存,出现问题时,帮助研发人员迅速定位和解决问题。同时提供对应的管理系统。附图说明通过参照以下附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是根据本专利技术实施例的虚拟机内存的管理方法的示意性框图;图2是根据本专利技术另一实施例的虚拟机内存的管理系统的结构图;图3是根据本专利技术实施例的将JAVA虚拟机的内存快照存储到数据仓库的流程图;图4是根据本专利技术实施例的管理系统中查看内存快照数据的流程图;图5是根据本专利技术实施例的将内存快照解析为状态数据的流程图。具体实施方式以下基于实施例对本专利技术进行描述,但是本专利技术并不仅仅限于这些实施例。在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。为了避免混淆本专利技术的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。附图中的流程图、框图图示了本专利技术实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对专利技术本身的限制。本专利技术实施例中的术语:虚拟机是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。图1是根据本专利技术实施例的虚拟机内存的管理方法的示意性框图。在本方法中涉及的部件包括业务系统101、虚拟机100和数据仓库102,包括的操作有动作130、140和150,涉及的数据有内存快照110和状态数据120。动作150将多个业务系统101导入到虚拟机中解释并执行。虚拟机100将中间解释语言(例如,字节码)转换为机器执行语言。在一个实施例中,虚拟机100为JAVA虚拟机,业务系统为预编译为字节码的JAVA程序。虽然本专利技术的实施例是利用面向对象的JAVA语言来描述的,但本专利技术所描述的技术方案,也可以等效地应用于其他的编程语言,以及用于解释和执行这些语言的虚拟机。在虚拟机执行期间,动作130拍摄虚拟机的内存快照,并将这些内存快照存储到数据仓库102中。虚拟机的内存快照为一段二进制的字节码。调用虚拟机的API获取某个时刻的虚拟机的内存。在和JAVA虚拟机对应的实施例中,通过DUMP命令获取虚拟机的内存快照。动作1本文档来自技高网...

【技术保护点】
一种虚拟机内存的管理方法,包括:操作虚拟机解释和执行业务系统;在虚拟机运行期间,将所述虚拟机的内存快照存储到数据仓库;从所述内存快照中解析所述业务系统的状态数据;以及将所述状态数据存储到所述数据仓库。

【技术特征摘要】
1.一种虚拟机内存的管理方法,包括:
操作虚拟机解释和执行业务系统;
在虚拟机运行期间,将所述虚拟机的内存快照存储到数据仓库;
从所述内存快照中解析所述业务系统的状态数据;以及
将所述状态数据存储到所述数据仓库。
2.根据权利要求1所述的虚拟机内存的管理方法,还包括:在所述
虚拟机的内存快照存储到数据仓库之前,从配置服务器读取配置信息。
3.根据权利要求2所述的虚拟机内存的管理方法,其中,所述配置
信息包括快照采集的包目录和/或类名,所述包目录和/或类名用于限定
所述虚拟机的内存快照。
4.根据权利要求1所述的虚拟机内存的管理方法,其中,所述虚拟
机包括JAVA虚拟机,所述业务系统包括预编译为字节码的JAVA程序。
5.根据权利要求4所述的虚拟机内存的管理方法,其中,通过JAVA
虚拟机的DUMP命令获取所述将虚拟机的内存快照。
6.根据权利要求1所述的虚拟机内存的管理方法,还包括:从所述
业务系统中接收执行指令,根据所述执行指令触发所述将所述虚拟机的
内存快照存储到数据仓库的步骤。
7.根据权利要求1所述的虚拟机内存的管理方法,还包括:获取所
述虚拟机的堆内存的使用情况,根据所述堆内存的使用情况触发所述将
所述虚拟机的内存快照存储到数据仓库的步骤。
8.根据权利要求1至7任一项所述的虚拟机内存的管理方法,其中,
所述状态数据包括类和实例的...

【专利技术属性】
技术研发人员:魏亚文孙政
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1