CN114500349A - 一种云平台混沌测试方法及装置 - Google Patents
一种云平台混沌测试方法及装置 Download PDFInfo
- Publication number
- CN114500349A CN114500349A CN202111613738.1A CN202111613738A CN114500349A CN 114500349 A CN114500349 A CN 114500349A CN 202111613738 A CN202111613738 A CN 202111613738A CN 114500349 A CN114500349 A CN 114500349A
- Authority
- CN
- China
- Prior art keywords
- test
- round
- concurrent
- error rate
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种云平台混沌测试方法及装置,其中方法包括:在向待测云平台注入故障之后,获取对待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率;利用第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;判断第k+1轮并发测试的预测错误率是否大于预设阈值;当大于预设阈值,则减少并发请求量;当小于预设阈值,则增加并发请求量;当等于预设阈值时,将第k轮并发测试的并发请求量确定为待测云平台在故障下的临界。本发明通过利用历史测试结果来对当前的测试的并发请求量进行调节,在故障注入之后自适应的调节并发请求量,从而准确测试出注入故障后的云平台的性能临界,确定出故障后的云平台性能降级情况。
Description
技术领域
本发明涉及测试技术领域,具体涉及一种云平台混沌测试方法及装置。
背景技术
近年来,云计算一直是ICT领域炙手可热的研究方向,对云平台性能的质量把控也一直备受关注。目前主流的开源云平台软件(如:OpenStack)一般采用微服务架构。微服务架构将单体软件拆分为功能鲜明,可独立运行、部署的多个软件服务,具有扩展性好、易部署、易开发等特点。采用微服务架构有利于降低软件开发的成本,便于与Devops(Development and operations)的工作模式相结合,但同时也引入了新的挑战。微服务架构的软件为分布式,提供同功能的微服务副本一般位于不同的宿主机、虚拟机或容器。基础设施的故障,微服务副本的意外启停都有可能降低甚至中断软件向外提供服务的能力。对于云服务商,控制平面的性能剧烈降低和响应失败,都会造成巨大经济损失。
混沌实验是近年来在软件测试领域兴起的研究方向。混沌实验主要用于观察微服务软件***在有随机故障注入的情况下是否具备应对故障的能力。混沌实验的执行是亟待自动化实现的重要环节。现有的混沌实验工具,如:ChaosBlade、ChaosMonkey等,能够满足人为模拟CPU、内存等故障的需求,但发明人发现,云平台测试时如果采用恒定的并发去请求数量,只能根据请求成功率来判断故障是否对结果有影响,而不能确定故障对云平台的性能降级具体有多大。只能进行多次地重复实验才能给出性能影响评估。
发明内容
因此,本发明要解决现有技术中无法确定故障对云平台的性能降级情况的技术问题,从而提供一种云平台混沌测试方法及装置。
本发明实施例的一方面,提供了一种云平台混沌测试方法,包括如下步骤:在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
可选地,所述利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率,包括:获取第k轮并发测试的预测错误率;利用预先配置的权重以及第k轮并发测试的预测错误率和实际错误率计算得到所述第k+1轮并发测试的预测错误率。
可选地,通过以下公式计算得到所述第k+1轮并发测试的预测错误率:
e′k+1=αek+(1-α)e′k
其中,ek表示第k轮并发测试的实际错误率,e'k表示第k轮并发测试的预测错误率,α表示平滑系数。
可选地,所述在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量,包括:利用所述第k+1轮并发测试的预测错误率作为衰减系数,计算得到所述第k+1轮并发测试的并发请求量。
可选地,通过以下公式计算得到所述第k+1轮并发测试的并发请求量:
可选地,所述在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量,包括:利用预先设置的上浮系数和所述第k轮并发测试的并发请求量确定出所要增加的并发请求量,再加上所述第k轮并发测试的并发请求量得到所述第k+1轮并发测试的并发请求量。
可选地,通过以下公式计算得到所述第k+1轮并发测试的并发请求量:
本发明的另一方面,还提供了一种云平台混沌测试装置,包括:获取模块,用于在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;估算模块,用于利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;判断模块,用于判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;第一计算模块,用于当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;第二计算模块,用于当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;确定模块,用于当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
本发明的另一方面,还提供了一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行上述的云平台混沌测试方法。
本发明的另一方面,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行上述的云平台混沌测试方法。
本发明技术方案,具有如下优点:
根据本发明实施例,通过利用历史测试结果来对当前的测试的并发请求量进行调节,在故障注入之后自适应的调节并发请求量,从而准确测试出注入故障后的云平台的性能临界,确定出故障后的云平台性能降级情况。
根据本发明实施例,通过利用上一轮并发测试的错误率,也即是利用历史数据来动态调节当前的错误率,进而达到调节并发请求量的目的,提高故障后的性能降级水平的评估准确性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例测试***的框架示意图;
图2为本发明实施例1中云平台混沌测试方法的一个具体示例的流程图;
图3为本发明实施例云平台混沌测试故障注入时序图;
图4为本发明实施例的一种测试***的部署架构示意图;
图5为本发明实施例2中云平台混沌测试装置的一个具体示例的原理框图;
图6为本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例所提供的云平台混沌测试方法及装置能够在云平台的自动化测试过程中动态调节故障后的并发请求量,还可以控制故障注入、解除发生时的迭代次数或时间,实现了服务启停、网络拥塞、内存负载高等故障的模拟。本发明提出的装置可以自动化地执行、记录混沌实验的故障注入,提高了混沌实验稳态指标的多样性,完善了故障对性能降级的评估。
在介绍本发明实施例的测试方法之前,先介绍本发明实施例提供的测试资源和环境等内容。
本发明实施例的测试过程需要提供如下几种资源:混沌任务、用户、项目、角色。混沌任务为一个混沌配置在待测云平台的一次执行。项目为管理混沌配置、混沌任务的最小单元。用户、项目、角色之间按照基于角色的权限控制(RBAC,Role-based Access Control)方式关联。用户凭借角色访问项目下的资源。
本发明实施例还提供了一个测试***,用于执行混沌测试,如图1所示,该***主要由以下几个模块组成:用户权限管理模块、任务管理模块、云平台测试套件、远程故障注入工具等。除以上模块外,装置依赖于代码托管平台和持续集成平台。
用户权限管理模块:提供用户、项目、角色的新建、删除、修改、查询功能。支持通过RBAC的权限控制方式。
代码托管平台:可选用gitlab或gerrit等代码托管仓库。用户提交关于故障注入的yaml配置到代码托管平台,yaml文件的配置参数包括但不限于:故障类型、注入迭代次数、解除迭代次数、总迭代次数等。在代码托管平台上配置被审阅后合入。
任务管理模块:任务管理模块以HTTP服务的形式运行,该模块提供混沌任务的新增、删除、修改、查询的功能。当新增混沌任务时,任务管理模块首先校验请求,包括但不限于:校验开始时间是否大于当前时间,故障注入配置文件是否存在等校验项。完成校验后,将ID、名称、备注、开始时间、配置文件内容等信息保存至数据库。此时任务处于pending状态,当任务开始时间达到时,任务管理模块触发持续集成平台上关于云平台故障注入、测试的流水线,并更新任务状态为running。持续集成平台流水线完成后,任务管理模块更新任务为finished,并保存测试结果至数据库。当更新混沌任务时,任务管理模块首先进行状态校验,任意状态的任务名称、备注字段均可更新,但只有pending状态的任务能更新开始时间,更新后任务管理模块将信息保存至数据库。
持续集成平台流水线:当持续集成平台流水线被触发后,持续集成平台从节点会首先从代码托管平台下载云平台测试工具、故障注入工具、故障注入配置文件。然后依次安装故障注入工具、云平台测试工具。最后执行云平台测试的基础配置,并指定故障注入配置文件来运行测试。
云平台测试工具:持续集成平台从节点上运行云平台测试工具。测试命令下发后,云平台测试工具启动两个线程,一个用于执行测试任务,另一个用于处理故障注入。测试的任务和执行的迭代次数分别在在先入先出的队列里管理,执行测试的线程在每次执行前将迭代次数等单次运行信息放入队列。处理故障注入的线程如果是指定迭代次数触发,则监听迭代次数的队列,从队列里依次取迭代次数比对。如果是指定时间触发,则在队列中第一次取迭代次数后启动定时器。
云平台故障注入:云平台故障注入模块提供了服务启停、docker启停、服务器启停、网络丢包、网络延时、内存负载注入、CPU负载注入的能力。故障注入模块向外提供了API用于其他程序调用。在本发明中,故障注入的模块被云平台测试工具调用,测试工具中处理故障注入的线程被触发后,调用故障注入的API。故障注入模块通过管理网SSH或带外网络IPMI登录后,采用systemctl、tc等工具完成故障注入任务。
本发明实施例提供的一种云平台混沌测试方法,如图2所示,包括如下步骤:
步骤S101,在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……。
本发明实施例中所述的第k轮并发测试,也即是指第k次迭代的测试过程中,对于第k轮并发测试,可以利用云平台测试工具向云平台发起相应并发请求量的请求,获取相应的测试结果。其中,测试结果可以是指单次并发的响应结果,若未响应,则报错;若成功响应,则表示测试通过。其中,报错的次数与并发请求量的比值可以作为实际错误率。本发明实施例中,k的值可以取1,2,3……,可以是指注入故障后的测试轮次,也可以是指整个测试任务中的测试轮次。例如,测试迭代1000次,其中,k的值取1,2,3……1000,其中,故障是在第200次开始注入,第800次恢复。本发明实施例主要保护在故障注入之后,如何进行并发请求量的调节。
当然,对于本领域技术人员而言,在阅读本发明实施例之后,可以知晓并发请求量的调节可以是贯穿整个测试环节的。本发明实施例则是强调在故障注入之后,如何确定出故障状态下的待测云平台的性能降级后的临界。
本发明实施例中,测试执行与故障注入的消息传递通过队列1完成,队列1保存着迭代次数(也即是k)。测试进程在每次执行测试前,将迭代次数存入队列1后再新开一个线程进行测试任务。当正在执行的测试线程达到并发请求量时,测试进程等待测试线程执行完毕,读取测试结果,统计实际错误率。其中,每个测试线程对应一个测试用例,一个测试用例对应一个并发测试请求。
步骤S102,利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率。
本实施例中,在统计出实际错误率之后,在对所述实际错误率进行平滑更新,估算出下一轮次的并发测试的预测错误率。具体地,本发明实施例中,可以利用第k轮的并发测试的实际错误率直接估算出第k+1轮并发测试的预测错误率,例如,实际错误率乘以一个系数;另一方面,还可以利用第k轮并发测试的实际错误率与第k轮并发测试的预测错误率一起计算得到第k+1轮并发测试的预测错误率,例如,对第k轮并发测试的实际错误率和预测错误率进行加权求和得到第k+1轮并发测试的预测错误率。
作为一种可选实施方式,所述利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率,包括:获取第k轮并发测试的预测错误率;利用预先配置的权重以及第k轮并发测试的预测错误率和实际错误率计算得到所述第k+1轮并发测试的预测错误率。
本发明实施例中,第k轮并发测试的预测错误率可以是在第k-1轮并发测试结束之后,计算得到的;若k=1时,则该预测错误率为初始值,也即是0。预先配置的权重是指在计算第k+1轮并发测试的预测错误率时,第k轮并发测试的预测错误率和实际错误率在计算过程中的相对权重。
根据本发明实施例,通过利用上一轮并发测试的错误率,也即是利用历史数据来动态调节当前的错误率,进而达到调节并发请求量的目的,提高故障后的性能降级水平的评估准确性。
作为进一步可选的实施方式,可以通过以下公式计算得到所述第k+1轮并发测试的预测错误率:
e′k+1=αek+(1-α)e′k
其中,ek表示第k轮并发测试的实际错误率,e'k表示第k轮并发测试的预测错误率,α表示平滑系数。其中α的值为定值,可以取大于0.5并小于1的值,例如,取0.8。平滑系数越高新观测值的占比越高。由于本发明实施例的测试过程是一个迭代过程,因此,上述公式也是一个迭代过程,随着迭代次数的增加,时间越久的错误率占的比重越小。
步骤S103,判断所述第k+1轮并发测试的预测错误率是否大于预设阈值。
步骤S104,当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量。
步骤S105,当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量。
步骤S106,当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
本发明实施例中,当判断出第k+1轮并发测试的预测错误率小于预设阈值时,则表示待测云平台未达到并发请求处理的临界,因此,可以上调下一轮并发请求量;若第k+1轮并发测试的预测错误率大于预设阈值时,则表示待测云平台已经超出并发请求处理的界限,则需要下调下一轮测试的并发请求量;预测错误率等于预设阈值,则可以认为当前并发请求量为待测云平台在该故障下的界限,则可以不用调整并发请求量。
本发明实施例中,无论预测错误率与预设阈值的关系是哪一种,都可以返回下一轮迭代测试。其中,若出现大于或者小于预设阈值,则利用调整后的并发请求量进行下一轮次的并发测试,也即是k的值加1,返回执行相应的并发测试,即执行步骤S101-S103,进行相应的判断,再根据判断结果做后续动作。当k的值达到最大值时,完成该次混沌测试。另一方面,还可以设置循环退出条件为:当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,因为此时已经确定出了故障下待测云平台的并发极限。
根据本发明实施例,通过利用历史测试结果来对当前的测试的并发请求量进行调节,在故障注入之后自适应的调节并发请求量,从而准确测试出注入故障后的云平台的性能临界,确定出故障后的云平台性能降级情况。
作为一种可选实施方式,所述在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量,包括:利用所述第k+1轮并发测试的预测错误率作为衰减系数,计算得到所述第k+1轮并发测试的并发请求量。
由于预测错误率结果是根据上一轮次的实际错误率计算得到的,因此,利用其作为衰减系数进行并发请求量的调整,使得调整后的并发请求量更加符合上一轮次的测试结果,也能够更快地接近云平台在故障下的临界。
具体地,本发明实施例可以通过以下公式计算得到所述第k+1轮并发测试的并发请求量(即下调的并发请求量):
另一方面,本发明实施例中对于并发量的上调也可以采用上述相类似的方式,采用预测错误率作为上浮系数,其计算方式可以与上述公式类似,效果也类似,这里不再赘述。
作为一种可选实施方式,所述在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量,包括:利用预先设置的上浮系数和所述第k轮并发测试的并发请求量确定出所要增加的并发请求量,再加上所述第k轮并发测试的并发请求量得到所述第k+1轮并发测试的并发请求量。
也即是本发明实施例中,可以设置一个固定的上浮系数来计算上调的并发请求量。具体地可以通过以下公式计算得到所述第k+1轮并发测试的并发请求量:
综合以上计算公式,得到如下:
其中,∈为预设阈值。如果预测错误率大于预设阈值,测试管理进程根据错误率衰减测试管理进程内的并发请求量。如果错误率小于预设阈值,比如当前错误率为0的时候,并发请求量并不能达到云平台的临界,此时尝试适当增大测试管理进程的并发请求量。
本发明实施例中,故障注入线程有两种工作模式,一是定时模式,二是迭代次数模式。定时模式中混沌实验的配置指定测试开始后的故障注入时间。迭代次数模式根据测试的执行次数决定故障的注入时间。二者均采用轮询的方式。
下面通过图3所示的混沌测试的工作流程来介绍本发明实施例,如图3所示,包括:
步骤1:用户提交混沌实验配置到代码托管平台。
步骤2:经管理员审核后合并至代码库。
步骤3:用户通过Restful API接口创建混沌实验任务,创建时指定配置和混沌实验任务开始时间。
步骤4:任务管理模块检测到混沌实验任务时间到达后,触发持续集成平台流水线。
步骤5:持续集成平台从节点下载混沌实验配置、故障注入工具、云平台测试工具。
步骤6:持续集成平台从节点上依次安装故障注入工具和云平台测试工具。
步骤7:运行云平台测试,测试过程中由云平台测试工具与故障注入工具管理故障的注入与恢复。
步骤8:生成测试结果并返回任务状态。
如图4是本发明实施例的一种混沌测试的平台,其部署结构为:代码托管平台部署于服务器1,用户权限管理模块、任务管理模块、数据库部署于服务器2,Jenkins master部署于服务器3,服务器4作为Jenkins slave。服务器1~4均与云平台管理网络相连接,服务器4与云平台所有管理节点、计算节点的带外管理网相连接。
待测云平台采用Openstack,由三个管理节点和两个计算节点构成。管理节点部署有keystone、nova-api、nova-scheduler、nova-conductor、placement、cinder-api、cinder-scheduler、glance、neutron-server、neutron-dhcp-agent等。计算节点部署有nova-compute、cinder-volume等服务。
用户具体的操作步骤包括:
步骤1:用户通过git将混沌实验配置提交到服务器1上的代码托管平台。
步骤2:配置经过审阅后合入。
步骤3:用户持有凭证信息从用户权限管理模块申请令牌,并持有令牌向任务管理模块发起请求,创建混沌实验任务。
步骤4:Jenkins流水线被触发。
步骤5:Jenkins slave开始下载配置和相关软件。
步骤6:混沌实验任务的执行在Jenkins slave节点(服务器4),服务器4上安装有故障注入工具和云平台测试工具。
步骤7:云平台测试工具执行测试。在本实施例中,混沌实验配置指定运行创建云主机的测试,并指定总迭代次数1000次,并发20。故障类型为随机一台管理节点nova-api服务down掉,发生时间为迭代次数200,解除时间为迭代次数800。测试工具运行测试例200次时,测试工具中故障注入线程检测到到达指定次数,通过云平台管理网远程登录管理节点1(随机选择),执行systemctl stop openstack-nova-api的命令,随即服务停止。到达迭代次数800时恢复服务。迭代次数200次后,开始根据错误率的统计自适应调整并发数,不断靠近***正常处理请求的并发极限。
步骤8:混沌实验结束后,返回测试结果和混沌实验状态。
实施例2
本实施例提供一种云平台混沌测试装置,该装置可以用于执行上述实施例1中的测试方法,如图5所示,该装置包括:
获取模块501,用于在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;
估算模块502,用于利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;
判断模块503,用于判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;
第一计算模块504,用于当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;
第二计算模块505,用于当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;
确定模块506,用于当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
根据本发明实施例,通过利用上一轮并发测试的错误率,也即是利用历史数据来动态调节当前的错误率,进而达到调节并发请求量的目的,提高故障后的性能降级水平的评估准确性。
关于装置实施例的具体描述可以参见上述方法实施例,这里不做赘述。
实施例3
本发明的一个实施例中,还提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口,还可以包括显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器执行时以实现用于流量回放的数据去重方法或者业务***的测试方法,该计算机设备还可以包括显示屏和输入装置,其显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板等。
另一方面,则该计算机设备可以不包括显示屏和输入装置,本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,实现以下步骤:
在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;
利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;
判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;
当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;
当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;
当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
在一个实施例中,提供了一种可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行:
在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;
利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;
判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;
当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;
当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;
当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种云平台混沌测试方法,其特征在于,包括如下步骤:
在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;
利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;
判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;
当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;
当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;
当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
2.根据权利要求1所述的云平台混沌测试方法,其特征在于,所述利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率,包括:
获取第k轮并发测试的预测错误率;
利用预先配置的权重以及第k轮并发测试的预测错误率和实际错误率计算得到所述第k+1轮并发测试的预测错误率。
3.根据权利要求2所述的云平台混沌测试方法,其特征在于,通过以下公式计算得到所述第k+1轮并发测试的预测错误率:
e′k+1=αek+(1-α)e′k
其中,ek表示第k轮并发测试的实际错误率,e'k表示第k轮并发测试的预测错误率,α表示平滑系数。
4.根据权利要求1所述的云平台混沌测试方法,其特征在于,所述在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量,包括:
利用所述第k+1轮并发测试的预测错误率作为衰减系数,计算得到所述第k+1轮并发测试的并发请求量。
6.根据权利要求1所述的云平台混沌测试方法,其特征在于,所述在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量,包括:
利用预先设置的上浮系数和所述第k轮并发测试的并发请求量确定出所要增加的并发请求量,再加上所述第k轮并发测试的并发请求量得到所述第k+1轮并发测试的并发请求量。
8.一种云平台混沌测试装置,其特征在于,包括:
获取模块,用于在向待测云平台注入故障之后,获取对所述待测云平台第k轮并发测试的测试结果,统计第k轮并发测试的实际错误率,k取1,2,3……;
估算模块,用于利用所述第k轮并发测试的实际错误率估算得到第k+1轮并发测试的预测错误率;
判断模块,用于判断所述第k+1轮并发测试的预测错误率是否大于预设阈值;
第一计算模块,用于当所述第k+1轮并发测试的预测错误率大于所述预设阈值,则在所述第k轮并发测试的基础上减少并发请求量,得到第k+1轮并发测试的并发请求量;
第二计算模块,用于当所述第k+1轮并发测试的预测错误率小于所述预设阈值,则在所述第k轮并发测试的基础上增加并发请求量,得到第k+1轮并发测试的并发请求量;
确定模块,用于当所述第k+1轮并发测试的预测错误率等于所述预设阈值时,将所述第k轮并发测试的并发请求量确定为所述待测云平台在所述故障下的临界。
9.一种计算机设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如权利要求1-7中任一项所述的云平台混沌测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行如权利要求1-7中任一项所述的云平台混沌测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111613738.1A CN114500349B (zh) | 2021-12-27 | 2021-12-27 | 一种云平台混沌测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111613738.1A CN114500349B (zh) | 2021-12-27 | 2021-12-27 | 一种云平台混沌测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500349A true CN114500349A (zh) | 2022-05-13 |
CN114500349B CN114500349B (zh) | 2023-08-08 |
Family
ID=81496035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111613738.1A Active CN114500349B (zh) | 2021-12-27 | 2021-12-27 | 一种云平台混沌测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500349B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791846A (zh) * | 2022-05-23 | 2022-07-26 | 北京同创永益科技发展有限公司 | 一种针对云原生混沌工程实验实现可观测性的方法 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100871A1 (en) * | 2008-10-22 | 2010-04-22 | International Business Machines Corporation | Method and system for evaluating software quality |
CN101799539A (zh) * | 2010-01-05 | 2010-08-11 | 中国人民解放军重庆通信学院 | 一种混沌测距方法及装置 |
CN102123061A (zh) * | 2011-03-28 | 2011-07-13 | 杭州电子科技大学 | 一种确定Web服务器性能的方法 |
US20120054564A1 (en) * | 2010-08-27 | 2012-03-01 | Abhishek Kumar Tiwary | Method and apparatus to test memory using a regeneration mechanism |
CN104331477A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | 基于联邦式检索的云平台并发性能测试方法 |
US20150074469A1 (en) * | 2013-09-09 | 2015-03-12 | International Business Machines Corporation | Methods, apparatus and system for notification of predictable memory failure |
CN104717236A (zh) * | 2013-12-11 | 2015-06-17 | ***通信集团公司 | 一种设备性能测试方法及装置 |
US20150363291A1 (en) * | 2014-06-12 | 2015-12-17 | Oracle International Corporation | Optimizing the number of shared processes executing in a computer system |
CN105493024A (zh) * | 2014-11-28 | 2016-04-13 | 华为技术有限公司 | 一种数据阈值预测方法与相关装置 |
US20170091071A1 (en) * | 2015-09-25 | 2017-03-30 | International Business Machines Corporation | Predicting software product quality |
US20180293156A1 (en) * | 2017-04-06 | 2018-10-11 | At&T Intellectual Property I, L.P. | System and method for testing software applications in a software defined network |
US20190005177A1 (en) * | 2017-06-30 | 2019-01-03 | Synopsys, Inc. | Method and framework to dynamically split a testbench into concurrent simulatable multi-processes and attachment to parallel processes of an accelerated platform |
CN109800137A (zh) * | 2018-12-06 | 2019-05-24 | 珠海西山居互动娱乐科技有限公司 | 一种服务器性能测试方法和*** |
CN110096335A (zh) * | 2019-04-29 | 2019-08-06 | 东北大学 | 一种针对虚拟机不同类型的业务并发量预测方法 |
CN110633905A (zh) * | 2019-09-06 | 2019-12-31 | 武汉理工大学 | 智能车云平台可靠性计算方法 |
CN110674042A (zh) * | 2019-09-23 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种并发性能测试方法与装置 |
CN111324520A (zh) * | 2020-03-06 | 2020-06-23 | 五八有限公司 | 业务接口的监控方法、装置、电子设备及存储介质 |
WO2021139103A1 (zh) * | 2020-05-21 | 2021-07-15 | 平安科技(深圳)有限公司 | 加压参数自适应调节方法、装置、计算机设备及存储介质 |
CN113742250A (zh) * | 2021-11-05 | 2021-12-03 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
-
2021
- 2021-12-27 CN CN202111613738.1A patent/CN114500349B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100871A1 (en) * | 2008-10-22 | 2010-04-22 | International Business Machines Corporation | Method and system for evaluating software quality |
CN101799539A (zh) * | 2010-01-05 | 2010-08-11 | 中国人民解放军重庆通信学院 | 一种混沌测距方法及装置 |
US20120054564A1 (en) * | 2010-08-27 | 2012-03-01 | Abhishek Kumar Tiwary | Method and apparatus to test memory using a regeneration mechanism |
CN102123061A (zh) * | 2011-03-28 | 2011-07-13 | 杭州电子科技大学 | 一种确定Web服务器性能的方法 |
US20150074469A1 (en) * | 2013-09-09 | 2015-03-12 | International Business Machines Corporation | Methods, apparatus and system for notification of predictable memory failure |
CN104717236A (zh) * | 2013-12-11 | 2015-06-17 | ***通信集团公司 | 一种设备性能测试方法及装置 |
US20150363291A1 (en) * | 2014-06-12 | 2015-12-17 | Oracle International Corporation | Optimizing the number of shared processes executing in a computer system |
CN104331477A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | 基于联邦式检索的云平台并发性能测试方法 |
CN105493024A (zh) * | 2014-11-28 | 2016-04-13 | 华为技术有限公司 | 一种数据阈值预测方法与相关装置 |
US20170091071A1 (en) * | 2015-09-25 | 2017-03-30 | International Business Machines Corporation | Predicting software product quality |
US20180293156A1 (en) * | 2017-04-06 | 2018-10-11 | At&T Intellectual Property I, L.P. | System and method for testing software applications in a software defined network |
US20190005177A1 (en) * | 2017-06-30 | 2019-01-03 | Synopsys, Inc. | Method and framework to dynamically split a testbench into concurrent simulatable multi-processes and attachment to parallel processes of an accelerated platform |
CN109800137A (zh) * | 2018-12-06 | 2019-05-24 | 珠海西山居互动娱乐科技有限公司 | 一种服务器性能测试方法和*** |
CN110096335A (zh) * | 2019-04-29 | 2019-08-06 | 东北大学 | 一种针对虚拟机不同类型的业务并发量预测方法 |
WO2020220438A1 (zh) * | 2019-04-29 | 2020-11-05 | 东北大学 | 一种针对虚拟机不同类型的业务并发量预测方法 |
CN110633905A (zh) * | 2019-09-06 | 2019-12-31 | 武汉理工大学 | 智能车云平台可靠性计算方法 |
CN110674042A (zh) * | 2019-09-23 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种并发性能测试方法与装置 |
CN111324520A (zh) * | 2020-03-06 | 2020-06-23 | 五八有限公司 | 业务接口的监控方法、装置、电子设备及存储介质 |
WO2021139103A1 (zh) * | 2020-05-21 | 2021-07-15 | 平安科技(深圳)有限公司 | 加压参数自适应调节方法、装置、计算机设备及存储介质 |
CN113742250A (zh) * | 2021-11-05 | 2021-12-03 | 广州易方信息科技股份有限公司 | 接口自动测试方法及装置 |
Non-Patent Citations (4)
Title |
---|
KHALED ALNAWASREH等: "Online Robustness Testing of Distributed Embedded Systems: An Industrial Approach", 《2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING IN PRACTICE TRACK (ICSE-SEIP)》 * |
何鲜峰;汪自力;何启;张宝森;: "基于相空间重构和Volterra的非线性寒区气温预测方法", 中国科学:技术科学, no. 06 * |
卫津逸: "基于混沌方法的信息***韧性能力测试技术研究", 《中国优秀硕士学位论文全文数据库》 * |
王焘;顾泽宇;张文博;徐继伟;魏峻;钟华;: "一种基于自适应监测的云计算***故障检测方法", 计算机学报, no. 06 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791846A (zh) * | 2022-05-23 | 2022-07-26 | 北京同创永益科技发展有限公司 | 一种针对云原生混沌工程实验实现可观测性的方法 |
CN114791846B (zh) * | 2022-05-23 | 2022-10-04 | 北京同创永益科技发展有限公司 | 一种针对云原生混沌工程实验实现可观测性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114500349B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102451473B1 (ko) | 시뮬레이션 자원의 동적 최적화 | |
CN108768791B (zh) | 一种信息采集配置管理***及方法 | |
Veeraraghavan et al. | Kraken: Leveraging live traffic tests to identify and resolve resource utilization bottlenecks in large scale web services | |
US7203746B1 (en) | System and method for adaptive resource management | |
JP2005196601A (ja) | 自律管理システム向けポリシシミュレータ | |
Bermbach et al. | Towards comprehensive measurement of consistency guarantees for cloud-hosted data storage services | |
Pérez et al. | Assessing sla compliance from palladio component models | |
JP2010244524A (ja) | 仮想サーバの移動方法の決定方法及びその管理サーバ | |
CN109324962B (zh) | 一种基于云物联技术的应用程序的测试方法及设备 | |
Wolski et al. | Using parametric models to represent private cloud workloads | |
Melo et al. | Comparative analysis of migration-based rejuvenation schedules on cloud availability | |
Zhang et al. | {K-Scope}: Online Performance Tracking for Dynamic Cloud Applications | |
CN114500349A (zh) | 一种云平台混沌测试方法及装置 | |
Pereira et al. | A platform to enable self-adaptive cloud applications using trustworthiness properties | |
Perez-Palacin et al. | Analysis of bursty workload-aware self-adaptive systems | |
Zhao et al. | Ensuring the performance of Apache HTTP server affected by aging | |
CN109450724B (zh) | 一种nfs内存优化功能的测试方法及相关装置 | |
US20060156299A1 (en) | Inducing diversity in replicated systems with software rejuvenation | |
Wu et al. | An extensible fault tolerance testing framework for microservice-based cloud applications | |
Bosse et al. | Predicting availability and response times of IT services | |
CN107426012B (zh) | 一种基于超融合架构的故障恢复方法及其装置 | |
US20190250954A1 (en) | Load shedding in a distributed system | |
Vondra et al. | Modifying CloudSim to accurately simulate interactive services for cloud autoscaling | |
CN110502495A (zh) | 一种应用服务器的日志收集方法及装置 | |
CN108418730B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |