数据库性能测试方法与装置的制造方法

文档序号:9631629阅读:384来源:国知局
数据库性能测试方法与装置的制造方法
【技术领域】
[0001]本发明涉及数据库技术领域,特别是涉及一种数据库性能测试方法与装置。
【背景技术】
[0002]MongoDB是一个基于分布式文件存储的数据库,它是介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的数据库。MongoDB支持的数据结构松散,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。基于MongoDB具有如此多的优点,因此在数据处理领域被广泛应用。
[0003]而数据库性能测试是数据库应用前的一个必不可少的环节。目前市场上主要是针对MongoDB2.0以下型号的数据库性能测试方案。MongoDB2.0以下型号的数据库每次只能处理一个请求,也就是说,当同时并发十个请求时,数据库将十个请求添加到队列中,依次从队列中提取各请求进行处理来对数据库的性能进行测试。
[0004]显然,现有的数据库性能测试方案,无法对数据库同时处理多个请求时的性能进行有效测试,也即,无法有效对数据库进行压力测试。

【发明内容】

[0005]鉴于现有的数据库测试方案无法有效对数据库进行压力测试的问题,提出了本发明以便提供一种克服上述问题的数据库测试方法与装置。
[0006]依据本发明的一个方面,提供了一种数据库性能测试方法,包括:依据配置参数创建并发线程并构建测试环境;通过所述并发线程向所述测试环境并行发送访问请求,以对数据库性能进行测试。
[0007]优选地,所述配置参数包括:并发线程数量、集合数量和文档记录数中的至少一种;所述依据所述配置参数创建测试并发线程并构建测试环境的步骤包括:创建与所述并发线程数量相同数量的并发线程;和/或创建与所述集合数量相同的数量的集合;和/或创建所述文档记录数相同数量的文档记录,并将创建的文档记录平均存储至各集合中,以构建所述测试环境。
[0008]优选地,所述配置参数包括:测试结果输出频率,所述方法还包括:监测测试结果输出时间间隔内的并发访问请求;对监测到的各访问请求结果进行统计得到测试样本数据;输出所述测试样本数据、以及用于指示当前输出时间的时间戳。
[0009]优选地,所述配置参数还包括:测试时间,所述方法还包括:当对数据库性能测试的时间满足所述配置参数中设置的测试时间时,对所述测试时间内每次输出的测试样本数据进行分析,得到所述数据库性能测试结果。
[0010]优选地,所述测试样本数据包括:每秒平均查询率和/或系统平均吞吐量,则所述对所述测试时间内每次输出的测试样本数据进行分析,得到所述数据库性能测试结果的步骤进一步包括:构建每秒平均查询率随时间变化的第一曲线和/或系统平均吞吐量随时间变化的第二曲线;判断所述第一曲线的最大峰值与最小峰值之差是否小于第一设定值、以及所述第一曲线的最小峰值是否大于第二设定值,和/或,判断所述第二曲线的最大峰值与最小峰值之差是否小于第三设定值且所述第二曲线的最小峰值是否大于第四设定值;在所述第一曲线的最大峰值与最小峰值之差小于第一设定值且所述第一曲线的最小峰值大于第二设定值,和/或,所述第二曲线的最大峰值与最小峰值之差小于第三设定值且所述第二曲线的最小峰值大于第四设定值时,确定所述数据库性能符合标准。
[0011]优选地,所述测试样本数据还包括:访问请求失败率,所述对所述测试时间内每次输出的测试样本数据进行分析,得到所述数据库性能测试结果的步骤,进一步包括:计算所述测试时间内输出的各访问请求失败率的平均值;判断所述平均值是否小于第五设定值;若小于,则确定所述数据库性能符合标准。
[0012]优选地,所述测试样本数据还包括:访问请求失败率,所述对所述测试时间内每次输出的测试样本数据进行分析,得到所述数据库性能测试结果的步骤,进一步包括:构建每次输出的访问请求失败率随时间变化的第三曲线;判断所述第三曲线的最大峰值与最小峰值之差是否小于第六设定值、以及所述第三曲线的最大峰值是否小于第七设定值;若均小于,则确定所述数据库性能符合标准。
[0013]优选地,所述并行发送的访问请求包括如下请求中的至少一种:删除文档记录请求、更新文档记录请求、插入文档记录请求以及查询文档记录请求。
[0014]依据本发明的另一个方面,提供了一种数据库性能测试装置,包括:创建模块,用于依据配置参数创建并发线程并构建测试环境;发送模块,用于通过所述并发线程向所述测试环境并行发送访问请求,以对数据库性能进行测试。
[0015]优选地,所述配置参数包括:并发线程数量、集合数量和文档记录数中的至少一种;所述创建模块包括:线程创建子模块,用于创建与所述并发线程数量相同数量的并发线程;和/或集合创建子模块,用于创建与所述集合数量相同的数量的集合;和/或文档记录创建子模块,用于创建所述文档记录数相同数量的文档记录,并将创建的文档记录平均存储至各集合中,以构建所述测试环境。
[0016]优选地,所述配置参数包括:测试结果输出频率,所述装置还包括:监测模块,用于监测测试结果输出时间间隔内的并发访问请求;统计模块,用于对监测到的各访问请求结果进行统计得到测试样本数据;输出模块,用于输出所述测试样本数据、以及用于指示当前输出时间的时间戳。
[0017]优选地,所述配置参数还包括:测试时间,所述装置还包括:结果确定模块,用于当对数据库性能测试的时间满足所述配置参数中设置的测试时间时,对所述测试时间内每次输出的测试样本数据进行分析,得到所述数据库性能测试结果。
[0018]优选地,所述测试样本数据包括:每秒平均查询率和/或系统平均吞吐量,则所述结果确定模块包括:曲线构建子模块,用于构建每秒平均查询率随时间变化的第一曲线和/或系统平均吞吐量随时间变化的第二曲线;峰值判断子模块,用于判断所述第一曲线的最大峰值与最小峰值之差是否小于第一设定值、以及所述第一曲线的最小峰值是否大于第二设定值,和/或,判断所述第二曲线的最大峰值与最小峰值之差是否小于第三设定值、以及所述第二曲线的最小峰值是否大于第四设定值;性能确定子模块,用于在所述第一曲线的最大峰值与最小峰值之差小于第一设定值且所述第一曲线的最小峰值大于第二设定值,和/或,所述第二曲线的最大峰值与最小峰值之差小于第三设定值且所述第二曲线的最小峰值大于第四设定值时,确定所述数据库性能符合标准。
[0019]优选地,所述测试样本数据还包括:访问请求失败率,所述结果确定模块具体用于:计算所述测试时间内输出的各访问请求失败率的平均值;判断所述平均值是否小于第五设定值;若小于,则确定所述数据库性能符合标准。
[0020]优选地,所述测试样本数据还包括:访问请求失败率,所述结果确定模块具体用于:构建每次输出的访问请求失败率随时间变化的第三曲线;判断所述第三曲线的最大峰值与最小峰值之差是否小于第六设定值、以及所述第三曲线的最大峰值是否小于第七设定值;若均小于,则确定所述数据库性能符合标准。
[0021]优选地,所述并行发送的访问请求包括如下请求中的至少一种:删除文档记录请求、更新文档记录请求、插入文档记录请求以及查询文档记录请求。
[0022]本发明实施例提供的数据库性能测试方案,由于能够通过并发线程向测试环境并行发送访问请求,数据库则需要同时处理多个并发访问请求,相应地,即可对数据库同时处理多个访问请求时的性能进行有效测试,也就是说能够有效对数据库进行压力测试。相应地,能够对具有压力测试需求的数据库例如MongoDB3.0进行性能测试。
[0023]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0024]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0025]图1示出了根据本发明一个实施例的一种数据库性能测试方法的步骤流程示意图;
[0026]图2示出了根据本发明一个实施例的一种数据库性能测试方法的步骤流程示意图;
[0027]图3示出了根据本发明一个实施例的一种数据库性能测试装置的结构示意图;以及
[0028]图4示出了根据本发明一个实施例的一种数据库性能测试装置的结构示意图。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1