一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种omap操作性能测试方法、装置及介质与流程

2022-06-29 14:11:29 来源:中国专利 TAG:


1.本技术涉及分布式存储领域,特别是涉及一种omap操作性能测试方法、装置及介质。


背景技术:

2.omap指代的是object map,即用来保存key-value键值对map数据的对象。在分布式存储中,omap对象有着非常重要的作用,在分布式存储提供的文件和对象服务中,omap性能的表现直接影响集群存储性能的表现。在文件服务中目录索引等元数据都是保存在omap对象中,比如记录一个目录下对应的文件等信息;另外文件系统中进行异步删除的游离目录对象也是omap对象,将要删除的文件先放入游离目录下,然后后台缓慢进行清理。在对象存储中也有与类似游离目录对象的垃圾回收对象,也是omap对象,来进行删除对象的垃圾回收操作,另外对象存储中的桶分片对象也是omap对象,来记录某个桶下的对象名。由此可见,omap对象在分布式存储中比较重要,而omap相关操作的性能也就与存储集群的性能强相关。
3.一般情况下,每个本地存储引擎都有自己的性能基准测试工具并向外提供自己的性能基准测试结果,但是在将本地存储引擎与存储系统集成之后,没有针对存储系统实现的本地数据库接口的性能基准测试。直接以文件或对象服务的形式来进行性能基准测试的话,性能指标不可衡量且不通用,而且加深了代码调用栈,出现了性能瓶颈;而且上层业务不太容易将压力加到底层性能上限,无法测出极限值。
4.鉴于上述问题,设计一种可靠的omap操作性能测试方法,是该领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种omap操作性能测试方法、装置及介质。
6.为解决上述技术问题,本技术提供一种omap操作性能测试方法,包括:
7.初始化测试参数,其中所述测试参数至少包含运行时间和并发数;
8.生成操作队列,其中所述操作队列的长度等于所述并发数;
9.生成omap请求,其中,所述omap请求包括omap写请求或omap读请求,所述omap请求的数量与所述并发数相等,各所述omap请求与所述操作队列的槽位一一对应;
10.通过所述操作队列将所述omap请求进行异步处理;
11.判断处理过程是否满足预设条件;
12.若是,输出测试统计数据。
13.优选地,当所述omap请求为所述omap写请求时,所述测试参数还包括:
14.写入对象的最大数量、各所述写入对象对应的key-value对的数量、key值长度、value值长度和表征是否清理的参数。
15.优选地,所述生成omap请求包括:
16.生成包含对象名、key值和value值的所述omap请求。
17.优选地,在所述生成操作队列之前,还包括:
18.创建数据打印线程,以用于以预设时间间隔输出性能数据。
19.优选地,所述判断处理过程是否满足预设条件包括:
20.判断处理过程中所述写入对象的数量是否达到所述写入对象的最大数量或所述运行时间是否达到阈值。
21.优选地,若判断处理过程不满足所述预设条件,还包括:
22.遍历所述操作队列的槽位;
23.判断所述操作队列的槽位是否可用;
24.若否,返回至所述遍历所述操作队列的槽位的步骤;
25.若是,根据当前物理时间和所述操作队列的槽位对应的上一次的omap请求下发时间获取统计数据;
26.根据所述统计数据生成新的omap请求,进入到所述判断处理过程是否满足预设条件的步骤。
27.优选地,若当前omap请求为所述omap写请求,则在所述输出测试统计数据之后,还包括:
28.根据所述表征是否清理的参数判断是否对所述omap写请求的信息进行清理;
29.若是,将所述omap写请求的信息进行清理;
30.若否,保存所述omap写请求的信息,以用于作为下一次所述omap读请求的所述测试参数。
31.为解决上述技术问题,本技术还提供一种omap操作性能测试装置,包括:
32.初始化模块,用于初始化测试参数,其中所述测试参数至少包含运行时间和并发数;
33.第一生成模块,用于生成操作队列,其中所述操作队列的长度等于所述并发数;
34.第二生成模块,用于生成omap请求,其中,所述omap请求包括omap写请求或omap读请求,所述omap请求的数量与所述并发数相等,各所述omap请求与所述操作队列的槽位一一对应;
35.处理模块,用于通过所述操作队列将所述omap请求进行异步处理;
36.判断模块,用于判断处理过程是否满足预设条件;若是,触发输出模块;
37.所述输出模块,用于输出测试统计数据。
38.为解决上述技术问题,本技术还提供另一种omap操作性能测试装置,包括:
39.存储器,用于存储计算机程序;
40.处理器,用于执行所述计算机程序时实现上述所述的omap操作性能测试方法的步骤。
41.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的omap操作性能测试方法的步骤。
42.本技术所提供的一种omap操作性能测试方法,通过初始化测试参数,其中测试参数至少包含运行时间和并发数;生成操作队列,其中操作队列的长度等于并发数,并生成
omap请求,omap请求包括omap写请求或omap读请求,omap请求的数量与并发数相等,各omap请求与操作队列的槽位一一对应;通过操作队列将omap请求进行异步处理,判断处理过程是否满足预设条件,若是,输出测试统计数据。由此可见,上述方案能够分别对分布式存储系统中omap操作的写操作和读取操作进行测试,由于设置了并发数且采用了异步处理的方式,因此能够多并发来控制测试的压力强度,从而能够获取到omap操作性能的极限值,十分的可靠。
43.此外,本技术实施例还提供了一种omap操作性能测试装置及计算机可读存储介质,效果同上。
附图说明
44.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本技术实施例提供的一种omap操作性能测试方法的流程图;
46.图2为本技术实施例提供的另一种omap操作性能测试方法的流程图;
47.图3为本技术实施例提供的一种omap操作性能测试装置的结构示意图;
48.图4为本技术实施例提供的另一种omap操作性能测试装置的结构示意图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
50.本技术的核心是提供一种omap操作性能测试方法、装置及介质。
51.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
52.omap指代的是object map,即用来保存key-value键值对map数据的对象,针对omap的操作主要是set和get操作。omap相关操作依托的是集成在分布式存储中的本地存储引擎,例如leveldb、rocksdb等,它们都是本地key-value数据库的一种。目前比较推荐使用的是rocksdb。omap数据最终是保存到osd(在分布式存储中用来管理一块磁盘的模块)对应的本地数据库中,根据冗余规则,比如存在三个副本的话,则会将omap数据保存到三个osd本地数据库中。
53.在分布式存储中,omap对象有着非常重要的作用,在分布式存储提供的文件和对象服务中,omap性能的表现直接影响集群存储性能的表现。在文件服务中目录索引等元数据都是保存在omap对象中,比如记录一个目录下对应的文件等信息;另外文件系统中进行异步删除的游离目录对象也是omap对象,将要删除的文件先放入游离目录下,然后后台缓慢进行清理。在对象存储中也有与类似游离目录对象的垃圾回收对象,也是omap对象,来进行删除对象的垃圾回收操作,另外对象存储中的桶分片对象也是omap对象,来记录某个桶下的对象名。一般情况下,每个本地存储引擎都有自己的性能基准测试工具并向外提供自
己的性能基准测试结果,但是在将本地存储引擎与存储系统集成之后,没有针对存储系统实现的本地数据库接口的性能基准测试。直接以文件或对象服务的形式来进行性能基准测试的话,性能指标不可衡量且不通用,而且加深了代码调用栈,出现了性能瓶颈;而且上层业务不太容易将压力加到底层性能上限,无法测出极限值。因此为了解决上述问题,本技术实施例提供了一种omap操作性能的测试方法。图1为本技术实施例提供的一种omap操作性能测试方法的流程图,如图1所示,方法包括:
54.s10:初始化测试参数,其中测试参数至少包含运行时间和并发数。
55.s11:生成操作队列,其中操作队列的长度等于并发数。
56.s12:生成omap请求,其中,omap请求包括omap写请求或omap读请求,omap请求的数量与并发数相等,各omap请求与操作队列的槽位一一对应。
57.s13:通过操作队列将omap请求进行异步处理。
58.s14:判断处理过程是否满足预设条件。
59.s15:若是,输出测试统计数据。
60.可以理解的是,本技术实施例提供的测试方法是针对omap对象key-value数据的写入和随机读取两种性能基准进行测试,在初始化测试参数时,两种测试的测试参数的具体参数内容可能会存在不同,分别根据具体的实施情况而定。但是两种测试中初始化测试参数至少要对运行时间和并发数进行初始化。
61.其次生成操作队列,其中操作队列的长度等于并发数。具体地,每个队列的元素中包含互斥量、执行结果等数据结构;如果互斥量已被锁住,则说明队列中的该槽位正在被使用,否则说明该槽位可用来处理新的请求。随后生成omap请求,其中,omap请求可以是omap写请求或omap读请求,根据具体的实施情况而定。omap请求的数量与并发数相等,各omap请求与操作队列的槽位一一对应,从而通过操作队列的槽位对omap请求进行异步处理。处理过程中记录每个槽位请求下发时间及已下发请求数等数据,异步请求处理完成之后会将执行结果填入每个槽位对应的执行结果,并释放该槽位的互斥量锁。在对请求进行异步处理后,判断处理过程是否满足预设条件。在本实施例中对于判断处理过程是否满足预设条件的具体判断方式不做限制,根据具体的实施情况而定。如果满足预设条件,则对包含执行结果的测试统计数据进行输出。
62.本实施例中,通过初始化测试参数,其中测试参数至少包含运行时间和并发数;生成操作队列,其中操作队列的长度等于并发数,并生成omap请求,omap请求包括omap写请求或omap读请求,omap请求的数量与并发数相等,各omap请求与操作队列的槽位一一对应;通过操作队列将omap请求进行异步处理,判断处理过程是否满足预设条件,若是,输出测试统计数据。由此可见,上述方案能够分别对分布式存储系统中omap操作的写操作和读取操作进行测试,由于设置了并发数且采用了异步处理的方式,因此能够多并发来控制测试的压力强度,从而能够获取到omap操作性能的极限值,十分的可靠。
63.在上述实施例的基础上:
64.作为一种优选的实施例,当omap请求为omap写请求时,测试参数还包括:
65.写入对象的最大数量、各写入对象对应的key-value对的数量、key值长度、value值长度和表征是否清理的参数。
66.可以理解的是,在上述实施例中可知,omap请求可以为omap写请求或omap读请求。
具体地,当omap请求为omap写请求时,测试参数还包括写入对象的最大数量、各写入对象对应的key-value对的数量、key值长度、value值长度和表征是否清理的参数。其中,表征是否清理的参数为测试结束后是否对omap写请求的信息进行清理的参数。
67.需要注意的是,本实施例中的测试参数虽然限定了是当omap请求为omap写请求时需要进行初始化的参数,但并不表示当omap请求为omap读请求时不需要上述参数。对于当omap读请求获取上述参数的方式不做限制,根据具体的实施情况而定。
68.本实施例中,当omap请求为omap写请求时,测试参数还包括写入对象的最大数量、各写入对象对应的key-value对的数量、key值长度、value值长度和表征是否清理的参数,为后续请求的异步处理提供数据。
69.在上述实施例的基础上:
70.作为一种优选的实施例,生成omap请求包括:
71.生成包含对象名、key值和value值的omap请求。
72.在具体实施中,生成的omap请求具体包括对象名、key值和value值。当生成的omap请求为omap写请求时,对象名以固定字符串 objectseq的形式生成,其中objectseq是从0开始的序列号,当完成设置的写入每个对象的key-value对的数量后,objectseq加1,开始写下一个对象。key值是根据objcetseq生成的,根据所设置key值长度的随机字符串 keyseq组成;keyseq是从0开始的序列号,一直到所设置的每个对象写入key-value对的数量为止;value值是随机生成的预设长度的字符串。
73.当生成的omap请求为omap读请求时,由于omap写请求的对象名是固定字符串加序列号,所以用随机数生成器生成一个在写入对象数范围内的随机数即可,这样就得到要读取的对象名;得到读取对象之后就得到对象的序列号,在omap写请求中对象的key值的组成是根据对象序列号生成的所设置key值长度的随机字符串加key值序列号,所以可以通过对象的序列号和key值长度得到随机字符串,然后用随机数生成器生成一个在单个对象key-value对的数量内的随机数即可得到key值,从此产生随机读取的对象和key值;value值同样是随机生成的预设长度的字符串。
74.本实施例中,omap请求中包含对象名、key值和value值,其中omap写请求和omap读请求的生成对象名、key值和value值的方式略有不同。在构造出对应的请求后供后续异步处理。
75.图2为本技术实施例提供的另一种omap操作性能测试方法的流程图。
76.如图2所示,在生成操作队列之前,还包括:
77.s16:创建数据打印线程,以用于以预设时间间隔输出性能数据。
78.本实施例中,通过创建数据打印线程,能够以预设时间间隔输出性能数据。例如每隔一秒打印性能数据,方便实时查看性能数据。
79.在上述实施例的基础上:
80.作为一种优选的实施例,判断处理过程是否满足预设条件包括:
81.判断处理过程中写入对象的数量是否达到写入对象的最大数量或运行时间是否达到阈值。
82.在上述实施例中,对于判断处理过程是否满足预设条件的具体判断方式不做限制,根据具体的实施情况而定。作为一种优选的实施例,在本实施例中判断处理过程中写入
对象的数量是否达到写入对象的最大数量或运行时间是否达到阈值,以确定是否完成测试。
83.如图2所示,在具体实施中,若判断处理过程不满足预设条件,还包括:
84.s17:遍历操作队列的槽位。
85.s18:判断操作队列的槽位是否可用;若否,返回步骤s17;若是,进入步骤s19。
86.s19:根据当前物理时间和操作队列的槽位对应的上一次的omap请求下发时间获取统计数据。
87.s20:根据统计数据生成新的omap请求,进入到步骤s14。
88.可以理解的是,判断处理过程中写入对象的数量是否达到写入对象的最大数量或运行时间是否达到阈值,会存在不满足达到写入对象的最大数量或不满足运行时间达到阈值的情况,从而无法对测试统计数据进行输出。因此若判断处理过程不满足预设条件,需要遍历操作队列的槽位,并尝试获取槽位的互斥量,如果获取成功则说明该槽位可用,从而判断操作队列的槽位是否可用。若判断操作队列的槽位不可用,则继续检查下一个槽位一直到有队列槽位释放出的来为止。
89.若判断操作队列的槽位可用,则根据当前物理时间和操作队列的槽位对应的上一次的omap请求下发时间获取统计数据。具体地,通过当前物理时间减去当前获取到的操作队列槽位对应的上一次omap请求下发时间得到上一次请求处理时延;根据上一次请求处理时延更新本次测试的最大时延、最小时延、平均时延和已处理完成的下发的请求数量等统计数据。
90.在得到统计数据后,根据统计数据生成新的omap请求,包括对象名、key值、value值,生成规则同上述实施例所述。然后使用当前获取到的队列槽位进行异步处理,并记录下发该请求的时间,返回步骤s14进行再次判断。
91.本实施例中,若判断处理过程不满足预设条件,根据操作队列的槽位,并根据当前物理时间和操作队列的槽位对应的上一次的omap请求下发时间获取到新的omap请求,直至处理满足预设条件,从而实现测试统计数据的输出。
92.在上述实施例的基础上:
93.作为一种优选的实施例,若当前omap请求为omap写请求,则在输出测试统计数据之后,还包括:
94.根据表征是否清理的参数判断是否对omap写请求的信息进行清理;
95.若是,将omap写请求的信息进行清理;
96.若否,保存omap写请求的信息,以用于作为下一次omap读请求的测试参数。
97.可以理解的是,在上述实施例中可知,表征是否清理的参数为测试结束后是否对omap写请求的信息进行清理的参数,在omap写请求的测试开始前初始化完成。当输出测试统计数据之后,若表征是否清理的参数指示对omap写请求的信息进行清理,则对omap写请求的信息进行清理。如果表征是否清理的参数指示对omap写请求的信息不进行清理,则保存omap写请求的信息,将本次运行信息持久化记录到一个对象上,包括写入对象的数量、每个对象的key-value对的数量、key值长度、value值长度等,以作为下一次omap读请求的测试参数。
98.本实施例中,通过表征是否清理的参数判断是否对omap写请求的信息进行清理,
从而在表征是否清理的参数指示对omap写请求的信息不进行清理时,保存omap写请求的信息,以作为下一次omap读请求的测试参数。
99.在上述实施例中,对于omap操作性能测试方法进行了详细描述,本技术还提供omap操作性能测试装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件结构的角度。
100.图3为本技术实施例提供的一种omap操作性能测试装置的结构示意图。如图3所示,omap操作性能测试装置包括:
101.初始化模块10,用于初始化测试参数,其中测试参数至少包含运行时间和并发数。
102.第一生成模块11,用于生成操作队列,其中操作队列的长度等于并发数。
103.第二生成模块12,用于生成omap请求,其中,omap请求包括omap写请求或omap读请求,omap请求的数量与并发数相等,各omap请求与操作队列的槽位一一对应。
104.处理模块13,用于通过操作队列将omap请求进行异步处理。
105.判断模块14,用于判断处理过程是否满足预设条件;若是,触发输出模块。
106.输出模块15,用于输出测试统计数据。
107.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
108.图4为本技术实施例提供的另一种omap操作性能测试装置的结构示意图,如图4所示,omap操作性能测试装置包括:
109.存储器20,用于存储计算机程序。
110.处理器21,用于执行计算机程序时实现如上述实施例中所提到的omap操作性能测试的方法的步骤。
111.本实施例提供的omap操作性能测试装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
112.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
113.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的omap操作性能测试方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、
unix、linux等。数据203可以包括但不限于omap操作性能测试方法涉及到的数据。
114.在一些实施例中,omap操作性能测试装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
115.本领域技术人员可以理解,图4中示出的结构并不构成对omap操作性能测试装置的限定,可以包括比图示更多或更少的组件。
116.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
117.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
118.以上对本技术所提供的一种omap操作性能测试方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
119.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献