CN104407966B - 一种jvm的内存对象数量统计系统及方法 - Google Patents

一种jvm的内存对象数量统计系统及方法 Download PDF

Info

Publication number
CN104407966B
CN104407966B CN201410799944.XA CN201410799944A CN104407966B CN 104407966 B CN104407966 B CN 104407966B CN 201410799944 A CN201410799944 A CN 201410799944A CN 104407966 B CN104407966 B CN 104407966B
Authority
CN
China
Prior art keywords
information
class
jvm
archive file
jmap
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
Application number
CN201410799944.XA
Other languages
English (en)
Other versions
CN104407966A (zh
Inventor
李清森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Tianji cloud Clothing Technology Co., Ltd.
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201410799944.XA priority Critical patent/CN104407966B/zh
Publication of CN104407966A publication Critical patent/CN104407966A/zh
Application granted granted Critical
Publication of CN104407966B publication Critical patent/CN104407966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种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中存在的类、在归档文件1和归档文件2中均存在的类;
当一个类在一个归档文件中不存在时,该类在该归档文件中对应的总实例数和总字节数均为0。
下表一为第一分析文件示例。
表1
由上述第一分析文件,还可以生成其他分析文件,例如:
步骤406:根据用户指令,从第一分析文件中选取用户指令的类所对应的信息,生成第二分析文件。例如,用户指令生成针对特定种类的类(例如用户自己编写的类)的分析文件,该特定种类的类包括类B和类C,生成的第二分析文件如下表2所示。
表2
步骤407:从第一分析文件中选取仅在归档文件1中存在的类所对应的信息,生成第三分析文件,下表3为第三分析文件示例。
表3
步骤408:从第一分析文件中选取仅在归档文件2中存在的类所对应的信息,生成第四分析文件,下表4为第四分析文件示例。
表4
上述分析文件仅为示例,本发明也可以按照用户指令生成包含其他内容的分析文件,以便对JVM的内存对象进行动态分析。
本发明还提出一种JVM的内存对象数量统计方法,如图5为该方法的实现流程图,包括:
步骤501:获取并保存各个JVM服务器的JMAP信息;
步骤502:对所述JMAP信息进行分析和归档,得到归档文件,存储并展示所述归档文件。
上述步骤501中,获取JVM服务器的JMAP信息的方式可以为:
周期性获取所述JVM服务器上要收集的JAVA进程的信息;
针对每个JAVA进程,获取该JVM服务器上所有对象的统计信息;所述对象的统计信息包括:各个类所对应的实例数和字节数;
将所述JAVA进程的信息及所述统计信息生成JMAP信息。
上述过程中,JAVA进程的信息可以包括:JAVA进程的ID及JAVA进程的标示;所述JAVA进程的标示可以包括:部门代号、业务系统代号、业务系统版本和实例号;
归档文件的标记可以包括:部门代号、业务系统代号、业务系统版本、实例号和时间信息。
上述步骤502之后,还可以进一步包括:
步骤503:根据用户的指示选取两个归档文件;
步骤504:针对两个归档文件,分别按照类名进行汇总,得到各个类所对应的总实例数和总字节数;
步骤505:根据所述汇总的内容得到第一分析文件,所述第一分析文件的内容包括:类分别在所述两个归档文件中对应的总实例数和总字节数,以及所述类在所述两个归档文件中对应的总实例数的差值和总字节数的差值;其中,所述类为至少在一个归档文件中存在的类,当一个类在一个归档文件中不存在时,该类在该归档文件中对应的总实例数和总字节数均为0。
上述步骤505之后,还可以进一步包括:
步骤506:根据用户指令,从第一分析文件中选取用户指令的类所对应的信息,生成第二分析文件;
或者,步骤507:从第一分析文件中选取仅在第一个归档文件中存在的类所对应的信息,生成第三分析文件;
或者,步骤508:从第一分析文件中选取仅在第二个归档文件中存在的类所对应的信息,生成第四分析文件。
综上可见,本发明提出的JVM的内存对象数量统计系统和方法,采用JMAP信息主动推送的方式,避免由于多开端口而导致的安全隐患,同时能够实现对大量JVM服务器的监控及历史数据的保存;由于只对JMAP信息进行保存和统计,而不是对dump文件进行统计,能够加快分析速度;最重要的是,能够分析出JVM内存对象总数在指定的不同时间段的变化情况。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种JAVA虚拟机JVM的内存对象数量统计系统,其特征在于,所述系统包括:
JVM服务器,用于获取JAVA内存映射JMAP信息,并将获取的JMAP信息上报至日志收集服务器;
日志收集服务器,用于保存所述JMAP信息;
监控分析服务器,用于对所述日志收集服务器保存的JMAP信息进行分析和归档,得到归档文件,并存储所述归档文件;还用于根据用户的指示选取两个归档文件;针对两个归档文件,分别按照类名进行汇总,得到各个类所对应的总实例数和总字节数;根据所述汇总的内容得到第一分析文件,所述第一分析文件的内容包括:类分别在所述两个归档文件中对应的总实例数和总字节数,以及所述类在所述两个归档文件中对应的总实例数的差值和总字节数的差值;其中,所述类为至少在一个归档文件中存在的类,当一个类在一个归档文件中不存在时,该类在该归档文件中对应的总实例数和总字节数均为0;
Web展示服务器,用于展示所述归档文件。
2.根据权利要求1所述的系统,其特征在于,所述JVM服务器包括:
客户端收集模块,用于周期性获取所述JVM服务器上要收集的JAVA进程的信息;针对每个JAVA进程,获取该JVM服务器上所有对象的统计信息;所述对象的统计信息包括:各个类所对应的实例数和字节数;
日志客户端模块,用于将所述JAVA进程的信息及所述统计信息生成JMAP信息,并将所述JMAP信息上报至日志收集服务器。
3.根据权利要求2所述的系统,其特征在于,所述JAVA进程的信息包括:JAVA进程的ID及JAVA进程的标示;所述JAVA进程的标示包括:部门代号、业务系统代号、业务系统版本和实例号;
所述归档文件的标记包括:部门代号、业务系统代号、业务系统版本、实例号和时间信息。
4.根据权利要求1所述的系统,其特征在于,所述监控分析服务器还用于,由所述第一分析文件生成其它分析文件,包括:
根据用户指令,从所述第一分析文件中选取用户指令的类所对应的信息,生成第二分析文件;
或者,从所述第一分析文件中选取仅在第一个归档文件中存在的类所对应的信息,生成第三分析文件;
或者,从所述第一分析文件中选取仅在第二个归档文件中存在的类所对应的信息,生成第四分析文件。
5.一种JAVA虚拟机JVM的内存对象数量统计方法,其特征在于,所述方法包括:
获取并保存各个JVM服务器的JAVA内存映射JMAP信息;
对所述JMAP信息进行分析和归档,得到归档文件,存储并展示所述归档文件;
所述方法进一步包括:
根据用户的指示选取两个归档文件;
针对两个归档文件,分别按照类名进行汇总,得到各个类所对应的总实例数和总字节数;
根据所述汇总的内容得到第一分析文件,所述第一分析文件的内容包括:类分别在所述两个归档文件中对应的总实例数和总字节数,以及所述类在所述两个归档文件中对应的总实例数的差值和总字节数的差值;其中,所述类为至少在一个归档文件中存在的类,当一个类在一个归档文件中不存在时,该类在该归档文件中对应的总实例数和总字节数均为0。
6.根据权利要求5所述的方法,其特征在于,所述获取JVM服务器的JMAP信息的方式为:
周期性获取所述JVM服务器上要收集的JAVA进程的信息;
针对每个JAVA进程,获取该JVM服务器上所有对象的统计信息;所述对象的统计信息包括:各个类所对应的实例数和字节数;
将所述JAVA进程的信息及所述统计信息生成JMAP信息。
7.根据权利要求6所述的方法,其特征在于,所述JAVA进程的信息包括:JAVA进程的ID及JAVA进程的标示;所述JAVA进程的标示包括:部门代号、业务系统代号、业务系统版本和实例号;
所述归档文件的标记包括:部门代号、业务系统代号、业务系统版本、实例号和时间信息。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据用户指令,从所述第一分析文件中选取用户指令的类所对应的信息,生成第二分析文件;
或者,从所述第一分析文件中选取仅在第一个归档文件中存在的类所对应的信息,生成第三分析文件;
或者,从所述第一分析文件中选取仅在第二个归档文件中存在的类所对应的信息,生成第四分析文件。
CN201410799944.XA 2014-12-19 2014-12-19 一种jvm的内存对象数量统计系统及方法 Active CN104407966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410799944.XA CN104407966B (zh) 2014-12-19 2014-12-19 一种jvm的内存对象数量统计系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410799944.XA CN104407966B (zh) 2014-12-19 2014-12-19 一种jvm的内存对象数量统计系统及方法

Publications (2)

Publication Number Publication Date
CN104407966A CN104407966A (zh) 2015-03-11
CN104407966B true CN104407966B (zh) 2017-05-24

Family

ID=52645599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410799944.XA Active CN104407966B (zh) 2014-12-19 2014-12-19 一种jvm的内存对象数量统计系统及方法

Country Status (1)

Country Link
CN (1) CN104407966B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239377B (zh) * 2016-03-29 2021-02-26 阿里巴巴集团控股有限公司 获取Java虚拟机运行状态的方法和装置
CN107171847B (zh) * 2017-05-27 2019-10-25 武汉虹信通信技术有限责任公司 基于ems的自动化管理海量设备方法
CN109039795B (zh) * 2017-06-12 2021-10-08 贵州白山云科技股份有限公司 一种云服务器资源监控方法和系统
CN107861797A (zh) * 2017-12-04 2018-03-30 北京奇艺世纪科技有限公司 一种基于jvm的预警方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521148A (zh) * 2011-11-18 2012-06-27 深圳中兴网信科技有限公司 一种基于内存的日志信息防溢出方法
CN103440161A (zh) * 2013-08-15 2013-12-11 北京京东尚科信息技术有限公司 一种Java虚拟机内部对象监控方法、装置和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552153B2 (en) * 2004-12-28 2009-06-23 Sap Ag Virtual machine monitoring using shared memory
WO2014064535A2 (en) * 2012-10-16 2014-05-01 AppToU Technologies Ltd. Systems and methods for object-based interaction with cloud-based applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521148A (zh) * 2011-11-18 2012-06-27 深圳中兴网信科技有限公司 一种基于内存的日志信息防溢出方法
CN103440161A (zh) * 2013-08-15 2013-12-11 北京京东尚科信息技术有限公司 一种Java虚拟机内部对象监控方法、装置和系统

Also Published As

Publication number Publication date
CN104407966A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
CN104503891B (zh) 对jvm线程进行在线监控的方法和装置
CN104407966B (zh) 一种jvm的内存对象数量统计系统及方法
CN104364781B (zh) 用于计算类别比例的系统和方法
CN108733532B (zh) 大数据平台的健康度管控方法、装置、介质及电子设备
CN108764674A (zh) 一种基于规则引擎的风险控制方法和装置
CN105302697B (zh) 一种密集数据模型数据库的运行状态监控方法及系统
CN103678446B (zh) 基于数据视图和数据库表的改进的模式映射
EP2685383A1 (en) Method and apparatus for unassisted data collection, extraction and report generation and distribution
CN109920506A (zh) 医疗统计报告生成方法、装置、设备及存储介质
Horridge et al. Extracting justifications from bioportal ontologies
CN104679884B (zh) 数据库的数据分析方法、装置以及系统
CN103425692B (zh) 数据导出方法和装置
CN112732567A (zh) 基于ip的mock数据测试方法、装置、电子设备及存储介质
CN112036166A (zh) 一种数据标注方法、装置、存储介质及计算机设备
CN112306835A (zh) 用户数据监控分析方法、装置、设备及介质
CN110109978A (zh) 基于指标的数据分析方法、装置、服务器及可读存储介质
CN105117489B (zh) 一种数据库管理方法、装置及电子设备
CN114612194A (zh) 产品推荐方法、装置、电子设备及存储介质
CN206021244U (zh) 一种分布式计算机集群下的数据采集系统
CN106201857A (zh) 测试用例的选取方法及装置
CN105308579B (zh) 系列数据并行分析基础设施及其并行分散处理方法
CN106326400A (zh) 基于多维数据集的数据处理系统
CN115757075A (zh) 任务异常检测方法、装置、计算机设备及存储介质
CN107743085A (zh) 邀请码管理方法及邀请码管理装置
CN108737135A (zh) 数据处理方法及数据处理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180503

Address after: 223800 room 416-429, Hengtong mansion, 19 Hongze East Road, Suyu District, Suqian, Jiangsu.

Patentee after: Suqian Jingdong Heng Rui Enterprise Management Co., Ltd.

Address before: 100080 Haidian District, Beijing, 65 Xing Shu Kou Road, 11C, west section of the western part of the building, 1-4 stories West 1-4 story.

Co-patentee before: Beijing Jingdong Century Commerce Co., Ltd.

Patentee before: Beijing Jingdong Shangke Information Technology Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180710

Address after: 401121 6, Fortune 2, A building, Fortune Plaza, 15, fortune Avenue, Yubei District, Chongqing

Patentee after: Chongqing Tianji cloud Clothing Technology Co., Ltd.

Address before: 223800 room 416-429, Hengtong mansion, 19 Hongze East Road, Suyu District, Suqian, Jiangsu.

Patentee before: Suqian Jingdong Heng Rui Enterprise Management Co., Ltd.

TR01 Transfer of patent right