一种存储设备的IO性能测试方法与流程
- 国知局
- 2024-07-31 19:46:04
本发明涉及性能测试领域,特别涉及一种存储设备的io性能测试方法。
背景技术:
1、作为现代计算机系统的核心组成部分,存储设备承担着数据存储和读写的任务。随着存储设备技术的不断发展,其容量和读写速度都在大幅提高,在计算机广泛的使用场景下,存储设备的io性能成为计算机硬件组成部分的关键指标之一,同时,随着数据中心的普及,存储设备的io性能表现直接关系到数据中心系统的整体高可用和稳定性。
2、评估存储设备的性能是保证计算机硬件整体性能的关键。目前,常见的存储设备性能测试方法包括基准测试和压力测试。基准测试是在空闲状态下对存储设备进行测试,以评估设备的极限性能;压力测试则是在存储设备受到高负载的情况下进行测试,以评估设备在不同极限情况下的性能表现。
3、基准测试和压力测试被广泛应用于评估存储设备的读写速度、延迟等性能指标。然而,这些测试方法往往存在局限,难以全面地体现出大部分应用场景下存储设备的真实io性能。如在大型仿真模型的载入过程中,需要存储设备具有高速的持续读写性能以保证模型的载入速度,而空闲状态下得到的基准测试结果通常对上述使用场景所需要的性能要求的参考性较差,同时,压力测试则受极限负载和应用环境的影响较大,难以反映存储设备在持续工作过程的性能表现。因此,一种更加真实、准确、可重复的io性能测试方法是衡量存储设备是否具有高耐用、高可靠性、高稳定性特点的关键。
技术实现思路
1、本发明的目的在于提出一种存储设备的io性能测试方法,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
2、本发明涉及性能测试领域,本发明提供了一种存储设备的io性能测试方法,搭建负载测试环境,在负载测试环境中配置存储设备,对存储设备进行io负载测试,记录存储设备在io负载测试过程中的性能数据,对所述性能数据进行失衡落点检测,得到失衡数据,利用失衡数据构建失衡测定模型。所述方法能够有效地评估存储设备的io性能,并及时发现存储设备中可能存在的异常,利用实时iops数据构建失衡测定模型以检测存储设备在高负载读写状态下的稳定性和可靠性,通过对存储设备在持续工作过程中是否存在某些瞬间的性能波动进行判断,进而对存储设备进行维护,避免数据读写延迟或失败,充分提高存储设备的使用性能和稳定性。
3、为了实现上述目的,根据本发明的一方面,提供一种存储设备的io性能测试方法,所述方法包括以下步骤:
4、s100,搭建负载测试环境,在负载测试环境中配置存储设备;
5、s200,对存储设备进行io负载测试,记录存储设备在io负载测试过程中的性能数据;
6、s300,对所述性能数据进行失衡落点检测,得到失衡数据;
7、s400,利用失衡数据构建失衡测定模型。
8、进一步地,步骤s100中,搭建负载测试环境,在负载测试环境中配置存储设备的方法具体为:配置物理主机,将所述物理主机作为测试环境,将存储设备接入该测试环境中,并在接入测试环境后的存储设备上创建至少一个分区。
9、可选地,所述物理主机的组成部件至少包括主板、处理器、cpu散热器、内存条、显卡、电源,各个组成部件按照相应的连接方式彼此连接;其中,所述主板的内存规格为ddr4内存或者ddr5内存,所述处理器内置有三级缓存,所述三级缓存的容量大于或等于16mb(mbbyte),所述内存条的容量大于或等于8gb(gigabyte),所述显卡为核芯显卡。
10、进一步地,步骤s200中,对存储设备进行io负载测试,记录存储设备在io负载测试过程中的性能数据的方法具体为:对存储设备进行分区预处理,通过iometer对分区预处理完成后的存储设备进行时长为t的负载测试,记录所述负载测试过程存储设备的实时iops(每秒的读写次数),将负载测试过程中的实时iops作为存储设备在io负载测试过程中的性能数据;所述t设置为[30,120]分钟。
11、进一步地,所述分区预处理的步骤具体包括:按照顺序写入的方式对存储设备进行零填充直至写满存储设备,对存储设备进行数据清零,按照随机写入的方式对存储设备进行零填充直至写满存储设备,对存储设备进行二次数据清零(即再次进行数据清零),将完成二次数据清零的存储设备作为分区预处理完成后的存储设备。
12、可选地,所述通过iometer对分区预处理完成后的存储设备进行负载测试的方法具体为:在iometer中,在targets选项中选中存储设备,并将maximum_disk_size选项中的sectors参数的数值设置为33554432(16gb测试容量下4k对齐),将starting_disk_sectors选项设置为0,outstanding i/os选项中的per_target参数设置为64,write_io_data_pattern选项设置为full_random,在results_display选项中勾选record_last_update_results_to_file(以每秒为间隔记录负载测试中的实时iops),点击开始测试按钮以开始负载测试。
13、进一步地,步骤s300中,对所述性能数据进行失衡落点检测,得到失衡数据的方法具体为:
14、s301,读取性能数据中的所有数据(性能数据由负载测试过程中存储设备每秒iops的值组成),创建一个空白的数组perf[],按照所述数据的记录时间的先后顺序,依次将性能数据中的每一个数据写入至数组perf[]中,以perf(i)表示数组perf[]内的第i个元素,i=1,2,…,n,n为数组perf[]内的所有元素,初始化一个整数变量j,变量j的初始值设置为1,变量j的取值范围为[1,n],创建一个长度为n的数组woo[],将数组woo[]内的所有元素的值都初始化为0,记woo(i)为数组woo[]内的第i个元素,从j=1开始遍历变量j,转至s302;其中,n的值为时长t的总秒数;
15、s302,记pra(j)=1-n*(perf(j)/mea(perf)),并将当前pra(j)的值赋予woo(j)(即将当前woo(j)的值更改为当前pra(j)的值),转到s303;其中,mea(perf)代表数组perf[]内所有元素的平均值;
16、s303,如果当前变量j的值小于n,则将变量j的值增加1,并转至s302;如果当前变量j的值等于或大于n,则转至s304;
17、s304,以mea(woo[])表示数组woo[]内所有元素的均值,创建一个空白的数组mas[],将变量j的值重置为1,转至s305;
18、s305,判断当前|1/(1-perf(j))|的值是否小于|mea(woo[])|/perf(j);
19、记a1=|1/(1-perf(j))|,记a2=|mea(woo[])|/perf(j);如果a1<a2,则将当前woo(j)的值加入到数组mas[]中;其中,|1/(1-perf(j))|表示对1/(1-perf(j))取绝对值,|mea(woo[])|表示对mea(woo[])取绝对值;
20、转至s306;
21、s306,如果当前变量j的值小于n,则将变量j的值增加1,并转至s305;如果当前变量j的值等于或大于n,则转至s307;
22、s307,记数组mas[]内所有元素的数量为n1,以mas(i1)表示数组mas[]内的第i1个元素,i1=1,2,…,n1,将n1个数据mas(1),mas(2),…,mas(n1)作为失衡数据。
23、本步骤的有益效果为:由于iops是衡量存储设备性能是否优良的关键指标之一,在存储设备的持续工作过程中,如果实时iops数据出现大量的局部数据异常,则说明该存储设备在工作过程中存在故障记录,从而造成数据损坏或丢失;本步骤的方法通过收集存储设备在负载测试过程中的性能数据,并利用其进行失衡落点检测,失衡落点检测能够筛选出性能数据中形式上表现为失衡的数据,进而准确地识别出存储设备在工作过程中的故障出现频率和性能瓶颈,同时为构建失衡测定模型提供良好的数据支持。
24、进一步地,步骤s400中,利用失衡数据构建失衡测定模型的方法具体为:
25、s401,创建一个空白的数组ove[],分别初始化变量j1、变量j2、变量j3,j1和j2的初始值都设置为1,j1和j2的取值范围都设置为[1,n1],j3的初始值设置为0,n1为数组mas[]内所有元素的数量,从j1=1和j2=1开始遍历变量j1和变量j2,转至s402;
26、s402,在数组mas[]中,比较当前mas(j1)的值和当前mas(j2)的值;如果mas(j1)>mas(j2),则令j3的值增加1;
27、转至s403;
28、s403,如果当前变量j2的值小于n1,则令j2的值增加1,并转至s402;如果当前变量j2的值等于或大于n1,则将当前变量j3的值加入到数组ove[]中,转至s404;
29、s404,如果当前变量j1的值小于n1,则将变量j3的值重置为0,将变量j2的值重置为1,同时将变量j1的值增加1,转至s402;如果当前变量j1的值等于或大于n1,则转至s405;
30、s405,以ove(i1)表示数组ove[]中的第i1个元素(数组ove[]与数组mas[]具有相同长度),建立失衡测定模型imba(x):
31、
32、其中,sum(mas)代表数组mas[]内所有元素的总和,x为模型变量。
33、本步骤的有益效果为:当存储设备的闪存颗粒或缓存单元发生坏块或大幅度掉速的现象时,存储设备在高负载的读写状态下容易频繁出现多时刻的性能下降,导致数据读写延迟或失败等,本步骤的方法利用失衡数据构建失衡测定模型,通过失衡测定模型判断设备在持续工作过程中是否存在大量的瞬间性能波动,通过及时检测并诊断存储设备可能存在的故障,进一步地提高存储设备的可用性和稳定性。
34、进一步地,步骤s400中,利用失衡数据构建失衡测定模型,还包括:对存储硬盘进行m次io负载测试,得到m组性能数据,计算m组性能数据中每组性能数据的平均值,以ext(i3)表示m组性能数据中第i3组性能数据的平均值,i3=1,2,…,m;所述m设置为[10,30];
35、其中,对存储硬盘进行负载测试的方法为:通过iometer对存储设备进行时长为t的负载测试,记录所述负载测试过程存储设备的实时iops(每秒的读写次数),将负载测试过程中的实时iops作为存储设备在io负载测试过程中的性能数据;
36、分别将ext(1),ext(2),…,ext(m)作为模型变量x输入到失衡测定模型imba(x)中,从而得到m个值imba(ext(1)),imba(ext(2)),…,imba(ext(m)),记imbaa=[imba(ext(1))+imba(ext(2))+…++imba(ext(m))]/m(即m个值的均值);
37、如果imba(ext(1)),imba(ext(2)),…,imba(ext(m))中存在任意两个值之间的差值的绝对值大于imbaa,则对存储设备的闪存颗粒进行更换。
38、本步骤的有益效果为:通过实时监测和记录存储设备的负载情况,对存储硬盘进行多次的io负载测试,将测试数据输入到失衡测定模型中,利用模型结果准确地识别出存储设备在工作过程中是否存在性能波动和读写速度失衡的问题,从而降低数据读写延迟或失败的风险,同时,通过及时更换闪存颗粒进而保证存储设备的使用寿命,大幅提高存储设备的工作效率和工作性能。
39、本发明的有益效果为:所述方法能够有效地评估存储设备的io性能,并及时发现存储设备中可能存在的异常,利用实时iops数据构建失衡测定模型以检测存储设备在高负载读写状态下的稳定性和可靠性,通过对存储设备在持续工作过程中是否存在某些瞬间的性能波动进行判断,进而对存储设备进行维护,避免数据读写延迟或失败,充分提高存储设备的使用性能和稳定性。
本文地址:https://www.jishuxx.com/zhuanli/20240731/183948.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。