CN105227395B - 一种分布式jvm性能分析的方法、装置及系统 - Google Patents

一种分布式jvm性能分析的方法、装置及系统 Download PDF

Info

Publication number
CN105227395B
CN105227395B CN201510542157.1A CN201510542157A CN105227395B CN 105227395 B CN105227395 B CN 105227395B CN 201510542157 A CN201510542157 A CN 201510542157A CN 105227395 B CN105227395 B CN 105227395B
Authority
CN
China
Prior art keywords
jvm
information
client
user
user application
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
CN201510542157.1A
Other languages
English (en)
Other versions
CN105227395A (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201510542157.1A priority Critical patent/CN105227395B/zh
Publication of CN105227395A publication Critical patent/CN105227395A/zh
Application granted granted Critical
Publication of CN105227395B publication Critical patent/CN105227395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例公开了一种分布式JVM性能分析的方法、装置及系统。终端设备侧有JVM客户端和JVM信息收集客户端,在JVM进程运行用户应用程序前,启动JVM信息收集客户端,其定时收集JVM信息,将JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端的第二标识信息,发送给服务器侧;在服务器侧的JVM信息收集服务器,接收所述的JVM信息、第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的JVM信息分为一类,将用户应用程序的JVM信息输出给用户。应用本发明实施例,能够实现对分布到不同JVM进程的同一个应用程序的不同部分进行统一的性能分析。

Description

一种分布式JVM性能分析的方法、装置及系统
技术领域
本发明涉及JVM性能分析领域,特别涉及一种分布式JVM性能分析的方法、装置及系统。
背景技术
传统的JVM性能分析工具是单机版的,都只针对一个应用程序由一个JVM进程进行性能分析,其中大部分工具还支持JVM进程的远程性能分析。单机版的JVM性能分析工具,由一个JVM进程运行一个应用程序,获得该应用程序运行过程中所有函数的运行参数(也就是JVM信息)输出给用户,供用户对该应用程序进行性能分析。
但是,在分布式环境中,如图1所示,由服务器侧一个JVM系统服务器110与多个设置在不同终端设备120中的不同JVM客户端121连接。一个应用程序会被分成多个部分,每个部分分别被JVM系统服务器动态的分配到不同的JVM客户端中,由不同的JVM进程运行。这种情况下,传统的JVM性能分析工具无法对分布到不同JVM进程的同一个应用程序的不同部分进行统一的性能分析。
发明内容
本发明实施例的目的在于提供一种分布式JVM性能分析的方法、装置及系统,以实现对分布到不同JVM进程的同一个应用程序的不同部分进行统一的性能分析。
为达到上述目的,本发明实施例公开了一种分布式JVM性能分析的方法,其应用于终端设备侧,所述终端设备侧的每个终端设备中设置有JVM客户端和JVM信息收集客户端;包括如下步骤:
所述JVM客户端启动JVM进程,并在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端;
所述JVM信息收集客户端根据所述JVM客户端发送的启动指令启动运行;
所述JVM信息收集客户端按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;所述JVM信息包含所述用户应用程序的运行参数;
所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和所述JVM信息收集客户端自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
较佳的,所述JVM客户端由服务器侧的JVM系统服务器启动。
较佳的,所述JVM客户端在启动JVM进程时,根据预设的第一参数,在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端。
较佳的,所述的第一参数为-javaagent参数。
较佳的,该方法还包括:所述JVM信息收集客户端启动时,向所述预先设置在服务器侧的JVM信息收集服务器发送包含所述第二标识信息的注册消息,以使所述JVM信息收集服务器记录所述第二标识信息,并输出给用户。
较佳的,所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧,包括:
所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,按预设的第二定时时长发送给服务器侧;或,
按照所述预先设置在服务器侧的JVM信息收集服务器发送的指令,将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧。
为达到上述目的,本发明实施例还公开了一种分布式JVM性能分析的方法,其应用于服务器侧预先设置的JVM信息收集服务器中;包括如下步骤:
接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;所述JVM信息包含所述用户应用程序的运行参数,是由所述JVM信息收集客户端按预设的第一定时时长,定时收集设置在终端设备侧的JVM客户端在运行用户应用程序时生成的;
根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类;
按照用户选择,将用户应用程序的JVM信息输出给用户。
较佳的,在所述接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息,之前,还包括:
接收所述JVM信息收集客户端启动时,发送的包含所述第二标识信息的注册消息,记录所述第二标识信息,输出给用户。
较佳的,所述接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息,包括:
接收预设在终端设备侧的JVM信息收集客户端,按预设的第二定时时长发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;或,
向所述JVM信息收集客户端发送指令,以接收所述JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息。
较佳的,所述按照用户选择,将用户应用程序的JVM信息输出给用户,包括:
若用户选择一个用户应用程序,则将不同JVM信息收集客户端发送的该用户应用程序的所有JVM信息,输出给用户;
若用户选择一个JVM信息收集客户端,则将该JVM信息收集客户端发送的所有JVM信息,输出给用户。
较佳的,所述将用户应用程序的JVM信息输出给用户,为:将用户应用程序的JVM信息,以交互式图片格式输出给用户。
为达到上述目的,本发明实施例还公开了一种分布式JVM性能分析的装置,其应用于终端设备侧的每个终端设备,包括JVM客户端和JVM信息收集客户端;
所述JVM客户端,用于启动JVM进程,并在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端;
所述JVM信息收集客户端,用于根据所述JVM客户端发送的启动指令启动运行;并按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;所述JVM信息包含所述用户应用程序的运行参数;且将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
较佳的,所述JVM信息收集客户端,包含:
启动单元,用于根据所述JVM客户端发送的启动指令启动运行;
收集单元,用于按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;
发送单元,用于将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
较佳的,所述JVM信息收集客户端还包括注册单元;
所述注册单元,用于所述JVM信息收集客户端启动时,向所述预先设置在服务器侧的JVM信息收集服务器发送包含所述第二标识信息的注册消息,以使所述JVM信息收集服务器记录所述第二标识信息,并输出给用户。
较佳的,所述的发送单元为第一发送单元或第二发送单元;
所述第一发送单元,用于将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,按预设的第二定时时长发送给服务器侧;
所述第二发送单元,用于按照所述预先设置在服务器侧的JVM信息收集服务器发送的指令,将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧。
为达到上述目的,本发明实施例还公开了一种分布式JVM性能分析的装置,其应用于服务器侧预先设置的JVM信息收集服务器中;包括:
接收单元,用于接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;所述JVM信息包含所述用户应用程序的运行参数,是由所述JVM信息收集客户端按预设的第一定时时长,定时收集设置在终端设备侧的JVM客户端在运行用户应用程序时生成的;
JVM信息分类单元,用于根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类;
输出单元,用于按照用户选择,将用户应用程序的JVM信息输出给用户。
较佳的,所述的接收单元,进一步接收所述JVM信息收集客户端启动时,发送的包含所述第二标识信息的注册消息,记录所述第二标识信息;
所述的输出单元,进一步将记录的所述第二标识信息输出给用户。
较佳的,所述接收单元为第一接收单元或第二接收单元;
所述第一接收单元,用于接收预设在终端设备侧的JVM信息收集客户端按预设的第二定时时长发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;
所述的第二接收单元,用于向所述JVM信息收集客户端发送指令,以接收所述JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息。
较佳的,所述输出单元,具体用于:若用户选择一个应用程序,则将不同JVM信息收集客户端发送的该应用程序的所有JVM信息,输出给用户;若用户选择一个JVM信息收集客户端,则将该JVM信息收集客户端发送的所有JVM信息,输出给用户。
较佳的,所述的输出单元,将用户应用程序的JVM信息,以交互式图片格式输出给用户。
为达到上述目的,本发明实施例还公开了一种分布式JVM系统,包括终端设备侧和服务器侧:所述服务器侧包括JVM系统服务器和JVM信息收集服务器;
所述终端设备侧中的每个终端设备中包括:JVM客户端和JVM信息收集客户端;
所述的JVM信息收集服务器包括:接收单元,JVM信息分类单元和输出单元。
由上述的技术方案可见,本发明实施例提供了一种分布式JVM性能分析的方法、装置及系统,在终端设备侧设置有JVM客户端和JVM信息收集客户端,JVM客户端启动JVM进程,并在JVM进程运行用户应用程序前,启动JVM信息收集客户端,JVM信息收集客户端按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息,JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧;在服务器侧预先设置的JVM信息收集服务器,接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送JVM信息的JVM信息收集客户端自身的第二标识信息,根据第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,按照用户选择,将用户应用程序的JVM信息输出给用户。
可见,本发明实施例中,能够实现对分布到不同JVM进程的同一个应用程序的不同部分进行统一的性能分析,从而供用户发现分布式JVM程序的BUG,提高程序性能,减少使用资源。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术分布式JVM系统架构示意图;
图2为本发明实施例提供的分布式JVM系统架构示意图;
图3为本发明实施例提供的一种分布式JVM性能分析的方法应用于终端设备侧的流程示意图;
图4为本发明实施例提供的一种分布式JVM性能分析的方法应用于服务器侧的流程示意图;
图5为本发明实施例提供的一种分布式JVM信息的交互式图片输出格式示意图;
图6为本发明实施例提供的一种分布式JVM性能分析的装置应用于终端设备侧的结构示意图;
图7为本发明实施例提供的一种分布式JVM性能分析的装置应用于服务器侧的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的目的在于提供一种分布式JVM性能分析的方法、装置及系统。该方案中,在终端设备侧设置有JVM客户端和JVM信息收集客户端,JVM客户端启动JVM进程,并在JVM进程运行用户应用程序前,启动JVM信息收集客户端,JVM信息收集客户端按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息,JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧;
在服务器侧预先设置的JVM信息收集服务器,接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送JVM信息的JVM信息收集客户端自身的第二标识信息,根据第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,按照用户选择,将用户应用程序的JVM信息输出给用户。
下面通过具体实施例,对本发明进行详细说明。
参见图2,图2为本发明实施例提供的分布式JVM系统架构示意图;
该系统包括:终端设备侧和服务器侧,所述服务器侧包括JVM系统服务器210和JVM信息收集服务器230;所述终端设备侧中的每个终端设备220中包括:JVM客户端221和JVM信息收集客户端222。
本发明实施例提供的分布式JVM性能分析方法及装置应用于图2所示的分布式JVM系统中,以下分别进行详细说明。
参见图3,图3为本发明实施例提供的一种分布式JVM性能分析的方法应用于终端设备侧的流程示意图,包括如下步骤:
S301:所述JVM客户端启动JVM进程,并在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端;
其中,所述JVM客户端由服务器侧的JVM系统服务器启动。
S302:所述JVM信息收集客户端根据所述JVM客户端发送的启动指令启动运行;
具体的,所述JVM客户端在启动JVM进程时,可以根据预设的第一参数,在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端。
所述的第一参数为-javaagent参数。-javaagent参数JVM客户端现有的一个可配置参数。
假设该用户应用程序为一种Yarn应用程序,Yarn应用程序的各个部分被分配到不同的JVM客户端上。分析该应用程序前,首先由JVM系统服务器启动JVM客户端,客户端根据预设的-javaagent参数启动JVM信息收集客户端,JVM信息收集客户端根据JVM客户端发送的启动指令启动运行,最后运行用户应用程序。
S303:所述JVM信息收集客户端按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;
所述JVM信息包含所述用户应用程序的运行参数。运行参数包括很多,例如:运行时间、存储空间等等。
假设第一定时时长为1ms,则JVM信息收集客户端每1ms收集1次JVM客户端在运行用户应用程序时生成的JVM信息。JVM信息的收集可以通过JVM信息收集客户端中的性能分析客户端线程来实现。
S304:所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和所述JVM信息收集客户端自身的第二标识信息,发送给服务器侧。
这样,预先设置在服务器侧的JVM信息收集服务器就能够接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
实际应用中,该方法还包括:所述JVM信息收集客户端启动时,向所述预先设置在服务器侧的JVM信息收集服务器发送包含所述第二标识信息的注册消息,以使所述JVM信息收集服务器记录所述第二标识信息,并输出给用户。这样,JVM信息收集服务器就能够获知,将会收到哪些JVM信息收集客户端发送的信息了。
另外,所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧可以有2种方式,包括:
第1种:JVM信息收集客户端主动定时上报。所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,按预设的第二定时时长发送给服务器侧;
第2种:按指令上报。所述JVM信息收集客户端按照所述预先设置在服务器侧的JVM信息收集服务器发送的指令,将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧。
假设第二定时时长为10s,再根据S303步骤中的第一定时时长,则为JVM信息收集客户端每1ms收集1次JVM客户端在运行用户应用程序时生成的JVM信息;每10s将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息发送给服务器侧1次。JVM信息收集客户端与服务器侧的通信可以通过Socket通信方式完成。Socket通信方式是目前网络中计算机进行通信的一种常用方法,属于现有技术,这里不再赘述。
参见图4,图4为本发明实施例提供的一种分布式JVM性能分析的方法应用于服务器侧的流程示意图;
该服务器侧预先设置有JVM信息收集服务器。由所述JVM信息收集服务器执行如下步骤:
S401:接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息。
其中,所述JVM信息包含所述用户应用程序的运行参数,是由所述JVM信息收集客户端按预设的第一定时时长,定时收集设置在终端设备侧的JVM客户端在运行用户应用程序时生成的。
实际应用中,在所述接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息之前,还可以包括:
接收所述JVM信息收集客户端启动时,发送的包含所述第二标识信息的注册消息,记录所述第二标识信息,输出给用户。这样,JVM信息收集服务器就能够获知,将会收到哪些JVM信息收集客户端发送的信息了。
另外,与JVM信息收集客户端的流程对应,所述接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息,也可以有2种方式,包括:
第1种:接收预设在终端设备侧的JVM信息收集客户端,按预设的第二定时时长发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;或,
第2种:向所述JVM信息收集客户端发送指令,以接收所述JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息。
假设,根据给出的第二定时时长,JVM信息收集服务器可以每10s接收到1次JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息。
或者JVM信息收集服务器主动发送指令,接收JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息。
JVM信息收集服务器可以通过Socket通信方式完成指令的发送和信息的接收。
S402:根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类。
发送给JVM信息收集服务器的JVM信息都携带有其第一标识信息和第二标识信息。假设,根据S301步骤中运行的Yarn应用程序a和b(第一标识),假设其分别分成了3个部分,被动态的分配到3个客户端A、B、C(第二标识)中,那么3个客户端返回的JVM信息中就会携带这3个客户端的第一标识信息和第二标识信息,根据这两种标识对JVM信息分类。
S403:按照用户选择,将用户应用程序的JVM信息输出给用户。
实际应用中,所述按照用户选择,将用户应用程序的JVM信息输出给用户,包括:
若用户选择一个用户应用程序,则将不同JVM信息收集客户端发送的该用户应用程序的所有JVM信息,输出给用户;
若用户选择一个JVM信息收集客户端,则将该JVM信息收集客户端发送的所有JVM信息,输出给用户。
所述将用户应用程序的JVM信息输出给用户,为:将用户应用程序的JVM信息,以交互式图片格式输出给用户。
假设,根据S403步骤,如果用户选择第一标识a,则输出Yarn应用程序a的所有JVM信息;如果用户选择第二标识A,则输出客户端A的全部JVM信息。
参见图5,图5为本发明实施例提供的一种分布式JVM信息的交互式图片输出格式示意图,该图可称为火焰图,是一种基于svg的交互式图片格式。图中横坐标表示每个函数调用的时间,纵坐标表示函数调用的栈。图中可以清晰的看出各个函数间的相互调用关系及调用函数所用的时间。其他的运行参数,可以采用同样的方式进行表示。
最后输出的结果可以通过网页的形式展示给用户,供用户进行性能分析,从而发现分布式JVM程序的BUG,提高程序性能,减少使用资源。
参见图6,图6为本发明实施例提供的一种分布式JVM性能分析的装置应用于终端设备侧的结构示意图,包括:JVM客户端221和JVM信息收集客户端222。
其中,所述JVM客户端221,用于启动JVM进程,并在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端222。
所述JVM信息收集客户端222,用于根据所述JVM客户端221发送的启动指令启动运行;并按预设的第一定时时长,定时收集所述JVM客户端221在运行用户应用程序时生成的JVM信息;所述JVM信息包含所述用户应用程序的运行参数;且将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端222自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器230接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端222发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
在实际应用中,JVM信息收集客户端222包括:启动单元、收集单元和发送单元。
启动单元,用于根据所述JVM客户端221发送的启动指令启动运行。
收集单元,用于按预设的第一定时时长,定时收集所述JVM客户端221在运行用户应用程序时生成的JVM信息。
发送单元,用于将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端222自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器230接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端222发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
如图6所示,本实施例中还可以包括注册单元,用于所述JVM信息收集客户端222启动时,向所述预先设置在服务器侧的JVM信息收集服务器230发送包含所述第二标识信息的注册消息,以使所述JVM信息收集服务器记录所述第二标识信息,并输出给用户。
本实施例中,所述发送单元包括第一发送单元或第二发送单元。
所述第一发送单元,用于将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端222自身的第二标识信息,按预设的第二定时时长发送给服务器侧。
所述第二发送单元,用于按照所述预先设置在服务器侧的JVM信息收集服务器230发送的指令,将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端222自身的第二标识信息,发送给服务器侧。
参见图7,图7为本发明实施例提供的一种分布式JVM性能分析的装置应用于服务器侧的结构示意图,服务器侧预先设置有JVM信息收集服务器230,该装置设置于所述JVM信息收集服务器230中,包括:接收单元2301、JVM信息分类单元2302、输出单元2303。
其中,接收单元2301,用于接收预设在终端设备侧的JVM信息收集客户端222发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端222自身的第二标识信息;所述JVM信息包含所述用户应用程序的运行参数,是由所述JVM信息收集客户端222按预设的第一定时时长,定时收集设置在终端设备侧的JVM客户端在运行用户应用程序时生成的。
接收单元2301,进一步接收所述JVM信息收集客户端222启动时,发送的包含所述第二标识信息的注册消息,记录所述第二标识信息。
本实施例中,接收单元2301可以包括第一接收单元或第二接收单元。
第一接收单元,用于接收预设在终端设备侧的JVM信息收集客户端222按预设的第二定时时长发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端222自身的第二标识信息;
第二接收单元,用于向所述JVM信息收集客户端222发送指令,以接收所述JVM信息收集客户端222发送的JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端222自身的第二标识信息。
JVM信息分类单元2302,用于根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端222发送的同一用户应用程序的所有JVM信息分为一类。
输出单元2303,用于按照用户选择,将用户应用程序的JVM信息输出给用户。
本实施例中,输出单元2303,在接收单元2301记录所述第二标识信息的情况下,可以进一步将记录的所述第二标识信息输出给用户。
本实施例中,输出单元2303,具体用于:若用户选择一个应用程序,则将不同JVM收集客户端222发送的该应用程序的所有JVM信息,输出给用户;若用户选择一个JVM信息收集客户端222,则将该JVM信息收集客户端222发送的所有JVM信息,输出给用户。
本实施例中,输出单元2303,可以将用户应用程序的JVM信息,以交互式图片格式输出给用户。
另外,本发明实施例还提供了一种分布式JVM系统,包括终端设备侧和服务器侧,所述服务器侧包括JVM系统服务器和JVM信息收集服务器;
所述终端设备侧中的每个终端设备中包括:图6所示的分布式JVM性能分析装置;所述的JVM信息收集服务器包括:图7所示的分布式JVM性能分析装置。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (21)

1.一种分布式JVM性能分析的方法,其特征在于,应用于终端设备侧,所述终端设备侧的每个终端设备中设置有JVM客户端和JVM信息收集客户端;包括如下步骤:
所述JVM客户端启动JVM进程,并在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端;
所述JVM信息收集客户端根据所述JVM客户端发送的启动指令启动运行;
所述JVM信息收集客户端按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;所述JVM信息包含所述用户应用程序的运行参数;
所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和所述JVM信息收集客户端自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
2.根据权利要求1所述的方法,其特征在于,所述JVM客户端由服务器侧的JVM系统服务器启动。
3.根据权利要求1所述的方法,其特征在于,所述JVM客户端在启动JVM进程时,根据预设的第一参数,在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端。
4.根据权利要求3所述的方法,其特征在于,所述的第一参数为-javaagent参数。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:所述JVM信息收集客户端启动时,向所述预先设置在服务器侧的JVM信息收集服务器发送包含所述第二标识信息的注册消息,以使所述JVM信息收集服务器记录所述第二标识信息,并输出给用户。
6.根据权利要求1所述的方法,其特征在于,所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧,包括:
所述JVM信息收集客户端将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,按预设的第二定时时长发送给服务器侧;或,
按照所述预先设置在服务器侧的JVM信息收集服务器发送的指令,将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧。
7.一种分布式JVM性能分析的方法,其特征在于,应用于服务器侧预先设置的JVM信息收集服务器中;包括如下步骤:
接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;所述JVM信息包含所述用户应用程序的运行参数,是由所述JVM信息收集客户端按预设的第一定时时长,定时收集设置在终端设备侧的JVM客户端在运行用户应用程序时生成的;
根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类;
按照用户选择,将用户应用程序的JVM信息输出给用户。
8.根据权利要求7所述的方法,其特征在于,在所述接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息,之前,还包括:
接收所述JVM信息收集客户端启动时,发送的包含所述第二标识信息的注册消息,记录所述第二标识信息,输出给用户。
9.根据权利要求8所述的方法,其特征在于,所述接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息,包括:
接收预设在终端设备侧的JVM信息收集客户端,按预设的第二定时时长发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;或,
向所述JVM信息收集客户端发送指令,以接收所述JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息。
10.根据权利要求7所述的方法,其特征在于,所述按照用户选择,将用户应用程序的JVM信息输出给用户,包括:
若用户选择一个用户应用程序,则将不同JVM信息收集客户端发送的该用户应用程序的所有JVM信息,输出给用户;
若用户选择一个JVM信息收集客户端,则将该JVM信息收集客户端发送的所有JVM信息,输出给用户。
11.根据权利要求7-10任一项所述的方法,其特征在于,所述将用户应用程序的JVM信息输出给用户,为:将用户应用程序的JVM信息,以交互式图片格式输出给用户。
12.一种分布式JVM性能分析的装置,其特征在于,应用于终端设备侧的每个终端设备,包括JVM客户端和JVM信息收集客户端;
所述JVM客户端,用于启动JVM进程,并在JVM进程运行用户应用程序前,启动所述JVM信息收集客户端;
所述JVM信息收集客户端,用于根据所述JVM客户端发送的启动指令启动运行;并按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;所述JVM信息包含所述用户应用程序的运行参数;且将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
13.根据权利要求12所述的装置,其特征在于,所述JVM信息收集客户端,包含:
启动单元,用于根据所述JVM客户端发送的启动指令启动运行;
收集单元,用于按预设的第一定时时长,定时收集所述JVM客户端在运行用户应用程序时生成的JVM信息;
发送单元,用于将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧;以使预先设置在服务器侧的JVM信息收集服务器接收所述JVM信息、第一标识信息和第二标识信息,并根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类,并按照用户选择,将用户应用程序的JVM信息输出给用户。
14.根据权利要求13所述的装置,其特征在于,所述JVM信息收集客户端还包括注册单元;
所述注册单元,用于所述JVM信息收集客户端启动时,向所述预先设置在服务器侧的JVM信息收集服务器发送包含所述第二标识信息的注册消息,以使所述JVM信息收集服务器记录所述第二标识信息,并输出给用户。
15.根据权利要求13所述的装置,其特征在于,所述的发送单元为第一发送单元或第二发送单元;
所述第一发送单元,用于将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,按预设的第二定时时长发送给服务器侧;
所述第二发送单元,用于按照所述预先设置在服务器侧的JVM信息收集服务器发送的指令,将收集到的JVM信息、所述用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息,发送给服务器侧。
16.一种分布式JVM性能分析的装置,其特征在于,应用于服务器侧预先设置的JVM信息收集服务器中;包括:
接收单元,用于接收预设在终端设备侧的JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;所述JVM信息包含所述用户应用程序的运行参数,是由所述JVM信息收集客户端按预设的第一定时时长,定时收集设置在终端设备侧的JVM客户端在运行用户应用程序时生成的;
JVM信息分类单元,用于根据所述第一标识信息和第二标识信息,对接收的JVM信息进行分类,将不同JVM信息收集客户端发送的同一用户应用程序的所有JVM信息分为一类;
输出单元,用于按照用户选择,将用户应用程序的JVM信息输出给用户。
17.根据权利要求16所述的装置,其特征在于,所述的接收单元,进一步接收所述JVM信息收集客户端启动时,发送的包含所述第二标识信息的注册消息,记录所述第二标识信息;
所述的输出单元,进一步将记录的所述第二标识信息输出给用户。
18.根据权利要求16所述的装置,其特征在于,所述接收单元为第一接收单元或第二接收单元;
所述第一接收单元,用于接收预设在终端设备侧的JVM信息收集客户端按预设的第二定时时长发送的JVM信息、用户应用程序的第一标识信息和发送所述JVM信息的JVM信息收集客户端自身的第二标识信息;
所述的第二接收单元,用于向所述JVM信息收集客户端发送指令,以接收所述JVM信息收集客户端发送的JVM信息、用户应用程序的第一标识信息和JVM信息收集客户端自身的第二标识信息。
19.根据权利要求16所述的装置,其特征在于,所述输出单元,具体用于:若用户选择一个应用程序,则将不同JVM信息收集客户端发送的该应用程序的所有JVM信息,输出给用户;若用户选择一个JVM信息收集客户端,则将该JVM信息收集客户端发送的所有JVM信息,输出给用户。
20.根据权利要求16-19任一项所述的装置,其特征在于,所述的输出单元,将用户应用程序的JVM信息,以交互式图片格式输出给用户。
21.一种分布式JVM系统,包括终端设备侧和服务器侧,其特征在于:所述服务器侧包括JVM系统服务器和JVM信息收集服务器;
所述终端设备侧中的每个终端设备中包括:权利要求12所述的分布式JVM性能分析装置;
所述的JVM信息收集服务器包括:权利要求16所述的分布式JVM性能分析装置。
CN201510542157.1A 2015-08-28 2015-08-28 一种分布式jvm性能分析的方法、装置及系统 Active CN105227395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510542157.1A CN105227395B (zh) 2015-08-28 2015-08-28 一种分布式jvm性能分析的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510542157.1A CN105227395B (zh) 2015-08-28 2015-08-28 一种分布式jvm性能分析的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN105227395A CN105227395A (zh) 2016-01-06
CN105227395B true CN105227395B (zh) 2018-09-28

Family

ID=54996105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510542157.1A Active CN105227395B (zh) 2015-08-28 2015-08-28 一种分布式jvm性能分析的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105227395B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726078B (zh) * 2018-12-28 2022-12-06 广东亿迅科技有限公司 一种无侵入jvm线程堆栈采集的方法及装置
CN114153823B (zh) * 2022-02-09 2022-05-17 北京华品博睿网络技术有限公司 一种分布式计算作业日志数据处理方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411533A (zh) * 2011-08-08 2012-04-11 浪潮电子信息产业股份有限公司 一种集群存储系统的日志管理优化方法
CN103577301A (zh) * 2012-07-20 2014-02-12 腾讯科技(深圳)有限公司 一种显示进程信息的方法和终端
CN103684898A (zh) * 2012-09-14 2014-03-26 阿里巴巴集团控股有限公司 一种监测用户请求在分布式系统中运行的方法及装置
CN104270268A (zh) * 2014-09-28 2015-01-07 曙光信息产业股份有限公司 一种分布式系统网络性能分析及故障诊断方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9332083B2 (en) * 2012-11-21 2016-05-03 International Business Machines Corporation High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411533A (zh) * 2011-08-08 2012-04-11 浪潮电子信息产业股份有限公司 一种集群存储系统的日志管理优化方法
CN103577301A (zh) * 2012-07-20 2014-02-12 腾讯科技(深圳)有限公司 一种显示进程信息的方法和终端
CN103684898A (zh) * 2012-09-14 2014-03-26 阿里巴巴集团控股有限公司 一种监测用户请求在分布式系统中运行的方法及装置
CN104270268A (zh) * 2014-09-28 2015-01-07 曙光信息产业股份有限公司 一种分布式系统网络性能分析及故障诊断方法

Also Published As

Publication number Publication date
CN105227395A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN103501347B (zh) 资源分配方法及装置
CN107623611A (zh) 一种云平台虚拟机的流量监控系统
CN105868040A (zh) 日志采集方法及采集终端
CN103347084B (zh) 一种多账号统一关联系统及关联方法
CN105227395B (zh) 一种分布式jvm性能分析的方法、装置及系统
CN108900374A (zh) 一种应用于dpi设备的数据处理方法和装置
CN108737212B (zh) 一种传输协议符合性检测装置、系统及方法
CN107071711A (zh) 多媒体共享方法、装置及蓝牙设备
CN111428454A (zh) 可配置化报告生成方法、装置、设备及可读存储介质
CN103581238B (zh) 泛在网的统一业务平台及业务实现方法
CN110011860A (zh) 基于网络流量分析的安卓应用识别方法
CN108390795B (zh) 家电设备及其监控方法、智慧家居系统及可读存储介质
CN103327129B (zh) 针对多wan口网关设备的域名解析方法
CN111988756A (zh) 一种多通道级联无线数据采集系统及方法
CN107743081B (zh) 家电设备及其控制方法、系统及计算机可读存储介质
CN109614518A (zh) 一种网络流量数据存储、还原方法及系统
CN108965011A (zh) 一种基于智能网关深度报文分析系统和分析方法
CN105207834A (zh) 一种报文采集方法、系统、网络设备及网管中心
CN111147817B (zh) 视频处理方法、装置、电子设备及存储介质
CN112269670B (zh) 数据入库方法、装置、系统及存储介质
CN104660453A (zh) 服务端端口号协商方法及系统
CN109951355B (zh) 一种用于分布式系统白盒关联路径追踪的方法
CN108924145B (zh) 网络传输方法、装置及设备
CN107135235A (zh) 一种多级跳转后的ssh连接源追踪方法及装置
CN115567959A (zh) 一种路由器EasyMesh组网可视化评估系统及方法

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