发明内容
本发明的目的在于提供一种跨平台异构系统的性能监测方法及系统,其能够可以实现对跨平台不同操作系统的终端进行系统性能数据收集分析。
为实现上述目的,本发明提供了一种跨平台异构系统的性能监测方法,其包括:接收终端发送的连接请求,建立与所述终端的连接,并且为所述终端分配唯一的UUID信息,存储所述终端的socket结构体与所述终端的设备记录唯一对象之间的对应关系,其中,所述终端的设备记录唯一对象包括:所述终端的UUID信息;接收所述终端发送的监测请求,解析并识别出所述监测请求中包含的操作系统信息以及请求监测的项目信息;根据所述操作系统信息以及请求监测的项目信息获取相应的配置文件,将所述配置文件发送给所述终端;接收所述终端返回的跟踪文件,对所述终端所请求监测的项目进行监测。
在本发明的一实施方式中,根据所述操作系统信息以及请求监测的项目信息获取相应的配置文件包括:根据所述操作系统信息以及请求监测的项目信息从云端服务器获取相应的配置文件。
在本发明的一实施方式中,所述请求监测的项目信息包括:请求监测的数据源;所述配置文件包括:监测时间、缓冲区的个数及容量、监测的数据源。
在本发明的一实施方式中,所述数据源包括CPU上的线程调度事件、CPU的频率和状态记录、跟踪系统调用事件、内存的使用情况记录、本机堆栈的分配和释放、Java虚拟机堆栈的分配和释放、指定Android日志数据源中的一个或多个。
在本发明的一实施方式中,所述终端的设备记录唯一对象还包括所述终端的配置文件信息以及状态信息,所述跨平台异构系统的性能监测方法还包括:在建立与所述终端的连接之后,将所述终端的状态信息更新为已连接状态;在接收到所述终端发送的配置完成信息之后,将所述终端的状态信息更新为已配置状态;在检测到所述终端启动监测数据的收集之后,将所述终端的状态信息更新为数据收集状态;在接收到所述终端发送的监测数据后,将所述终端的状态信息更新为分析状态。
在本发明的一实施方式中,所述接收所述终端返回的跟踪文件,对所述终端所请求监测的项目进行监测包括:采用支持可视化界面展示的分析工具对所述终端所请求监测的项目进行分析及监测。
基于同样的发明构思,一实施方式中还提供了一种跨平台异构系统的性能监测方法,其包括:在建立与服务器的连接请求之后,向服务器发送监测请求,其中,所述监测请求中包括操作系统信息以及请求监测的项目信息;接收服务器发送的与所述请求监测的项目相匹配的配置文件;根据所述配置文件进行配置,配置完成后向服务器发送跟踪文件,其中,所述跟踪文件用于实现服务器对所述终端所请求监测的项目的监测。
在本发明的一实施方式中,所述根据所述配置文件进行配置,配置完成后向服务器发送跟踪文件包括:启动器将所述配置文件的文件描述符传递给配置调度服务模块;所述配置调度服务模块根据所述文件描述符读取所述配置文件,确定监测时间、缓冲区的个数及容量、监测的项目;信息追踪服务模块对所述配置文件中监测的项目进行信息收集;所述配置调度服务模块将收集的信息存储在缓冲区;所述启动器读取所述缓冲区中的信息并转储到跟踪文件中,并将所述跟踪文件发送到服务器。
基于同样的发明构思,本发明还提供了一种跨平台异构系统的性能监测系统,该系统中的连接模块用于接收终端发送的连接请求,建立与所述终端的连接;控制模块用于为所述终端分配唯一的UUID信息,并且存储所述终端的socket结构体与所述终端的设备记录唯一对象之间的对应关系,其中,所述终端的设备记录唯一对象包括:所述终端的UUID信息;监测请求接收模块用于接收所述终端发送的监测请求,解析并识别出所述监测请求中包含的操作系统信息以及请求监测的项目信息;配置文件获取模块用于根据所述操作系统信息以及请求监测的项目信息获取相应的配置文件,将所述配置文件发送给所述终端;监测模块用于接收所述终端返回的跟踪文件,对所述终端所请求监测的项目进行监测。
基于同样的发明构思,本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施方式所述的跨平台异构系统的性能监测方法的步骤。
与现有技术相比,根据本发明的跨平台异构系统的性能监测方法及系统,可以实现对跨平台不同操作系统的终端进行系统性能数据收集分析,如收集系统内核事件;收集系统或进程范围内的CPU频率和使用情况;收集内存分配和使用情况;收集基于进程的调用堆栈记录等等。且可以根据请求监测的项目为跨平台不同操作系统的终端提供个性化的配置方案来实现对数据源有针对性的监测。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
为了实现对跨平台异构系统的监测,一实施方式中提供了一种跨平台异构系统的性能监测方法,如图1所示,其包括以下步骤S11~S14。
其中,所称的跨平台异构系统包括两端(监测系统服务端/监测系统客户端(终端))。根据功能设定选择设备作为服务端或终端,也可以同时在一个设备上开启两端(收集和分析数据在同一个设备进行)。
其中,终端和服务器可以是同一种操作系统,也可以是不同的操作系统;终端可以采用同一种操作系统,也可以采用不同的操作系统。
其中,终端和服务器、终端之间可以采用同一种硬件体系,例如X86;也可以采用不同的硬件体系,例如部分为X86,部分为ARM。
本发明中所称的跨平台异构包括跨不同的硬件和/或软件平台。
在步骤S11中,服务器接收终端发送的连接请求,建立与所述终端的连接,并且为所述终端分配唯一的UUID(通用唯一识别码)信息,存储所述终端的socket结构体与所述终端的设备记录(Device Record)唯一对象之间的对应关系,其中,所述终端的设备记录唯一对象包括:所述终端的UUID信息。
例如,通过维护一个MAP(对应图)来记录socket结构体与所述终端的设备记录唯一对象之间的对应关系。
如本领域技术人员所知,结构体是一种包含了多个同类型或不同类型的变量和数组的集合,例如Device Record中包含的数据变量和数组。通过socket收发结构体数据,即socket:Device Record。
在步骤S12中,服务器接收所述终端发送的监测请求,解析并识别出所述监测请求中包含的操作系统信息以及请求监测的项目信息。其中,所述请求监测的项目信息包括:请求监测的数据源。其中,操作系统可以为Linux操作系统、Android操作系统、Linux及Android兼容的操作系统等等。
在步骤S13中,服务器根据所述操作系统信息以及请求监测的项目信息获取相应的配置文件,将所述配置文件发送给所述终端。
不同的平台使用不同的应用程序编程接口(API)或应用程序二进制接口,使得不同的平台下的应用程序所依赖的库和运行环境不同。本步骤针对不同的操作系统信息,可以通过编译时的逻辑判断,来实现不同的编译结果,返回不同的配置文件。
其中,所述配置文件包括:监测时间、缓冲区的个数及容量、监测的数据源。所述数据源可以包括CPU上的线程调度事件、CPU的频率和状态记录、跟踪系统调用事件、内存的使用情况记录、本机堆栈的分配和释放、Java虚拟机堆栈的分配和释放、指定Android日志数据源等等。
可选地,在一实施方式中,所述设备记录唯一对象还包括终端的配置文件信息。
在步骤S14中,服务器接收所述终端返回的跟踪文件,对所述终端所请求监测的项目进行监测。例如,监测CPU上的线程调度事件、CPU的频率和状态记录情况、跟踪系统调用事件、内存的使用情况记录情况、本机堆栈的分配和释放情况、Java虚拟机堆栈的分配和释放情况、指定Android日志数据源中的一个或多个等等。
由此,本实施方式的跨平台异构系统的性能监测方法可以为跨平台不同操作系统的终端提供个性化的配置方案来实现对数据源有针对性的监测。例如,请求监测的项目是收集系统内核事件,则只下载相应的配置文件给终端,终端根据配置文件有针对性地收集系统内核事件,提供给服务器进行监测。
可选地,在一实施方式中,相应的配置文件存储在云端服务器中,不同的服务器都可以从云端服务器获取相应的配置文件。
为了能够追踪当前的监测状态,一实施方式中,所述设备记录唯一对象还包括所述终端的状态信息(Device State),所述跨平台异构系统的性能监测方法还包括:在建立与所述终端的连接之后,将所述终端的状态信息更新为已连接状态;在接收到所述终端发送的配置完成信息之后,将所述终端的状态信息更新为已配置状态;在检测到所述终端启动监测数据的收集之后,将所述终端的状态信息更新为数据收集状态;在接收到所述终端发送的监测数据后,将所述终端的状态信息更新为分析状态。
一实施方式中,所述接收所述终端返回的跟踪文件,对所述终端所请求监测的项目进行监测包括:采用支持可视化界面展示的分析工具对所述终端所请求监测的项目进行分析及监测。具体而言,跟踪文件是二进制的,分析工具需要先查询数据库,将二进制的跟踪文件转换为可视化分析工具可以识别的格式的文件,并以图形的方式展示在屏幕上。即分析工具集成了转换和可视化两个功能。根据可视化界面显示的火焰图可以直观地看到追踪到的信息,例如每个进程的CPU使用情况,核心占用时间,任务切换延迟,内存使用情况等等。
基于同样的发明构思,一实施方式中还提供了一种跨平台异构系统的性能监测方法,如图2所示,其包括:步骤S21~步骤S23。
在步骤S21中,终端在建立与服务器的连接请求之后,向服务器发送监测请求,其中,所述监测请求中包括操作系统信息以及请求监测的项目信息。
在步骤S22中,所述终端接收服务器发送的与所述请求监测的项目相匹配的配置文件。
在步骤S23中,所述终端根据所述配置文件进行配置,配置完成后向服务器发送跟踪文件,其中,所述跟踪文件用于实现服务器对所述终端所请求监测的项目的监测。
具体而言,所述终端根据所述配置文件进行配置,配置完成后向服务器发送跟踪文件包括:
启动器将所述配置文件的文件描述符(fd)传递给配置调度服务模块;
所述配置调度服务模块根据所述文件描述符读取所述配置文件,确定监测时间、缓冲区的个数及容量、监测的项目;
信息追踪服务模块对所述配置文件中监测的项目进行信息收集;所述配置调度服务模块将收集的信息存储在缓冲区;
所述启动器读取所述缓冲区中的信息并转储到跟踪文件中,并将所述跟踪文件发送到服务器。
在一实施方式中,为了提高信息收集和数据转储效率,配置调度服务模块和信息追踪服务模块之间采用共享内存的方式通信,两个模块利用共享内存区来存储通信数据;启动器和配置调度服务之间通过Local Socket的方式通信。
基于同样的发明构思,一实施方式中还提供了一种跨平台异构系统的性能监测系统,其包括:连接模块、控制模块、监测请求接收模块、配置文件获取模块、监测模块。该跨平台异构系统的性能监测系统100与终端200的交互示意图如图3所示。
连接模块10用于接收终端200发送的连接请求,通过两次握手建立与所述终端200的连接。
控制模块11与所述连接模块10相耦合,用于建立与所述终端200的连接之后,为所述终端200分配唯一的UUID信息,并且存储所述终端200的socket结构体与所述终端200的设备记录唯一对象之间的对应关系,其中,所述终端200的设备记录唯一对象包括:所述终端200的UUID信息。
监测请求接收模块12用于接收所述终端200发送的监测请求,解析并识别出所述监测请求中包含的操作系统信息以及请求监测的项目信息。
配置文件获取模块13与所述监测请求接收模块12相耦合,用于根据所述操作系统信息以及请求监测的项目信息获取相应的配置文件,将所述配置文件发送给所述终端200。
监测模块14用于接收所述终端200返回的跟踪文件,对所述终端200所请求监测的项目进行监测。
可选地,在一实施方式的跨平台异构系统的性能监测系统中,相应的配置文件存储在云端服务器中,系统可以从云端服务器获取相应的配置文件。
为了能够追踪当前的监测状态,优选地,一实施方式的跨平台异构系统的性能监测系统中,所述设备记录唯一对象还包括所述终端的状态信息,所述跨平台异构系统的性能监测系统还包括:状态更新模块。状态更新模块用于在建立与所述终端的连接之后,将所述终端的状态信息更新为已连接状态;还用于在接收到所述终端发送的配置完成信息之后,将所述终端的状态信息更新为已配置状态;还用于在检测到所述终端启动监测数据的收集之后,将所述终端的状态信息更新为数据收集状态;还用于在接收到所述终端发送的监测数据后,将所述终端的状态信息更新为分析状态。
基于同样的发明构思,一实施方式中还提供了一种跨平台异构系统的性能监测系统,其包括服务器、至少一个终端。
服务器用于接收终端发送的连接请求,建立与所述终端的连接,并且为所述终端分配唯一的UUID信息,根据本次连接创建socket结构体;还用于接收到所述终端发送的监测请求,解析并识别出所述监测请求中包含的操作系统信息以及请求监测的项目信息;还用于根据所述操作系统信息以及请求监测的项目信息获取相应的配置文件,将所述配置文件发送给所述终端,并且记录所述socket结构体与所述设备记录唯一对象之间的对应关系,其中,所述设备记录唯一对象包括所述终端的UUID信息以及所述终端的配置文件;还用于接收所述终端返回的跟踪文件,对所述终端所请求监测的项目进行监测。
所述终端用于在建立与服务器的连接请求之后,向服务器发送监测请求,其中,所述监测请求中包括操作系统信息以及请求监测的项目信息;还用于接收服务器发送的与所述请求监测的项目相匹配的配置文件,还用于根据所述配置文件进行配置,配置完成后向服务器发送跟踪文件,其中,所述跟踪文件用于实现服务器对所述终端所请求监测的项目的监测。
其中,所述终端中包括启动器、配置调度服务器模块、信息追踪服务模块。启动器用于将所述配置文件的文件描述符传递给配置调度服务模块;所述配置调度服务模块用于根据所述文件描述符读取所述配置文件,确定监测时间、缓冲区的个数及容量、监测的项目;信息追踪服务模块用于对所述配置文件中监测的项目进行信息收集;所述配置调度服务模块还用于将收集的信息存储在缓冲区;所述启动器还用于读取所述缓冲区中的信息并转储到跟踪文件中,并将所述跟踪文件发送到服务器。
还需说明的一点是,前一实施方式的跨平台异构系统的性能监测方法的各种变化方式和具体实例同样适用于上述实施方式的跨平台异构系统的性能监测系统,通过对前述性能监测的方法的详细描述,本领域技术人员可以清楚知道本实施例中跨平台异构系统的性能监测系统的实施方法。
基于同样的发明构思,一实施方式中还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施方式所述的跨平台异构系统的性能监测方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。