分布式服务进程资源耗用统计方法和装置与流程

文档序号:14179093阅读:224来源:国知局
分布式服务进程资源耗用统计方法和装置与流程

本发明涉及到计算机服务器领域,尤其涉及一种分布式服务进程资源耗用统计方法和装置。



背景技术:

在对分布式服务进行测试时,尤其是对分布式服务进行压力测试时,需要对部署相关服务(分布式服务)的服务器进行监控,以监测分布式服务对各台服务器的整体资源的耗用情况。在实际应用中,为覆盖实际中出现的多种情况,部署相关服务的服务器类型、性能和地理位置可能不完全相同。目前,测试人员在执行相关测时,通常采用各类已有的开源或者商业工具(例如god和supervisor等)部署服务和采集数据。这类工具通常是针对分布式服务在单台服务器上的cpu与内存等资源的耗用情况,或者是运行分布式服务的各台服务器的cpu和内存等资源的耗用情况。

当测试人员需要获取分布式服务进程本身耗用各台服务器的cpu与内存等资源的情况,就不能直接采用上述已有的技术方案。该实际应用需求实际包含至少如下两个技术问题:一是如何在多台服务器上获取指定分布式服务进程的cpu与内存等资源的耗用情况,这需要将监控服务分别部署在多台服务器上;二是监控服务应该如何对指定分布式服务进程的cpu与内存等资源的耗用情况采样,形成统计数据。但是,由于前述的开源或者商业工具都不振动这种应用场景,使得一方面测试人员需要手工部署,工作量比较大;另一方面,由于各台用于测试的服务器之间的性能参数差异,数据采样标准也不一致,影响后继分析数据的准确性。



技术实现要素:

本发明针对上述应用场景,提出一种分布式服务进程资源耗用统计方法和装置,用于测试服务器端的性能指标,尤其是分布式服务的机器指标,以克服现有技术方案在获取分布式服务进程本身耗用各台服务器的cpu与内存等资源的情况时,存在的人工操作工作量大,以及采样数据不一致的问题。

为了实现上述目的,本发明采用以下的技术方案。

本发明首先公开一种分布式服务进程资源耗用统计方法,包括以下步骤:配置监控服务将要监控的机器及进程的配置文件,其中配置文件包括标识将要监控机器列表及进程列表的列表文件,以及监控机器将要执行的监控脚本;将监控脚本按照列表文件上的监控机器列表,分配到对应的机器后,执行监控脚本以启动监控服务;启动被监控的分布式服务进程,监控服务对分布式服务进程监控采样;终止被监控的分布式服务进程,监控服务将监控采样的数据保存为监控文件,存放在机器上。

在本发明的上述方法中,还包括遍历列表文件上的监控机器列表,集中监控机器列表内的机器上的监控文件。

进一步地,在本发明的上述方法中,在集中监控机器列表内的机器上存有的监控文件前,压缩监控文件。

再进一步地,在本发明的上述方法中,在集中各台机器上的监控文件后,将被合并为汇总文件。

在本发明的上述方法中,被监控的分布式服务进程是通过http协议启动和/或停止。

在本发明的上述方法中,监控采样的数据包括而不限于时间戳、进程id、进程名称、cpu占比、内存占比、实际使用物理内存和虚拟耗用内存中的至少一项。

在本发明的上述方法中,被监控的分布式服务进程以预设的频率启动和停止。

此外,本发明还公开了一种分布式服务进程资源耗用统计装置,包括以下模块:部署模块,用于配置监控服务将要监控的机器及进程的配置文件,其中配置文件包括标识将要监控机器列表及进程列表的列表文件,以及监控机器将要执行的监控脚本;监控模块,用于将监控脚本按照列表文件上的监控机器列表,分配到对应的机器后,执行监控脚本以启动监控服务;启动模块,用于启动被监控的分布式服务进程,监控服务对分布式服务进程监控采样;终止模块,用于终止被监控的分布式服务进程,监控服务将监控采样的数据保存为监控文件,存放在机器上。

在本发明的上述装置中,还包括导出模块,用于遍历列表文件上的监控机器列表,集中监控机器列表内的机器上的监控文件。

进一步地,在本发明的上述装置中,导出模块在集中监控机器列表内的机器上存有的监控文件前,压缩监控文件。

再进一步地,在本发明的上述装置中,导出模块在集中各台机器上的监控文件后,将监控文件合并为汇总文件。

在本发明的上述装置中,启动模块、终止模块和导出模块通过http协议启动和停止被监控的分布式服务进程,以及集中各台机器上的监控文件。

在本发明的上述装置中,监控采样的数据包括而不限于时间戳、进程id、进程名称、cpu占比、内存占比、实际使用物理内存和虚拟耗用内存中的至少一项。

在本发明的上述装置中,被监控的分布式服务进程的频率启动和停止是预设的。

最后,本发明还公开了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如前述任一项所述的方法的步骤。

本发明的有益效果为:在获取分布式服务进程本身耗用各台服务器的cpu与内存等资源的情况时,降低需要测试人员人工干预的工作量,并统一测试时在各台机器上的采样数据。

附图说明

图1所示为本发明所提出的分布式服务进程资源耗用统计方法的一个实施例流程图;

图2所示为本发明所提出的分布式服务进程资源耗用统计方法的另一个实施例流程图;

图3所示为本发明所提出的分布式服务进程资源耗用统计方法的集中监控文件步骤的子流程图;

图4所示为实现本发明所提出的分布式服务进程资源耗用统计方法的结构示意图;

图5所示为本发明所提出的分布式服务进程资源耗用统计装置的一个实施例模块结构图;

图6所示为本发明所提出的分布式服务进程资源耗用统计装置的另一个实施例模块结构图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。

参照图1所示的分布式服务进程资源耗用统计方法的一个实施例流程图,本发明提出一种分布式服务进程资源耗用统计方法,包括以下步骤:配置监控服务将要监控的机器及进程的配置文件,其中配置文件包括标识将要监控机器列表及进程列表的列表文件,以及监控机器将要执行的监控脚本;将监控脚本按照列表文件上的监控机器列表,分配到对应的机器后,执行监控脚本以启动监控服务;启动被监控的分布式服务进程,监控服务对分布式服务进程监控采样;终止被监控的分布式服务进程,监控服务将监控采样的数据保存为监控文件,存放在机器上。

在本发明的一个实施例中,监控机器列表内指定被监控机器的数量,以及指定各台机器的ip、用户名、密码及其开放端口。其中不同的机器可以配置不同的端口,以免与机器的已有服务冲突。被监控的机器将要执行的监控脚本则包括安装监控服务的依赖、设置防火墙开放端口、下载远端监控服务安装包、安装监控服务和启动服务等。

在本发明的一个实施例中,可采用python的远程自动部署和系统管理任务的工具库fabric执行具体的部署配置监控脚本和启动监控服务的工作。具体地,在启动被监控的分布式服务前,各台机器上将创建监控服务的文件夹,用于存放监控脚本和监控的采样数据。当监控脚本被分配到各台机器后,测试人员通过工具库fabric在机器上安装监控脚本。安装完毕后,监控服务已经部署到各个机器上并已经启动。只是由于被监控的分布式服务进程还没有启动,所以此时监控服务实际上并没有监控任何进程。当启动被监控的分布式服务进程后,监控服务就可以对指定的分布式服务进程监控采样。

参照图2所示的分布式服务进程资源耗用统计方法的另一个实施例流程图,在该实施例中,通过遍历列表文件上的监控机器列表,集中监控机器列表内的机器上的监控文件。具体地,与部署监控服务连接的测试管理端通过遍历监控机器列表,并根据该监控机器列表上各台机器的ip、用户名、密码及其开放端口,将各台机器上的监控文件拷贝到测试管理端自身。此时,测试人员可以测试管理端上基于各台机器的监控文件的拷贝,方便地执行监控文件汇总和比较等后继操作。

事实上,参照图3所示的分布式服务进程资源耗用统计方法的集中监控文件步骤的子流程图,在本发明的一个实施例中,监控服务定期对指定的分布式服务进程所占用资源数据采样(例如,采用python的开源工具包psutil对资源占用情况进行采样)。一般地,由于压力测试执行时间较长,采样数据较多,因此监控服务存放在机器上的监控文件一般较大。例如,在本发明的一个实施例中,测试人员需要对包括但是不限于时间戳、进程id、进程名称、cpu占比、内存占比、实际使用物理内存、虚拟耗用内存或它们的任意组合进行数据采样。这使得测试完毕后所保存的监控文件体积较大。为提高传输效率,在集中监控机器列表内的机器上存有的监控文件前,监控文件将被压缩。文件压缩的方式可以采用本领域技术人员所熟知的方式。

在集中各台机器上的监控文件后,监控文件将被合并为汇总文件。具体地,在本发明的一个实施例中,当监控文件被本领域技术人员所熟知的方式集中到管理服务端后(若监控文件被压缩,则在集中后被解压缩),监控文件将按照监控机器列表上对应的监控机器排序。各份监控文件的内容将按照这个排序,以各台机器为一组,依次写入到汇总文件中,以方便测试人员查找比对。进一步地,可基于汇总文件上的采样数据生成测试报表或者折线图等可视化图表。上述数据可视化操作可以采用本领域技术人员所熟知的方式执行。

参照图4所示分布式服务进程资源耗用统计方法的结构示意图,在本发明的一个实施例中,被监控的分布式服务进程是通过http协议启动和/或停止。具体地,测试人员可通过应用框架flask搭建web服务以向多台机器发送指令(启动和/或停止分布式服务进程)及接收数据(例如集中各台机器上的监控文件)。测试人员统一采用http服务的形式实现监控服务的启动、停止及监控文件的集中,降低测试人员的操作的复杂度。或进一步地,监控服务可在停止监控的时候,自动将当前机器的监控文件集中到指定的测试服务端上。

再进一步地,在本发明的一个实施例中,被监控的分布式服务进程以预设的频率启动和停止。具体地,监控脚本内可预设被监控服务的启动和停止时间。测试可以在完全没有测试人员的人工干预下执行。当多轮测试完毕后,测试人员再集中在各台机器上的监控文件。或者,在监控服务可在停止监控的时候,自动将当前机器的监控文件集中到指定的测试服务端上。

参照图5所示的分布式服务进程资源耗用统计装置的一个实施例模块结构图,本发明提出一种分布式服务进程资源耗用统计装置,包括以下模块:部署模块,用于配置监控服务将要监控的机器及进程的配置文件,其中配置文件包括标识将要监控机器列表及进程列表的列表文件,以及监控机器将要执行的监控脚本;监控模块,用于将监控脚本按照列表文件上的监控机器列表,分配到对应的机器后,执行监控脚本以启动监控服务;启动模块,用于启动被监控的分布式服务进程,监控服务对分布式服务进程监控采样;终止模块,用于终止被监控的分布式服务进程,监控服务将监控采样的数据保存为监控文件,存放在机器上。

在本发明的一个实施例中,部署模块在监控机器列表内指定被监控机器的数量,以及指定各台机器的ip、用户名、密码及其开放端口。其中不同的机器可以配置不同的端口,以免与机器的已有服务冲突。被监控的机器将要执行的监控脚本则包括安装监控服务的依赖、设置防火墙开放端口、下载远端监控服务安装包、安装监控服务和启动服务等。

在本发明的一个实施例中,监控模块可采用python的远程自动部署和系统管理任务的工具库fabric执行具体的部署配置监控脚本和启动监控服务的工作。具体地,在启动被监控的分布式服务前,监控模块在各台机器上将创建监控服务的文件夹,用于存放监控脚本和监控的采样数据。当监控脚本被分配到各台机器后,测试人员通过工具库fabric在机器上安装监控脚本。安装完毕后,监控服务已经部署到各个机器上并已经启动。只是由于被监控的分布式服务进程还没有启动,所以此时监控服务实际上并没有监控任何进程。当启动被监控的分布式服务进程后,监控服务就可以对指定的分布式服务进程监控采样。

参照图6所示的分布式服务进程资源耗用统计装置的另一个实施例流程图,在该实施例中,装置还包括导出模块,通过遍历列表文件上的监控机器列表,集中监控机器列表内的机器上的监控文件。具体地,导出模块可以在与部署监控服务连接的测试管理端上,通过遍历监控机器列表,根据该监控机器列表上各台机器的ip、用户名、密码及其开放端口,将各台机器上的监控文件拷贝到测试管理端。此时,测试人员可以测试管理端上基于各台机器的监控文件的拷贝,方便地执行监控文件汇总和比较等后继操作。

事实上,在本发明的一个实施例中,监控服务定期对指定的分布式服务进程所占用资源数据采样(例如,采用python的开源工具包psutil对资源占用情况进行采样)。一般地,由于压力测试执行时间较长,采样数据较多,因此监控服务存放在机器上的监控文件一般较大。例如,在本发明的一个实施例中,测试人员需要对包括但是不限于时间戳、进程id、进程名称、cpu占比、内存占比、实际使用物理内存、虚拟耗用内存或它们的任意组合进行数据采样。这使得测试完毕后所保存的监控文件体积较大。为提高传输效率,导出模块在集中监控机器列表内的机器上存有的监控文件前,监控文件将被压缩。文件压缩的方式可以采用本领域技术人员所熟知的方式。

在集中各台机器上的监控文件后,导出模块将监控文件将合并为汇总文件。具体地,在本发明的一个实施例中,当监控文件被本领域技术人员所熟知的方式集中到管理服务端后(若监控文件被压缩,则在集中后被解压缩),导出模块将监控文件按照监控机器列表上对应的监控机器排序。各份监控文件的内容将按照这个排序,以各台机器为一组,依次写入到汇总文件中,以方便测试人员查找比对。进一步地,可基于汇总文件上的采样数据生成测试报表或者折线图等可视化图表。上述数据可视化操作可以采用本领域技术人员所熟知的方式执行。

在本发明的一个实施例中,启动模块、终止模块和导出模块通过http协议启动和/或停止。具体地,测试人员可通过应用框架flask搭建web服务以向启动模块和终止模块发送指令(启动和/或停止分布式服务进程)及通过导出模块接收数据(例如集中各台机器上的监控文件)。测试人员统一采用http服务的形式实现启动模块、终止模块和导出模块的操作,降低测试人员的操作的复杂度。或进一步地,监控服务可在停止监控的时候,导出模块自动将当前机器的监控文件集中到指定的测试服务端上。

再进一步地,在本发明的一个实施例中,被监控的分布式服务进程以预设的频率启动和停止。具体地,监控脚本内可预设被监控服务的启动和停止时间。测试可以在完全没有测试人员的人工干预下执行。当多轮测试完毕后,测试人员再集中在各台机器上的监控文件。或者,在监控服务可在停止监控的时候,导出模块自动将当前机器的监控文件集中到指定的测试服务端上。

尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1