一种JVM的内存对象数量统计系统及方法技术方案

技术编号:11134610 阅读:107 留言:0更新日期:2015-03-12 10:12
本发明专利技术提出一种JAVA虚拟机(JVM)的内存对象数量统计系统及方法,其中系统包括:JVM服务器,用于获取JAVA内存映射(JMAP)信息,并将获取的JMAP信息上报至日志收集服务器;日志收集服务器,用于保存所述JMAP信息;监控分析服务器,用于对所述日志收集服务器保存的JMAP信息进行分析和归档,得到归档文件,并存储所述归档文件;Web展示服务器,用于展示所述归档文件。本发明专利技术能够自动统计JVM服务器的内存占用情况,避免安全漏洞,并能够监控大量JVM服务器。

【技术实现步骤摘要】

本专利技术涉及JAVA虚拟机(JVM,JAVA Virtual Machine)
,尤其涉及一种JVM的内存对象数量统计系统及方法
技术介绍
JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。在大型的服务平台中,内部可能存在大量JVM服务器,由于并发量非常大,业务经常发生变化,代码随之做各种改变,所以经常会出现堆栈资源耗尽问题。对于这一问题,传统的解决方法是等发现异常后,由管理人员手动登录具体的JVM服务器,通过JAVA的工具来查看内存占用情况。这种解决方式的缺点是:需要在被监控的JVM服务器上开通端口,存在安全漏洞,并且可监控数量有限。
技术实现思路
本专利技术提供了一种JVM的内存对象数量统计系统,能够自动统计JVM服务器的内存占用情况,避免安全漏洞,并能够监控大量JVM服务器。本专利技术还提供了一种JVM的内存对象数量统计方法,能够自动统计JVM服务器的内存占用情况,避免安全漏洞,并能够监控大量JVM服务器。本专利技术的技术方案是这样实现的:一种JVM的内存对象数量统计系统,包括:JVM服务器,用于获取JMAP信息,并将获取的JMAP信息上报至日志收集服务器;日志收集服务器,用于保存所述JMAP信息;监控分析服务器,用于对所述日志收集服务器保存的JMAP信息进行分析和归档,得到归档文件,并存储所述归档文件;Web展示服务器,用于展示所述归档文件。一种JVM的内存对象数量统计方法,包括:获取并保存各个JVM服务器的JMAP信息;对所述JMAP信息进行分析和归档,得到归档文件,存储并展示所述归档文件。可见,本专利技术提出JVM的内存对象数量统计系统和方法,由JVM服务器自动收集并上报JAVA内存映射(JMAP,JAVA Virtual Map)信息,并由专门的服务器对各个JVM服务器上报的JMAP信息进行归档及展示,因此能够自动统计JVM服务器的内存占用情况,避免了安全漏洞,并能够监控大量JVM服务器。附图说明图1为本专利技术提出的JVM的内存对象数量统计系统结构示意图;图2为本专利技术实施例一中JVM服务器收集及上报JMAP信息的实现流程图;图3为本专利技术实施例二中根据用户指令选取归档文件的实现流程图;图4为本专利技术实施例三中对归档文件进行汇总分析的实现流程图;图5为本专利技术提出的JVM的内存对象数量统计方法实现流程图。具体实施方式本专利技术提出一种JVM的内存对象数量统计系统,如图1为该系统的结构示意图,包括:JVM服务器101,用于获取JMAP信息,并将获取的JMAP信息上报至日志收集服务器102;日志收集服务器102,用于保存所述JMAP信息;存储方式可以放在分布式存储服务器上;监控分析服务器103,用于对所述日志收集服务器102保存的JMAP信息进行分析和归档,得到归档文件,并存储所述归档文件;Web展示服务器104,用于展示所述归档文件。以下举具体的实施例详细介绍。实施例一:本实施例介绍JVM服务器101收集JMAP信息,并向日志收集服务器102上报的一种具体实现方式。在本实施例中,JVM服务器101可以包括客户端收集模块和日志客户端模块;其中,客户端收集模块,可以用于周期性获取JVM服务器上要收集的JAVA进程的信息;针对每个JAVA进程,获取该JVM服务器上所有对象的统计信息;所述对象的统计信息包括:各个类所对应的实例数和字节数;日志客户端模块,用于将所述JAVA进程的信息及所述统计信息生成JMAP信息,并将所述JMAP信息上报至日志收集服务器。JVM服务器101可以将生成的JMAP信息先写入本地再上传至日志收集服务器102,也可以采用socket或其它进程通讯或系统通讯方式上传至日志收集服务器102。如图2为JVM服务器101收集及上报JMAP信息的实现流程图,包括:步骤201:客户端收集模块周期性获取JVM服务器上要收集的JAVA进程的信息,并将JAVA进程的信息放入队列中;其中,JAVA进程的信息可以包括JAVA进程的ID及JAVA进程的标示;JAVA进程的标示格式可以为:部门代号-业务系统代号-业务系统版本-实例号;步骤202:从队列中取出一个JAVA进程的信息;步骤203:针对该JAVA进程,通过jamp-histo命令获取该JVM服务器上所有对象的统计信息;其中,所述对象的统计信息可以包括:各个类所对应的实例数和字节数;步骤204:将上述JAVA进程的信息及获取的统计信息计入JMAP信息中,由日志客户端模块将JMAP信息上报至日志收集服务器;步骤205:判断该JAVA进程的信息是否为队列中的最后一个,如果不是,则返回执行步骤202;如果是,则退出本循环周期,结束当前流程。实施例二:本实施例介绍根据用户指令选取归档文件进行分析的一种具体实施方式,如图3为本实施例的实现流程图,包括:步骤301:用户在网络监控图上发现JVM堆栈曲线异常;步骤302:用户在网络监控图上选取2个差异较大的时间点;步骤303:点击比较;步骤304:根据用户指令,监控分析服务器103对上述两个时间点对应的归档文件进行汇总分析,得到分析文件;本步骤详细过程将在以下实施例三中详述;步骤305:判断是否还需要查看其它时间点,如果是,则返回执行步骤302;否则,结束当前流程。实施例三:本实施例介绍实施例二中步骤304的一种实现方式。如图4为本实施例的实现流程图,包括:步骤401:读取第一个时间点对应的归档文件,记为归档文件1;步骤402:针对归档文件1,按照类名对每个类进行汇总,汇总内容包括:归档文件1中存在的类所对应的总实例数和总字节数;步骤403:读取第二个时间点对应的归档文件,记为归档文件2;步骤404:针对归档文件2,按照类名对每个类进行汇总,汇总内容包括:归档文件2中存在的类所对应的总实例数和总字节数;步骤405:根据上述步骤402和步骤404中的汇总内容,生成第一分析文件;第一分析文件的内容可以包括:类分别在两个归档文件中对应的总实例数和总子节数,以及所述类在所述两个归档文件中对应的总实例数的差值和总子节数的差值;其中,所述类为至少在一个归档文件中存在的类,包括三种情况:仅在归档文件1中存在的类、仅在归档文件2中存在的类、本文档来自技高网...
一种JVM的内存对象数量统计系统及方法

【技术保护点】
一种JAVA虚拟机JVM的内存对象数量统计系统,其特征在于,所述系统包括:JVM服务器,用于获取JAVA内存映射JMAP信息,并将获取的JMAP信息上报至日志收集服务器;日志收集服务器,用于保存所述JMAP信息;监控分析服务器,用于对所述日志收集服务器保存的JMAP信息进行分析和归档,得到归档文件,并存储所述归档文件;Web展示服务器,用于展示所述归档文件。

【技术特征摘要】
1.一种JAVA虚拟机JVM的内存对象数量统计系统,其特征在于,所述系
统包括:
JVM服务器,用于获取JAVA内存映射JMAP信息,并将获取的JMAP信
息上报至日志收集服务器;
日志收集服务器,用于保存所述JMAP信息;
监控分析服务器,用于对所述日志收集服务器保存的JMAP信息进行分析
和归档,得到归档文件,并存储所述归档文件;
Web展示服务器,用于展示所述归档文件。
2.根据权利要求1所述的系统,其特征在于,所述JVM服务器包括:
客户端收集模块,用于周期性获取所述JVM服务器上要收集的JAVA进程
的信息;针对每个JAVA进程,获取该JVM服务器上所有对象的统计信息;所
述对象的统计信息包括:各个类所对应的实例数和字节数;
日志客户端模块,用于将所述JAVA进程的信息及所述统计信息生成JMAP
信息,并将所述JMAP信息上报至日志收集服务器。
3.根据权利要求2所述的系统,其特征在于,所述JAVA进程的信息包括:
JAVA进程的ID及JAVA进程的标示;所述JAVA进程的标示包括:部门代号、
业务系统代号、业务系统版本和实例号;
所述归档文件的标记包括:部门代号、业务系统代号、业务系统版本、实
例号和时间信息。
4.根据权利要求1、2或3所述的系统,其特征在于,
所述监控分析服务器还用于,根据用户的指示选取两个归档文件;针对两
个归档文件,分别按照类名进行汇总,得到各个类所对应的总实例数和总子节
数;根据所述汇总的内容得到第一分析文件,所述第一分析文件的内容包括:
类分别在所述两个归档文件中对应的总实例数和总子节数,以及所述类在所述
两个归档文件中对应的总实例数的差值和总子节数的差值;其中,所述类为至

\t少在一个归档文件中存在的类,当一个类在一个归档文件中不存在时,该类在
该归档文件中对应的总实例数和总子节数均为0。
5.根据权利要求4所述的系统,其特征在于,所述监控分析服务器还用于,
由所述第一分析文件生成其它分析文件,包括:
根据用户指令,从所述第一分析文件中选取用户指令的类所对应的信息,
生成第二分析文件;
或者,从所述第一分析文件中选取仅在第一个归档文件中存在的类所对应

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

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

1