一种数据库压测方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据库压测方法、装置及电子设备。
背景技术
数据库压力测试(简称压测),是在生产环境下,模拟生产流量请求生成压测流量请求,并将这些压测流量请求不断施加给数据库,以确定数据库的性能或容量的测试。数据库一般包含两张表,一张影子表,一张正式表,其中,影子表用于接受压测流量请求的访问,正式表用于接受正式生产流量请求的访问。由于这两张表都包含在同一数据库中,因此这两张表的使用的硬件资源及资源参数配置相同。
压测通常包括无损压测和极限压测两种类型。其中,无损压测,是指对生产环境的正式生产流量请求不产生稳定性影响的压测;极限压测,是指对数据库不断进行压测直到该数据库的性能或容量达到拐点,也即直到该数据库无法提供稳定的服务。数据库承受的流量请求常用压力指标值的大小来表征。
目前,在对数据库进行压测时,既存在来自生产环境的正式用户的流量请求,又存在压测流量请求,当针对该数据库的压测流量请求超过一定量时,可能会使该数据库的稳定性受到影响,进而使正式用户的流量请求受到影响。
发明内容
本申请实施例提供了一种数据库压测方法、装置及电子设备,以避免对数据库的压测给正式用户流量请求造成影响。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出了一种数据库压测方法,所述方法包括:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
第二方面,提出了一种数据库压测装置,所述装置包括:
创建模块,用于创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
第一确定模块,用于对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
第二确定模块,用于基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
压测模块,用于基于所述第二极限值对所述目标数据库进行压测。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:由于先对目标数据库的镜像数据库进行压测,得到镜像数据库可承受的压力指标极限值,再依据镜像数据库可承受的压力指标极限值和目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库可承受的压力指标极限值,然后在该可承受的压力指标极限值下对目标数据库进行压测,而不是盲目地对目标数据库加压进行压测,因此可以避免对目标数据库的压测给正式用户流量请求造成影响。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本说明书实施例提供的一种数据库压测方法的流程示意图。
图2是图1中的步骤104的详细流程示意图。
图3是本说明书实施例提供的一种电子设备的结构示意图。
图4是本说明书实施例提供的一种数据库压测装置的结构示意图之一。
图5是图4中的模块402的详细结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了避免对数据库的压测给正式用户流量请求造成影响,本说明书实施例提供一种数据库压测方法及装置,该方法和装置的执行主体可以是终端设备也可以是服务器。
作为一个例子,本说明书实施例提供的一种数据库压测方法及装置的应用场景,可以是大型互联网网站在业务活动或大促销前的数据库压力测试场景,且该数据库可以是状态型数据库。状态型数据库是指具有状态字段表的数据库,该状态字段表会在一次或多次完整业务变更后被更新,例如,具有用户余额表的数据库,该用户余额表会在完成一次或多次完整交易业务之后被更新。
在对状态型数据库进行压测时,用于接受压测流量请求的影子表和用于接受正式用户流量请求的正式表放在同一个生产数据库中,且压测是针对该生产数据库进行的,因为压测的最终目的是该生产数据库能够满足业务性能容量需求。
在实际生产过程中,正式用户的流量请求对该生产数据库造成的压力在不同的时间是不同的,当同一时间压测流量请求与正式用户流量请求的和超过该生产数据库的容量负载时,该生产数据库就会出现不稳定的风险,此时就会给正式用户的流量请求带来不利影响。鉴于此,本说明书提供了一种数据库压测方法及装置以解决该问题。
下面结合附图1至图2对本说明书实施例提供的一种数据库压测方法进行详细的说明。
如图1所示,本说明书实施例提供的一种数据库压测方法,可以包括如下步骤:
步骤102、创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同。
目标数据库,可以是需要进行压力测试的任意生产数据库。在一个例子中,该生产数据库具体为状态型数据库,由于状态数据库包括两张表,一张影子表,一张正式表,因此,目标数据库也包括两张表,一张影子表,一张正式表。影子表和正式表的功能请参见上文,此处不再重复描述。
镜像数据库,可以理解为是对目标数据库进行复制得到的数据库。具体的,可以对目标数据库的影子表进行复制得到镜像数据库,且复制得到的镜像数据库和目标数据库占用不同的硬件资源,但是由于镜像数据库的创建是为了摸清目标数据库在压测时可承受的压力指标极限值,因此,镜像数据库和目标数据库的资源参数配置相同。其中,数据库的资源配置参数可以包括给数据库分配的内存、CPU和存储空间等参数。
步骤104、对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值。
压力可以是指因数据库接受流量请求的访问而产生的压力,数据库承受的压力大小可以用压力指标值来表征,常见的压力指标包括秒级更新类请求数(Transaction PerSecond,TPS)和秒级查询类请求数(Query Per Second,QPS)中的至少一个。
作为一个例子,步骤104具体可以包括:对所述镜像数据库进行极限压测,以确定所述第一极限值。如本申请背景技术中所述,极限压测,是指对数据库不断进行压测直到该数据库的性能或容量达到拐点,也即直到该数据库无法提供稳定的服务。因此,具体可以将对镜像数据库进行极限压测时,镜像数据库的性能或容量达到拐点时的压力指标值确定为第一极限值。
更为具体的,如图2所示,步骤104可以包括如下子步骤:
子步骤201、对所述镜像数据库进行极限压测,获得所述镜像数据库可承受的初始压力指标极限值。
此时可以将镜像数据库的性能或容量达到拐点时的压力指标值确定为初始压力指标极限值。
子步骤203、判断所述初始压力指标极限值是否符合预期值;若符合,执行步骤207;否则执行步骤205。
其中,预期值可以是所述镜像数据库可承受的压力指标极限值的理论值,该理论值是基于所述资源参数配置确定的。
初始压力指标极限值是否符合预期值,可以通过判断初始压力指标极限值是否等于或接近所述预期值来确定的。具体的,如果初始压力指标极限值等于或接近预期值,则初始压力指标极限值符合预期值;反之,不符合。
需要说明的是,在本实施例中,初始压力指标极限值接近预期值,可以包括初始压力指标极限值略小于预期值或略大于预期值两种情况。
子步骤205、对所述镜像数据库的所述资源参数配置进行调整,并重新执行子步骤201。
例如,对给所述镜像数据库分配的内存、CPU以及存储空间中的一个或多个进行调整。
当然,初始压力指标极限值不符合预期值的原因可能有多种,并不局限于资源参数配置的影响,因此,在步骤205中,还可以通过调整其他参数来解决初始压力指标极限值不符合预期值的问题,本说明书对此不做限定。
子步骤207、判断所述镜像数据库是否处于稳定状态;若为是,执行子步骤209或子步骤211,否则,重新执行子步骤201。
其中,判断镜像数据库是否处于稳定状态的方式可以是,判断镜像数据库能否提供稳定的服务,例如,查询镜像数据库的耗时是否处于正常范围,镜像数据库能否正常报错,等等。如果镜像数据库能提供稳定的服务,则认为镜像数据库处于稳定状态,否则,认为镜像数据库处于不稳定状态。
需要说明的是,在本实施例中,子步骤209和子步骤211的执行顺序可以不分先后。
子步骤209、将所述目标数据库的资源参数配置更新为调整后的所述镜像数据库的资源参数配置。
也即将调整后的镜像数据库的资源参数配置同步到目标数据库,使目标数据库与镜像数据库的资源参数配置保持一致,这样才可以将利用镜像数据库摸底出来的第一极限值用于确定针对目标数据库的第二极限值。
子步骤211、确定所述初始压力指标极限值为所述第一极限值。
也即在该具体实施方式中,最终将镜像数据库性能或容量达到拐点,且镜像数据库处于稳定状态时的压力指标值确定为第一极限值。可以理解,利用这种方式确定出的第一极限值更为稳定可靠,使得最终确定出的第二极限值,对目标数据库来说更安全。
例如,假设压力指标包括TPS和QPS,且在镜像数据库性能或容量达到拐点以及镜像数据库处于稳定状态时,并发的有三个测试流量请求访问镜像数据库,其中不同测试流量请求中可携带多个更新或查询镜像数据库的结构化查询语言(Structured QueryLanguage,SQL)。例如,这个三个测试流量请求携带的TPS SQL数和QPS SQL数可以如下表1所示。
表1
|
TPS |
TPS SQL数 |
QPS |
QPS SQL数 |
测试流量请求1 |
TPS1 |
3 |
QPS1 |
8 |
测试流量请求2 |
TPS2 |
4 |
QPS2 |
6 |
测试流量请求3 |
TPS3 |
6 |
QPS3 |
9 |
在表1的基础上,压力指标TPS对应的第一极限值可以表示为:
Total_TPS=TPS1*3+TPS2*4+TPS3*6
压力指标QPS对应的第一极限值可以表示为:
Total_QPS=QPS1*8+QPS2*6+QPS3*9
当然,在另一具体实施方式中,也可以将镜像数据库性能或容量达到拐点时的压力指标值确定为第一极限值。
步骤106、基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值。
由于镜像数据库是对目标数据库进行复制得到的,且镜像数据库与目标数据库的资源参数配置相同,因此可以将镜像数据库压测时可承受的压力指标极限值,用于确定目标数据库压测时可承受的压力指标极限值。
其中,预定时间例如可以是一日或一天,也即将目标数据库的正式表的日压力指标峰值作为预设峰值。由于目标数据库的正式表在不同日期的日压力指标峰值是不一样的,因此,可选地,可以将所述目标数据库的正式表在多个所述预定时间内的压力指标峰值中的最大值确定为所述预设峰值,例如将过去一个月内最大的日压力指标峰值作为所述预设峰值。
在一个例子中,步骤106中的“基于所述第一极限值和预设峰值确定第二极限值”可以包括:将所述第一极限值与所述预设峰值的差值确定为所述第二极限值。
例如,假设压力指标TPS对应的预设峰值为Daily_TPS,压力指标QPS对应的预设峰值为Daily_QPS,则压力指标TPS和QPS对应的第二极限值可以分别表示为:
Limit_TPS=Total_TPS-Daily_TPS
Limit_QPS=Total_QPS-Daily_QPS
其中,Limit_TPS表示TPS对应的第二极限值,Limit_QPS表示QPS对应的第二极限值。
可以理解,利用对镜像数据库压测摸底出来的第一极限值,减去目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库压测时可承受的压力指标极限值,相当于确定出了对目标数据库进行压测的安全加压上限,在该安全加压上限的约束下对目标数据库进行压测,可以避免压测对正式用户流量请求造成影响。
在另一个例子中,步骤106中的“基于所述第一极限值和预设峰值确定第二极限值”可以包括:基于所述第一极限值、所述预设峰值和预设预留值确定第二极限值。具体的,可以先确定所述预设峰值与所述预设预留值的和值;然后将所述第一极限值与所述和值的差值确定为所述第二极限值。
例如,可以将压力指标TPS和QPS对应的第二极限值可以分别表示为:
Limit_TPS=Total_TPS-(Daily_TPS+Buffer_TPS)
Limit_QPS=Total_QPS-(Daily_QPS+Buffer_QPS)
其中,Buffer_TPS表示TPS对应的预设预留值,Buffer_QPS表示QPS对应的预设预留值。其余符号的物理含义与请参见上一个例子,此处不做重复描述。预设预留值可以取预设峰值的10%~20%,也即Buffer_TPS可以取Daily_TPS的10%~20%,Buffer_QPS可以取Daily_QPS的10%~20%。
可以理解,在减去预设峰值的基础上,利用对镜像数据库压测摸底出来的第一极限值再减去一个预留值,估算出的目标数据库压测时可承受的压力指标极限值更为安全可靠,在该更为安全可靠的加压上限的约束下对目标数据库进行压测,可以更好的避免压测对正式用户流量请求造成影响。
步骤108、基于所述第二极限值对所述目标数据库进行压测。
在一个例子中,步骤108可以包括:在施加的压力指标值不超过所述第二极限值的情况下,对所述目标数据库进行压力测试。也即在安全加压上限的约束下对目标数据库进行压测,从而避免压测对正式用户流量请求造成影响。
图1所示的实施例提供的一种数据库压测方法,由于先对目标数据库的镜像数据库进行压测,得到镜像数据库可承受的压力指标极限值,再依据镜像数据库可承受的压力指标极限值和目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库可承受的压力指标极限值,然后在该可承受的压力指标极限值下对目标数据库进行压测,而不是盲目地对目标数据库加压进行压测,因此可以避免对目标数据库的压测给正式用户流量请求造成影响。
此外,可以理解,由于本说明书实施例提供的一种数据库压测方法,是在第二极限值这一安全加压上限的约束下对目标数据库进行压测,不会对正式用户流量请求造成影响,因此,可以将本说明书实施例提供的一种数据库压测方法理解为是一种无损压测方法。
以上是对本说明书提供一种数据库压测方法的说明,下面对本说明书提供的电子设备进行介绍。
图3是本说明书的一个实施例提供的电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据库压测装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
上述如本说明书图1所示实施例揭示的数据库压测方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的数据库压测方法,本说明书在此不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
下面对本说明书提供的一种数据库压测装置进行说明。
图4是本说明书提供的数据库压测装置400的结构示意图。请参考图4,在一种软件实施方式中,数据库压测装置400可包括:创建模块401、第一确定模块402、第二确定模块403和压测模块404。
创建模块401,用于创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同。
第一确定模块402,用于对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值。
作为一个例子,第一确定模块402,可用于对所述镜像数据库进行极限压测,以确定所述第一极限值。具体可以将镜像数据库的性能或容量达到拐点时的压力指标值确定为第一极限值。
更为具体的,如图5所示,第一确定模块402可以包括:极限压测子模块501、第一判断子模块502、调整子模块503、第二判断子模块504、更新子模块505和确定子模块506。
极限压测子模块501,可用于对所述镜像数据库进行极限压测,获得所述镜像数据库可承受的初始压力指标极限值。
此时可以将镜像数据库的性能或容量达到拐点时的压力指标值确定为初始压力指标极限值。
第一判断子模块502,可用于判断所述初始压力指标极限值是否符合预期值;若符合,第二判断子模块504;否则,触发调整子模块503。
调整子模块503,可用于对所述镜像数据库的所述资源参数配置进行调整,并重新触发极限压测子模块501。
第二判断子模块504,可用于判断所述镜像数据库是否处于稳定状态;若为是,触发更新子模块505或确定子模块506;否则,重新触发极限压测子模块501。
更新子模块505,可用于将所述目标数据库的资源参数配置更新为调整后的所述镜像数据库的资源参数配置。
也即将调整后的镜像数据库的资源参数配置同步到目标数据库,使目标数据库与镜像数据库的资源参数配置保持一致,这样才可以将利用镜像数据库摸底出来的第一极限值用于确定针对目标数据库的第二极限值。
确定子模块506,可用于确定所述初始压力指标极限值为所述第一极限值。
也即在该具体实施方式中,最终将镜像数据库性能或容量达到拐点,且镜像数据库处于稳定状态时的压力指标值确定为第一极限值。
当然,在另一种实施方式中,第一确定模块402可用于将镜像数据库性能或容量达到拐点时的压力指标值确定为第一极限值。
第二确定模块403,用于基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值。
由于镜像数据库是对目标数据库进行复制得到的,且镜像数据库与目标数据库的资源参数配置相同,因此可以将镜像数据库压测时可承受的压力指标极限值,用于确定目标数据库压测时可承受的压力指标极限值。
在一个例子中,第二确定模块403,可用于将所述第一极限值与所述预设峰值的差值确定为所述第二极限值。
可以理解,利用对镜像数据库压测摸底出来的第一极限值,减去目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库压测时可承受的压力指标极限值,相当于确定出了对目标数据库进行压测的安全加压上限,在该安全加压上限的约束下对目标数据库进行压测,可以避免压测对正式用户流量请求造成影响。
在另一个例子中,第二确定模块403,可用于基于所述第一极限值、所述预设峰值和预设预留值确定第二极限值。具体的,可以先确定所述预设峰值与所述预设预留值的和值;然后将所述第一极限值与所述和值的差值确定为所述第二极限值。
可以理解,在减去预设峰值的基础上,利用对镜像数据库压测摸底出来的第一极限值再减去一个预留值,估算出的目标数据库压测时可承受的压力指标极限值更为安全可靠,在该更为安全可靠的加压上限的约束下对目标数据库进行压测,可以更好的避免压测对正式用户流量请求造成影响。
压测模块404,用于基于所述第二极限值对所述目标数据库进行压测。
在一个例子中,压测模块404,可用于在施加的压力指标值不超过所述第二极限值的情况下,对所述目标数据库进行压力测试。也即在安全加压上限的约束下对目标数据库进行压测,从而避免压测对正式用户流量请求造成影响。
图4所示的实施例提供的一种数据库压测方法,由于先对目标数据库的镜像数据库进行压测,得到镜像数据库可承受的压力指标极限值,再依据镜像数据库可承受的压力指标极限值和目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库可承受的压力指标极限值,然后在该可承受的压力指标极限值下对目标数据库进行压测,而不是盲目地对目标数据库加压进行压测,因此可以避免对目标数据库的压测给正式用户流量请求造成影响。
需要说明的是,数据库压测装置400能够实现图1的方法实施例的方法,具体可参考图1所示实施例的数据库压测方法,不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。