一种分布式存储引擎的性能测试方法、装置、设备及介质与流程



1.本发明涉及计算机技术领域,特别涉及一种分布式存储引擎的性能测试方法、装置、设备及介质。


背景技术:



2.随着ceph(分布式文件系统)的发展和社区的贡献,作为ceph osd(object-based storage device,对象存储)存储引擎的objectstore也在不断迭代优化,到目前为止有filestore和bluestore等存储引擎,新一代存储引擎seastore已经进入测试阶段。
3.由于使用硬盘不同,无论使用哪种存储引擎都存在不尽人意的地方,无法完全满足硬盘的需要,或者无法完全发挥出硬盘的优势,因此经常需要对存储引擎进行优化修改,以提高其存储性能。但是当前大部分的测试方案都需要通过搭建集通过rados(reliable autonomic distributed object store)工具来测试ceph整体性能,参见图1所示,而通过集测试又会引入一些不必要的干扰,难以对存储引擎做更详尽的分析和测试。
4.在ceph原生的测试工具中,尽管也提供了单独测试bluestore等存储引擎的单元测试程序,然而该单元测试主要以测试存储引擎的功能为主,仅设定了一些简单的、单一的测试方案,不适合进行长时间、高复杂测试场景,无法满足对存储引擎的性能做整体的测试的需要。
5.为此,如何设计一种简单有效并能单独测试存储引擎的工具,并满足对存储引擎的性能做整体测试的需要,是本领域亟待解决的问题。


技术实现要素:



6.有鉴于此,本发明的目的在于提供一种分布式存储引擎的性能测试方法、装置、设备及介质,能够避免引入不必要的干扰并满足对存储引擎的性能做整体测试的需要,其具体方案如下:
7.第一方面,本技术公开了一种分布式存储引擎的性能测试方法,包括:
8.初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;
9.将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;
10.收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
11.可选的,所述分布式存储引擎的性能测试方法,包括:
12.将若干数量的集合均匀分发至若干数量的工作线程;其中,每一所述集合中包括若干数量的测试对象。
13.可选的,所述基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工
作线程以及若干数量的测试对象,包括:
14.基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程、若干数量的测试对象、以及若干数量的集合。
15.可选的,所述收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,包括:
16.按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息。
17.可选的,所述通过执行所述工作线程完成所述存储引擎的读写操作,包括:
18.通过执行所述工作线程确定操作类型,并计算操作偏移位置以及长度;其中,所述操作类型包括随机读、随机写、顺序读以及顺序写;
19.基于所述操作操作类型确定所述存储引擎的接口,然后通过调用所述接口,并基于所述操作偏移位置以及长度完成所述存储引擎的读写操作。
20.可选的,所述通过执行所述工作线程确定操作类型之前,还包括:
21.判断是否存在任一所述工作线程满足预设的测试结束条件;
22.如果存在,则结束所述工作线程的执行过程,以完成性能测试,如果不存在,则通过执行所述工作线程确定所述操作类型。
23.可选的,所述分布式本地存储引擎的性能测试方法,还包括:
24.在完成所述存储引擎的读写操作之后,统计所述存储引擎的性能信息。
25.第二方面,本技术公开了一种分布式存储引擎的性能测试装置,包括:
26.引擎、对象及线程的创建模块,用于初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;
27.线程执行模块,用于将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;
28.性能信息收集模块,用于收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
29.第三方面,本技术公开了一种电子设备,包括:
30.存储器,用于保存计算机程序;
31.处理器,用于执行所述计算机程序,以实现前述公开的分布式存储引擎的性能测试方法。
32.第四方面,本技术公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的分布式存储引擎的性能测试方法。
33.可见,本技术提出一种分布式存储引擎的性能测试方法,包括:初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。可见,本技术在非集模式下单独测试存储引擎的性能,抛弃osd层的逻辑处理过程,降低上层应用对存
储引擎性能测试时的影响,充分验证存储引擎对硬盘的支持程度,使得存储引擎的性能测试准确性和可控性大大提高。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.图1为一种现有的存储引擎性能测试方法流程图;
36.图2为本技术公开的一种分布式存储引擎的性能测试方法流程图;
37.图3为本技术公开的改进后的存储引擎性能测试的流程图;
38.图4为本技术公开的一种具体的分布式存储引擎的性能测试方法流程图;
39.图5为本技术公开的一种具体的分布式存储引擎的性能测试方法流程图;
40.图6为本技术公开的一种工作线程的流程示意图;
41.图7为本技术公开的一种分布式存储引擎的性能测试装置结构示意图;
42.图8为本技术公开的一种电子设备结构图。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.由于使用硬盘不同,无论使用哪种存储引擎都存在不尽人意的地方,无法完全满足硬盘的需要,或者无法完全发挥出硬盘的优势,因此经常需要对存储引擎进行优化修改,以提高其存储性能。但是当前大部分的测试方案都需要通过搭建集通过rados工具来测试ceph整体性能,而通过集测试又会引入一些不必要的干扰,难以对存储引擎做更详尽的分析和测试。在ceph原生的测试工具中,尽管也提供了单独测试bluestore等存储引擎的单元测试程序,然而该单元测试主要以测试存储引擎的功能为主,仅设定了一些简单的、单一的测试方案,不适合进行长时间、高复杂测试场景,无法满足对存储引擎的性能做整体的测试的需要。
45.为此,本技术实施例提出一种分布式存储引擎的性能测试方案,能够避免引入不必要的干扰并满足对存储引擎的性能做整体测试的需要。
46.本技术实施例公开了一种分布式存储引擎的性能测试方法,参见图2所示,该方法包括:
47.步骤s11:初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象。
48.本实施例中,首先初始化全局公共信息,初始化分布式文件系统环境,并在初始化全局公共信息之后,基于配置文件中的预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象。具体的,基于配置文件中的配置存储类型创
建存储引擎,所述存储引擎包括但不限于是bluestore、filestore等,需要指出的是,bluestore存储引擎以及filestore存储引擎为objectstore的一种;基于配置文件中的测试对象的数目以及线程数目创建若干数量的测试对象以及工作线程。
49.步骤s12:将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作。
50.在一种具体的实施方式中,在确定出若干数量的测试对象以及工作线程后,将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作。
51.在另一种具体的实施方式中,本实施例还可以将若干数量的集合均匀分发至若干数量的工作线程;其中,每一所述集合中包括若干数量的测试对象。需要指出的是,在将若干数量的集合均匀分发至若干数量的工作线程之前,需要基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程、若干数量的测试对象、以及若干数量的集合。
52.步骤s13:收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
53.本实施例中,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息具体包括:按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。示例性的,所述预设的测试结束条件包括但不限于设定测试的时间为半小时,进一步的,在测试时间达到半小时后,结束所述工作线程的执行过程,以完成性能测试;所述性能信息包括但不限于是时延、带宽、iops(input/output operations per second,即每秒进行读写操作的次数)等性能数据。
54.参见图3所示,图3为本技术公开的存储引擎性能测试的流程图,通过本技术性能测试工具,实现对objectstore存储引擎的性能测试,具体的,参见图4所示,首先初始化全局公共信息,并创建存储引擎,然后在配置文件中加载各种配置参数信息。在加载完配置参数信息后,对存储引擎进行初始化,并根据配置参数信息创建测试对象、集合、工作线程,然后按照所述测试对象的数量或所述集合的数量,将所述测试对象或集合均匀分配至所述工作线程,进一步执行所述工作线程。判断当前是否满足预设的停止条件,如果不满足,则按照一定的时间间隔收集各工作线程的性能信息,并保存收集到的性能信息,如果满足,则结束测试。
55.综上可见,相较于传统的,通过搭建集,并通过rados来测试ceph整体性能的方法,本技术在非集模式下(本地节点)单独测试存储引擎的性能,抛弃osd层的逻辑处理过程,降低上层应用对存储引擎性能测试时的影响,充分验证存储引擎对硬盘的支持程度,使得存储引擎的性能测试准确性和可控性大大提高。
56.可见,本技术提出一种分布式存储引擎的性能测试方法,包括:初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满
足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。可见,本技术在非集模式下单独测试存储引擎的性能,抛弃osd层的逻辑处理过程,降低上层应用对存储引擎性能测试时的影响,充分验证存储引擎对硬盘的支持程度,使得存储引擎的性能测试准确性和可控性大大提高。
57.本技术实施例公开了一种具体的分布式本地存储引擎的性能测试方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图5以及图6所示,具体包括:
58.步骤s21:初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象。
59.本实施例中,首先初始化全局公共信息,初始化分布式文件系统环境,并在初始化全局公共信息之后,基于配置文件中的预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象,具体包括:基于配置文件中的配置存储类型创建存储引擎,所述存储引擎包括但不限于是bluestore、filestore等;基于配置文件中的测试对象的数目以及线程数目创建若干数量的测试对象以及工作线程。
60.步骤s22:将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程确定操作类型,并计算操作偏移位置以及长度;其中,所述操作类型包括随机读、随机写、顺序读以及顺序写。
61.参见图6所示,本实施例首先需要判断是否存在任一所述工作线程满足预设的测试结束条件;如果存在,则结束所述工作线程的执行过程,以完成性能测试,如果不存在,则通过执行所述工作线程确定所述操作类型,其中,所述操作类型包括随机读、随机写、顺序读以及顺序写,在确定出相应的操作类型后,计算操作偏移位置以及长度。
62.需要指出的是,针对上述四种操作类型,存在以下处理方式:
63.对于顺序读与顺序写,按照操作数据长度,存在两种处理方式:写入对象按照定长写入与不定长两种方式,无论定长与不定长,最终都需要填满整个对象空间,然后再转入对下一个对象的处理。
64.对于随机读与随机写,除了存在上述两种操作数据长度,同时存在两种随机方式:真随机与伪随机。采用真随机方式,则使用当前时间的整形值作为随机生成函数种子,每个工作线程中每次处理的对象与操作该对象的区间均按照随机方式进行;采用伪随机方式,使用固定值作为随机生成函数种子,每个工作线程中每次处理的对象与操作该对象的区间也按照随机方式进行,与真随机不同在于每次启动时,伪随机都按照固定的随机方式进行,在某些场景下伪随机方式对于排查问题非常有帮助。
65.步骤s23:基于所述操作操作类型确定所述存储引擎的接口,然后通过调用所述接口,并基于所述操作偏移位置以及长度完成所述存储引擎的读写操作。
66.本实施例中,通过执行所述工作线程,并通过调用所述接口,然后基于所述操作偏移位置以及长度完成所述存储引擎的读写操作,并在完成所述存储引擎的读写操作之后,统计所述存储引擎的性能信息。
67.步骤s24:收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
68.本实施例中,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息具体包括:按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
69.综上可见,通过本技术的性能测试方法,可以在屏蔽上层应用的干扰下,单独测试存储引擎的存储性能,包含多对象多线程,以及随机方式和顺序方式,定长处理数据与不定长处理数据等功能,功能强大,可控范围广控制精度高。可以实现多角度测试存储引擎各项性能,同时对于验证闪存阵列的存储性能也有很大帮助。
70.本技术提出一种分布式存储引擎的性能测试方法,包括:初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程确定操作类型,并计算操作偏移位置以及长度;其中,所述操作类型包括随机读、随机写、顺序读以及顺序写;基于所述操作操作类型确定所述存储引擎的接口,然后通过调用所述接口,并基于所述操作偏移位置以及长度完成所述存储引擎的读写操作;收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试,可见,本技术在非集模式下单独测试存储引擎的性能,抛弃osd层的逻辑处理过程,降低上层应用对存储引擎性能测试时的影响,充分验证存储引擎对硬盘的支持程度,使得存储引擎的性能测试准确性和可控性大大提高。
71.相应的,本技术实施例还公开了一种分布式存储引擎的性能测试装置,参见图7所示,该装置包括:
72.引擎、对象及线程的创建模块11,用于初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;
73.本技术中,首先初始化全局公共信息,初始化分布式文件系统环境,然后基于配置文件中的预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象。
74.线程执行模块12,用于将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;
75.本技术中,在确定出若干数量的测试对象以及工作线程后,将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作。
76.性能信息收集模块13,用于收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
77.本技术中,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息具体包括:按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
78.可见,本技术提出一种分布式存储引擎的性能测试方法,包括:初始化全局公共信
息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。可见,本技术在非集模式下单独测试存储引擎的性能,抛弃osd层的逻辑处理过程,降低上层应用对存储引擎性能测试时的影响,充分验证存储引擎对硬盘的支持程度,使得存储引擎的性能测试准确性和可控性大大提高。
79.在一些具体的实施例中,所述分布式存储引擎的性能测试装置,还可以包括:
80.集合分发模块,用于将若干数量的集合均匀分发至若干数量的工作线程;其中,每一所述集合中包括若干数量的测试对象。
81.在一些具体的实施例中,所述引擎、对象及线程的创建模块11,具体可以包括:
82.引擎、对象、集合以及线程的创建单元,用于基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程、若干数量的测试对象、以及若干数量的集合。
83.在一些具体的实施例中,所述性能信息收集模块13,具体可以包括:
84.性能信息收集单元,用于按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息。
85.在一些具体的实施例中,所述线程执行模块12,具体可以包括:
86.操作类型确定单元,用于通过执行所述工作线程确定操作类型,并计算操作偏移位置以及长度;其中,所述操作类型包括随机读、随机写、顺序读以及顺序写;
87.线程执行单元,用于基于所述操作操作类型确定所述存储引擎的接口,然后通过调用所述接口,并基于所述操作偏移位置以及长度完成所述存储引擎的读写操作。
88.在一些具体的实施例中,所述线程执行模块12之前,进一步号可以包括:
89.测试条件判断单元,用于判断是否存在任一所述工作线程满足预设的测试结束条件;如果存在,则结束所述工作线程的执行过程,以完成性能测试,如果不存在,则通过执行所述工作线程确定所述操作类型。
90.在一些具体的实施例中,所述分布式存储引擎的性能测试装置,进一步是可以包括:
91.性能信息统计模块,用于在完成所述存储引擎的读写操作之后,统计所述存储引擎的性能信息。
92.进一步的,本技术实施例还提供了一种电子设备。图8是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
93.图8为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、显示屏23、输入输出接口24、通信接口25、电源26和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现以下步骤:
94.初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;
95.将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工
作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;
96.收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。
97.在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,进一步还可以实现以下步骤:
98.将若干数量的集合均匀分发至若干数量的工作线程;其中,每一所述集合中包括若干数量的测试对象。
99.在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
100.基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程、若干数量的测试对象、以及若干数量的集合。
101.在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
102.按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息。
103.在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
104.通过执行所述工作线程确定操作类型,并计算操作偏移位置以及长度;其中,所述操作类型包括随机读、随机写、顺序读以及顺序写;
105.基于所述操作操作类型确定所述存储引擎的接口,然后通过调用所述接口,并基于所述操作偏移位置以及长度完成所述存储引擎的读写操作。
106.在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,进一步还可以实现以下步骤:
107.判断是否存在任一所述工作线程满足预设的测试结束条件;
108.如果存在,则结束所述工作线程的执行过程,以完成性能测试,如果不存在,则通过执行所述工作线程确定所述操作类型。
109.在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,进一步还可以实现以下步骤:
110.在完成所述存储引擎的读写操作之后,统计所述存储引擎的性能信息。
111.本实施例中,电源26用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
112.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括计算机程序221,存储方式可以是短暂存储或者永久存储。其中,计算机程序221除了包括能够用于完成前述任一实施例公开的由电子设备20执行的分布式本地存储引擎的性能测试方法的计算机程序之外,还可以进一步包括能够用于完
成其他特定工作的计算机程序。
113.进一步的,本技术实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的分布式本地存储引擎的性能测试方法。
114.关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
115.本技术书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
116.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
117.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
118.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
119.以上对本技术所提供的一种分布式本地存储引擎的性能测试方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:


1.一种分布式存储引擎的性能测试方法,其特征在于,包括:初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,并当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。2.根据权利要求1所述的分布式存储引擎的性能测试方法,其特征在于,还包括:将若干数量的集合均匀分发至若干数量的工作线程;其中,每一所述集合中包括若干数量的测试对象。3.根据权利要求2所述的分布式本地存储引擎的性能测试方法,其特征在于,所述基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象,包括:基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程、若干数量的测试对象、以及若干数量的集合。4.根据权利要求1所述的分布式本地存储引擎的性能测试方法,其特征在于,所述收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息,包括:按照预设的时间间隔,收集每一所述工作线程在完成读写操作后统计的所述存储引擎的性能信息。5.根据权利要求1至4任一项所述的分布式本地存储引擎的性能测试方法,其特征在于,所述通过执行所述工作线程完成所述存储引擎的读写操作,包括:通过执行所述工作线程确定操作类型,并计算操作偏移位置以及长度;其中,所述操作类型包括随机读、随机写、顺序读以及顺序写;基于所述操作操作类型确定所述存储引擎的接口,然后通过调用所述接口,并基于所述操作偏移位置以及长度完成所述存储引擎的读写操作。6.根据权利要求5所述的分布式本地存储引擎的性能测试方法,其特征在于,所述通过执行所述工作线程确定操作类型之前,还包括:判断是否存在任一所述工作线程满足预设的测试结束条件;如果存在,则结束所述工作线程的执行过程,以完成性能测试,如果不存在,则通过执行所述工作线程确定所述操作类型。7.根据权利要求5所述的分布式本地存储引擎的性能测试方法,其特征在于,还包括:在完成所述存储引擎的读写操作之后,统计所述存储引擎的性能信息。8.一种分布式存储引擎的性能测试装置,其特征在于,包括:引擎、对象及线程的创建模块,用于初始化全局公共信息,并基于预设的配置参数信息在本地节点创建存储引擎、若干数量的工作线程以及若干数量的测试对象;线程执行模块,用于将若干数量的所述测试对象均匀分发至若干数量的所述工作线程,并启动所述工作线程,然后通过执行所述工作线程完成所述存储引擎的读写操作;性能信息收集模块,用于收集每一所述工作线程在完成读写操作后统计的所述存储引
擎的性能信息,当任一所述工作线程满足预设的测试结束条件时,结束所述工作线程的执行过程,以完成性能测试。9.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的分布式存储引擎的性能测试方法。10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的分布式存储引擎的性能测试方法。

技术总结


本申请公开了一种分布式存储引擎的性能测试方法、装置、设备及介质,涉及计算机技术领域,包括:初始化全局公共信息,并基于预设配置参数信息在本地节点创建存储引擎、若干数量的工作线程及若干数量的测试对象;将若干数量的测试对象均匀分发至若干数量的工作线程,并启动工作线程,然后通过执行工作线程完成存储引擎的读写操作;收集每一工作线程在完成读写操作后统计的存储引擎的性能信息,并当任一工作线程满足预设的测试结束条件时,结束工作线程的执行过程。可见,本申请在非集模式下单独测试存储引擎的性能,抛弃OSD层的逻辑处理过程,降低上层应用对存储引擎性能测试时的影响,性能测试准确性和可控性大大提高。性能测试准确性和可控性大大提高。性能测试准确性和可控性大大提高。


技术研发人员:

乔继辉 王家乐 李文鹏

受保护的技术使用者:

济南浪潮数据技术有限公司

技术研发日:

2022.10.21

技术公布日:

2022/12/9

本文发布于:2024-09-25 02:25:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/31356.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   线程   引擎   工作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议