CN114510322A - 一种业务集群的压测控制方法、装置、计算机设备及介质 - Google Patents
一种业务集群的压测控制方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN114510322A CN114510322A CN202210143065.6A CN202210143065A CN114510322A CN 114510322 A CN114510322 A CN 114510322A CN 202210143065 A CN202210143065 A CN 202210143065A CN 114510322 A CN114510322 A CN 114510322A
- Authority
- CN
- China
- Prior art keywords
- service
- current
- service node
- pressure measurement
- concurrency
- 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
- 238000009530 blood pressure measurement Methods 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012360 testing method Methods 0.000 claims abstract description 97
- 230000009467 reduction Effects 0.000 claims abstract description 68
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 11
- 238000002360 preparation method Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/24—Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种业务集群的压测控制方法、装置、计算机设备及介质,方法包括:确定并部署针对当前业务集群的目标服务节点;获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;根据测试结果确定当前业务集群的运行状态;基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。由于本申请通过压测后服务节点的运行状态和预设Kubernetes的API对目标服务节点进行动态的缩容或扩容,使得只需在压测准备阶段进行少量的用户操作即可实现后续压测流程的完全自动化,进而节约了人力成本,提高了业务集群的压力测试效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种业务集群的压测控制方法、装置、计算机设备及介质。
背景技术
近年来,计算机软件发展的如火如荼,随着用户需求的逐渐增多,集群应运而生,集群是一组相互独立的系统业务构成的一个组。随着互联网技术的快速发展和广泛应用,目前许多的网络业务的处理需要集群处理来满足性能的需求,其中每个集群都有自己的最大访问量,因此在系统业务上线之前,需要对集群进行压力测试,根据测试结果部署服务器可以避免出现网络业务系统宕机。
在现有的压力测试中,通过对业务集群不断增加并发数的方式进行多轮压测,在多轮压测中当并发数不断增加时,业务集群对应的系统服务的节点数也需要同步增加。由于该过程需要人工进行操作完成,而当压测结束后同样需要人工手动释放节点,从而增加了人力成本。同时也有自动压测方案,目前自动压测方案是基于内存或者cpu等指标进行的,该过程需要提前准备好服务节点,由于实际压测中服务节点是动态增加,从而导致压测数据出现偏差,降低了压测的准确率。
发明内容
基于此,有必要针对机器理解自然语言的准确度低的问题,提供一种业务集群的压测控制方法、装置、计算机设备及介质。
一种业务集群的压测控制方法,方法包括:确定并部署针对当前业务集群的目标服务节点;获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;根据测试结果确定当前业务集群的运行状态;基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
在其中一个实施例中,确定并部署针对当前业务集群的目标服务节点,包括:接收对当前业务集群确定的初始压测并发量;根据初始压测并发量计算当前业务集群所需部署的实际服务节点数量;调用Kubernetes工具提供的服务部署API;根据实际服务节点数量和服务部署API对当前业务集群部署服务节点,得到目标服务节点。
在其中一个实施例中,根据实际服务节点数量和服务部署API对当前业务集群部署服务节点,包括:识别服务部署API中服务节点标识符;将服务节点标识符和实际服务节点数量进行关联,得到最终的目标服务部署API;执行目标服务部署API对应的功能函数,以对当前业务集群部署服务节点。
在其中一个实施例中,根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,包括:初始化预设压测脚本;从初始化后的压测脚本中识别出服务地址标识符;加载针对当前业务集群设置的服务地址创建组件;根据当前并发量和服务地址创建组件创建多个目标服务地址;将服务地址标识符与多个目标服务地址关联后,得到关联地址的压测脚本;执行关联地址的压测脚本,生成测试结果。
在其中一个实施例中,服务地址创建组件包括标识符构建单元、并发量转换单元以及地址拼接单元;根据当前并发量和服务地址创建组件创建多个目标服务地址,包括:标识符构建单元根据预设固定标识符创建服务器标识符;并发量转换单元根据当前并发量计算出所需的多个虚拟访问地址;地址拼接单元将服务器标识符与多个虚拟访问地址进行拼接后,生成多个目标服务地址。
在其中一个实施例中,基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点,包括:当运行状态为异常状态时,计算出待扩充的服务节点数量;根据待扩充的服务节点数量和Kubernetes工具提供的扩容API对目标服务节点进行动态扩充,得到扩容后的服务节点;或者,当运行状态为正常状态时,计算出待缩减的服务节点数量;根据待缩减的服务节点数量和Kubernetes工具提供的缩容API对目标服务节点进行动态缩减,得到缩容后的服务节点。
在其中一个实施例中,方法还包括:确定当前并发量的并发步长;将并发步长和预设并发量系数作积后,生成目标并发量;根据目标并发量和预设压测脚本,对缩容或扩容后的服务节点进行压测,生成压测结果;当目标并发量到达最大预设峰值且压测结果的状态正常时,根据缩容或扩容后的服务节点生成压测报告。
一种业务集群的压测控制装置,装置包括:服务节点部署模块,用于确定并部署针对当前业务集群的目标服务节点;测试结果生成模块,用于获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;运行状态确定模块,用于根据测试结果确定当前业务集群的运行状态;服务节点动态调整模块,用于基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述业务集群的压测控制方法的步骤。
一种存储有计算机可读指令的介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述业务集群的压测控制方法的步骤。
上述业务集群的压测控制方法、装置、设备和介质,业务集群的压测控制装置首先确定并部署针对当前业务集群的目标服务节点,然后获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,再根据测试结果确定当前业务集群的运行状态,最后基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。由于本申请通过压测后服务节点的运行状态和预设Kubernetes的API对目标服务节点进行动态的缩容或扩容,使得只需在压测准备阶段进行少量的用户操作即可实现后续压测流程的完全自动化,进而节约了人力成本,提高了业务集群的压力测试效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请一个实施例中提供的业务集群的压测控制方法的实施环境图;
图2为本申请一个实施例中计算机设备的内部结构示意图;
图3为本申请一个实施例中提供的业务集群的压测控制方法的方法示意图;
图4是本申请实施例提供的一种业务集群的压测控制装置的装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中提供的业务集群的压测控制方法的实施环境图,如图1所示,在该实施环境中,包括服务端110以及客户端120。
服务端110可以为服务器,该服务器具体可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,例如为部署当前业务集群以及服务节点的服务器设备。当需要进行业务集群的压测控制时,服务端110接收来自客户端120的压测指令,并基于压测指令确定并部署针对当前业务集群的目标服务节点,服务端110获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,服务端110根据测试结果确定当前业务集群的运行状态,服务端110基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
需要说明的是,客户端120可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。服务端110以及客户端120可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2为一个实施例中计算机设备的内部结构示意图。如图2所示,该计算机设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该计算机设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种业务集群的压测控制方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种业务集群的压测控制方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。
下面将结合附图3,对本申请实施例提供的业务集群的压测控制方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的业务集群的压测控制装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
请参见图3,为本申请实施例提供了一种业务集群的压测控制方法的流程示意图。如图3所示,本申请实施例的方法可以包括以下步骤:
S101,确定并部署针对当前业务集群的目标服务节点;
其中,业务集群可以理解为将一套系统拆分成不同子系统并部署多个相同的子系统在不同的服务器上,部署在不同服务器上的同一个子系统应做负载均衡。目标服务节点是运行当前业务集群的多个服务器。
在本申请实施例中,在确定并部署针对当前业务集群的目标服务节点时,首先接收对当前业务集群确定的初始压测并发量,然后根据初始压测并发量计算当前业务集群所需部署的实际服务节点数量,再调用Kubernetes工具提供的服务部署API,最后根据实际服务节点数量和服务部署API对当前业务集群部署服务节点,得到目标服务节点。
进一步地,在根据实际服务节点数量和服务部署API对当前业务集群部署服务节点时,首先识别服务部署API中服务节点标识符,然后将服务节点标识符和实际服务节点数量进行关联,得到最终的目标服务部署API,最后执行目标服务部署API对应的功能函数,以对当前业务集群部署服务节点。
需要说明的是,Kubernetes,简称k8s,是Google开源的一个容器编排引擎,它支持自动化部署,大规模可伸缩,应用容器化管理。本申请用它来部署服务,结合K8S提供的应用程序编程接口可以实现服务节点自动缩扩容。
S102,获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;
其中,并发量是指同时访问服务器站点的连接数。在本申请中可以理解为同时访问目标服务节点的访问量。
通常,预设压测脚本中的参数至少包含服务地址标识符,接口列表,接口入参,鉴权信息。
在本申请实施例中,首先获取当前并发量,再初始化预设压测脚本,然后从初始化后的压测脚本中识别出服务地址标识符,再加载针对当前业务集群设置的服务地址创建组件,其次根据当前并发量和服务地址创建组件创建多个目标服务地址,再将服务地址标识符与多个目标服务地址关联后,得到关联地址的压测脚本,最后执行关联地址的压测脚本,生成测试结果。
进一步地,服务地址创建组件包括标识符构建单元、并发量转换单元以及地址拼接单元。
进一步地,根据当前并发量和服务地址创建组件创建多个目标服务地址时,首先标识符构建单元根据预设固定标识符创建服务器标识符,然后并发量转换单元根据当前并发量计算出所需的多个虚拟访问地址,最后地址拼接单元将服务器标识符与多个虚拟访问地址进行拼接后,生成多个目标服务地址。
需要说明的是,本申请通过预先设定的服务器标识与多个虚拟访问地址拼接的方式,可以快速的构建出服务节点的大量访问地址,相对于现有技术中大量访问地址手动的构建方式,本申请可以提升压测的效率。
具体的,在根据用户预先设定的固定标识符自动生成服务器标识符时,首先获取用户预先设定的固定标识符,其中,该固定标识符可以是用户输入的任意字符,然后调用函数库中的函数将该固定标识符转换为基数,最后将该基数确定为服务器标识符。
具体的,在根据当前并发量计算出多个虚拟访问地址时,首先调用JAVA函数库中的Math.random()函数,其次获取预先设定的虚拟访问地址,最后基于Math.random()函数、预先设定的虚拟访问地址以及当前并发量随机生成多个虚拟访问地址。
需要说明的是,当前并发量是初始状态的最小压测并发数。
S103,根据测试结果确定当前业务集群的运行状态;
其中,运行状态包括运行正常和运行异常,运行正常时说明当前的并发量不会导致服务节点出现宕机,运行异常时说明当前的并发量会导致服务节点出现宕机。
在一种可能的实现方式中,当检测到测试结果生成后,获取预先训练的测试结果分析模型,然后将测试结果输入预先训练的测试结果分析模型中,输出业务集群的运行状态标识符,根据该状态标识符确定出业务集群的运行状态。
进一步地,运行状态标识符分为0和1进行表示,0代表服务异常,1代表服务处于正常状态。
具体的,在生成预先训练的测试结果分析模型时,首先获取服务正常和服务异常的服务节点数与并发量对应关系表,然后采用卷积神经网络建立测试结果分析模型,其次将该关系表中的数据输入测试结果分析模型中进行训练后输入损失值,最后当损失值到达最小值时,生成预先训练的测试结果分析模型。
S104,基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
通常,在运行正常时,说明此时的服务节点数量较多,需要缩容服务节点的数量,即减少服务节点的数量,以此来节约服务资源。在运行异常时,说明此时的服务节点数量较少,需要扩容服务节点的数量,即增加服务节点的数量,以此来支撑当前业务集群的运行。
在本申请实施例中,进行缩容或扩容时,当运行状态为异常状态时,首先计算出待扩充的服务节点数量,然后根据待扩充的服务节点数量和Kubernetes工具提供的扩容API对目标服务节点进行动态扩充,得到扩容后的服务节点。或者,当运行状态为正常状态时,计算出待缩减的服务节点数量,然后根据待缩减的服务节点数量和Kubernetes工具提供的缩容API对目标服务节点进行动态缩减,得到缩容后的服务节点。
进一步地,在生成缩容或扩容后的服务节点之后,首先确定当前并发量的并发步长,再将并发步长和预设并发量系数作积后,生成目标并发量,然后根据目标并发量和预设压测脚本,对缩容或扩容后的服务节点进行压测,生成压测结果,最后当目标并发量到达最大预设峰值且压测结果的状态正常时,根据缩容或扩容后的服务节点生成压测报告。
在一种可能的实现方式中,首先在当前业务集群的运行状态异常时,计算目标并发量和待扩充服务节点数量,然后基于待扩充服务节点数量和预设Kubernetes的API对目标服务节点进行动态扩充,生成扩充后的目标服务节点,并基于目标并发量和预设压测脚本对第二服务节点进行压测。
具体的,在计算目标并发量和待扩充服务节点数量时,首先确定当前并发量的并发步长,然后将并发步长和预设并发量作积后生成目标并发量,其次确定目标服务节点的数量,再获取预设服务节点数量,最后将目标服务节点的数量与预设服务节点数量做和后得到扩充后的目标服务节点。
在另一种可能的实现方式中,首先在当前业务集群的运行状态正常时,计算目标并发量和待缩减服务节点数量,然后基于待缩减服务节点数量和预设Kubernetes的API对目标服务节点进行动态缩减,生成缩减后的目标服务节点,并基于目标并发量和预设压测脚本对第二服务节点进行压测。
具体的,在计算待缩减服务节点数量时,首先确定目标服务节点的数量,再获取预设服务节点数量,最后将目标服务节点的数量与预设服务节点数量做差后得到缩减后的目标服务节点。
进一步地,在根据压测脚本对缩容或扩容后的目标服务节点继续压测后得到压测结果,当目标并发量到达最大预设峰值且根据压测结果分析后可知服务状态正常时,根据此时的服务节点数量生成压测报告进行输出。否则继续执行基于运行状态对目标服务节点进行缩容或扩容,并根据压测脚本对缩容或扩容后的目标服务节点继续压测的步骤。
进一步地,在生成压测报告后,执行预设服务停止脚本,然后调用并执行相关k8s中的服务节点暂停的相关API,删除所有服务节点。
在本申请实施例中,业务集群的压测控制装置首先确定并部署针对当前业务集群的目标服务节点,然后获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,再根据测试结果确定当前业务集群的运行状态,最后基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。由于本申请通过压测后服务节点的运行状态和预设Kubernetes的API对目标服务节点进行动态的缩容或扩容,使得只需在压测准备阶段进行少量的用户操作即可实现后续压测流程的完全自动化,进而节约了人力成本,提高了业务集群的压力测试效率。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参见图4,其示出了本发明一个示例性实施例提供的业务集群的压测控制装置的结构示意图,应用于服务器。该业务集群的压测控制装置可以通过软件、硬件或者两者的结合实现成为设备的全部或一部分。该装置1包括服务节点部署模块10、测试结果生成模块20、运行状态确定模块30、服务节点动态调整模块40。
服务节点部署模块10,用于确定并部署针对当前业务集群的目标服务节点;
测试结果生成模块20,用于获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;
运行状态确定模块30,用于根据测试结果确定当前业务集群的运行状态;
服务节点动态调整模块40,用于基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请实施例中,业务集群的压测控制装置首先确定并部署针对当前业务集群的目标服务节点,然后获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,再根据测试结果确定当前业务集群的运行状态,最后基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。由于本申请通过压测后服务节点的运行状态和预设Kubernetes的API对目标服务节点进行动态的缩容或扩容,使得只需在压测准备阶段进行少量的用户操作即可实现后续压测流程的完全自动化,进而节约了人力成本,提高了业务集群的压力测试效率。
在一个实施例中,提出了一种计算机设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:确定并部署针对当前业务集群的目标服务节点;获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;根据测试结果确定当前业务集群的运行状态;基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
在一个实施例中,处理器执行确定并部署针对当前业务集群的目标服务节点时,具体执行以下操作:接收对当前业务集群确定的初始压测并发量;根据初始压测并发量计算当前业务集群所需部署的实际服务节点数量;调用Kubernetes工具提供的服务部署API;根据实际服务节点数量和服务部署API对当前业务集群部署服务节点,得到目标服务节点。
在一个实施例中,处理器执行根据实际服务节点数量和服务部署API对当前业务集群部署服务节点时,具体执行以下操作:识别服务部署API中服务节点标识符;将服务节点标识符和实际服务节点数量进行关联,得到最终的目标服务部署API;执行目标服务部署API对应的功能函数,以对当前业务集群部署服务节点。
在一个实施例中,处理器执行根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果时,具体执行以下操作:初始化预设压测脚本;从初始化后的压测脚本中识别出服务地址标识符;加载针对当前业务集群设置的服务地址创建组件;根据当前并发量和服务地址创建组件创建多个目标服务地址;将服务地址标识符与多个目标服务地址关联后,得到关联地址的压测脚本;执行关联地址的压测脚本,生成测试结果。
在一个实施例中,处理器执行根据当前并发量和服务地址创建组件创建多个目标服务地址时,具体执行以下操作:标识符构建单元根据预设固定标识符创建服务器标识符;并发量转换单元根据当前并发量计算出所需的多个虚拟访问地址;地址拼接单元将服务器标识符与多个虚拟访问地址进行拼接后,生成多个目标服务地址。
在一个实施例中,处理器执行基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点时,具体执行以下操作:当运行状态为异常状态时,计算出待扩充的服务节点数量;根据待扩充的服务节点数量和Kubernetes工具提供的扩容API对目标服务节点进行动态扩充,得到扩容后的服务节点;或者,当运行状态为正常状态时,计算出待缩减的服务节点数量;根据待缩减的服务节点数量和Kubernetes工具提供的缩容API对目标服务节点进行动态缩减,得到缩容后的服务节点。
在一个实施例中,处理器还执行以下操作:确定当前并发量的并发步长;将并发步长和预设并发量系数作积后,生成目标并发量;根据目标并发量和预设压测脚本,对缩容或扩容后的服务节点进行压测,生成压测结果;当目标并发量到达最大预设峰值且压测结果的状态正常时,根据缩容或扩容后的服务节点生成压测报告。
在本申请实施例中,业务集群的压测控制装置首先确定并部署针对当前业务集群的目标服务节点,然后获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,再根据测试结果确定当前业务集群的运行状态,最后基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。由于本申请通过压测后服务节点的运行状态和预设Kubernetes的API对目标服务节点进行动态的缩容或扩容,使得只需在压测准备阶段进行少量的用户操作即可实现后续压测流程的完全自动化,进而节约了人力成本,提高了业务集群的压力测试效率。在一个实施例中,提出了一种存储有计算机可读指令的介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:确定并部署针对当前业务集群的目标服务节点;获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果;根据测试结果确定当前业务集群的运行状态;基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
在一个实施例中,处理器执行确定并部署针对当前业务集群的目标服务节点时,具体执行以下操作:接收对当前业务集群确定的初始压测并发量;根据初始压测并发量计算当前业务集群所需部署的实际服务节点数量;调用Kubernetes工具提供的服务部署API;根据实际服务节点数量和服务部署API对当前业务集群部署服务节点,得到目标服务节点。
在一个实施例中,处理器执行根据实际服务节点数量和服务部署API对当前业务集群部署服务节点时,具体执行以下操作:识别服务部署API中服务节点标识符;将服务节点标识符和实际服务节点数量进行关联,得到最终的目标服务部署API;执行目标服务部署API对应的功能函数,以对当前业务集群部署服务节点。
在一个实施例中,处理器执行根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果时,具体执行以下操作:初始化预设压测脚本;从初始化后的压测脚本中识别出服务地址标识符;加载针对当前业务集群设置的服务地址创建组件;根据当前并发量和服务地址创建组件创建多个目标服务地址;将服务地址标识符与多个目标服务地址关联后,得到关联地址的压测脚本;执行关联地址的压测脚本,生成测试结果。
在一个实施例中,处理器执行根据当前并发量和服务地址创建组件创建多个目标服务地址时,具体执行以下操作:标识符构建单元根据预设固定标识符创建服务器标识符;并发量转换单元根据当前并发量计算出所需的多个虚拟访问地址;地址拼接单元将服务器标识符与多个虚拟访问地址进行拼接后,生成多个目标服务地址。
在一个实施例中,处理器执行基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点时,具体执行以下操作:当运行状态为异常状态时,计算出待扩充的服务节点数量;根据待扩充的服务节点数量和Kubernetes工具提供的扩容API对目标服务节点进行动态扩充,得到扩容后的服务节点;或者,当运行状态为正常状态时,计算出待缩减的服务节点数量;根据待缩减的服务节点数量和Kubernetes工具提供的缩容API对目标服务节点进行动态缩减,得到缩容后的服务节点。
在一个实施例中,处理器还执行以下操作:确定当前并发量的并发步长;将并发步长和预设并发量系数作积后,生成目标并发量;根据目标并发量和预设压测脚本,对缩容或扩容后的服务节点进行压测,生成压测结果;当目标并发量到达最大预设峰值且压测结果的状态正常时,根据缩容或扩容后的服务节点生成压测报告。
在本申请实施例中,业务集群的压测控制装置首先确定并部署针对当前业务集群的目标服务节点,然后获取当前并发量,并根据当前并发量和预设压测脚本对目标服务节点进行压测,生成测试结果,再根据测试结果确定当前业务集群的运行状态,最后基于运行状态和Kubernetes工具提供的扩缩容API对目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。由于本申请通过压测后服务节点的运行状态和预设Kubernetes的API对目标服务节点进行动态的缩容或扩容,使得只需在压测准备阶段进行少量的用户操作即可实现后续压测流程的完全自动化,进而节约了人力成本,提高了业务集群的压力测试效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种业务集群的压测控制方法,其特征在于,所述方法包括:
确定并部署针对当前业务集群的目标服务节点;
获取当前并发量,并根据所述当前并发量和预设压测脚本对所述目标服务节点进行压测,生成测试结果;
根据所述测试结果确定所述当前业务集群的运行状态;
基于所述运行状态和Kubernetes工具提供的扩缩容API对所述目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
2.根据权利要求1所述的方法,其特征在于,所述确定并部署针对当前业务集群的目标服务节点,包括:
接收对当前业务集群确定的初始压测并发量;
根据所述初始压测并发量计算所述当前业务集群所需部署的实际服务节点数量;
调用Kubernetes工具提供的服务部署API;
根据所述实际服务节点数量和所述服务部署API对所述当前业务集群部署服务节点,得到目标服务节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述实际服务节点数量和所述服务部署API对所述当前业务集群部署服务节点,包括:
识别服务部署API中服务节点标识符;
将所述服务节点标识符和所述实际服务节点数量进行关联,得到最终的目标服务部署API;
执行所述目标服务部署API对应的功能函数,以对所述当前业务集群部署服务节点。
4.根据权利要求1所述的方法,其特征在于,所述根据所述当前并发量和预设压测脚本对所述目标服务节点进行压测,生成测试结果,包括:
初始化预设压测脚本;
从初始化后的压测脚本中识别出服务地址标识符;
加载针对所述当前业务集群设置的服务地址创建组件;
根据所述当前并发量和所述服务地址创建组件创建多个目标服务地址;
将所述服务地址标识符与所述多个目标服务地址关联后,得到关联地址的压测脚本;
执行关联地址的压测脚本,生成测试结果。
5.根据权利要求4所述的方法,其特征在于,所述服务地址创建组件包括标识符构建单元、并发量转换单元以及地址拼接单元;
所述根据所述当前并发量和所述服务地址创建组件创建多个目标服务地址,包括:
标识符构建单元根据预设固定标识符创建服务器标识符;
并发量转换单元根据所述当前并发量计算出所需的多个虚拟访问地址;
地址拼接单元将所述服务器标识符与所述多个虚拟访问地址进行拼接后,生成多个目标服务地址。
6.根据权利要求1所述的方法,其特征在于,所述基于所述运行状态和Kubernetes工具提供的扩缩容API对所述目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点,包括:
当所述运行状态为异常状态时,计算出待扩充的服务节点数量;
根据待扩充的服务节点数量和Kubernetes工具提供的扩容API对所述目标服务节点进行动态扩充,得到扩容后的服务节点;
或者,
当所述运行状态为正常状态时,计算出待缩减的服务节点数量;
根据待缩减的服务节点数量和Kubernetes工具提供的缩容API对所述目标服务节点进行动态缩减,得到缩容后的服务节点。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述当前并发量的并发步长;
将所述并发步长和预设并发量系数作积后,生成目标并发量;
根据所述目标并发量和预设压测脚本,对缩容或扩容后的服务节点进行压测,生成压测结果;
当所述目标并发量到达最大预设峰值且所述压测结果的状态正常时,根据所述缩容或扩容后的服务节点生成压测报告。
8.一种业务集群的压测控制装置,其特征在于,所述装置包括:
服务节点部署模块,用于确定并部署针对当前业务集群的目标服务节点;
测试结果生成模块,用于获取当前并发量,并根据所述当前并发量和预设压测脚本对所述目标服务节点进行压测,生成测试结果;
运行状态确定模块,用于根据所述测试结果确定所述当前业务集群的运行状态;
服务节点动态调整模块,用于基于所述运行状态和Kubernetes工具提供的扩缩容API对所述目标服务节点进行缩容或扩容,生成缩容或扩容后的服务节点。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述业务集群的压测控制方法的步骤。
10.一种存储有计算机可读指令的介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述业务集群的压测控制的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210143065.6A CN114510322A (zh) | 2022-02-16 | 2022-02-16 | 一种业务集群的压测控制方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210143065.6A CN114510322A (zh) | 2022-02-16 | 2022-02-16 | 一种业务集群的压测控制方法、装置、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114510322A true CN114510322A (zh) | 2022-05-17 |
Family
ID=81551631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210143065.6A Pending CN114510322A (zh) | 2022-02-16 | 2022-02-16 | 一种业务集群的压测控制方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114510322A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309597A (zh) * | 2022-08-15 | 2022-11-08 | 北京星汉未来网络科技有限公司 | 一种服务器集群测试的方法、装置、存储介质及电子设备 |
-
2022
- 2022-02-16 CN CN202210143065.6A patent/CN114510322A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309597A (zh) * | 2022-08-15 | 2022-11-08 | 北京星汉未来网络科技有限公司 | 一种服务器集群测试的方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000348B (zh) | 服务灰度发布的控制方法、装置、计算机设备 | |
CN108763090B (zh) | 测试环境部署方法、装置、计算机设备和存储介质 | |
CN101571809B (zh) | 一种插件注册的实现方法及其装置 | |
CN108121654B (zh) | 一种基于Docker的软件大规模测试方法 | |
CN110674095B (zh) | 一种ctdb集群扩展方法、装置、设备及可读存储介质 | |
CN111274091B (zh) | 日志的处理方法、装置、计算机设备和存储介质 | |
CN114510322A (zh) | 一种业务集群的压测控制方法、装置、计算机设备及介质 | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
US8543645B1 (en) | Live experiment framework | |
CN110442500A (zh) | 一种基于Unixbench的超融合集群性能的测试方法及装置 | |
KR20200048633A (ko) | 소프트웨어 자동 테스트 시스템 및 방법 | |
CN113419818A (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN113448730A (zh) | 服务的处理方法、装置、计算机设备及存储介质 | |
CN110187890B (zh) | 项目部署的方法、电子设备、存储介质 | |
CN110113217B (zh) | 微服务管理方法、装置、管理平台及存储介质 | |
CN114116487B (zh) | 压力测试方法、装置、电子设备及存储介质 | |
CN114610446B (zh) | 一种自动注入探针的方法、装置及系统 | |
CN115202907A (zh) | 一种应用程序接口的运行方法、系统、计算机设备及介质 | |
CN110471828B (zh) | 一种操作系统测试方法、装置及其设备 | |
CN111740869B (zh) | 基于物理网卡的kubernetes网络实现方法、系统、设备及介质 | |
CN112905457B (zh) | 软件测试方法及装置 | |
CN110609707A (zh) | 在线数据处理系统生成方法、装置及设备 | |
CN110727601B (zh) | 多平台程序的测试方法及相关装置 | |
CN113704107A (zh) | 应用测试方法、装置、设备及计算机可读存储介质 | |
CN114443057A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220921 Address after: 518066 2601 (Unit 07), Qianhai Free Trade Building, No. 3048, Xinghai Avenue, Nanshan Street, Qianhai Shenzhen-Hong Kong Cooperation Zone, Shenzhen, Guangdong, China Applicant after: Shenzhen Ping An Smart Healthcare Technology Co.,Ltd. Address before: 518002 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen City, Guangdong Province Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |