CN109254904A - 一种数据库压测方法、装置及电子设备 - Google Patents

一种数据库压测方法、装置及电子设备 Download PDF

Info

Publication number
CN109254904A
CN109254904A CN201811015635.3A CN201811015635A CN109254904A CN 109254904 A CN109254904 A CN 109254904A CN 201811015635 A CN201811015635 A CN 201811015635A CN 109254904 A CN109254904 A CN 109254904A
Authority
CN
China
Prior art keywords
database
value
limiting value
pressure
mirror
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
Application number
CN201811015635.3A
Other languages
English (en)
Other versions
CN109254904B (zh
Inventor
张亮亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811015635.3A priority Critical patent/CN109254904B/zh
Publication of CN109254904A publication Critical patent/CN109254904A/zh
Application granted granted Critical
Publication of CN109254904B publication Critical patent/CN109254904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • G06F11/3433Recording 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 for load management

Abstract

本发明公开了一种数据库压测方法、装置及电子设备,所述方法可以先对目标数据库的镜像数据库进行压测,得到镜像数据库可承受的压力指标极限值,再依据镜像数据库可承受的压力指标极限值和目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库可承受的压力指标极限值,最终在目标数据库可承受的压力指标极限值下对目标数据库进行压测。

Description

一种数据库压测方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据库压测方法、装置及电子设备。
背景技术
数据库压力测试(简称压测),是在生产环境下,模拟生产流量请求生成压测流量请求,并将这些压测流量请求不断施加给数据库,以确定数据库的性能或容量的测试。数据库一般包含两张表,一张影子表,一张正式表,其中,影子表用于接受压测流量请求的访问,正式表用于接受正式生产流量请求的访问。由于这两张表都包含在同一数据库中,因此这两张表的使用的硬件资源及资源参数配置相同。
压测通常包括无损压测和极限压测两种类型。其中,无损压测,是指对生产环境的正式生产流量请求不产生稳定性影响的压测;极限压测,是指对数据库不断进行压测直到该数据库的性能或容量达到拐点,也即直到该数据库无法提供稳定的服务。数据库承受的流量请求常用压力指标值的大小来表征。
目前,在对数据库进行压测时,既存在来自生产环境的正式用户的流量请求,又存在压测流量请求,当针对该数据库的压测流量请求超过一定量时,可能会使该数据库的稳定性受到影响,进而使正式用户的流量请求受到影响。
发明内容
本申请实施例提供了一种数据库压测方法、装置及电子设备,以避免对数据库的压测给正式用户流量请求造成影响。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出了一种数据库压测方法,所述方法包括:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
第二方面,提出了一种数据库压测装置,所述装置包括:
创建模块,用于创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
第一确定模块,用于对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
第二确定模块,用于基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
压测模块,用于基于所述第二极限值对所述目标数据库进行压测。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:由于先对目标数据库的镜像数据库进行压测,得到镜像数据库可承受的压力指标极限值,再依据镜像数据库可承受的压力指标极限值和目标数据库的正式表在预定时间内的压力指标峰值,估算出目标数据库可承受的压力指标极限值,然后在该可承受的压力指标极限值下对目标数据库进行压测,而不是盲目地对目标数据库加压进行压测,因此可以避免对目标数据库的压测给正式用户流量请求造成影响。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图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),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (14)

1.一种数据库压测方法,所述方法包括:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
2.根据权利要求1所述的方法,其中,所述对所述镜像数据库进行压测以确定第一极限值,包括:
对所述镜像数据库进行极限压测,以确定所述第一极限值。
3.根据权利要求2所述的方法,其中,所述对所述镜像数据库进行极限压测,以确定所述第一极限值,包括:
对所述镜像数据库进行极限压测,获得所述镜像数据库可承受的初始压力指标极限值;
判断所述初始压力指标极限值是否符合预期值,所述预期值是所述镜像数据库可承受的压力指标极限值的理论值,所述理论值是基于所述资源参数配置确定的;
如果所述初始压力指标极限值符合所述预期值,则确定所述初始压力指标极限值为所述第一极限值。
4.根据权利要求3所述的方法,还包括:
如果所述初始压力指标极限值不符合所述预期值,则对所述镜像数据库的所述资源参数配置进行调整,并重新执行对所述镜像数据库进行极限压测的步骤。
5.根据权利要求4所述的方法,在所述基于所述第二极限值对所述目标数据库进行压测之前,所述方法还包括:
将所述目标数据库的资源参数配置更新为调整后的所述镜像数据库的资源参数配置。
6.根据权利要求1所述的方法,其中,所述基于所述第一极限值和预设峰值确定第二极限值,包括:
将所述第一极限值与所述预设峰值的差值确定为所述第二极限值。
7.根据权利要求1所述的方法,其中,所述基于所述第一极限值和预设峰值确定第二极限值,包括:
基于所述第一极限值、所述预设峰值和预设预留值确定第二极限值。
8.根据权利要求7所述的方法,其中,所述基于所述第一极限值、所述预设峰值和预设预留值确定第二极限值,包括:
确定所述预设峰值与所述预设预留值的和值;
将所述第一极限值与所述和值的差值确定为所述第二极限值。
9.根据权利要求1所述的方法,其中,所述基于所述第二极限值对所述目标数据库进行压测,包括:
在施加的压力指标值不超过所述第二极限值的情况下,对所述目标数据库进行压力测试。
10.根据权利要求1-9任一项所述的方法,
其中,所述压力指标包括秒级更新类请求数TPS和秒级查询类请求数QPS中的至少一个。
11.根据权利要求1-9任一项所述的方法,
其中,所述预设峰值是所述目标数据库的正式表在多个所述预定时间内的压力指标峰值中的最大值。
12.一种数据库压测装置,所述装置包括:
创建模块,用于创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
第一确定模块,用于对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
第二确定模块,用于基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
压测模块,用于基于所述第二极限值对所述目标数据库进行压测。
13.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
创建待测试的目标数据库的镜像数据库,所述镜像数据库中包含所述目标数据库的影子表,所述目标数据库和所述镜像数据库占用不同的硬件资源,且所述目标数据库和所述镜像数据库的资源参数配置相同;
对所述镜像数据库进行压测以确定第一极限值,所述第一极限值是所述镜像数据库可承受的压力指标极限值;
基于所述第一极限值和预设峰值确定第二极限值,所述第二极限值是所述目标数据库经估算的可承受的压力指标极限值,所述预设峰值是所述目标数据库的正式表在预定时间内的压力指标峰值;
基于所述第二极限值对所述目标数据库进行压测。
CN201811015635.3A 2018-08-31 2018-08-31 一种数据库压测方法、装置及电子设备 Active CN109254904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811015635.3A CN109254904B (zh) 2018-08-31 2018-08-31 一种数据库压测方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811015635.3A CN109254904B (zh) 2018-08-31 2018-08-31 一种数据库压测方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN109254904A true CN109254904A (zh) 2019-01-22
CN109254904B CN109254904B (zh) 2022-02-08

Family

ID=65050065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811015635.3A Active CN109254904B (zh) 2018-08-31 2018-08-31 一种数据库压测方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109254904B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750584A (zh) * 2019-09-18 2020-02-04 苏宁云计算有限公司 数据管理方法和系统
CN111464383A (zh) * 2020-03-30 2020-07-28 中国建设银行股份有限公司 基于生产环境的系统容量测试方法及装置
CN113315677A (zh) * 2021-05-19 2021-08-27 湖南快乐阳光互动娱乐传媒有限公司 一种基于镜像流量的压测方法、装置、存储介质和设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859758B1 (en) * 2002-11-12 2005-02-22 Cisco Technology, Inc. Stress testing database storage
US20060253500A1 (en) * 2005-05-04 2006-11-09 Rajesh Kapur Method for validating system changes by use of a replicated system as a system testbed
CN102955721A (zh) * 2011-08-16 2013-03-06 阿里巴巴集团控股有限公司 一种测试用的压力生成方法及装置
CN105446825A (zh) * 2014-06-12 2016-03-30 阿里巴巴集团控股有限公司 数据库测试方法及装置
CN105975603A (zh) * 2016-05-11 2016-09-28 深圳市永兴元科技有限公司 数据库性能测试方法及装置
CN106230651A (zh) * 2016-07-12 2016-12-14 众安在线财产保险股份有限公司 一种互联网系统的压力测试系统和方法
CN106708818A (zh) * 2015-07-17 2017-05-24 阿里巴巴集团控股有限公司 一种压力测试方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859758B1 (en) * 2002-11-12 2005-02-22 Cisco Technology, Inc. Stress testing database storage
US20060253500A1 (en) * 2005-05-04 2006-11-09 Rajesh Kapur Method for validating system changes by use of a replicated system as a system testbed
CN102955721A (zh) * 2011-08-16 2013-03-06 阿里巴巴集团控股有限公司 一种测试用的压力生成方法及装置
CN105446825A (zh) * 2014-06-12 2016-03-30 阿里巴巴集团控股有限公司 数据库测试方法及装置
CN106708818A (zh) * 2015-07-17 2017-05-24 阿里巴巴集团控股有限公司 一种压力测试方法和系统
CN105975603A (zh) * 2016-05-11 2016-09-28 深圳市永兴元科技有限公司 数据库性能测试方法及装置
CN106230651A (zh) * 2016-07-12 2016-12-14 众安在线财产保险股份有限公司 一种互联网系统的压力测试系统和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
L. MOTALOVA等: "Stress Testing Data Access via a Web Service for Determination of Adequate Server Hardware for Developed Software Solution", 《2010 SECOND INTERNATIONAL CONFERENCE ON COMPUTER ENGINEERING AND APPLICATIONS》 *
成燕等: "电子商务软件负载能力评估的实例分析", 《北京化工大学学报(自然科学版)》 *
李征宇等: "数据库性能评测指标及其测试方法研究", 《电子设计工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750584A (zh) * 2019-09-18 2020-02-04 苏宁云计算有限公司 数据管理方法和系统
CN111464383A (zh) * 2020-03-30 2020-07-28 中国建设银行股份有限公司 基于生产环境的系统容量测试方法及装置
CN113315677A (zh) * 2021-05-19 2021-08-27 湖南快乐阳光互动娱乐传媒有限公司 一种基于镜像流量的压测方法、装置、存储介质和设备

Also Published As

Publication number Publication date
CN109254904B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
US10007492B2 (en) System and method for automatically generating device drivers for run time environments
US8140319B2 (en) Method and system for predicting system performance and capacity using software module performance statistics
CN110648138B (zh) 基于区块链的交易查询、交易数据处理方法、装置及设备
CN107015882A (zh) 一种区块数据校验方法和装置
CN109254904A (zh) 一种数据库压测方法、装置及电子设备
CN109934712B (zh) 应用于分布式系统的对账方法、对账装置和电子设备
CN106897342B (zh) 一种数据校验方法和设备
CN109299222A (zh) 数据核对方法及装置
CN111506580B (zh) 一种基于中心化块链式账本的交易存储方法
CN110175201A (zh) 业务数据处理方法、系统、装置及电子设备
CN110147410A (zh) 一种块链式账本中的数据验证方法、系统、装置及设备
CN109345221A (zh) 资源流转的核对方法及装置
CN105677645B (zh) 一种数据表比对方法和装置
CN111723102A (zh) 一种智能合约的更新方法和装置
CN110362569A (zh) 数据表的校验方法及装置、电子设备、存储介质
CN105631718A (zh) 对象管理方法及装置
CN109597706B (zh) 一种核对差异数据的检测方法、装置及系统
US11243742B2 (en) Data merge processing based on differences between source and merged data
WO2014174362A1 (en) Feature model based testing
CN108710658B (zh) 一种数据记录的存储方法及装置
CN110020780A (zh) 信息输出的方法、装置和电子设备
CN110020958A (zh) 一种投保和投保链路测试方法、装置及设备
CN109214902B (zh) 一种用户账户资产清算方法及装置
CN106815136B (zh) 单元测试方法及装置
CN105989021A (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: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant