CN109918190A - 一种数据采集方法及相关设备 - Google Patents
一种数据采集方法及相关设备 Download PDFInfo
- Publication number
- CN109918190A CN109918190A CN201711325963.9A CN201711325963A CN109918190A CN 109918190 A CN109918190 A CN 109918190A CN 201711325963 A CN201711325963 A CN 201711325963A CN 109918190 A CN109918190 A CN 109918190A
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- operating status
- size
- resource consumption
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000006870 function Effects 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006641 stabilisation Effects 0.000 claims description 5
- 238000011105 stabilization Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 6
- 238000013480 data collection Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 210000000609 ganglia Anatomy 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种数据采集方法及相关设备,包括:当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种;根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率;根据调整后的所述采集频率,控制所述插件采集业务数据。采用本申请实施例,在保障满足采集业务数据要求的情况下,降低系统资源消耗,提高系统的运行效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据采集方法及相关设备。
背景技术
随着云计算技术的快速发展,提供高可靠性的云服务尤为重要。云监控作为保证云服务可靠性最有效的办法,已经成为数据中心运维的最重要依赖工具。当前数据中心需要监控的业务有很多,包括:基础设施即服务层(Infrastructure as a Service,IaaS)的虚拟化服务,如:基于内核的虚拟机(Kernel-based Virtual Machine,KVM)和虚拟机(Virtual Machine,VM)等、平台即服务(Platform as a Service,PaaS)层的业务,如:容器、数据库、中间件等业务、以及软件即服务(Software as a Service,SaaS)层上运行的客户业务。如何高效的监控数据中心的各种业务、以及提高运维效率和质量,成为数据中心运维面临的一个重要问题。
为了解决上述问题,现有技术提供了如下解决方案,包括:第一,企业级的数据中心监控解决方案(Zabbix),提供信息采集、告警以及存储分析等功能,由于采集代理(Agent)端与服务(Server)端耦合度太高,导致扩展新的采集功能极不方便,并且,信息采集控制以监控项为单位,导致信息采集的资源消耗大。第二,开源集群监视解决方案(Ganglia),如图1所示,可以在Ganglia数据采集框架上扩展Ganglia数据采集插件,灵活设置配置文件,但是,该种方案只能根据配置文件来运行插件,无法对插件进行管控,因此当插件较多或插件执行时间较长时,可能导致资源开销较大,影响正常业务运行。第三,监控信息采集工具,采用c语言编写,并且插件也是用c语言编写,效率非常高。并且拥有大量线程来扩展插件,但是也存在采集系统资源开销过大的问题。
发明内容
本申请实施例提供一种数据采集方法及相关设备,降低了系统资源消耗,提高了系统运行效率。
第一方面,本申请实施例提供了一种数据采集方法,包括:
首先当检测到插件运行时,获取插件的第一运行状态以及系统资源的第二运行状态中的至少一种;然后根据第一运行状态以及第二运行状态中的至少一种,调整插件的采集频率;最后根据调整后的采集频率,控制插件采集业务数据。通过实时监控各插件的运行状态和系统资源的消耗,动态调整插件的采集频率来控制插件采集业务数据,从而在保障满足采集业务数据要求的情况下,降低系统资源消耗,提高系统运行效率。
在一种可能的设计中,在获取插件的第一运行状态以及系统资源的第二运行状态之前,可以获取插件的插件类型;当插件为服务类型的插件时,则将一个线程绑定到该插件上,使得插件独占一个线程,运行该插件的接口函数来完成采集业务数据的功能;或当插件为周期性采集的插件时,将插件加入到插件执行队列中,从插件执行队列中周期性调用插件,运行该插件的接口函数来完成采集业务数据的功能。
在另一种可能的设计中,第一运行状态可以包括插件每次采集业务数据的执行时长、插件的稳定性大小等等。第二运行状态包括中央处理器(Central Processing Unit,CPU)资源的消耗大小、内存资源的消耗大小、当前主机的网络流量和CPU使用率中的至少一种。
在另一种可能的设计中,按照预设周期获取插件的第一运行状态以及系统资源的第二运行状态中的至少一种。
在另一种可能的设计中,在运行插件之前,可以获取插件的编程语言类型;根据插件的编程语言类型,加载插件,从而完成插件执行业务数据采集功能之前的环境准备。
在另一种可能的设计中,当插件的编写语言类型为第一语言时,加载动态链接库,从动态链接库中获取接口函数的指针;当插件的编写语言类型为第二语言时,加载虚拟机运行环境,通过虚拟机运行环境获取接口函数的指针。
在另一种可能的设计中,当确定该插件为C/C++的动态链接库时,通过系统调用函数加载该动态链接库,然后从动态链接库中获取接口函数的指针,并初始化各接口函数的参数,最后将各接口函数的指针绑定到采集框架调度器,从而完成插件执行功能前的环境准备。当确定该插件为java字节码时,通过系统调用加载java虚拟机(jvm)运行环境,然后通过jvm运行环境来加载java插件类,并实例化该java插件类来获取各接口函数的指针,然后初始化各接口函数的参数,最后将接口函数的指针绑定至采集框架调度器,从而完成插件执行功能前的环境准备。
在另一种可能的设计中,当资源消耗大小大于第一预设阈值时,降低插件的采集频率;或者,当资源消耗大小不大于第一预设阈值时,增加插件的采集频率。
在另一种可能的设计中,当插件每次采集业务数据的执行时长大于第二预设阈值时,降低插件的采集频率;或当插件每次采集业务数据的执行时长不大于第二预设阈值时,增加插件的采集频率。
在另一种可能的设计中,当资源消耗大小大于第三预设阈值且插件每次采集业务数据的执行时长大于第四预设阈值时,降低插件的采集频率;当资源消耗大小不大于第三预设阈值且插件每次采集业务数据的执行时长不大于第四预设阈值时,增加插件的采集频率。
在另一种可能的设计中,当插件的稳定性大小大于第五预设阈值时,降低插件的采集频率。
在另一种可能的设计中,第一运行状态包括稳定性大小,第二运行状态包括CPU资源消耗大小以及内存资源消耗大小;可以根据CPU资源消耗大小以及内存资源消耗大小,确定资源消耗的第一调整指数;根据插件的稳定性大小,确定插件的第二调整指数;根据第一调整指数以及第二调整指数,确定插件的采集频率。
在另一种可能的设计中,可以将CPU资源消耗大小除以预设的CPU资源消耗上限值计算得到第一比值、以及将内存资源消耗大小除以预设的内存资源消耗上限值计算得到第二比值;选取第一比值和第二比值中较小的一个作为第一调整指数。
在另一种可能的设计中,计算所有插件的稳定性大小的平均值;将插件的稳定大小除以所有插件的稳定性大小的平均值,计算得到第二调整指数。
在另一种可能的设计中,可以计算调整前的采集周期、第一调整指数和第二调整指数之间的乘积作为调整后的采集周期。
在另一种可能的设计中,在插件开始运行之后最先根据配置文件中所包含的采集频率来进行业务数据的采集,在插件采集业务数据过程中,可以增加运行插件的数量或减少运行插件的数量。
第二方面,本申请实施例提供了一种数据采集装置,该数据采集装置被配置为实现上述第一方面中采集框架调度器所执行的方法和功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的模块。
第三方面,本申请实施例提供了一种数据采集设备,包括:处理器、存储器和通信总线,其中,通信总线用于实现处理器和存储器之间连接通信,处理器执行存储器中存储的程序用于实现上述第一方面提供的一种数据采集方法中的步骤。
在一个可能的设计中,本申请提供的数据采集设备可以包含用于执行上述方法设计中采集框架调度器行为相对应的模块。模块可以是软件和/或是硬件。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种数据采集方式的结构示意图;
图2是本申请实施例提供的一种数据采集系统的结构示意图;
图3是本申请实施例提供的一种数据采集方法的流程示意图;
图4是本申请实施例提供的一种插件的编写方法的流程示意图;
图5是本申请实施例提供的另一种插件的编写方法的流程示意图;
图6是本申请实施例提供的一种插件调度的示意图;
图7是本申请实施例提供的一种数据采集装置的结构示意图;
图8是本申请实施例提出的一种数据采集设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参见图2,图2是本申请实施例提供的一种数据采集系统的结构示意图,该数据采集系统包括采集框架调度器以及多个插件。其中,采集框架调度器用于获取插件的运行状态以及系统资源的运行状态来调整插件的采集频率,通过调整后的采集频率控制多个插件采集业务数据。并且,采集框架调度器可以提供多种接口函数,方便插件调用各种接口函数来完成采集业务数据的功能。多个插件可以包括插件1、插件2以及插件3等等。在该系统中可以通过多种语言函数来扩展插件,从而监控采集其他业务数据。
请参见图3,图3是本申请实施例提供的一种数据采集方法的流程示意图,该方法包括但不限于如下步骤:
S301,当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种。其中,第一运行状态可以包括插件每次采集业务数据的执行时长、插件的稳定性大小等等。第二运行状态包括中央处理器(Central Processing Unit,CPU)资源的消耗大小、内存资源的消耗大小、当前主机的网络流量和CPU使用率中的至少一种。
具体实现中,由于采集业务数据的插件过多或者插件采集业务数据的频率过高,可能导致系统资源的当前使用率超过资源消耗上限。或者,由于采集业务数据的插件过少或者插件采集业务数据的频率过低,也有可能导致达不到采集业务数据进而分析业务数据的需求。因此,在插件运行过程中,可以对插件的运行状态以及系统资源的运行状态进行监控,进而获取插件的第一运行状态,或者获取系统资源的第二运行状态,或者获取第一运行状态和第二运行状态。
可选的,在获取所述插件的第一运行状态以及系统资源的第二运行状态之前,可以获取所述插件的插件类型;根据所述插件的所述插件类型,运行所述插件。其中,插件运行之后最先根据插件描述文件中所包含的采集频率来进行业务数据的采集。进一步的,当所述插件为服务类型的插件时,则将一个线程绑定到该插件上,使得所述插件独占一个线程,运行该插件的接口函数来完成采集业务数据的功能;或当所述插件为周期性采集的插件时,将所述插件加入到插件执行队列中,从所述插件执行队列中周期性调用所述插件,运行该插件的接口函数来完成采集业务数据的功能。
其中,插件可以采用多种编程语言进行编写,用户可以根据自己的编程特点,从C、C++、Python、Java、Perl等编程语言中任选一种作为插件开发语言,并根据采集框架调度器提供的接口函数来完成插件功能的开发。
如图4所示,图4是本申请实施例提供的一种插件的编写方法的流程示意图。可以利用C/C++语言完成该插件的对应的接口函数,并将接口函数与框架的头文件一起编译成动态链接库(so文件),然后将动态链接库和插件描述文件一起打包加入插件库。其中,插件描述文件为该插件的配置文件,包括插件的采集频率、插件功能、插件运行环境、插件类型以及插件调用方式等等。
如图5所示,图5是本申请实施例提供的另一种插件的编写方法的流程示意图。用户可以在java对应的类中实现init和read两个接口函数,其中,init函数为插件的初始化函数,read函数是插件的执行函数,然后通过将java类编译成字节码,最后将字节码和插件描述文件一起打包加入插件库。其中,插件描述文件为该插件的配置文件,包括插件的采集频率、插件运行环境、插件功能、插件类型以及插件调用方式等等。
可选的,在运行插件之前,可以获取所述插件的编程语言类型;根据所述插件的所述编程语言类型,加载所述插件,从而完成插件执行业务数据采集功能之前的环境准备。进一步的,当所述插件的所述编写语言类型为第一语言时,加载动态链接库,从所述动态链接库中获取接口函数的指针;当所述插件的所述编写语言类型为第二语言时,加载虚拟机运行环境,通过所述虚拟机运行环境获取接口函数的指针。
例如,采集框架调度器可以首先读取插件描述文件,根据该插件描述文件确定插件的编写语言类型。当确定该插件为C/C++的动态链接库时,通过系统调用函数(如,dlopen)加载该动态链接库,然后从动态链接库中获取接口函数的指针,并初始化各接口函数的参数,最后将各接口函数的指针绑定到采集框架调度器,从而完成插件执行功能前的环境准备。当确定该插件为java字节码时,通过系统调用加载java虚拟机(jvm)运行环境,然后通过jvm运行环境来加载java插件类,并实例化该java插件类来获取各接口函数的指针,然后初始化各接口函数的参数,最后将接口函数的指针绑定至采集框架调度器,从而完成插件执行功能前的环境准备。需要说明的是,本申请实施例也可以应用于其他编程语言类型的插件,可以根据插件的不同编程语言类型采用不同方式加载插件,此处不再举例说明。
S302,根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率。包括但不限于以下几种可选方式:
第一种可选方式,当所述资源消耗大小大于第一预设阈值时,降低所述插件的采集频率;或当所述资源消耗大小不大于所述第一预设阈值时,增加所述插件的采集频率。其中,资源消耗可以包括内存消耗和CPU消耗等等,由于插件采集频率的过高,可能导致内存消耗和CPU消耗过大,因此适当的降低采集频率可以减少内存消耗或CPU消耗,来维持系统的正常运行。而插件采集频率的过低,可能导致无法采集到一些重要的业务数据,因此在保证内存消耗或CPU消耗不超过门限值的情况下,可以适当增加插件的采集频率。
第二种可选的方式,当所述插件每次采集所述业务数据的执行时长大于第二预设阈值时,降低所述插件的采集频率;或当所述插件每次采集所述业务数据的执行时长不大于第二预设阈值时,增加所述插件的采集频率。例如,每个插件的业务数据采集周期是10秒,而插件每次采集所述业务数据的执行时长是8秒,如果同时存在大量的插件在采集业务数据,显然会导致CPU消耗太大,因此适当的降低插件的采集频率从而减少内存消耗或CPU消耗,来维持系统的正常运行。又如,每个插件的业务数据采集周期是10秒,而当前网络流量和CPU使用率极不稳定,需要插件采集当前网络流量和CPU使用率来进行分析,如果插件每次采集业务数据的执行时长为0.5秒,可能导致无法获取到当前网络流量和CPU使用率的重要数据来进行分析,因此在保证内存消耗或CPU消耗不超过门限的情况下,可以适当增加插件的采集频率。
第三种可选的方式,当所述资源消耗大小大于第三预设阈值且所述插件每次采集所述业务数据的执行时长大于第四预设阈值时,降低所述插件的采集频率;当所述资源消耗大小不大于所述第三预设阈值且所述插件每次采集所述业务数据的执行时长不大于所述第四预设阈值时,增加所述插件的采集频率。综合考虑上述两种情况来调整插件的采集频率,此处不再赘述。
第四种可选的方式,当所述插件的稳定性大小大于第五预设阈值时,降低所述插件的采集频率。其中,当插件在采集当前主机的网络流量和CPU使用率时,如果当前主机的网络流量和CPU使用率很平稳,一段时间内插件采集的网络流量和CPU使用率的数据都一样,说明插件的稳定性高,因此适当延长插件的采集周期(采集频率的倒数)并不影响业务数据的采集和分析,并且通过降低插件采集业务数据对系统资源的占用,可以提高业务系统的运行效率。
第五种可选的方式,所述第一运行状态包括稳定性大小,所述第二运行状态包括CPU资源消耗大小以及内存资源消耗大小;可以根据所述CPU资源消耗大小以及所述内存资源消耗大小,确定所述资源消耗的第一调整指数;根据所述插件的稳定性大小,确定所述插件的第二调整指数;根据所述第一调整指数以及所述第二调整指数,确定所述插件的采集频率。具体流程如下:
如图6所示,数据采集系统包括插件执行队列1、插件执行队列2以及插件执行队列3等等,每个插件执行队列可以包括多个插件,并且绑定CPU资源。在运行插件执行采集业务数据的过程中,实时获取插件的执行时长、系统资源消耗以及插件的稳定性大小,从而动态调整插件的采集频率,进而根据调整后的采集频率动态调度每个插件执行队列。若数据采集系统包括n个插件,每个插件每次采集业务数据的执行时长为t1,t2,t3,.......,各个插件的采集周期为T1,T2,T3,.......,每个插件采集数据的稳定性大小为m1,m2,m3,.......,CPU资源消耗为C,内存资源消耗为M。其中,采集周期为采集频率的倒数。CPU资源消耗C可以表示为各个插件的每次采集业务数据的执行时长与采集周期的比值之和,如公式(1)所示。如果C>C0或者M>M0,则需要调整各个插件的采集周期。其中,C0和M0分别为数据采集系统中预设的CPU资源消耗上限值和预设的内存消耗上限值。
首先,可以将CPU资源消耗大小C除以预设的CPU资源消耗上限值C0计算得到第一比值、以及将内存资源消耗大小M除以预设的内存资源消耗上限值M0计算得到第二比值;选取第一比值和第二比值中较小的一个作为第一调整指数,如公式(2)所示。然后,可以计算所有插件的稳定性大小的平均值将插件的稳定大小mi除以所有插件的稳定性大小的平均值计算得到第二调整指数。如公式(3)所示。
最后,可以计算调整前的采集周期、第一调整指数和第二调整指数之间的乘积作为调整后的采集周期。假设调整后的采集周期为T′k,T′k的值可以表示为调整前的采集周期同时乘以系统资源的第一调整指数和插件的第二调整指数,如公式(4)所示。最后计算得到采集频率,按照此采集频率对该插件进行调度:
S303,根据调整后的所述采集频率,控制所述插件采集业务数据。
具体实现中,在插件开始运行之后最先根据插件描述文件中所包含的采集频率来进行业务数据的采集,在插件采集业务数据过程中,可以增加运行插件的数量或减少运行插件的数量。插件的第一运行状态和系统资源的第二运行状态不断发生变化,可以按照预设周期获取插件的第一运行状态和系统资源的第二运行状态来动态调整采集频率,最后根据调整后的采集频率,控制插件采集业务数据。
在本申请实施例中,首先当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种;然后根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率;最后根据调整后的所述采集频率,控制所述插件采集业务数据。通过实时监控各插件的运行状态和系统资源的消耗,动态调整插件的采集频率来控制插件采集业务数据,从而在保障满足采集业务数据要求的情况下,降低系统资源消耗,提高系统运行效率。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图7,图7是本申请实施例提供的一种数据采集装置的结构示意图,该数据采集装置可以包括获取模块701、调整模块702以及处理模块703,其中,各个模块的详细描述如下。
获取模块701,用于当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种;
调整模块702,用于根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率;
处理模块703,用于根据调整后的所述采集频率,控制所述插件采集业务数据。
其中,获取模块701,还用于获取所述插件的插件类型;当所述插件为服务类型的插件时,将所述插件独占一个线程进行运行;当所述插件为周期性采集的插件时,将所述插件加入到插件执行队列中,从所述插件执行队列中周期性调用所述插件。
其中,所述第二运行状态包括资源消耗大小;
调整模块702具体用于:
当所述资源消耗大小大于第一预设阈值时,降低所述插件的采集频率;或
当所述资源消耗大小不大于所述第一预设阈值时,增加所述插件的采集频率。
其中,所述第一运行状态包括所述插件每次采集所述业务数据的执行时长;
调整模块702具体用于:
当所述插件每次采集所述业务数据的执行时长大于第二预设阈值时,降低所述插件的采集频率;或
当所述插件每次采集所述业务数据的执行时长不大于第二预设阈值时,增加所述插件的采集频率。
其中,所述第二运行状态包括资源消耗大小,所述第一运行状态包括所述插件每次采集所述业务数据的执行时长;
调整模块702具体用于:
当所述资源消耗大小大于第三预设阈值且所述插件每次采集所述业务数据的执行时长大于第四预设阈值时,降低所述插件的采集频率;
当所述资源消耗大小不大于所述第三预设阈值且所述插件每次采集所述业务数据的执行时长不大于所述第四预设阈值时,增加所述插件的采集频率。
其中,所述第一运行状态包括稳定性大小,所述第二运行状态包括CPU资源消耗大小以及内存资源消耗大小;
调整模块702具体用于:
当所述资源消耗大小大于第三预设阈值且所述插件每次采集所述业务数据的执行时长大于第四预设阈值时,降低所述插件的采集频率;当所述资源消耗大小不大于所述第三预设阈值且所述插件每次采集所述业务数据的执行时长不大于所述第四预设阈值时,增加所述插件的采集频率。
其中,调整模块702,还用于将所述CPU资源消耗大小除以预设的CPU资源消耗上限值计算得到第一比值、以及将所述内存资源消耗大小除以预设的内存资源消耗上限值计算得到第二比值;选取所述第一比值和所述第二比值中较小的一个作为所述第一调整指数。
其中,调整模块702,还用于计算所有插件的稳定性大小的平均值;将所述插件的稳定大小除以所有插件的稳定性大小的平均值,计算得到所述第二调整指数。
其中,所述第一运行状态包括稳定性大小;
调整模块702具体用于:当所述插件的稳定性大小大于第五预设阈值时,降低所述插件的采集频率。
其中,获取模块701,还用于获取所述插件的编写语言类型;当所述插件的所述编写语言类型为第一语言时,加载动态链接库,从所述动态链接库中获取接口函数的指针;当所述插件的所述编写语言类型为第二语言时,加载虚拟机运行环境,通过所述虚拟机运行环境获取接口函数的指针。
需要说明的是,各个模块的实现还可以对应参照图3所示的方法实施例的相应描述,执行上述实施例中所执行的方法和功能。
请继续参考图8,图8是本申请实施例提出的一种数据采集设备的结构示意图。如图所示,该数据采集设备可以包括:至少一个处理器801,至少一个通信接口802,至少一个存储器803和至少一个通信总线804。
其中,处理器801可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。通信总线804可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线804用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口802用于与其他节点设备进行信令或数据的通信。存储器803可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(PhaseChange RAM,PRAM)、磁阻式随机存取内存(Magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、闪存器件,例如反或闪存(NORflash memory)或是反及闪存(NAND flash memory)、半导体器件,例如固态硬盘(SolidState Disk,SSD)等。存储器803可选的还可以是至少一个位于远离前述处理器801的存储装置。存储器803中存储一组程序代码,且处理器801执行存储器803中所执行的程序。
当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种;
根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率;
根据调整后的所述采集频率,控制所述插件采集业务数据。
可选的,处理器801还用于执行如下操作:
获取所述插件的插件类型;
当所述插件为服务类型的插件时,将所述插件独占一个线程进行运行;当所述插件为周期性采集的插件时,将所述插件加入到插件执行队列中,从所述插件执行队列中周期性调用所述插件。
可选的,处理器801还用于执行如下操作:
当所述资源消耗大小大于第一预设阈值时,降低所述插件的采集频率;或
当所述资源消耗大小不大于所述第一预设阈值时,增加所述插件的采集频率。
可选的,处理器801还用于执行如下操作:
当所述插件每次采集所述业务数据的执行时长大于第二预设阈值时,降低所述插件的采集频率;或
当所述插件每次采集所述业务数据的执行时长不大于第二预设阈值时,增加所述插件的采集频率。
可选的,处理器801还用于执行如下操作:
当所述资源消耗大小大于第三预设阈值且所述插件每次采集所述业务数据的执行时长大于第四预设阈值时,降低所述插件的采集频率;
当所述资源消耗大小不大于所述第三预设阈值且所述插件每次采集所述业务数据的执行时长不大于所述第四预设阈值时,增加所述插件的采集频率。
可选的,处理器801还用于执行如下操作:
当所述插件的稳定性大小大于第五预设阈值时,降低所述插件的采集频率。
可选的,处理器801还用于执行如下操作:
根据所述CPU资源消耗大小以及所述内存资源消耗大小,确定所述资源消耗的第一调整指数;
根据所述插件的稳定性大小,确定所述插件的第二调整指数;
根据所述第一调整指数以及所述第二调整指数,确定所述插件的采集频率。
可选的,处理器801还用于执行如下操作:
将所述CPU资源消耗大小除以预设的CPU资源消耗上限值计算得到第一比值、以及将所述内存资源消耗大小除以预设的内存资源消耗上限值计算得到第二比值;
选取所述第一比值和所述第二比值中较小的一个作为所述第一调整指数。
可选的,处理器801还用于执行如下操作:
计算所有插件的稳定性大小的平均值;将所述插件的稳定大小除以所有插件的稳定性大小的平均值,计算得到所述第二调整指数。
可选的,处理器801还用于执行如下操作:
获取所述插件的编写语言类型;
当所述插件的所述编写语言类型为第一语言时,加载动态链接库,从所述动态链接库中获取接口函数的指针;当所述插件的所述编写语言类型为第二语言时,加载虚拟机运行环境,通过所述虚拟机运行环境获取接口函数的指针。
进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中采集框架调度器的操作。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (23)
1.一种数据采集方法,其特征在于,所述方法包括:
当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种;
根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率;
根据调整后的所述采集频率,控制所述插件采集业务数据。
2.如权利要求1所述的方法,其特征在于,所述当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种之前,还包括:
获取所述插件的插件类型;
当所述插件为服务类型的插件时,将所述插件独占一个线程进行运行;当所述插件为周期性采集的插件时,将所述插件加入到插件执行队列中,从所述插件执行队列中周期性调用所述插件。
3.如权利要求1或2所述的方法,其特征在于,所述第二运行状态包括资源消耗大小;
所述根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率包括:
当所述资源消耗大小大于第一预设阈值时,降低所述插件的采集频率;或
当所述资源消耗大小不大于所述第一预设阈值时,增加所述插件的采集频率。
4.如权利要求1或2所述的方法,其特征在于,所述第一运行状态包括所述插件每次采集所述业务数据的执行时长;
所述根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率包括:
当所述插件每次采集所述业务数据的执行时长大于第二预设阈值时,降低所述插件的采集频率;或
当所述插件每次采集所述业务数据的执行时长不大于第二预设阈值时,增加所述插件的采集频率。
5.如权利要求1或2所述的方法,其特征在于,所述第二运行状态包括资源消耗大小,所述第一运行状态包括所述插件每次采集所述业务数据的执行时长;
所述根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率包括:
当所述资源消耗大小大于第三预设阈值且所述插件每次采集所述业务数据的执行时长大于第四预设阈值时,降低所述插件的采集频率;
当所述资源消耗大小不大于所述第三预设阈值且所述插件每次采集所述业务数据的执行时长不大于所述第四预设阈值时,增加所述插件的采集频率。
6.如权利要求1或2所述的方法,其特征在于,所述第一运行状态包括稳定性大小;
所述根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率包括:
当所述插件的稳定性大小大于第五预设阈值时,降低所述插件的采集频率。
7.如权利要求1或2所述的方法,其特征在于,所述第一运行状态包括稳定性大小,所述第二运行状态包括CPU资源消耗大小以及内存资源消耗大小;
所述根据所述第一运行状态和/或所述第二运行状态,调整所述插件的采集频率包括:
根据所述CPU资源消耗大小以及所述内存资源消耗大小,确定所述资源消耗的第一调整指数;
根据所述插件的稳定性大小,确定所述插件的第二调整指数;
根据所述第一调整指数以及所述第二调整指数,确定所述插件的采集频率。
8.如权利要求7所述的方法,其特征在于,所述根据所述CPU资源消耗大小以及所述内存资源消耗大小,确定所述资源消耗的第一调整指数包括:
将所述CPU资源消耗大小除以预设的CPU资源消耗上限值计算得到第一比值、以及将所述内存资源消耗大小除以预设的内存资源消耗上限值计算得到第二比值;
选取所述第一比值和所述第二比值中较小的一个作为所述第一调整指数。
9.如权利要求7所述的方法,其特征在于,所述根据所述插件的稳定性大小,确定所述插件的第二调整指数包括:
计算所有插件的稳定性大小的平均值;
将所述插件的稳定大小除以所有插件的稳定性大小的平均值,计算得到所述第二调整指数。
10.如权利要求1-9任一项所述的方法,其特征在于,所述当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种之前,还包括:
获取所述插件的编写语言类型;
当所述插件的所述编写语言类型为第一语言时,加载动态链接库,从所述动态链接库中获取接口函数的指针;当所述插件的所述编写语言类型为第二语言时,加载虚拟机运行环境,通过所述虚拟机运行环境获取接口函数的指针。
11.一种数据采集装置,其特征在于,所述装置包括:
获取模块,用于当检测到插件运行时,获取所述插件的第一运行状态以及系统资源的第二运行状态中的至少一种;
调整模块,用于根据所述第一运行状态以及所述第二运行状态中的至少一种,调整所述插件的采集频率;
处理模块,用于根据调整后的所述采集频率,控制所述插件采集业务数据。
12.如权利要求11所述的装置,其特征在于,
所述获取模块,还用于获取所述插件的插件类型;
所述处理模块,还用于当所述插件为服务类型的插件时,将所述插件独占一个线程进行运行;当所述插件为周期性采集的插件时,将所述插件加入到插件执行队列中,从所述插件执行队列中周期性调用所述插件。
13.如权利要求11或12所述的装置,其特征在于,所述第二运行状态包括资源消耗大小;
所述调整模块具体用于:
当所述资源消耗大小大于第一预设阈值时,降低所述插件的采集频率;或
当所述资源消耗大小不大于所述第一预设阈值时,增加所述插件的采集频率。
14.如权利要求11或12所述的装置,其特征在于,所述第一运行状态包括所述插件每次采集所述业务数据的执行时长;
所述调整模块具体用于:
当所述插件每次采集所述业务数据的执行时长大于第二预设阈值时,降低所述插件的采集频率;或
当所述插件每次采集所述业务数据的执行时长不大于第二预设阈值时,增加所述插件的采集频率。
15.如权利要求11或12所述的装置,其特征在于,所述第二运行状态包括资源消耗大小,所述第一运行状态包括所述插件每次采集所述业务数据的执行时长;
所述调整模块具体用于:
当所述资源消耗大小大于第三预设阈值且所述插件每次采集所述业务数据的执行时长大于第四预设阈值时,降低所述插件的采集频率;
当所述资源消耗大小不大于所述第三预设阈值且所述插件每次采集所述业务数据的执行时长不大于所述第四预设阈值时,增加所述插件的采集频率。
16.如权利要求11或12所述的装置,其特征在于,所述第一运行状态包括稳定性大小;
所述调整模块具体用于:
当所述插件的稳定性大小大于第五预设阈值时,降低所述插件的采集频率。
17.如权利要求11或12所述的装置,其特征在于,所述第一运行状态包括稳定性大小,所述第二运行状态包括CPU资源消耗大小以及内存资源消耗大小;
所述调整模块具体用于:
根据所述CPU资源消耗大小以及所述内存资源消耗大小,确定所述资源消耗的第一调整指数;
根据所述插件的稳定性大小,确定所述插件的第二调整指数;
根据所述第一调整指数以及所述第二调整指数,确定所述插件的采集频率。
18.如权利要求17所述的装置,其特征在于,
所述调整模块,还用于将所述CPU资源消耗大小除以预设的CPU资源消耗上限值计算得到第一比值、以及将所述内存资源消耗大小除以预设的内存资源消耗上限值计算得到第二比值;
选取所述第一比值和所述第二比值中较小的一个作为所述第一调整指数。
19.如权利要求17所述的装置,其特征在于,
所述调整模块,还用于计算所有插件的稳定性大小的平均值;将所述插件的稳定大小除以所有插件的稳定性大小的平均值,计算得到所述第二调整指数。
20.如权利要求10-19任一项所述的装置,其特征在于,
所述获取模块,还用于获取所述插件的编写语言类型;
所述处理模块,还用于当所述插件的所述编写语言类型为第一语言时,加载动态链接库,从所述动态链接库中获取接口函数的指针;当所述插件的所述编写语言类型为第二语言时,加载虚拟机运行环境,通过所述虚拟机运行环境获取接口函数的指针。
21.一种数据采集设备,其特征在于,包括:存储器、通信总线以及处理器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如权利要求1-10任意一项所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1-10任一项所述的方法。
23.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711325963.9A CN109918190A (zh) | 2017-12-13 | 2017-12-13 | 一种数据采集方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711325963.9A CN109918190A (zh) | 2017-12-13 | 2017-12-13 | 一种数据采集方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109918190A true CN109918190A (zh) | 2019-06-21 |
Family
ID=66958422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711325963.9A Pending CN109918190A (zh) | 2017-12-13 | 2017-12-13 | 一种数据采集方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918190A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166708A (zh) * | 2019-06-13 | 2019-08-23 | Oppo广东移动通信有限公司 | 夜景图像处理方法、装置、电子设备以及存储介质 |
CN110347557A (zh) * | 2019-07-16 | 2019-10-18 | 深圳市网心科技有限公司 | 节点资源监控方法、电子设备、介质及采集方法 |
CN112737972A (zh) * | 2020-12-24 | 2021-04-30 | 北京珞安科技有限责任公司 | 一种数据传输频率确定方法、装置及计算机设备 |
CN112953994A (zh) * | 2020-01-17 | 2021-06-11 | 深圳市明源云科技有限公司 | 数据采集方法、采集装置、终端设备及可读存储介质 |
WO2022012442A1 (zh) * | 2020-07-12 | 2022-01-20 | 华为技术有限公司 | 一种数据采集方法及设备 |
CN115499722A (zh) * | 2022-08-23 | 2022-12-20 | 重庆长安汽车股份有限公司 | 车辆数据采集的熔断控制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236949A (zh) * | 2013-04-27 | 2013-08-07 | 北京搜狐新媒体信息技术有限公司 | 一种服务器集群的监控方法、装置与系统 |
CN104836819A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 动态负载均衡的方法、系统及监控调度设备 |
CN106250305A (zh) * | 2016-08-17 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 云计算环境下监控系统数据采集周期的自适应控制方法 |
CN106357469A (zh) * | 2016-11-16 | 2017-01-25 | 郑州云海信息技术有限公司 | 一种资源监控模式的动态调整方法和装置 |
CN107368016A (zh) * | 2017-09-04 | 2017-11-21 | 云南电网有限责任公司电力科学研究院 | 一种换流站监控系统运行的优化方法及装置 |
-
2017
- 2017-12-13 CN CN201711325963.9A patent/CN109918190A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103236949A (zh) * | 2013-04-27 | 2013-08-07 | 北京搜狐新媒体信息技术有限公司 | 一种服务器集群的监控方法、装置与系统 |
CN104836819A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 动态负载均衡的方法、系统及监控调度设备 |
CN106250305A (zh) * | 2016-08-17 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 云计算环境下监控系统数据采集周期的自适应控制方法 |
CN106357469A (zh) * | 2016-11-16 | 2017-01-25 | 郑州云海信息技术有限公司 | 一种资源监控模式的动态调整方法和装置 |
CN107368016A (zh) * | 2017-09-04 | 2017-11-21 | 云南电网有限责任公司电力科学研究院 | 一种换流站监控系统运行的优化方法及装置 |
Non-Patent Citations (1)
Title |
---|
彭玉柱等: ""基于多线程机制的电力数据采集系统设计与实现"", 《计算机应用与软件》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166708A (zh) * | 2019-06-13 | 2019-08-23 | Oppo广东移动通信有限公司 | 夜景图像处理方法、装置、电子设备以及存储介质 |
CN110166708B (zh) * | 2019-06-13 | 2021-06-11 | Oppo广东移动通信有限公司 | 夜景图像处理方法、装置、电子设备以及存储介质 |
CN110347557A (zh) * | 2019-07-16 | 2019-10-18 | 深圳市网心科技有限公司 | 节点资源监控方法、电子设备、介质及采集方法 |
CN112953994A (zh) * | 2020-01-17 | 2021-06-11 | 深圳市明源云科技有限公司 | 数据采集方法、采集装置、终端设备及可读存储介质 |
CN112953994B (zh) * | 2020-01-17 | 2023-04-07 | 深圳市明源云科技有限公司 | 数据采集方法、采集装置、终端设备及可读存储介质 |
WO2022012442A1 (zh) * | 2020-07-12 | 2022-01-20 | 华为技术有限公司 | 一种数据采集方法及设备 |
CN112737972A (zh) * | 2020-12-24 | 2021-04-30 | 北京珞安科技有限责任公司 | 一种数据传输频率确定方法、装置及计算机设备 |
CN112737972B (zh) * | 2020-12-24 | 2023-05-26 | 北京珞安科技有限责任公司 | 一种数据传输频率确定方法、装置及计算机设备 |
CN115499722A (zh) * | 2022-08-23 | 2022-12-20 | 重庆长安汽车股份有限公司 | 车辆数据采集的熔断控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918190A (zh) | 一种数据采集方法及相关设备 | |
US11106579B2 (en) | System and method to manage and share managed runtime memory for java virtual machine | |
US9720740B2 (en) | Resource management in MapReduce architecture and architectural system | |
US8970607B2 (en) | Run-time allocation of functions to a hardware accelerator | |
US8898674B2 (en) | Memory databus utilization management system and computer program product | |
US9858120B2 (en) | Modifying memory space allocation for inactive tasks | |
US20140373010A1 (en) | Intelligent resource management for virtual machines | |
US11489735B2 (en) | Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium | |
JP5404562B2 (ja) | リソース使用量に基づいて論理区画コンピュータシステムのリソースを管理するためのシステム及び方法 | |
US9753851B2 (en) | Multi-section garbage collection system including real-time garbage collection scheduling | |
US20170147398A1 (en) | Estimating job start times on workload management systems | |
CN115269108A (zh) | 一种数据处理方法、装置及设备 | |
US8862786B2 (en) | Program execution with improved power efficiency | |
US9703614B2 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
US10120602B2 (en) | Device and method for determining data placement destination, and program recording medium | |
US10587527B1 (en) | Systems and methods for apportioning bandwidth in storage systems | |
CN114168294A (zh) | 编译资源分配方法、装置、电子设备及存储介质 | |
CN115904644A (zh) | 任务调度方法、电子设备和计算机程序产品 | |
CN112559052B (zh) | 一种指令集调用方法、装置、终端及存储介质 | |
US8745207B2 (en) | System and method for managing computer applications running among computing systems based on their resource usage volatility | |
US11621919B2 (en) | Dynamic load balancing in reactive systems | |
Cattermole et al. | An automated approach to cloud performance benchmarking | |
CN103460183B (zh) | 控制vles处理器架构内的提前提取的方法和装置 | |
CN111414284A (zh) | 使用保护存储的对象加载自检 | |
CN114691399A (zh) | 应用程序卡顿数据获取方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190621 |
|
WD01 | Invention patent application deemed withdrawn after publication |