一种硬盘的压力测试方法及设备与流程



1.本发明涉及服务器测试领域,特别是涉及一种硬盘的压力测试方法及设备。


背景技术:



2.硬盘是服务器数据存储的核心,如果硬盘在使用过程中出现异常,会造成大量数据丢失,严重可导致数据泄露,所以,为了保证硬盘的稳定性,需要通过对硬盘进行读写操作来对硬盘进行压力测试。现有技术对用硬盘进行压力测试时,通常是从小到大的读写数据块,无法模拟实际应用过程中,硬盘的数据访问量突然增加的情况,测试的深度不够,使得通过测试的硬盘稳定性较低。


技术实现要素:



3.本发明的目的是提供一种硬盘的压力测试方法及设备,相比于现有技术中采用n+1个测试数据块的大小从小到大的轮询方式更容易发现问题,使得通过测试的硬盘稳定性更高,提高了测试结果的准确性和可靠性。
4.为解决上述技术问题,本发明提供了一种硬盘的压力测试方法,应用于服务器,包括:
5.确定待测试硬盘的待测试磁盘分区、最大测试数据块的大小及第一测试时间,所述最大测试数据块的大小为2nk,n为正整数;
6.根据所述最大测试数据块的大小确定n+1个测试数据块的大小,第j个所述测试数据块的大小为2
j-1
k,1≤j≤n+1;
7.将n+1个所述测试数据块的大小随机排序;
8.按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作且记录所述待测试磁盘分区的数据吞吐量;所述读操作的速度为单位时间内读取当前测试数据块的大小的数据,所述写操作的速度为单位时间内写入当前测试数据块的大小的数据;
9.基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果。
10.优选的,在所述待测试硬盘为一个时,确定待测试硬盘的待测试磁盘分区,包括:
11.确定待测磁盘分区的容量;
12.判断所述服务器的待测试硬盘是否有磁盘分区;
13.若所述待测试硬盘没有磁盘分区,判断所述待测试硬盘的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述待测试硬盘的剩余空间全部用于新建磁盘分区;
14.若所述待测试硬盘已有磁盘分区,则判断所述待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述待测试硬盘的剩余
空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述待测试硬盘的剩余空间全部用于新建磁盘分区;
15.将新建的磁盘分区作为所述待测试磁盘分区。
16.优选的,在所述待测试硬盘为多个时,确定待测试硬盘的待测试磁盘分区,包括:
17.确定待测磁盘分区的容量;
18.判断多个所述待测试硬盘是否有磁盘分区;
19.若存在所述待测试硬盘没有磁盘分区,判断没有磁盘分区的待测试硬盘的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述没有磁盘分区的待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述没有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;
20.若存在所述待测试硬盘已有磁盘分区,则判断已有磁盘分区的待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述已有磁盘分区的待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述已有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;
21.将新建的磁盘分区作为所述待测试磁盘分区;
22.按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作且记录所述待测试磁盘分区的数据吞吐量,包括:
23.对各个所述待测试磁盘分区均执行如下步骤:按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作且记录所述待测试磁盘分区的数据吞吐量;
24.基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果,包括:
25.基于各个待测试硬盘的待测试磁盘分区所有的数据吞吐量对应确定各待测试硬盘的压力测试结果。
26.优选的,按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作时,还包括:
27.监控cpu利用率以及内存利用率,
28.在所述cpu利用率超过cpu利用率阈值或所述内存利用率超过内存利用率阈值时,控制报警模块向用户发出告警。
29.优选的,在所述cpu利用率超过cpu利用率阈值或所述内存利用率超过内存利用率阈值时,还包括:
30.降低所述cpu对所述待测试磁盘分区的进行所述读操作和所述写操作的逻辑核的数量,直至所述cpu利用率不超过所述cpu利用率阈值且所述内存利用率不超过所述内存利用率阈值。
31.优选的,所述数据吞吐量包括读数据吞吐量和写数据吞吐量;
32.基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果,包括:
33.判断是否存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于读数据阈值和判断是否存在所述写数据吞吐量与所述写数据吞吐量
对应的测试数据块的大小的差值的绝对值大于写数据阈值;
34.若存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述读数据阈值或存在所述写数据吞吐量与所述写数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述写数据阈值,则判定测试失败;
35.若既不存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述读数据阈值,也不存在所述写数据吞吐量与所述写数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述写数据阈值,则判定测试成功。
36.优选的,基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果之前,还包括:
37.判断系统日志中是否存在报错或者系统告警;
38.若存在,则控制报警模块提示用户存在系统报错。
39.优选的,确定第一测试时间,包括:
40.在接收到用户输入的第二测试时间后,根据所述第二测试时间和确定的所述测试数据块的大小的数量确定所述第一测试时间,所述第一测试时间为所述第二测试时间的1/(n+1)。
41.优选的,将n+1个所述测试数据块的大小随机排序,包括:
42.s81:利用随机数生成工具生成一个随机数;
43.s82:判断未匹配成功的测试数据块的大小中是否存在与所述随机数的大小相等的测试数据块的大小;若存在,则进入s84;若不存在,则返回s81;
44.s83:判断是否n+1个所述测试数据块的大小均已匹配成功,若是,进入s85,若否,返回s81;
45.s84:判定与所述随机数的大小相等的测试数据块的大小匹配成功,返回s83;
46.s85:将匹配成功的先后顺序作为n+1个所述测试数据块的大小的排序。
47.本发明还提供了一种硬盘的压力测试设备,包括:
48.存储器,用于存储计算机程序;
49.处理器,用于执行所述计算机程序时实现如上述的硬盘的压力测试方法的步骤。
50.本发明提供了一种硬盘的压力测试方法及设备,通过对n+1个测试数据块的大小中随机排序,并按照随机排序的顺序将n+1个测试数据块的大小依次作为当前测试数据块的大小来对待测试盘符磁盘分区进行读操作和写操作,模拟了实际应用中硬盘数据访问量突然增加或减少的情况,由于n+1个测试数据块的大小是随机排序,因此n+1个测试数据块的大小从小到大的概率极小,相比于现有技术中采用n+1个测试数据块的大小从小到大的测试方式更容易发现问题,使得通过测试的硬盘稳定性更高,提高了测试结果的准确性和可靠性。
附图说明
51.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1为本发明提供的一种硬盘的压力测试方法的流程图;
53.图2为本发明提供的一种硬盘的压力测试设备的结构示意图。
具体实施方式
54.本发明的核心是提供一种硬盘的压力测试方法及设备,相比于现有技术中采用n+1个测试数据块的大小从小到大的轮询方式更容易发现问题,使得通过测试的硬盘稳定性更高,提高了测试结果的准确性和可靠性。
55.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.具体请参照图1,图1为本发明提供的一种硬盘的压力测试方法的流程图。
57.该硬盘的压力测试方法,应用于服务器,包括:
58.s11、确定待测试硬盘的待测试磁盘分区、最大测试数据块的大小及第一测试时间,最大测试数据块的大小为2nk,n为正整数;
59.硬盘是计算机中存放信息的主要的存储设备,硬盘在使用时会被分割成的一块一块磁盘分区。在对硬盘进行压力测试时,是通过对硬盘上的磁盘分区进行读操作或写操作来测试硬盘的稳定性。因此,在本实施例中,需要确定待测试硬盘的待测试磁盘分区。例如,可以接收用户输入的待测试磁盘分区的盘符来确定待测试硬盘的待测试磁盘分区,本实施例对此不作特别的限定。
60.在对硬盘进行压力测试的过程中,单位时间内读取的数据或写入的数据越多,对硬盘施加的压力也就越大。基于上述原理,为了确定在对硬盘进行压力测试的过程中,对硬盘所施加的最大压力,需要确定最大测试数据块的大小,也即在单位时间内最大读取的数据的大小或在单位时间内最大写入的数据的大小。最大测试数据块的大小为2
n k,n为正整数。此处的最大测试数据块的大小可以是用户输入的,也可以是预设的,本实施例在此不作特别的限定。
61.在对硬盘进行压力测试的过程中,测试的时间与测试结果相关,测试的时间太短,测试的结果不能准确的反映硬盘的稳定性,测试的时间太长,又过于浪费时间。因此,在本实施例中,会确定第一测试时间,以保证测试的结果能够准确的反映硬盘的稳定性同时又不会花费过长时间。此处的第一测试时间可以是用户根据实际需要输入的,也可以是预设的,本实施例在此不作特别的限定。s12、根据最大测试数据块的大小确定n+1个测试数据块的大小,第j个测试数据块的大小为2
j-1
k,1≤j≤n+1;
62.在实际使用中,硬盘会对各种大小的数据块进行读操作或写操作。因此,在本实施例中,会根据最大测试数据块的大小,确定n+1个测试数据块的大小,第j个测试数据块的大小为2
j-1
k,以便后续对待测试硬盘进行压力测试时,能够模拟在实际使用中硬盘对各种大小的数据块进行读操作或写操作的场景,从而使得测试的结果更加具有可靠性,例如,在最大测试数据块的大小为2048k时,所有测试数据块的大小分别为1k(20k)、2k(21k)、4k(22k)
……
2048k(2
11
k)。
63.s13、将n+1个测试数据块的大小随机排序;
64.s14、按照随机排序的顺序依次对待测试磁盘分区同时进行第一测试时间的读操作和写操作且记录待测试磁盘分区的数据吞吐量;读操作的速度为单位时间内读取当前测试数据块的大小的数据,写操作的速度为单位时间内写入当前测试数据块的大小的数据;
65.在现有技术中,在确定了多个测试数据块的大小以后,将多个测试数据块的大小从小到大的排序,然后按照测试数据块的大小从小到大排序的顺序依次对待测试磁盘分区进行的读操作或者写操作,读操作的速度为单位时间内读取当前测试数据块的大小的数据,写操作的速度为单位时间内写入当前测试数据块的大小的数据。这样做虽然考虑到了在实际使用中,硬盘会对各种大小的数据块进行读操作或写操作,但是并未考虑到在实际应用中,硬盘的数据吞吐量可能在某一时间段内会处于很高的水平,而后又会突然下降。由于未考虑上述情况,使得现有技术中通过测试的硬盘存在稳定性不足的问题,在硬盘的数据吞吐量突然增加时,可能会造成数据丢失的后果。基于上述问题,在本实施例中,将n+1个测试数据块的大小随机的进行排序,以便在对待测试硬盘进行压力测试时,较大的测试数据块的大小与较小的测试数据块的大小交替进行测试。
66.具体的,将n+1个测试数据块的大小随机排序以后,按照随机排序的顺序,选择随机排序的n+1个测试数据块中的第一个作为当前测试数据块的大小,然后根据当前测试数据块的大小对待测试磁盘分区同时进行第一测试时间读操作和写操作,即单位时间内读取的待测试磁盘分区的数据量的大小和单位时间内写入的待测试磁盘分区的数据量的大小均等于当前测试测试数据块的大小。经过第一测试时间后,再按照随机排序的顺序,选择当前测试数据块的大小的下一个测试数据块的大小作为新的当前测试数据块的大小,然后根据新的当前测试数据块的大小对待测试磁盘分区同时进行第一测试时间读操作和写操作,直至所有测试数据块的大小都被测试完毕。由于采用随机排序的方式,下一个被测试的测试数据块的大小可能比当前测试数据块的大小小很多,也可能比当前测试数据块的大小大很多,模拟了硬盘在实际使用中硬盘的数据吞吐量突然增多或突然减少的情况,使得本方案中通过测试的硬盘的稳定性更高。
67.还需要说明的是,在对待测试磁盘分区进行压力测试时,可以但不限于使用硬盘压力测试工具,例如diskspd脚本,在使用diskspd脚本进行压力测试时,需要确定cpu的逻辑核的数量、待测试磁盘分区对应的盘符、各个测试数据块的大小和各个测试数据块的大小的测试顺序以及测试时间,diskspd相对于其它压力测试工具具有能够支持新版的服务器平台以及兼容性更高的优点。本实施例在此不作特别的限定。
68.此处的随机排序可以是利用随机数生成器来实现随机,也可以是按照预设规则来进行排序,例如,当最大测试数据块的大小为2
11
k时,可以令第一个当前测试数据块的大小为1k,第二个当前测试数据块的大小为2
11
k,第三个当前测试数据块的大小为21k,第二个当前测试数据块的大小为2
10
k,这样大小交替进行测试,直至所有测试数据块的大小都被测试完毕。本实施例对于实现随机排序的方式不作特别的限定。
69.此外,在本实施例中,在根据当前测试数据块的大小对待测试磁盘分区同时进行读操作和写操作时,还会记录待测试磁盘分区的数据吞吐量,这里的数据吞吐量包括待测试磁盘分区单位时间内实际被读取的数据的大小和待测试磁盘分区单位时间内实际被写入的数据的大小,以便通过对记录的待测试磁盘分区的数据吞吐量进行分析得到待测试硬盘的稳定性。在记录待测试磁盘分区的数据吞吐量时,可以是实时的记录,也可以是周期性
的记录,例如,每隔15s记录一次。
70.s15、基于待测试磁盘分区所有的数据吞吐量确定待测试硬盘的压力测试结果。
71.在本实施例中,通过对记录的待测试磁盘分区的数据吞吐量进行分析得到待测试硬盘的稳定性。例如,当前测试数据块的大小为1k,下一个当前测试数据块的大小为2048k,若待测试硬盘的稳定性较高,则在当前测试数据块的大小从1k变为2048k以后,待测试磁盘分区的数据吞吐量应为平滑上升,然后稳定在一个数值上下,若待测试磁盘分区的数据吞吐量在当前测试数据块的大小变为2048k以后出现明显波动,则说明应硬盘的稳定性较差。
72.综上,在本实施例中,通过对n+1个测试数据块的大小中随机排序,并按照随机排序的顺序将n+1个测试数据块的大小依次作为当前测试数据块的大小来对待测试盘符磁盘分区进行读操作和写操作,模拟了实际应用中硬盘数据访问量突然增加或减少的情况,由于n+1个测试数据块的大小是随机排序,因此n+1个测试数据块的大小从小到大的概率极小,相比于现有技术中采用n+1个测试数据块的大小从小到大的测试方式更容易发现问题,使得通过测试的硬盘稳定性更高,提高了测试结果的准确性和可靠性。
73.在上述实施例的基础上:
74.作为一种优选的实施例,在待测试硬盘为一个时,确定待测试硬盘的待测试磁盘分区,包括:
75.确定待测磁盘分区的容量;
76.判断服务器的待测试硬盘是否有磁盘分区;
77.若待测试硬盘没有磁盘分区,判断待测试硬盘的剩余空间是否大于待测磁盘分区的容量,若大于,则在待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若不大于,则将待测试硬盘的剩余空间全部用于新建磁盘分区;
78.若待测试硬盘已有磁盘分区,则判断待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于待测磁盘分区的容量,若大于,则在待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若不大于,则将待测试硬盘的剩余空间全部用于新建磁盘分区;
79.将新建的磁盘分区作为待测试磁盘分区。
80.在本实施例中,首先确定待测试磁盘分区的容量,即确定对待测试硬盘中多大空间的磁盘分区来进行压力测试。在确定待测试磁盘分区的容量时,可以但不限于通过提示用户根据实际情况和实际需要进行输入来确定待测试磁盘分区的容量。
81.考虑到待测试硬盘在进行压力测试前可能有磁盘分区,待测试硬盘的已有磁盘分区中可能存有数据,若在待测试硬盘的已有磁盘分区中进行压力测试,可能会对已有磁盘分区中的数据造成影响,因此,需要根据待测试磁盘分区的容量在已有磁盘分区的待测试硬盘中新建磁盘分区。而对于没有磁盘分区的待测试硬盘,为了能够对待测试硬盘进行读操作和写操作,也需要根据待测试磁盘分区的容量新建磁盘分区。
82.具体的,在本实施例中,确定待测试磁盘分区的容量后,会判断待测试硬盘是否已有磁盘分区。若待测试硬盘没有磁盘分区,判断待测试硬盘的剩余空间是否大于待测磁盘分区的容量,若待测试硬盘的剩余空间大于待测磁盘分区的容量,则在待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若待测试硬盘的剩余空间不大于待测磁盘分区的容量,则将待测试硬盘的剩余空间全部用于新建磁盘分区;若待测试硬盘已
有磁盘分区,则判断待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于待测磁盘分区的容量,若待测试硬盘去除已有磁盘分区的容量后的剩余空间大于待测磁盘分区的容量,则在待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若待测试硬盘去除已有磁盘分区的容量后的剩余空间不大于待测磁盘分区的容量,则将待测试硬盘的剩余空间全部用于新建磁盘分区。待测试硬盘的新建磁盘分区作为待测试磁盘分区。
83.综上,在本实施例中,通过确定待测试磁盘分区的容量,并根据待测试磁盘分区的容量在待测试硬盘中新建磁盘分区作为待测试磁盘分区,使得待测试磁盘分区的容量的大小可以根据实际需要自由选择,也不会对已有磁盘分区的待测试硬盘中原来的数据造成影响且实现方式简单。
84.作为一种优选的实施例,在待测试硬盘为多个时,确定待测试硬盘的待测试磁盘分区,包括:
85.确定待测磁盘分区的容量;
86.判断多个待测试硬盘是否有磁盘分区;
87.若存在待测试硬盘没有磁盘分区,判断没有磁盘分区的待测试硬盘的剩余空间是否大于待测磁盘分区的容量,若大于,则在没有磁盘分区的待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若不大于,则将没有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;
88.若存在待测试硬盘已有磁盘分区,则判断已有磁盘分区的待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于待测磁盘分区的容量,若大于,则在已有磁盘分区的待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若不大于,则将已有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;
89.将新建的磁盘分区作为待测试磁盘分区;
90.按照随机排序的顺序依次对待测试磁盘分区同时进行第一测试时间的读操作和写操作且记录待测试磁盘分区的数据吞吐量,包括:
91.对各个待测试磁盘分区均执行如下步骤:按照随机排序的顺序依次对待测试磁盘分区同时进行第一测试时间的读操作和写操作且记录待测试磁盘分区的数据吞吐量;
92.基于待测试磁盘分区所有的数据吞吐量确定待测试硬盘的压力测试结果,包括:
93.基于各个待测试硬盘的待测试磁盘分区所有的数据吞吐量对应确定各待测试硬盘的压力测试结果。
94.考虑到对于服务器等数据存储量很大的设备,通常会有多个硬盘,对多个硬盘进行压力测试时,每次都需要确定待测试磁盘分区的容量。例如,采用提示用户输入的方式来确定待测试磁盘分区的容量时,每测试一块硬盘,用户都要输入一次待测试磁盘分区的容量,效率低下,且输入多次的情况下,用户输错的可能性也会增大。为了解决上述问题,在本实施例中,在待测试硬盘为多个时,先确定待测试磁盘分区的容量,然后根据待测试磁盘分区的容量对所有待测试硬盘新建磁盘分区来作为待测试磁盘分区。
95.具体的,在确定待测试磁盘分区的容量后,判断多个待测试硬盘是否有磁盘分区,若存在待测试硬盘没有磁盘分区,判断没有磁盘分区的待测试硬盘的剩余空间是否大于待测磁盘分区的容量,若没有磁盘分区的待测试硬盘的剩余空间大于待测磁盘分区的容量,则在没有磁盘分区的待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘
分区,若没有磁盘分区的待测试硬盘的剩余空间不大于待测磁盘分区的容量,则将没有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;若存在待测试硬盘已有磁盘分区,则判断已有磁盘分区的待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于待测磁盘分区的容量,若已有磁盘分区的待测试硬盘去除已有磁盘分区的容量后的剩余空间大于待测磁盘分区的容量,则在已有磁盘分区的待测试硬盘的剩余空间中新建容量等于待测磁盘分区的容量的磁盘分区,若已有磁盘分区的待测试硬盘去除已有磁盘分区的容量后的剩余空间不大于待测磁盘分区的容量,则将已有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区。然后将所有新建磁盘分区作为待测试磁盘分区。
96.另外,在本实施例中,还会对多个待测试硬盘的待测试磁盘分区按照测试数据块的大小随机排序的顺序均进行第一测试时间的读操作和写操作且记录待测试磁盘分区的数据吞吐量。基于各个待测试硬盘的待测试磁盘分区所有的数据吞吐量对应确定各待测试硬盘的压力测试结果。
97.综上所述,在本实施例中,在待测试硬盘的多个时,仅需要确定一次待测试硬盘的容量即可自动的完成对所有待测试硬盘新建磁盘分区,且对所有待测试硬盘的待测试磁盘分区同时进行压力测试,提高了测试效率。
98.作为一种优选的实施例,按照随机排序的顺序依次对待测试磁盘分区同时进行第一测试时间的读操作和写操作时,还包括:
99.监控cpu利用率以及内存利用率,
100.在cpu利用率超过cpu利用率阈值或内存利用率超过内存利用率阈值时,控制报警模块向用户发出告警。
101.在对硬盘进行压力测试,尤其是当前测试数据块的大小很大时,cpu利用率或内存利用率会很高,考虑到cpu利用率或内存利用率过高可能导致服务器故障,因此在本实施例中,还会监控cpu利用率以及内存利用率,例如,可以直接从服务器的操作系统内调用cpu利用率以及内存利用率。并在cpu利用率超过cpu利用率阈值或内存利用率超过内存利用率阈值时,控制报警模块向用户发出告警。例如,cpu利用率阈值为90%,内存利用率为80%时,在cpu利用率超过90%或内存利用率超过80%时,控制报警模块报警。此处控制报警模块向用户发出告警可以但不限于通过服务器的显示屏向用户发出弹窗提示。
102.此外,在cpu利用率过高或内存利用率过高时,还可以抓取当前cpu利用率以及内存利用率并保留为log文件以便后续对测试结果进行分析,本实施例对此不作特别的限定。
103.综上,通过增加对cpu利用率以及内存利用率的监控,并在cpu利用率以及内存利用率过高时控制报警模块报警,提高了测试过程的稳定性,并且使得在由于cpu利用率以及内存利用率导致压力测试异常时,能够准确的定位异常原因,避免了由于无法定位异常原因导致重复测试造成的资源浪费。
104.作为一种优选的实施例,在cpu利用率超过cpu利用率阈值或内存利用率超过内存利用率阈值时,还包括:
105.降低cpu对待测试磁盘分区的进行读操作和写操作的逻辑核的数量,直至cpu利用率不超过cpu利用率阈值且内存利用率不超过内存利用率阈值。
106.考虑到cpu利用率或内存利用率过高可能导致服务器故障,因此在本实施例中,在cpu利用率超过cpu利用率阈值或内存利用率超过内存利用率阈值时,会降低cpu对待测试
磁盘分区进行读操作和写操作的逻辑核的数量,也即降低cpu对待测试磁盘分区进行读操作和写操作的线程数。例如,在当前cpu对待测试磁盘分区进行读操作和写操作的逻辑核的数量为140个时,当前cpu利用率为95%,超过了cpu利用率阈值,降低cpu对待测试磁盘分区进行读操作和写操作的逻辑核的数量至135个,若cpu利用率仍然超过cpu利用率阈值,则继续降低对待测试磁盘分区进行读操作和写操作的逻辑核的数量,直到当前cpu利用率低于cpu利用率阈值。由于降低cpu对待测试磁盘分区进行读操作和写操作的逻辑核的数量时,内存利用率也会降低,因此,在内存利用率过高,超过了内存利用率阈值时,也可通过降低降低cpu对待测试磁盘分区进行读操作和写操作的逻辑核的数量来降低当前内存利用率,以使内存利用率低于内存利用率阈值。综上所述,在本实施例中,通过在cpu利用率超过cpu利用率阈值或内存利用率超过内存利用率阈值时动态调整对待测试磁盘分区的进行读操作和写操作的逻辑核的数量,避免了因为cpu利用率或内存利用率过高而导致压力测试异常停止或服务器死机卡顿。
107.作为一种优选的实施例,数据吞吐量包括读数据吞吐量和写数据吞吐量;
108.基于待测试磁盘分区所有的数据吞吐量确定待测试硬盘的压力测试结果,包括:
109.判断是否存在读数据吞吐量与读数据吞吐量对应的测试数据块的大小的差值的绝对值大于读数据阈值和判断是否存在写数据吞吐量与写数据吞吐量对应的测试数据块的大小的差值的绝对值大于写数据阈值;
110.若存在读数据吞吐量与读数据吞吐量对应的测试数据块的大小的差值的绝对值大于读数据阈值或存在写数据吞吐量与写数据吞吐量对应的测试数据块的大小的差值的绝对值大于写数据阈值,则判定测试失败;
111.若既不存在读数据吞吐量与读数据吞吐量对应的测试数据块的大小的差值的绝对值大于读数据阈值,也不存在写数据吞吐量与写数据吞吐量对应的测试数据块的大小的差值的绝对值大于写数据阈值,则判定测试成功。
112.在本实施例中,通过记录的待测试磁盘分区所有的数据吞吐量判断待测试硬盘的压力测试结果。具体的,先确定记录的读数据吞吐量/写数据吞吐量和与读数据吞吐量/写数据吞吐量对应的当前测试数据块的大小,计算二者的差值的绝对值,判断是否存在记录的读数据吞吐量/写数据吞吐量与读数据吞吐量/写数据吞吐量对应的当前测试数据块的大小的差值的绝对值大于读数据阈值/写数据吞阈值,若存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述读数据阈值或存在所述写数据吞吐量与所述写数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述写数据阈值,则判定测试失败,例如,某一时刻记录的读数据吞吐量为1000k,与该时刻对应的当前测试数据块大小为2048k,则读数据吞吐量与读数据吞吐量对应的当前测试数据块的大小的差值的绝对值为1048k,若读数据阈值为100k,由于1048k大于100k,则会判定测试失败。
113.还需要说明的是,在从当前测试数据块的大小切换至下一个当前数据块的大小时,待测试磁盘分区的数据吞吐量为平滑上升,而不是瞬间变化。例如,在当前测试数据块的大小为1k,而下一个当前测试数据块的大小为2048k时,在当前测试数据块的大小刚刚切换为2048k的时候,待测试磁盘分区的数据吞吐量,从1k左右平滑上升至2048k附近,在此过程中,可能出现读数据吞吐量与读数据吞吐量对应的测试数据块的大小的差值的绝对值大
于读数据阈值或写数据吞吐量与写数据吞吐量对应的测试数据块的大小的差值的绝对值大于写数据阈值的情况,但是这并非是由于硬盘的稳定性不佳导致的,而是由于当前测试数据块的大小的切换导致的,用户可根据实际情况将记录的这部分待测试磁盘分区的数据吞吐量去除,本实施例在此不作特别的限定。
114.综上所述,判断记录的读数据吞吐量/写数据吞吐量与对应的当前测试数据块的大小的差值是否大于读数据阈值/写数据阈值来判断硬盘的稳定性,简单可靠的判断了待测试硬盘的压力测试结果。
115.作为一种优选的实施例,确定第一测试时间,包括:
116.在接收到用户输入的第二测试时间后,根据第二测试时间和确定的测试数据块的大小的数量确定第一测试时间,第一测试时间为第二测试时间的1/(n+1)。
117.在本实施例中,通过接收用户输入的第二测试时间,也即总测试时间来确定第一测试时间,也即每个测试数据块的大小的测试时间。在接收到用户输入的第二测试时间后,根据第二测试时间和测试数据块的数量确定每个测试数据块的大小的测试时间。在本实施例中,每个测试数据块的大小的测试时间,即第一测试时间均为第二测试时间的1/(n+1)。使得用户仅需要输入一个总测试时间,即第二测试时间,服务器即可自动计算出每个测试数据块的大小的测试时间且实现方式简单。
118.作为一种优选的实施例,将n+1个测试数据块的大小随机排序,包括:
119.s81:利用随机数生成工具生成一个随机数;
120.s82:判断未匹配成功的测试数据块的大小中是否存在与随机数的大小相等的测试数据块的大小;若存在,则进入s84;若不存在,则返回s81;
121.s83:判断是否n+1个测试数据块的大小均已匹配成功,若是,进入s85,若否,返回s81;
122.s84:判定与随机数的大小相等的测试数据块的大小匹配成功,返回s83;
123.s85:将匹配成功的先后顺序作为n+1个测试数据块的大小的排序。
124.在本实施例中,利用随机数生成工具来对测试数据块的大小进行随机排序。通过判断测试数据块的大小中是否存在与随机数的大小相等的测试数据块的大小来将n+1个测试数据块的大小来将n+1个测试数据块的大小与生成的随机数进行匹配,并按照匹配成功的顺序来对n+1个测试数据块的大小排序。实现了对n+1个测试数据块的大小的随机排序且实现方式较为简便。此处的随时数生成工具可以但不限于是伪随机数生成器。
125.作为一种优选的实施例,基于待测试磁盘分区所有的数据吞吐量确定待测试硬盘的压力测试结果之前,还包括:
126.判断系统日志中是否存在报错或者系统告警;
127.若存在,则控制报警模块提示用户存在系统报错。
128.在本实施例中,还会读取测试过程中的系统日志,判断系统日志有无报错或系统警告,例如,在系统日志中通过检索告警关键字,判断在测试过程中是否存在严重卡顿或无法检测到待测试硬盘等告警,并在检测到报错或者系统告警时控制报警模块提示用户存在系统报错,以便后续技术人员处理相应的报错或者系统告警。
129.具体请参照图2,图2为本发明提供的一种硬盘的压力测试设备的结构示意图。
130.本发明还提供了一种硬盘的压力测试设备,包括:
131.存储器21,用于存储计算机程序;
132.处理器22,用于执行计算机程序时实现如上述的硬盘的压力测试方法的步骤。
133.关于该硬盘的压力测试设备的相关介绍,请参照上述实施例,本技术在此不再赘述。
134.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
135.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
136.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:


1.一种硬盘的压力测试方法,其特征在于,应用于服务器,包括:确定待测试硬盘的待测试磁盘分区、最大测试数据块的大小及第一测试时间,所述最大测试数据块的大小为2
n
k,n为正整数;根据所述最大测试数据块的大小确定n+1个测试数据块的大小,第j个所述测试数据块的大小为2
j-1
k,1≤j≤n+1;将n+1个所述测试数据块的大小随机排序;按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作且记录所述待测试磁盘分区的数据吞吐量;所述读操作的速度为单位时间内读取当前测试数据块的大小的数据,所述写操作的速度为单位时间内写入当前测试数据块的大小的数据;基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果。2.如权利要求1所述的硬盘的压力测试方法,其特征在于,在所述待测试硬盘为一个时,确定待测试硬盘的待测试磁盘分区,包括:确定待测磁盘分区的容量;判断所述服务器的待测试硬盘是否有磁盘分区;若所述待测试硬盘没有磁盘分区,判断所述待测试硬盘的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述待测试硬盘的剩余空间全部用于新建磁盘分区;若所述待测试硬盘已有磁盘分区,则判断所述待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述待测试硬盘的剩余空间全部用于新建磁盘分区;将新建的磁盘分区作为所述待测试磁盘分区。3.如权利要求1所述的硬盘的压力测试方法,其特征在于,在所述待测试硬盘为多个时,确定待测试硬盘的待测试磁盘分区,包括:确定待测磁盘分区的容量;判断多个所述待测试硬盘是否有磁盘分区;若存在所述待测试硬盘没有磁盘分区,判断没有磁盘分区的待测试硬盘的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述没有磁盘分区的待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述没有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;若存在所述待测试硬盘已有磁盘分区,则判断已有磁盘分区的待测试硬盘去除已有磁盘分区的容量后的剩余空间是否大于所述待测磁盘分区的容量,若大于,则在所述已有磁盘分区的待测试硬盘的剩余空间中新建容量等于所述待测磁盘分区的容量的磁盘分区,若不大于,则将所述已有磁盘分区的待测试硬盘的剩余空间全部用于新建磁盘分区;将新建的磁盘分区作为所述待测试磁盘分区;按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作且记录所述待测试磁盘分区的数据吞吐量,包括:
对各个所述待测试磁盘分区均执行如下步骤:按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作且记录所述待测试磁盘分区的数据吞吐量;基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果,包括:基于各个待测试硬盘的待测试磁盘分区所有的数据吞吐量对应确定各待测试硬盘的压力测试结果。4.如权利要求1所述的硬盘的压力测试方法,其特征在于,按照随机排序的顺序依次对所述待测试磁盘分区同时进行所述第一测试时间的读操作和写操作时,还包括:监控cpu利用率以及内存利用率,在所述cpu利用率超过cpu利用率阈值或所述内存利用率超过内存利用率阈值时,控制报警模块向用户发出告警。5.如权利要求4所述的硬盘的压力测试方法,其特征在于,在所述cpu利用率超过cpu利用率阈值或所述内存利用率超过内存利用率阈值时,还包括:降低所述cpu对所述待测试磁盘分区的进行所述读操作和所述写操作的逻辑核的数量,直至所述cpu利用率不超过所述cpu利用率阈值且所述内存利用率不超过所述内存利用率阈值。6.如权利要求1所述的硬盘的压力测试方法,其特征在于,所述数据吞吐量包括读数据吞吐量和写数据吞吐量;基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果,包括:判断是否存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于读数据阈值和判断是否存在所述写数据吞吐量与所述写数据吞吐量对应的测试数据块的大小的差值的绝对值大于写数据阈值;若存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述读数据阈值或存在所述写数据吞吐量与所述写数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述写数据阈值,则判定测试失败;若既不存在所述读数据吞吐量与所述读数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述读数据阈值,也不存在所述写数据吞吐量与所述写数据吞吐量对应的测试数据块的大小的差值的绝对值大于所述写数据阈值,则判定测试成功。7.如权利要求1所述的硬盘的压力测试方法,其特征在于,确定第一测试时间,包括:在接收到用户输入的第二测试时间后,根据所述第二测试时间和确定的所述测试数据块的大小的数量确定所述第一测试时间,所述第一测试时间为所述第二测试时间的1/(n+1)。8.如权利要求1所述的硬盘的压力测试方法,其特征在于,基于所述待测试磁盘分区所有的数据吞吐量确定所述待测试硬盘的压力测试结果之前,还包括:判断系统日志中是否存在报错或者系统告警;若存在,则控制报警模块提示用户存在系统报错。9.如权利要求1至8任一项所述的硬盘的压力测试方法,其特征在于,将n+1个所述测试
数据块的大小随机排序,包括:s81:利用随机数生成工具生成一个随机数;s82:判断未匹配成功的测试数据块的大小中是否存在与所述随机数的大小相等的测试数据块的大小;若存在,则进入s84;若不存在,则返回s81;s83:判断是否n+1个所述测试数据块的大小均已匹配成功,若是,进入s85,若否,返回s81;s84:判定与所述随机数的大小相等的测试数据块的大小匹配成功,返回s83;s85:将匹配成功的先后顺序作为n+1个所述测试数据块的大小的排序。10.一种硬盘的压力测试设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述硬盘的压力测试方法的步骤。

技术总结


本发明公开了一种硬盘的压力测试方法及设备,通过对N+1个测试数据块的大小中随机排序,并按照随机排序的顺序将N+1个测试数据块的大小依次作为当前测试数据块的大小来对待测试盘符磁盘分区进行读操作和写操作,模拟了实际应用中硬盘数据访问量突然增加或减少的情况,相比于现有技术中采用N+1个测试数据块的大小从小到大的测试方式更容易发现问题,使得通过测试的硬盘稳定性更高,提高了测试结果的准确性和可靠性。的准确性和可靠性。的准确性和可靠性。


技术研发人员:

郭淑珍 崔钊童

受保护的技术使用者:

苏州浪潮智能科技有限公司

技术研发日:

2021.11.26

技术公布日:

2022/3/3

本文发布于:2024-09-21 17:27:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/4517.html

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

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