一种硬盘延迟测试方法、装置、终端及存储介质与流程

文档序号:18009463发布日期:2019-06-25 23:48阅读:344来源:国知局
一种硬盘延迟测试方法、装置、终端及存储介质与流程

本发明属于服务器测试技术领域,具体涉及一种硬盘延迟测试方法、装置、终端及存储介质。



背景技术:

在云计算时代,海量数据传输需要使用极大的iops(i/opersecond每秒读写次数),而ssd(固态硬盘)则扮演重要的角色严重影响了云计算数据中心的性能。硬盘技术在服务器领域的应用中,针对高负载的i/o请求处理能力越来越强,能够稳定并且高效的处理高并发的数据i/o请求。但是在实际应用当中,除了这种高并发的需求外,还有一种就是i/o请求随机,且i/o请求的也比较小的情况,在面对这种应用时,硬盘将频繁的从节能状态,活跃状态和空闲状态中转换,每一次状态的转换硬盘内部都将消耗一定的响应时间,这种硬盘内部处理自身状态转换的效率高低,能够反应硬盘随机i/o的处理能力。因此,对硬盘进行延迟测试就变得十分必要。

现有技术对硬盘进行延迟测试通常是对稳态硬盘进行写操作,然后获取延迟数据,然后人工对获取的延迟数据进行分析,只要在所有延迟数据在正常范围内,就判定硬盘性能合格。但是这种方法没有考虑延迟数据的稳定性。在一些对硬盘性能要求较高的领域,要求任何涉及到硬盘存储动作时,每个硬盘的延迟都应该趋于稳定。不能忽高忽低,否则会影响硬盘的性能和稳定,从而影响到整个机器的性能和稳定。

基于此,急需一种能够评价硬盘延迟稳定性的测试方法。



技术实现要素:

针对现有技术无法直观评价硬盘延迟的稳定性,本发明提供一种硬盘延迟测试方法、装置、终端及存储介质,以解决上述技术问题。

第一方面,本发明提供一种硬盘延迟测试方法,包括:

采集所有待测试硬盘的盘符。

根据所述盘符执行数据写入操作并抓取相应的延迟数据。

对延迟数据进行过高延迟筛选并将筛选出的存在过高延迟的硬盘盘符输出,包括:设置延迟阈值;判断延迟数据是否高于延迟阈值:是,则将所述延迟数据判定为过高延迟并输出所述过高延迟所属硬盘的盘符;否,则判定延迟正常。

计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性,包括:计算属于同一盘符的所有延迟数据的方差作为纵向偏差;计算延迟数据与相同测试次数的所有延迟数据的平均值的差值作为横向偏差;设置纵向偏差阈值和横向偏差阈值;判断待测试硬盘的延迟数据是否满足纵向偏差不超过纵向偏差阈值且横向偏差不超过横向偏差阈值:是,则判定所述待测试硬盘稳定;否,则判定所述待测试硬盘稳定性异常且输出所述待测试硬盘盘符。

第二方面,本发明提供一种硬盘延迟测试装置,包括:

盘符采集单元,配置用于采集所有待测试硬盘的盘符。

延迟抓取单元,配置用于根据所述盘符执行数据写入操作并抓取相应的延迟数据。

过高筛选单元,包括:阈值设置模块,配置用于设置延迟阈值;数据筛选模块,配置用于判断延迟数据是否高于延迟阈值;硬盘输出模块,配置用于将所述延迟数据判定为过高延迟并输出所述过高延迟所属硬盘的盘符;正常判定模块,配置用于判定延迟正常。

偏差表征单元,包括:纵向计算模块,配置用于计算属于同一盘符的所有延迟数据的方差作为纵向偏差;横向计算模块,配置用于计算延迟数据与相同测试次数的所有延迟数据的平均值的差值作为横向偏差;偏差设置模块,配置用于设置纵向偏差阈值和横向偏差阈值;条件判断模块,配置用于判断待测试硬盘的延迟数据是否满足纵向偏差不超过纵向偏差阈值且横向偏差不超过横向偏差阈值;稳定判定模块,配置用于判定所述待测试硬盘稳定;盘符输出模块,配置用于判定所述待测试硬盘稳定性异常且输出所述待测试硬盘盘符。

第三方面,提供一种终端,包括:

处理器、存储器,其中,

该存储器用于存储计算机程序,

该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。

第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本发明的有益效果在于,

本发明提供的硬盘延迟测试方法、装置、终端及存储介质,通过采集所有待测试硬盘的盘符,轮询采集所有待测试硬盘的延迟数据;首先对得到的所有延迟数据进行过高延迟筛选,将筛选出的过高延迟对应的硬盘盘符输出,完成延迟数据的初步筛选;然后计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性。本发明通过对延迟数据的大小和稳定性进行分析,能够全面地分析硬盘性能,且通过多个硬盘延迟数据的横向比较,能够更加准确地表征硬盘性能。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的方法的示意性流程图。

图2是本发明一个实施例的装置的示意性框图。

图3为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

下面对本发明中出现的关键术语进行解释。

图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种硬盘延迟测试装置。

如图1所示,该方法100包括:

步骤110,采集所有待测试硬盘的盘符;

步骤120,根据所述盘符执行数据写入操作并抓取相应的延迟数据;

步骤130,对延迟数据进行过高延迟筛选并将筛选出的存在过高延迟的硬盘盘符输出;

步骤140,计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性。

可选地,作为本发明一个实施例,所述对延迟数据进行过高延迟筛选包括:

设置延迟阈值;

判断延迟数据是否高于延迟阈值:

是,则将所述延迟数据判定为过高延迟并输出所述过高延迟所属硬盘的盘符;

否,则判定延迟正常。

可选地,作为本发明一个实施例,所述计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性包括:

计算属于同一盘符的所有延迟数据的方差作为纵向偏差;

计算延迟数据与相同测试次数的所有延迟数据的平均值的差值作为横向偏差;

设置纵向偏差阈值和横向偏差阈值;

判断待测试硬盘的延迟数据是否满足纵向偏差不超过纵向偏差阈值且横向偏差不超过横向偏差阈值:

是,则判定所述待测试硬盘稳定;

否,则判定所述待测试硬盘稳定性异常且输出所述待测试硬盘盘符。

为了便于对本发明的理解,下面以本发明硬盘延迟测试方法的原理,结合实施例中对硬盘进行延迟测试的过程,对本发明提供的硬盘延迟测试方法做进一步的描述。

具体的,所述硬盘延迟测试方法包括:

s1、采集所有待测试硬盘的盘符。

通过系统自带功能查看所述待测试硬盘的盘符,并将所有盘符拷贝到测试盘符列表中。

s2、根据所述盘符执行数据写入操作并抓取相应的延迟数据。

fio是一种磁盘压力及性能指针测试工具,是一个非常灵活的i/o测试工具,支持多线程或进程模拟等i/o操作来进行压力测试。支持13种不同的i/o引擎,包括:sync,mmap,libaio,posixaio,sgv3,splice,null,network,syslet,guasi,solarisaio等等。其中i/o引擎–libaio,在一个进程中执行多个i/o请求而对计算操作和i/o处理进行重叠处理的能力,并且利用了处理速度与i/o速度之间的差异,当一个或多个i/o请求挂起时,cpu可以执行其他任务。利用此原理本发明将使用libaio的i/o引擎的异步i/o来发挥最大的ssd性能。

程序实现时主要需包括以下几个参数内容:[numjobs_mbps](默认值1),[numjobs_iops](默认值1),[iodepth_mbps](默认值32),[iodepth_iops](默认值32),[blocksize_mbps](默认值128k),[blocksize_iops](默认值4k),[target](默认值/dev/sdb)。

判断主机端配置的ssd,进行secureerase程序,让ssd还原至fobstate。利用linux内建指令,逐字节找寻到ssd容量的大小,并写入脚本run_me.shpre-condition,根据ssd容量大小,利用fio程序及测试参数blocksize_iops=4k,numjobs_iops=1,iodepth_iops=32,以及blocksize_mbps=128k,numjobs_mbps=1,iodepth_mbps=32进行顺序写入大小为ssd容量两倍的程序,使ssd进入稳定态。

正式进入延迟数据抓取,呼叫fio主程序,并依据第1部分的预先配置参数,带入测试命令,进行测试。测试时间长度,其参数默认设定为300秒(5分钟),输出mbps/iops数据。

上述延迟数据抓取方法需将所有待测试硬盘遍历一遍,并将一次遍历作为一次测试。本实施例中设置测试次数为50次,所以要将所有待测试硬盘遍历50次,每次遍历得到的延迟数据要标记当前测试次数和所属盘符。

s3、对延迟数据进行过高延迟筛选并将筛选出的存在过高延迟的硬盘盘符输出。

设置延迟阈值,该阈值根据客户需要进行设置。对步骤s2得到的所有延迟数据进行筛选,筛选超过延迟阈值的延迟数据,若筛选到了超过延迟阈值的延迟数据,则将筛选到的延迟数据作为过高延迟,将该延迟数据标记的盘符输出。测试人员可以判断该盘符对应的硬盘性能不合格。

s4、计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性。

本实施例中存在5个待测试硬盘,相应盘符分别以a、b、c、d、e表示,盘符a对应的测试数据分别标记为(a1,a2…a50),盘符b对应的测试数据分别标记为(b1,b2…b50),以此类推。

计算盘符a的纵向偏差就是计算(a1,a2…a50)的方差,计算盘符a的横向偏差p方法如下:

以此类推,计算得p3、p4…p50,将(p1,p2…p50)的平均数作为纵向偏差p。

盘符b、c、d、e的横向偏差与纵向偏差的计算方法依照盘符a。

根据客户需求设置纵向偏差阈值和横向偏差阈值,依次判断每个盘符对应的纵向偏差是否超过纵向偏差阈值、横向偏差是否超过横向偏差阈值。将纵向偏差和横向偏差均未超过相应阈值的盘符作为合格硬盘盘符输出,将纵向偏差或横向偏差超出相应阈值的盘符输出为不合格硬盘盘符。

如图2示,该装置200包括:

盘符采集单元210,所述盘符采集单元210用于采集所有待测试硬盘的盘符;

延迟抓取单元220,所述延迟抓取单元220用于根据所述盘符执行数据写入操作并抓取相应的延迟数据;

过高筛选单元230,所述过高筛选单元230用于对延迟数据进行过高延迟筛选并将筛选出的存在过高延迟的硬盘盘符输出;

偏差表征单元240,所述偏差表征单元240用于计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性。

可选地,作为本发明一个实施例,所述过高筛选单元包括:

阈值设置模块,配置用于设置延迟阈值;

数据筛选模块,配置用于判断延迟数据是否高于延迟阈值;

硬盘输出模块,配置用于将所述延迟数据判定为过高延迟并输出所述过高延迟所属硬盘的盘符;

正常判定模块,配置用于判定延迟正常。

可选地,作为本发明一个实施例,所述偏差表征单元包括:

纵向计算模块,配置用于计算属于同一盘符的所有延迟数据的方差作为纵向偏差;

横向计算模块,配置用于计算延迟数据与相同测试次数的所有延迟数据的平均值的差值作为横向偏差;

偏差设置模块,配置用于设置纵向偏差阈值和横向偏差阈值;

条件判断模块,配置用于判断待测试硬盘的延迟数据是否满足纵向偏差不超过纵向偏差阈值且横向偏差不超过横向偏差阈值;

稳定判定模块,配置用于判定所述待测试硬盘稳定;

盘符输出模块,配置用于判定所述待测试硬盘稳定性异常且输出所述待测试硬盘盘符。

图3为本发明实施例提供的一种终端装置300的结构示意图,该终端装置300可以用于执行本发明实施例提供的硬盘延迟测试方法。

其中,该终端装置300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。

处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。

通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。

本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。

因此,本发明通过采集所有待测试硬盘的盘符,轮询采集所有待测试硬盘的延迟数据;首先对得到的所有延迟数据进行过高延迟筛选,将筛选出的过高延迟对应的硬盘盘符输出,完成延迟数据的初步筛选;然后计算延迟数据的纵向偏差和横向偏差并根据纵向偏差和横向偏差表征硬盘稳定性。本发明通过对延迟数据的大小和稳定性进行分析,能够全面地分析硬盘性能,且通过多个硬盘延迟数据的横向比较,能够更加准确地表征硬盘性能,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1