CN112817835A - 性能数据获取方法、装置、处理器及电子装置 - Google Patents
性能数据获取方法、装置、处理器及电子装置 Download PDFInfo
- Publication number
- CN112817835A CN112817835A CN202110119641.9A CN202110119641A CN112817835A CN 112817835 A CN112817835 A CN 112817835A CN 202110119641 A CN202110119641 A CN 202110119641A CN 112817835 A CN112817835 A CN 112817835A
- Authority
- CN
- China
- Prior art keywords
- performance data
- task
- data
- task scheduling
- storage system
- 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 63
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000009530 blood pressure measurement Methods 0.000 claims abstract description 18
- 230000001960 triggered effect Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 17
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 11
- 230000002085 persistent effect Effects 0.000 claims description 10
- 238000002955 isolation Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种性能数据获取方法、装置、处理器及电子装置。该方法包括:获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理多个数据拉取任务;控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。本发明解决了相关技术中所提供的性能数据采集方式缺乏扩展性、隔离性、可靠性、且处理能力受限的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种性能数据获取方法、装置、处理器及电子装置。
背景技术
目前,相关技术中主要通过Spy程序内部的线程池来调度采集任务。Spy程序会针对每个在云压测平台上运行的压测任务执行监控数据拉取操作。由于压测任务是并发执行的任务,上述数据拉取操作也是并发执行的操作,因此,压测任务的数量越多,需要同时运行的数据拉取进程也会越多。在通常情况下,每个压测任务会按照预设周期(例如:每分钟)产生预设数量(例如:3个)的采集任务,其分别对应服务器性能数据、被监测的游戏数据库性能数据以及运行机器人的容器性能数据。全部采集任务均会通过线程池调度执行。
然而,现有的性能数据采集方式通常会存在以下技术缺陷:
(1)可扩展性差:由于线程池设置于Spy程序内部,缺乏可扩展性。
(2)处理能力上限有限:由于线程池的可用资源十分有限,因此,可并行支持的任务数量会受到较为明显的限制。
(3)可靠性差:线程池容易发生卡死现象。例如:每个压测任务每分钟都会向线程池中放入3*n个压测任务(其对应服务器性能数据、被监测的游戏数据库性能数据以及运行机器人的容器性能数据的监控数据拉取操作,n为被监测的实体数量)。在并发量高并且被监控服务器的群组较为庞大时,会出现任务数量非常多以及单个任务耗时长的情形。在此种情形下,线程池的队列中会堆积大量任务,进而发生卡死现象。
(4)隔离性差:如果特定任务影响到线程池的正常使用,则剩余任务都将会受到不同程度的影响。例如:当上述特定任务需要产生大量的数据拉取请求时,便会发生卡死现象,从而剩余任务都将会受到不同程度的影响。
(5)影响平台:由于线程池设置于Spy程序内部,因此线程池负载异常会影响Spy程序自身的处理能力。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种性能数据获取方法、装置、处理器及电子装置,以至少解决相关技术中所提供的性能数据采集方式缺乏扩展性、隔离性、可靠性、且处理能力受限的技术问题。
根据本发明其中一实施例,提供了一种性能数据获取方法,包括:
获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动多个数据拉取任务;基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理由压测任务触发的多个数据拉取任务;控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。
可选地,控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据包括:为多个任务调度从节点中的每个任务调度从节点分配第一参数集合,其中,第一参数集合至少包括:任务标识;控制多个任务调度从节点中的每个任务调度从节点基于任务标识从第一数据库存储系统获取第二参数集合,其中,第一数据库存储系统为临时性数据存储系统,第二参数集合包括:监测目标信息;控制多个任务调度从节点中的每个任务调度从节点基于监测目标信息获取目标性能数据。
可选地,上述方法还包括:在多个任务调度从节点中的每个任务调度从节点执行对应数据拉取任务的过程中,将目标性能数据缓存至第一数据库存储系统。
可选地,将目标性能数据缓存至第一数据库存储系统包括:通过管道方式将目标性能数据缓存至第一数据库存储系统,其中,管道方式用于设置每个批次所包含的写入命令的数量,每个批次所包含的写入命令用于将目标性能数据写入第一数据库存储系统。
可选地,在第一数据库存储系统中分别为不同指标的性能数据分配不同的键,并且当相同指标的性能数据的数据量超过预设阈值时,为相同指标的性能数据中超过预设阈值的部分性能数据分配新的键。
可选地,上述方法还包括:在多个任务调度从节点中的每个任务调度从节点结束执行对应数据拉取任务时,将第一数据库存储系统中缓存的目标性能数据存储至第二数据库存储系统,其中,第二数据库存储系统为持久化数据存储系统。
可选地,上述方法还包括:清除第一数据库存储系统中缓存的目标性能数据。
可选地,上述方法还包括:通过管道方式将多个数据拉取任务分配至多个任务调度从节点。
根据本发明其中一实施例,还提供了一种性能数据获取装置,包括:
获取模块,用于获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;启动模块,用于基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理多个数据拉取任务;处理模块,用于控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。
可选地,处理模块,用于为多个任务调度从节点中的每个任务调度从节点分配第一参数集合,其中,第一参数集合至少包括:任务标识;控制多个任务调度从节点中的每个任务调度从节点基于任务标识从第一数据库存储系统获取第二参数集合,其中,第一数据库存储系统为临时性数据存储系统,第二参数集合包括:监测目标信息;控制多个任务调度从节点中的每个任务调度从节点基于监测目标信息获取目标性能数据。
可选地,上述装置还包括:第一存储模块,用于在多个任务调度从节点中的每个任务调度从节点执行对应数据拉取任务的过程中,将目标性能数据缓存至第一数据库存储系统。
可选地,第一存储模块,用于通过管道方式将目标性能数据缓存至第一数据库存储系统,其中,管道方式用于设置每个批次所包含的写入命令的数量,每个批次所包含的写入命令用于将目标性能数据写入第一数据库存储系统。
可选地,在第一数据库存储系统中分别为不同指标的性能数据分配不同的键,并且当相同指标的性能数据的数据量超过预设阈值时,为相同指标的性能数据中超过预设阈值的部分性能数据分配新的键。
可选地,上述装置还包括:第二存储模块,用于在多个任务调度从节点中的每个任务调度从节点结束执行对应数据拉取任务时,将第一数据库存储系统中缓存的目标性能数据存储至第二数据库存储系统,其中,第二数据库存储系统为持久化数据存储系统。
可选地,上述装置还包括:清除模块,用于清除第一数据库存储系统中缓存的目标性能数据。
可选地,上述装置还包括:分配模块,用于通过管道方式将多个数据拉取任务分配至多个任务调度从节点。
根据本发明其中一实施例,还提供了一种非易失性存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的性能数据获取方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序被设置为运行时执行上述任一项中的性能数据获取方法。
根据本发明其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的性能数据获取方法。
在本发明至少部分实施例中,采用获取数据拉取任务启动请求,该数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务,以及基于数据拉取任务启动请求启动多个任务调度从节点,该多个任务调度从节点用于分布式处理多个数据拉取任务的方式,通过控制多个任务调度从节点执行多个数据拉取任务以获取目标性能数据,达到了通过扩展多个任务调度从节点的数量灵活调整数据拉取任务的并发处理上限的目的,从而实现了提升性能数据采集方式的扩展性、隔离性、可靠性以及并发处理能力的技术效果,进而解决了相关技术中所提供的性能数据采集方式缺乏扩展性、隔离性、可靠性、且处理能力受限的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的性能数据获取方法的流程图;
图2是根据本发明其中一可选实施例的Spy技术架构示意图;
图3是根据本发明其中一实施例的性能数据获取装置的结构框图;
图4是根据本发明其中一可选实施例的性能数据获取装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
(1)Redis是一种基于Key-Value键值对形式的数据库存储系统,其支持的数据存储类型可以包括但不限于:字符串、列表、集合、有序集合等。为了确保数据存取效率,数据通常缓存在内存中提供服务。
(2)Jenkins是一种任务调度平台,其允许可扩展的持续集成、持续交付、持续部署。
(3)Monitor是一种提供性能数据接口的平台。
(4)OceanBase是一种分布式关系数据库。
(5)MongoDB是一种面向文档的数据库。文档即为键值对的一个有序集。
(6)Pipeline可以一次性发送多条命令并在多条命令执行完毕之后一次性返回处理结果。
根据本发明其中一实施例,提供了一种性能数据获取方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD等终端设备。移动终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输设备、输入输出设备以及显示设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的性能数据获取方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的性能数据获取方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示设备可以例如触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本实施例中提供了一种运行于上述移动终端的性能数据获取方法,图1是根据本发明其中一实施例的性能数据获取方法的流程图,适用于高并发拉取性能数据的实际应用场景,如图1所示,该方法包括如下步骤:
步骤S10,获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;
步骤S11,基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理多个数据拉取任务;
上述多个任务调度从节点可以为Jenkins从节点。Jenkins可以安装在一台主机上。虽然全部任务均可在这台机器上运行,但是如果这台机器运行大量任务,则很有可能会形成不同任务之间的等待。为了克服该技术缺陷,可以将安装Jenkins的主机称为主(master)节点,而其余负责执行任务的机器便属于master节点的从(slave)节点。
步骤S12,控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。
在一个可选实施例中,可以通过管道(Pipeline)方式将多个数据拉取任务分配至多个任务调度从节点。通过设置多个任务调度从节点可以将每个数据拉取任务的性能数据拉取过程设置为完全隔离状态。通过数据拉取任务分离使得每个数据拉取任务的性能数据拉取过程处于并行执行状态,即,每个数据拉取任务的性能数据拉取过程均能够获取更加独立、更加充足的处理资源,并且在单一数据拉取任务出现问题时,其余数据拉取任务并不会受到影响。另外,通过扩展Jenkins从节点数量即可增加数据拉取任务的并发处理上限。
通过上述步骤,可以采用获取数据拉取任务启动请求,该数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务,以及基于数据拉取任务启动请求启动多个任务调度从节点,该多个任务调度从节点用于分布式处理多个数据拉取任务的方式,通过控制多个任务调度从节点执行多个数据拉取任务以获取目标性能数据,达到了通过扩展多个任务调度从节点的数量灵活调整数据拉取任务的并发处理上限的目的,从而实现了提升性能数据采集方式的扩展性、隔离性、可靠性以及并发处理能力的技术效果,进而解决了相关技术中所提供的性能数据采集方式缺乏扩展性、隔离性、可靠性、且处理能力受限的技术问题。
可选地,在步骤S12中,控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据可以包括以下执行步骤:
步骤S120,为多个任务调度从节点中的每个任务调度从节点分配第一参数集合,其中,第一参数集合至少包括:任务标识;
步骤S121,控制多个任务调度从节点中的每个任务调度从节点基于任务标识从第一数据库存储系统获取第二参数集合,其中,第一数据库存储系统为临时性数据存储系统,第二参数集合包括:监测目标信息;
步骤S122,控制多个任务调度从节点中的每个任务调度从节点基于监测目标信息获取目标性能数据。
基于Jenkins的全自动任务调度功能可以配置得到一套分布式数据采集系统。在接收到数据拉取任务启动请求时,该分布式数据采集系统会自动启动多个Jenkins slave节点并为多个Jenkins slave节点中的每个Jenkins slave节点分配第一参数集合,其可以包括但不限于:
(1)JOB_ID(即上述任务标识),用于触发每个Jenkins slave节点从第一数据库存储系统(例如:Redis)中获取相应任务的第二参数集合,该第二参数集合包括:监测目标信息,例如:服务器实体、数据库实体等,用来查询数据;
(2)TAG,用于指定运行的Jenkins slave节点;
(3)GIT_URL/GIT_BRANCH,用于拉取最新的数据采集代码;
(4)DEBUG,用于指示是否进入debug模式。
每个Jenkins slave节点通过执行Jenkins任务来持续采集相应的目标性能数据,例如:根据上述JOB_ID获取到的游戏服务器实体的性能数据。
可选地,上述方法还可以包括以下执行步骤:
步骤S13,在多个任务调度从节点中的每个任务调度从节点执行对应数据拉取任务的过程中,将目标性能数据缓存至第一数据库存储系统。
Spy程序是采用SpringBoot、Redis、Jenkins实现的一套数据采集服务,通过分布式爬取目标服务器的性能数据并缓存至Redis中,由此可以实现每秒数十万次并发的数据拉取与缓存,以达到高效的读写效率,从而满足用户对性能数据的读取需求。Spy程序分布式运行在Jenkins的各个slave节点中。
在一个可选实施例中,可以通过管道方式将目标性能数据缓存至第一数据库存储系统,其中,管道方式用于设置每个批次所包含的写入命令的数量,每个批次所包含的写入命令用于将目标性能数据写入第一数据库存储系统。
相关技术中所采集到的性能数据并不会写入Redis,而是在拉取到性能数据之后直接存储至MongoDB,其读写效率明显低于Redis并且会对数据库造成较大的压力(即持续执行update操作,耗时较长)。Redis的写入操作可以通过Pipeline来提高效率,其相当于将多个写入命令整理到一个批次中并一次性发送至Redis,由此节省多次连接消耗。然而,如果一个Pipeline中包含的写入命令过多,反而会降低命令的处理效率,因此如何控制每个Pipeline中所包含的命令数量需要不断优化。为此,在一个可选实施例中,针对Spy程序中的接口与Redis数据的写入进行了优化,将写入Redis的Pipeline批次控制在1000个写入命令,从而最大化地提高数据写入效率。
可选地,在第一数据库存储系统中分别为不同指标的性能数据分配不同的键,并且当相同指标的性能数据的数据量超过预设阈值时,为相同指标的性能数据中超过预设阈值的部分性能数据分配新的键。
通过将Redis设置为采集到的性能数据与数据库持久化存储之间的高性能缓存,在每个性能数据采集任务运行期间,采集到的性能数据均会在Redis中进行缓存,以避免出现性能数据采集任务在执行过程中需要用户频繁地观察性能数据以及专家系统(负责通过每分钟对数据拉取任务的各项性能数据进行检查,以帮助用户自动化地发现压力指标异常)定时检测所导致的数据库频繁读写。
在一个可选实施例中,在Redis中为了避免单个键(Key)对应指标的目标性能数据的数据量过大造成Redis的性能下降,可以采用分Key策略尽可能地将单个Key所对应指标的目标性能数据的数据量控制在合理范围内。例如:一台服务器中当前运行有game1这个进程,而game1进程又存在处理器性能指标与存储器性能指标,因此,在Redis中便会存在两个Key分别代表这个进程中处理器性能指标所对应的指标数据与存储器性能指标所对应的指标数据。并且,在特定性能指标的数据量持续增加到6个小时以上时,还会为这个性能指标分配一个新的Key,以避免单个Key对应过大的数据量。
可选地,上述方法还可以包括以下执行步骤:
步骤S14,在多个任务调度从节点中的每个任务调度从节点结束执行对应数据拉取任务时,将第一数据库存储系统中缓存的目标性能数据存储至第二数据库存储系统,其中,第二数据库存储系统为持久化数据存储系统。
上述第二数据库存储系统可以是MongoDB或者OceanBase。在每个数据拉取任务结束之后,分布式数据采集系统会停止执行上述Jenkins任务,并将采集到的性能数据转存至MongoDB或者OceanBase,以持久化存储采集到的性能数据。
可选地,上述方法还可以包括以下执行步骤:
步骤S15,清除第一数据库存储系统中缓存的目标性能数据。
在性能数据采集任务执行完毕之后,Spy程序会将全部性能数据持久化至MongoDB或OceanBase中以确保数据可靠性和可回溯性,在Redis中暂存的目标性能数据会在经过一定时长之后被清除,以防止Redis占用过高内存并确保Redis中数据存取的高效性。
下面将结合图2所示的可选实施例对上述可选实施过程做进一步地详细描述。
图2是根据本发明其中一可选实施例的Spy技术架构示意图,如图2所示,通过将拉取不同指标性能数据的压力从线程池中剥离到Jenkins任务中,Spy程序不再具有任何数据拉取压力。而且,还通过将数据持久化压力剥离到一个消费者中,并由消费者负责将Redis中缓存的性能数据持久化到MongoDB或OceanBase中。消费者属于一项微服务,其具备独立扩展性。因此,Spy程序只需提供访问数据的接口即可。
通过Pipeline方式将性能数据采集任务分配到Jenkins的各个slave节点。各个性能数据采集任务之间的处理过程完全并行而不使用公共内存资源,从而避免相互干扰。任何一个性能数据采集任务出现异常并不会影响到其余性能数据采集任务。通过将单个节点上的并发任务总数控制在一个合理范围内,可以确保每个性能数据采集任务均能够分配到各自所需的处理器资源和内存资源。利用Jenkins可以随时增加或减少slave节点的特点,灵活、动态地调整Spy程序的性能数据采集任务处理并发量,以避免资源浪费,由此解决了相关技术中所提供的性能数据采集方式存在的并发量低、隔离程度低、容错率低的问题。
因此,从可扩展性角度而言,通过增加Redis与Jenkins的节点数量,Spy程序是可以实现无限横向扩展。Spy程序的性能瓶颈在于:Redis的每秒读写并发上限以及能够同时存在的Jenkins任务数量。由于Spy程序的性能瓶颈并未存在于代码和架构的层面,因此通过扩展物理资源可以增加性能数据爬取的并发量,由此通过Spy技术架构可以灵活地应对快速增加的数据拉取任务数量。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种性能数据获取装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明其中一实施例的性能数据获取装置的结构框图,如图3所示,该装置包括:获取模块10,用于获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;启动模块20,用于基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理多个数据拉取任务;处理模块30,用于控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。
可选地,处理模块30,用于为多个任务调度从节点中的每个任务调度从节点分配第一参数集合,其中,第一参数集合至少包括:任务标识;控制多个任务调度从节点中的每个任务调度从节点基于任务标识从第一数据库存储系统获取第二参数集合,其中,第一数据库存储系统为临时性数据存储系统,第二参数集合包括:监测目标信息;控制多个任务调度从节点中的每个任务调度从节点基于监测目标信息获取目标性能数据。
可选地,图4是根据本发明其中一可选实施例的性能数据获取装置的结构框图,如图4所示,该装置除包括图3所示的所有模块外,上述装置还包括:第一存储模块40,用于在多个任务调度从节点中的每个任务调度从节点执行对应数据拉取任务的过程中,将目标性能数据缓存至第一数据库存储系统。
可选地,第一存储模块40,用于通过管道方式将目标性能数据缓存至第一数据库存储系统,其中,管道方式用于设置每个批次所包含的写入命令的数量,每个批次所包含的写入命令用于将目标性能数据写入第一数据库存储系统。
可选地,在第一数据库存储系统中分别为不同指标的性能数据分配不同的键,并且当相同指标的性能数据的数据量超过预设阈值时,为相同指标的性能数据中超过预设阈值的部分性能数据分配新的键。
可选地,如图4所示,该装置除包括图3所示的所有模块外,上述装置还包括:第二存储模块50,用于在多个任务调度从节点中的每个任务调度从节点结束执行对应数据拉取任务时,将第一数据库存储系统中缓存的目标性能数据存储至第二数据库存储系统,其中,第二数据库存储系统为持久化数据存储系统。
可选地,如图4所示,该装置除包括图3所示的所有模块外,上述装置还包括:清除模块60,用于清除第一数据库存储系统中缓存的目标性能数据。
可选地,如图4所示,该装置除包括图3所示的所有模块外,上述装置还包括:分配模块70,用于通过管道方式将多个数据拉取任务分配至多个任务调度从节点。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;
S2,基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理多个数据拉取任务;
S3,控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。
可选地,在本实施例中,上述非易失性存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取数据拉取任务启动请求,其中,数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;
S2,基于数据拉取任务启动请求,启动多个任务调度从节点,其中,多个任务调度从节点用于分布式处理多个数据拉取任务;
S3,控制多个任务调度从节点执行多个数据拉取任务,获取目标性能数据。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种性能数据获取方法,其特征在于,包括:
获取数据拉取任务启动请求,其中,所述数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;
基于所述数据拉取任务启动请求,启动多个任务调度从节点,其中,所述多个任务调度从节点用于分布式处理所述多个数据拉取任务;
控制所述多个任务调度从节点执行所述多个数据拉取任务,获取目标性能数据。
2.根据权利要求1所述的性能数据获取方法,其特征在于,控制所述多个任务调度从节点执行所述多个数据拉取任务,获取所述目标性能数据包括:
为所述多个任务调度从节点中的每个任务调度从节点分配第一参数集合,其中,所述第一参数集合至少包括:任务标识;
控制所述多个任务调度从节点中的每个任务调度从节点基于所述任务标识从第一数据库存储系统获取第二参数集合,其中,所述第一数据库存储系统为临时性数据存储系统,所述第二参数集合包括:监测目标信息;
控制所述多个任务调度从节点中的每个任务调度从节点基于所述监测目标信息获取所述目标性能数据。
3.根据权利要求2所述的性能数据获取方法,其特征在于,所述方法还包括:
在所述多个任务调度从节点中的每个任务调度从节点执行对应数据拉取任务的过程中,将所述目标性能数据缓存至所述第一数据库存储系统。
4.根据权利要求3所述的性能数据获取方法,其特征在于,将所述目标性能数据缓存至所述第一数据库存储系统包括:
通过管道方式将所述目标性能数据缓存至所述第一数据库存储系统,其中,所述管道方式用于设置每个批次所包含的写入命令的数量,每个批次所包含的写入命令用于将所述目标性能数据写入所述第一数据库存储系统。
5.根据权利要求3所述的性能数据获取方法,其特征在于,在所述第一数据库存储系统中分别为不同指标的性能数据分配不同的键,并且当相同指标的性能数据的数据量超过预设阈值时,为所述相同指标的性能数据中超过所述预设阈值的部分性能数据分配新的键。
6.根据权利要求3所述的性能数据获取方法,其特征在于,所述方法还包括:
在所述多个任务调度从节点中的每个任务调度从节点结束执行对应数据拉取任务时,将所述第一数据库存储系统中缓存的所述目标性能数据存储至第二数据库存储系统,其中,所述第二数据库存储系统为持久化数据存储系统。
7.根据权利要求6所述的性能数据获取方法,其特征在于,所述方法还包括:
清除所述第一数据库存储系统中缓存的所述目标性能数据。
8.根据权利要求1所述的性能数据获取方法,其特征在于,所述方法还包括:
通过管道方式将所述多个数据拉取任务分配至所述多个任务调度从节点。
9.一种性能数据获取装置,其特征在于,包括:
获取模块,用于获取数据拉取任务启动请求,其中,所述数据拉取任务启动请求用于请求启动由压测任务触发的多个数据拉取任务;
启动模块,用于基于所述数据拉取任务启动请求,启动多个任务调度从节点,其中,所述多个任务调度从节点用于分布式处理所述多个数据拉取任务;
处理模块,用于控制所述多个任务调度从节点执行所述多个数据拉取任务,获取目标性能数据。
10.一种非易失性存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的性能数据获取方法。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至8任一项中所述的性能数据获取方法。
12.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的性能数据获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119641.9A CN112817835A (zh) | 2021-01-28 | 2021-01-28 | 性能数据获取方法、装置、处理器及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110119641.9A CN112817835A (zh) | 2021-01-28 | 2021-01-28 | 性能数据获取方法、装置、处理器及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817835A true CN112817835A (zh) | 2021-05-18 |
Family
ID=75859922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110119641.9A Pending CN112817835A (zh) | 2021-01-28 | 2021-01-28 | 性能数据获取方法、装置、处理器及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817835A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312223A (zh) * | 2021-06-04 | 2021-08-27 | 深圳市腾讯信息技术有限公司 | 一种压测方法、装置及调度设备 |
CN113852621A (zh) * | 2021-09-18 | 2021-12-28 | 中汽创智科技有限公司 | 一种基于Jenkins服务器的许可信息确定方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376015A (zh) * | 2018-10-23 | 2019-02-22 | 苏州思必驰信息科技有限公司 | 用于任务调度系统的日志阻塞解决方法及系统 |
CN111522641A (zh) * | 2020-04-21 | 2020-08-11 | 北京嘀嘀无限科技发展有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111580990A (zh) * | 2020-05-08 | 2020-08-25 | 中国建设银行股份有限公司 | 一种任务调度方法、调度节点、集中配置服务器及系统 |
US20200351090A1 (en) * | 2019-05-02 | 2020-11-05 | Shopify Inc. | Systems and methods for associating a user with a task executed in a computing system |
-
2021
- 2021-01-28 CN CN202110119641.9A patent/CN112817835A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376015A (zh) * | 2018-10-23 | 2019-02-22 | 苏州思必驰信息科技有限公司 | 用于任务调度系统的日志阻塞解决方法及系统 |
US20200351090A1 (en) * | 2019-05-02 | 2020-11-05 | Shopify Inc. | Systems and methods for associating a user with a task executed in a computing system |
CN111522641A (zh) * | 2020-04-21 | 2020-08-11 | 北京嘀嘀无限科技发展有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111580990A (zh) * | 2020-05-08 | 2020-08-25 | 中国建设银行股份有限公司 | 一种任务调度方法、调度节点、集中配置服务器及系统 |
Non-Patent Citations (1)
Title |
---|
佚名: "使用Pipeline管道技术快速写入百万级别缓存数据", 《HTTPS://BLOG.CSDN.NET/JQC874789596/ARTICLE/DETAILS/82659381》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312223A (zh) * | 2021-06-04 | 2021-08-27 | 深圳市腾讯信息技术有限公司 | 一种压测方法、装置及调度设备 |
CN113312223B (zh) * | 2021-06-04 | 2022-12-09 | 深圳市腾讯信息技术有限公司 | 一种压测方法、装置及调度设备 |
CN113852621A (zh) * | 2021-09-18 | 2021-12-28 | 中汽创智科技有限公司 | 一种基于Jenkins服务器的许可信息确定方法、装置及存储介质 |
CN113852621B (zh) * | 2021-09-18 | 2023-10-31 | 中汽创智科技有限公司 | 一种基于Jenkins服务器的许可信息确定方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
KR102206364B1 (ko) | 메모리 리클레임 방법 및 장치 | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
CN105786405B (zh) | 一种在线升级方法、装置及系统 | |
CN104268019B (zh) | 一种软件运行方法、装置及终端 | |
CN101918913A (zh) | 自动精简配置存储设备上的存储收回 | |
JP2012094030A (ja) | 計算機システム及び処理制御方法 | |
CN112817835A (zh) | 性能数据获取方法、装置、处理器及电子装置 | |
CN103795804A (zh) | 存储资源调度方法及存储计算系统 | |
CN101968750A (zh) | 计算机系统及其工作方法 | |
CN110740155B (zh) | 分布式系统中的请求处理方法及装置 | |
WO2020133995A1 (zh) | 副本部署方法、云服务器及存储介质 | |
CN109600430A (zh) | 一种数据管理方法、系统及电子设备和存储介质 | |
CN113254222B (zh) | 固态硬盘的任务分配方法、系统、电子设备及存储介质 | |
CN104216698A (zh) | 一种注册网页方法及相关装置 | |
CN115525631A (zh) | 数据库数据迁移方法、装置、设备、存储介质 | |
JP5740338B2 (ja) | 仮想環境運用支援システム | |
CN112084173A (zh) | 数据迁移方法和装置及存储介质 | |
CN112437125B (zh) | 信息并发处理方法、装置、电子设备及存储介质 | |
CN103729417A (zh) | 一种数据扫描的方法及装置 | |
CN106815318B (zh) | 一种时序数据库的集群化方法及系统 | |
CN109324877A (zh) | 数据访问的方法及服务器 | |
CN111158595A (zh) | 企业级异构存储资源调度方法及系统 | |
CN112817687A (zh) | 一种数据同步方法和装置 | |
CN114945026A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210518 |