CN115579047A - 一种NVMe事件测试方法、装置和设备 - Google Patents
一种NVMe事件测试方法、装置和设备 Download PDFInfo
- Publication number
- CN115579047A CN115579047A CN202211337904.4A CN202211337904A CN115579047A CN 115579047 A CN115579047 A CN 115579047A CN 202211337904 A CN202211337904 A CN 202211337904A CN 115579047 A CN115579047 A CN 115579047A
- Authority
- CN
- China
- Prior art keywords
- nvme
- hard disk
- event
- data
- nvme hard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 232
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000006870 function Effects 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000010998 test method Methods 0.000 claims abstract description 18
- 238000005192 partition Methods 0.000 claims description 57
- 238000012544 monitoring process Methods 0.000 claims description 56
- 238000013524 data verification Methods 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 31
- 238000004088 simulation Methods 0.000 claims description 31
- 238000012795 verification Methods 0.000 claims description 12
- 238000009530 blood pressure measurement Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010835 comparative analysis Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请实施例提供了一种NVMe事件测试方法、装置和设备,所述方法包括:在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据;确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试;根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。在本申请实施例中,为每一种NVMe事件类型设计一种测试方法,并在压力测试环境对所有NVMe事件的功能进行测试,在测试完毕后对NVMe硬盘的性能进行分析,重新识别出压力测试环境下NVMe事件运行过程中对NVMe硬盘本身的相关影响。
Description
技术领域
本申请涉及NVMe硬盘测试技术领域,特别涉及一种NVMe事件测试方法、装置和设备。
背景技术
NVMe(Non-Volatile Memory Express,非易失性存储器标准)是使用PCI-E通道的SSD一种规范,NVMe硬盘的主要优势是有更低的延时、更高的传输性能、更低的功耗控制。NVMe事件用于在发生对应事件时通知主机端***报错状态和运行状况信息(状态,报错,健康信息)。为了使NVMe控制器可以准确反馈异步事件,主机端***需要向NVMe控制器提交一个或多个事件请求命令,控制器通过完成事件请求命令给主机端***指定一个事件。
现有的NVMe事件的测试方法通常是针对单一事件类型,通过下发指令确认事件功能是否正常,由于影响事件功能的因素、事件类型、盘体后台动作间的影响错综复杂,单一的测试方法,无法保证NVMe事件在NVMe硬盘极限压力场景下是否正常。
发明内容
鉴于上述问题,本申请实施例提供了一种NVMe事件测试方法、装置和设备,以便克服上述问题或者至少部分地解决上述问题。
本申请实施例的第一方面,公开了一种NVMe事件测试方法,所述方法包括:
在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据;
确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试;
根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。
可选地,所述方法还包括:
对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区;
通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行。
可选地,所述对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区,包括:
将所述NVMe硬盘的容量调节为标称容量;
对所述标称容量的NVMe硬盘进行扇区设定,将经过扇区设定后的NVMe硬盘的内存分为数据校验分区和Fio压测分区;
在所述数据校验分区中写入数据并生成校验码,以用于测试结束后对数据的准确性定进行校验。
可选地,所述通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行,包括:
通过Fio向所述NVMe硬盘下发随机混合读写参数,所述随机混合读写参数中读数据带宽占比小于写数据带宽的占比。
可选地,所述确定每种NVMe事件类型对应的测试方法,包括:
对NVMe事件禁用功能,创建模拟禁用事件,并对该模拟禁用事件进行校验;
对NVMe事件的上报功能,创建模拟创造事件,并对该模拟创造事件进行校验;
对NVMe事件清除Request功能,创建模拟清除Request事件,并对该模拟清除Request事件进行校验。
可选地,所述根据所述对应的测试方法对所有NVMe事件进行测试,包括:
遍历所有NVMe事件,针对每个NVMe事件创建对应的模拟NVMe事件,执行所述模拟NVMe事件,并对所述模拟NVMe事件的功能进行校验。
可选地,在所述NVMe事件测试过程中,还包括:
对***的各项指标进行监控,所述各项指标至少包括:CQ监控、日志监控、Reserved监控、以及盘体一致性监控。
可选地,根据所述性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析,包括:
对预先写入在所述NVMe硬盘中的数据进行校验,以校验测试过程是否对所述预先写入的数据造成损坏;
根据NVMe硬盘的日志文件,对盘体的一致性进行分析,以分析测试过程对所述NVMe硬盘本身的影响;
通过所述Fio性能数据进行spec对比分析,以确定所述NVMe硬盘的运行性能、以及所述压力测试环境是否稳定;
通过CQ监控、Reserved监控和***日志,以分析所述NVMe硬盘与主机端***的兼容性。
本申请实施例的第二方面,公开了一种NVMe事件测试装置,所述装置包括:
性能记录模块,用于在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据;
事件测试模块,用于确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试;
性能分析模块,用于根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。
本申请实施例的第三方面,公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如本申请第一方面实施所述的NVMe事件测试方法。
本申请实施例包括以下优点:
在本申请实施例中,使NVMe硬盘在压力测试环境下运行,为每一种NVMe事件类型设计一种测试方法,并根据每个NVMe事件对应的测试方法,在压力测试环境对所有NVMe事件的功能进行测试;通过在压力测试环境下进行测试,克服了传统测试方案没有覆盖到场景的风险,进而保证了NVMe事件在NVMe硬盘极限压力场景下也能正常执行,且根据NVMe事件的类型来采用不同的方法进行测试,保证了每个NVMe事件测试的准确性;在测试完毕后根据Fio性能数据与NVMe事件测试结果,对NVMe硬盘的性能进行分析,重新识别出在压力测试环境下NVMe事件运行过程中对NVMe硬盘本身的相关影响。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种NVMe事件测试方法步骤流程图;
图2是本申请实施例提供的一种NVMe事件压力测试环境设置方法步骤流程图;
图3是本申请实施例提供的一种NVMe事件测试方法应用流程示意图;
图4是本申请实施例提供的一种NVMe事件测试装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种NVMe事件测试方法,如图1所示,图1为本申请实施例提供的一种NVMe事件测试方法步骤流程图,包括以下步骤:
步骤S101:在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据。
在本实施例中,为了能够准确完整的覆盖NVMe硬盘的使用场景,需要将NVMe硬盘在压力测试环境下运行,其中,NVMe硬盘的压力测试环境是指在NVMe硬盘上进行Fio大压力数据读写,并在Fio大压力数据读写过程中,记录Fio性能数据,Fio性能数据能够反映出NVMe硬盘的运行特性。在事件测试结束后,通过将NVMe硬盘在压力测试环境下运行的Fio性能数据与NVMe硬盘自身的spec值进行对比,观察Fio性能数据是否始终大于NVMe硬盘spec值,如果不大于spec值,则说明NVMe硬盘的Fio大压力数据读写设计的不合理,即用于测试NVMe事件的压力测试环境不符合测试标准。此外,还通过分析Fio性能数据的平稳性,以观察NVMe硬盘在压力测试环境下运行期间,NVMe硬盘的是性能是否稳定。其中,Fio(flexibleI/Otester,灵活的I/O测试工具)是一种用于测试硬件存储性能的辅助工具,兼具灵活和可靠性,可以根据用户指定I/O类型进行多线程/进程的I/O负载模拟。
需要说明的是,NVMe事件的测试是基于主机端***进行测试,即通过主机端***向NVMe硬盘发送命令或工作参数,使NVMe硬盘在压力测试环境下运行,以及通过主机端***对测试过程中的各项指标进行查看,其中,主机端***是指电脑、服务器等。
在一种可选的实施例中,在NVMe硬盘运行在压力测试环境下之前,还包括以下步骤:
步骤S201:对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区。
在本实施例中,为了使NVMe硬盘在压力测试环境下运行,且能够准确覆盖NVMe硬盘实际使用的各种应用场景,需要将NVMe硬盘的大部分内存空间都用于数据加压,即用于Fio大压力数据读写,进而才能更正确的反映NVMe硬盘实际的使用情况。但不能将所有的内存都用于Fio大压力数据读写,因为在测试过程中,还必须要对数据校验,否则无法保证在进行Fio大压力数据读写过程中,是否对NVMe硬盘内部预先存储的数据造成损坏,进而还需要利用小部分内存进行数据校验。因此,将NVMe硬盘的内存空间划分为两个分区,数据校验分区和Fio压测分区,其中,数据校验分区用于数据校验,Fio压测分数用于数据加压,即用于Fio大压力数据读写。
具体地,可以将NVMe硬盘10%的内存空间划分为数据校验分区,用于对数据进行校验,即在进行NVMe事件测试之前,在该数据校验分区中写入数据,并记录写入数据的大小和形态,在测试结束后基于数据校验分区中的数据进行校验,以分析数据是否被损坏。将NVMe硬盘90%的内存空间划分为Fio压测分区,在NVMe事件测试过程中,Fio压测分区用于进行Fio大压力数据的读写,以使NVMe硬盘运行在压力测试环境下,进而保证了测试环境能够覆盖NVMe硬盘实际的各种应用场景,以确保测试结果的与实际应用场景更加符合,测试结果更加准确。
在本实施例中,将NVMe硬盘进行分区处理,将大部分的内存空间都用于Fio大压力数据读写,相较于通常情况下NVMe硬盘使用时,其进行数据读写的内存空间不超过50%,因此,创造了一个更糟糕的应用环境,进而在本实施例中的压力测试环境能够准确的覆盖NVMe硬盘的实际应用各种场景,进而保证了测试结果的准确性。
在一种可选的实施例中,对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区,包括:
将所述NVMe硬盘的容量调节为标称容量;
对所述标称容量的NVMe硬盘进行扇区设定,将经过扇区设定后的NVMe硬盘的内存分为数据校验分区和Fio压测分区;
在所述数据校验分区中写入数据并生成校验码,以用于测试结束后对数据的准确性定进行校验。
在本实施例中,NVMe硬盘的内存空间能是够进行调整的,并且NVMe硬盘第一次使用时其内存空间并不是标称的容量,例如,NVMe硬盘的最大内存为8T,其实际使用标称容量为7.68T,需要预留一部分空间来进行硬盘内部机制数据储存和运行,此外,NVMe硬盘的存储数据的空间需要为标称的空间,即存储空间需要做到4k对齐,否则会造成性能跌落和性能下降等问题,并且对于一些数据块可能出现性能拉低的情况。因此,在对NVMe硬盘的NVMe事件进行测试之前,需要将NVMe硬盘的容量进行调节,将其内存空间调节为一个标称的容量。并在容量调节完成后对NVMe硬盘进行扇区的设定,其中,扇区设定可以为512B扇区设定或者4kB扇区设定,只有完成扇区设定之后,才能知道各数据在NVMe硬盘中的存储位置。然后将内存容量标称且经过扇区设定的NVMe硬盘的内存划分为两个分区,即数据校验分区和Fio压测分,数据校验分区用于数据校验,以验证测试过程对NVMe硬盘中存储数据的影响,Fio压测分区用于Fio大压力数据的读写,以使NVMe硬盘运行在压力测试环境下。
进一步地,在所述数据校验分区中写入数据并生成校验码,具体包括:将数据校验分区的格式转化为EXT4文件***,通过Fio在数据校验分区写入数据,并进行Md5校验,生成Md5校验码。在后续完成NVMe硬盘的所有NVMe事件的测试后,再对数据校验分区中的数据进行Md5校验,生成新的Md5校验码,若生成新的Md5校验码与之前的Md5校验码一致,则说明在NVMe事件的测试过程中,预先写入的数据没有被篡改,测试过程不会对NVMe硬盘内部的数据造成损坏。
步骤S202:通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行。
在本实施例中,在对NVMe硬盘的NVMe事件进行测试之前,主机端***利用Fio下发NVMe硬盘的工作参数,工作参数是指使NVMe硬盘运行在压力测试环境下的工作参数,即在NVMe硬盘的Fio压测分区中进行Fio大压力数据读写的相关参数。具体地,工作参数至少包括:数据读写的类型、数据读写带宽占比、运行的线程数量等参数。在主机端***通过Fio下发NVMe硬盘的工作参数后,NVMe硬盘根据参数进行Fio大压力数据读写,进而使NVMe硬盘运行在压力测试环境下。
在本实施例中,通过对NVMe硬盘的环境进行部署,并对经过环境部署的NVMe硬盘下发工作参数,保证了后续步骤中NVMe事件测试的准确性,进而得到更加符合实际应用场景的测试结果,以及更准确的NVMe硬盘性能分析结果。
在一种可选的实施例中,所述通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行,包括:
通过Fio向所述NVMe硬盘下发随机混合读写参数,所述随机混合读写参数中读数据带宽占比小于写数据带宽的占比。
在本实施例中,主机端***通过Fio向NVMe硬盘下发随机混合读写参数,随机混合读写参数真是数据的读写顺序是随机的,相较于顺序数据读写随机混合数据读写的压力更高,进而满足了NVMe硬盘的大压力测试环境。具体地,主机端***利用Fio下发4k 8jobsQD64随机混合读写参数,其中,4k是指位存储体的个数,即在进行数据读写是需要满足4k的对齐要求,8jobs表示同时开了8个线程,QD64表示64个队列深度。NVMe硬盘按照Fio下发的4k 8jobs QD64的工作参数进行随机混合数据读写,进而NVMe硬盘实现了在压力测试环境下运行。
此外,在实际的应用场景中,NVMe硬盘的数据读取操作往往多于数据的写入操作,但从数据的可靠性来看,NVMe硬盘的数据写入的重要性更强,所以对NVMe事件进行测试时,更注重NVMe硬盘的数据写入功能的体现,因此,随机混合读写参数中读数据带宽占比小于写数据带宽的占比,具体地,可以将30%的带宽用于数据读取,将70%的带宽用于数据的写入。进而保证了NVMe硬盘压力测试环境能够最大程度的覆盖NVMe硬盘真实的使用场景,保证了在压力测试环境下,NVMe事件测试的准确。
步骤S102:确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试。
NVMe事件是指NVMe所规定的事件,用于NVMe硬盘使用过程中,在发生对应事件时通知主机端***报错状态和运行状况信息,NVMe规定了多种不同类型的事件。例如,错误事件(Error Event)、SMART/健康事件(SMART/Health Event)、通知事件(Notice Events)、I/O命令集规范(NVMe命令集)事件(I/O Command Set Specification(NVMe Command Set)Events)、预订日志页面可用事件(Reservation Log Page available Event)、供应商特定事件(Vendor Specific Events)。每种NVMe事件产生方式和功能均不同,因此不同事件类型的测试方法不同,而现有的NVMe事件的测试方法是针对单一NVMe事件类型进行测试,并不适用于对所有的NVMe事件类型进行测试,由于影响NVMe事件功能的因素、NVMe事件类型、盘体后台动作间的影响错综复杂,单一的测试方法,无法保证NVMe事件在硬盘极限压力场景下是否正常。
在本实施例中,NVMe事件类型可分为多种,针对每种不同类型的NVMe事件设计该事件类型对应的测试方法,即每一种事件类型对应一种测试方法,将NVMe硬盘运行在压力测试环境下,根据实际NVMe事件对应的类型选择对应的测试方法,并基于该测试方法对NVMe事件进行测试。进而保证了每个NVMe事件测试的准确性。
进一步地,所述NVMe事件测试过程中,对***的各项指标进行监控,所述各项指标至少包括:CQ监控、日志监控、Reserved监控、以及盘体一致性监控。
在本实施例中,CQ监控是指对主机端***的监控,对主机端下发的命令进行监控,即对数据传输过程的交互监控。日志监控是指在测试过程中对NVMe硬盘的日志进行监控和主机端***的日志进行监控,其中,对NVMe硬盘日志监控主要查看Smart Log、Smart Log-add和Every-Log,通过这三日志文件来监控NVMe硬盘内各寄存器是否异常;对主机端***的日志监控主要查看Messages,通过查看日志文件来判断主机端***是否有报错;Reserved监控是监控NVMe硬盘反馈给主机端的信息;盘体一致性监控是指对NVMe硬盘的自身参数进行监控,分析NVMe硬盘在大压力测试环境进行测试,是否对NVMe硬盘自身的参数产生影响。通过对测试过程中***的各项指标进行监控,并记录监控数据,并在测试结束后根据记录的监控数据对NVMe硬盘的性能进行分析。
在一种可选的实施例中,所述确定每种NVMe事件类型对应的测试方法,包括:
对NVMe事件的禁用功能,创建模拟禁用事件,并对该模拟禁用事件进行校验;
对NVMe事件的上报功能,创建模拟创造事件,并对该模拟创造事件进行校验;
对NVMe事件的清除Request功能,创建模拟清除Request事件,并对该模拟清除Request事件进行校验。
在本实施例中,在对NVMe事件进行测试时,每个NVMe事件的测试功能分为三种,即NVMe事件的禁用功能、NVMe事件的上报功能、以及NVMe事件的清除Request功能,对每种不同的测试功能创建相应的模拟事件,并对模拟事件进行校验。具体地,NVMe事件的禁用功能是指对于一个事件,NVMe硬盘可以选择要不要将该事件上报到主机***端,例如,对于事件A,NVMe硬盘可以选择上报事件A,或者选择不上报事件A;在测试时需要先创建相应的模拟禁用事件,然后对模拟禁用事件进行校验,即验证禁用事件是否起作用,例如,当选择不上报事件A时,检查是否真的没有将事件A进行上报,当选择上报事件A时,检查是否将能该事件进行准确的上报。
NVMe事件的上报功能是指当发生异常时,需要进行异常信息上报,但在正常测试的情况下,不会遇到异常问题,因此需要先创造一个异常消息,NVMe硬盘再将创造的异常消息进行上报;在测试时先创建相应的模拟创造事件(创建异常消息),然后对模拟创造事件进行校验,验证具体异常消息的上报情况,验证上报的异常信息是否正确,即检查上报的异常信息与创建的异常信息是否一致,一致则说明NVMe硬盘能够准确的对事件进行上报。例如,创建事件A(表示发生异常),此时,NVMe硬盘需要将事件A进行上报,然后检验NVMe硬盘能否正常将事件A进行上报,即检查创建的事件A与NVMe硬盘上报的事件A是否一致,一致则说明NVMe硬盘能够准确的对事件A进行上报。
NVMe事件的清除Request功能是指当异常信息进行上报后,NVMe硬盘具有将异常信息进行清除的功能;在测试时先创建相应的模拟清除Request事件,并对模拟清除Request事件进行校验,即校验在异常消息清除以后,上报的日志记录功能是否完整,查看还能否继续进行上报。例如,对于上报的事件A,NVMe硬盘在进行上报后会将事件A进行清除,以使NVMe硬盘能够继续工作,在后续可通过在日志记录中查看上报的事件A,若在事件A清除后NVMe硬盘能够继续工作,并在日志记录中能够查看事件A,则说明NVMe事件的清除Request功能正常。
此外,在对事件进行校验时,可通过查看Reserved监控、CQ监控、以及NVMe硬盘的日志文件来确定各事件的功能是否正常,即测试NVMe事件的禁用功能是否能根据NVMe硬盘的选择,来对NVMe事件进行上报或不上报;NVMe事件的上报功能是否能够将NVMe事件进行准确上报;NVMe事件的清除Request功能是否能够将异常信息进行清除,上报的日志记录功能是否完整。
在一种可选的实施例中,根据所述对应的测试方法对所有NVMe事件进行测试,包括:
遍历所有NVMe事件,针对每个NVMe事件创建对应的模拟NVMe事件,执行所述模拟NVMe事件,并对所述模拟NVMe事件的功能进行校验。
在本实施例中,模拟NVMe事件是指根据实际NVMe事件而创建的具有相同功能的模拟事件,在进行测试时,对每个NVMe事件创建相应的模拟NVMe事件,并执行该模拟NVMe事件,并对该模拟NVMe事件的功能进行验证。例如,对于事件B,首先检查能否根据NVMe硬盘的选择的对事件B进行上报或不上报;然后将事件B上报,检查上报的将事件B是否准确,最后当事件B上报后,NVMe硬盘会将上报的事件B进行清除,以使NVMe硬盘能够继续工作。基于上述方法,依次对每个NVMe事件进行测试,直到所有的NVMe事件完成测试。
S103:根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。
在本实施例中,在测试结束后对NVMe硬盘的性能进行分析,Fio性能数据是指NVMe硬盘在大压力测试环境下运行的Fio性能数据,Fio性能数据能够反映出NVMe硬盘的运行特性。所有NVMe事件的测试结果是指所有NVMe事件测试情况,以及在测试过程中各项指标监控数据。
具体地,对NVMe硬盘性能进行分析包括:数据校验、NVMe硬盘的盘体一直性分析、Reserved监控分析、CQ监控分析,进而以确定NVMe硬盘的各类NVMe事件的功能是否正常,NVMe硬盘的性能是否稳定,识别出大压力下事件运行过程中对盘体本身的相关影响。
在一种可选的实施例中,根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析,包括:
对预先写入在所述NVMe硬盘中的数据进行校验,以校验测试过程是否对所述预先写入的数据造成损坏;
根据NVMe硬盘的日志文件,对盘体的一致性进行分析,以分析测试过程对所述NVMe硬盘本身的影响;
通过所述Fio性能数据进行spec对比分析,以确定所述NVMe硬盘的运行性能、以及所述压力测试环境是否稳定;
通过CQ监控、Reserved监控和***日志,以分析所述NVMe硬盘与主机端***的兼容性。
在本实施例中,根据预先写入到数据校验分区中的数据进行校验,具体地,对数据校验分区中的数据进程Md5校验,生成Md5校验码,将该Md5校验码与数据校验分区中预先存储的Md5校验码进行比较,若两者一致,则说明在NVMe硬盘在大压力测试环境下测试,不对数据造成损坏。进而说明测试设计的合理性,以及NVMe硬盘的性能好,在大压力的运行环境下数据不受影响。
盘体的一致性进行分析是指NVMe硬盘本身是否有异常,即验证正常下发的数据块是否与接收到的数据块大小一样,NVMe硬盘的各级监控参数有无异常。NVMe硬盘的日志文件记录了NVMe硬盘在大压力测试环境的自身的各种参数变化,通过对比日志文件中NVMe硬盘在测试前和测试结束后的自身参数变化情况,若测试前后的参数一致,说明测试过程并不会对NVMe硬盘自身的性能参数影响,即该测试是无损测试。因此,进一步验证测试方案方案是否合理。
Fio性能数据能够反映出NVMe硬盘的运行特性,Fio性能数据与NVMe硬盘自身的spec值进行对比,观察NVMe硬盘在大压力测试环境运行的Fio性能数据是否始终大于NVMe硬盘本身的spec值,如果不大于spec值,则说明NVMe硬盘的Fio大压力数据读写设计的不合理,即用于NVMe事件测试的压力测试环境不符合标准。以及分析Fio性能数据是否为稳定数据,若Fio性能数据为稳定数据,则说明NVMe硬盘的性能,其中,稳定数据是指在NVMe硬盘在大压力测试环境运行的Fio性能数据的波动在预设范围内,若波动值大于预设范围,这说明性能数据不稳定。具体的,将性能数据绘制成曲线图,观察性能数据随运行时间的变化情况,当性能数据的变化范围在预设范围以内,则表明NVMe硬盘的性能稳定。
通过Reservel监控反馈的数值、CQ监控的数值、以及***日,比较NVMe硬盘发送给主机端***的信息,以及与主机端***接收到的信息是否一致,若NVMe硬盘发送给主机端***的信息和主机端***接收到的信息一致,则说明NVMe硬盘与主机端***的兼容性好,否者说明NVMe硬盘与主机端***的兼容性差。例如,对于数据A,NVMe硬盘向主机端***发送了数据A,但主机端***收到的数据为B,则说明NVMe硬盘发送的数据和主机端***接收的数据不一致,因此NVMe硬盘与该主机端***的兼容性差。
图3示出了本申请实施例提供的NVMe事件测试方法应用流程示意图,如图3所示,测试应用***包括:NVMe环境部署模块、压测模块、事件测试模块、分析模块以及监控模块五部分。在实际测试过程中,NVMe环境部署模块首先对NVMe硬盘测试环境进行部署,具体地,将待测试的NVMe硬盘进行标准化的OP(over provisioning,预留空间)处理,即将NVMe硬盘的内存空间调整为标称容量,并对NVMe硬盘进行扇区设定,其中,扇区设定的采用512扇区设定,或采用4kB扇区设定,然后将NVMe硬盘10%的内存划分为数据校验分区,并将数据校验分区记作NVMe1N1,然后将数据校验分区格式化为ext4文件***,通过Fio工具在NVMe1N1分区写入数据,并生成Md5校验码,以用于在测试结束后进行数据校验,最后将剩下的90%的内存作为Fio压测分区,以用于NVMe事件测试过程中进行Fio大压力数据读写。
对NVMe硬盘完成测试环境部署后,压测模块对NVMe硬盘中的Fio压测分区进行Fio大压力数据读写,即主机端***通过Fio下发4k 8jobs QD64随机混合读写参数,且将30%的带宽用于数据读取,将70%的带宽用于数据写入,NVMe硬盘按照下发的4k 8jobs QD64的工作参数进行随机混合数据读写,进而实现了NVMe硬盘在压力测试环境下运行,并在压力测试环境运行期间记录Fio性能数据,Fio性能数据能反映NVMe硬盘的运行特性。
当NVMe硬盘运行在压力测试环境下,事件测试模块开始对NVMe事件进行测试,具体地,通过遍历NVMe规定的所有事件,按照相应的测试方法进行测试。对每个NVMe事件事件,执行以下步骤:模拟禁用事件,模拟创造事件,模拟清除Request,校验禁用事件,校验创造事件,校验清除Request。
在事件测试过程中,监控模块对CQ监控、日志监控、Reserved监控、盘体一致性监控、Fio性能数据等各项指标的进行监控,并在所有NVMe事件测试结束后,分析模块进行Md5数据校验、NVMe硬盘的盘体一直性分析、Reserved监控分析、CQ监控分析,进而以确定NVMe硬盘的各类NVMe事件的功能是否正常,NVMe硬盘的性能是否稳定,识别出大压力下NVMe事件运行过程中对NVMe硬盘本身的相关影响。
在本实施例中,使NVMe硬盘在压力测试环境下运行,为每一种NVMe事件类型设计一种测试方法,并根据每个NVMe事件对应的测试方法,在压力测试环境对所有NVMe事件的功能进行测试;通过在压力测试环境下进行测试,克服了传统测试方案没有覆盖到场景的风险,且根据NVMe事件的类型来采用不同的方法进行测试,保证了每个NVMe事件测试的准确性;在测试完毕后根据Fio性能数据与NVMe事件测试结果,对NVMe硬盘的性能进行分析,重新识别出在压力测试环境下NVMe事件运行过程中对盘体本身的相关影响。
本申请实施例还提供了一种NVMe事件测试装置,参照图4,图4是本申请实施例提出的一种NVMe事件测试装置的结构示意图,如图4所示,所述装置包括:
性能记录模块41,用于在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据;
事件测试模块42,用于确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试;
性能分析模块43,用于根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。
在一种可选的实施例中,所述装置还包括:
环境部署模块,用于对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区;
压力加载模块,用于通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行。
在一种可选的实施例中,所述环境部署模块,包括:
容量调节模块,用于将所述NVMe硬盘的容量调节为标称容量;
分区设置模块,用于对所述标称容量的NVMe硬盘进行扇区设定,将经过扇区设定后的NVMe硬盘的内存分为数据校验分区和Fio压测分区;
数据写入模块,用于在所述数据校验分区中写入数据并生成校验码,以用于测试结束后对数据的准确性定进行校验。
在一种可选的实施例中,所述压力加载模块,包括:
参数下发模块,用于通过Fio向所述NVMe硬盘下发随机混合读写参数,所述随机混合读写参数中读数据带宽占比小于写数据带宽的占比。
在一种可选的实施例中,所述事件测试模块,包括:
禁用事件模块,用于对NVMe事件的禁用功能,创建模拟禁用事件,并对该模拟禁用事件进行校验;
创造事件模块,用于对NVMe事件的上报功能,创建模拟创造事件,并对该模拟创造事件进行校验;
清除事件模块,用于对NVMe事件的清除Request功能,创建模拟清除Request事件,并对该模拟清除Request事件进行校验。
在一种可选的实施例中,所述事件测试模块,还包括:
事件执行模块,用于遍历所有NVMe事件,针对每个NVMe事件创建对应的模拟NVMe事件,执行所述模拟NVMe事件,并对所述模拟NVMe事件的功能进行校验。
在一种可选的实施例中,所述事件测试模块,还包括:
数据监控模块,用于对所述NVMe硬盘的各项指标的进行监控,所述各项指标至少包括:CQ监控、日志监控、Reserved监控、以及盘体一致性监控。
在一种可选的实施例中,所述性能分析模块,包括:
数据校验模块,用于对预先写入在所述NVMe硬盘中的数据进行校验,以校验测试过程是否对所述预先写入的数据造成损坏;
盘体分析模块,用于根据NVMe硬盘的日志文件,对盘体的一致性进行分析,以分析测试过程对所述NVMe硬盘本身的影响;
性能对比模块,用于通过所述NVMe硬盘的性能数据进行spec对比分析,以确定所述NVMe硬盘的运行性能、以及所述压力测试环境是否稳定;
兼容性分析模块,用于通过CQ监控、Reserved监控和***日志,以分析所述NVMe硬盘与主机端***的兼容性。
本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请实施例所述的NVMe事件测试方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种NVMe事件测试方法、装置和设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种NVMe事件测试方法,其特征在于,所述方法包括:
在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据;
确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试;
根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。
2.根据权利要求1所述的方法,其特征在于,还包括:
对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区;
通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行。
3.根据权利要求2所述的方法,其特征在于,所述对NVMe硬盘的测试环境进行部署,将所述NVMe硬盘划分为数据校验分区和Fio压测分区,包括:
将所述NVMe硬盘的容量调节为标称容量;
对所述标称容量的NVMe硬盘进行扇区设定,将经过扇区设定后的NVMe硬盘的内存分为数据校验分区和Fio压测分区;
在所述数据校验分区中写入数据并生成校验码,以用于测试结束后对数据的准确性定进行校验。
4.根据权利要求2所述的方法,其特征在于,所述通过Fio下发NVMe硬盘的工作参数,以使所述NVMe硬盘在压力测试环境下运行,包括:
通过Fio向所述NVMe硬盘下发随机混合读写参数,所述随机混合读写参数中读数据带宽占比小于写数据带宽的占比。
5.根据权利要求1所述的方法,其特征在于,所述确定每种NVMe事件类型对应的测试方法,包括:
对NVMe事件的禁用功能,创建模拟禁用事件,并对该模拟禁用事件进行校验;
对NVMe事件的上报功能,创建模拟创造事件,并对该模拟创造事件进行校验;
对NVMe事件的清除Request功能,创建模拟清除Request事件,并对该模拟清除Request事件进行校验。
6.根据权利要求1所述的方法,其特征在于,所述根据所述对应的测试方法对所有NVMe事件进行测试,包括:
遍历所有NVMe事件,针对每个NVMe事件创建对应的模拟NVMe事件,执行所述模拟NVMe事件,并对所述模拟NVMe事件的功能进行校验。
7.根据权利要求1所述的方法,其特征在于,在所述NVMe事件测试过程中,还包括:
对***的各项指标进行监控,所述各项指标至少包括:CQ监控、日志监控、Reserved监控、以及盘体一致性监控。
8.根据权利要求1所述的方法,其特征在于,根据所述性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析,包括:
对预先写入在所述NVMe硬盘中的数据进行校验,以校验测试过程是否对所述预先写入的数据造成损坏;
根据NVMe硬盘的日志文件,对盘体的一致性进行分析,以分析测试过程对所述NVMe硬盘本身的影响;
通过所述Fio性能数据进行spec对比分析,以确定所述NVMe硬盘的运行性能、以及所述压力测试环境是否稳定;
通过CQ监控、Reserved监控和***日志,以分析所述NVMe硬盘与主机端***的兼容性。
9.一种NVMe事件测试装置,其特征在于,所述装置包括:
性能记录模块,用于在NVMe硬盘压力测试环境下运行期间,记录Fio性能数据;
事件测试模块,用于确定每种NVMe事件类型对应的测试方法,并根据所述对应的测试方法对所有NVMe事件进行测试;
性能分析模块,用于根据所述Fio性能数据和所有NVMe事件的测试结果,对所述NVMe硬盘性能进行分析。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1至8任一项所述的NVMe事件测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211337904.4A CN115579047A (zh) | 2022-10-28 | 2022-10-28 | 一种NVMe事件测试方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211337904.4A CN115579047A (zh) | 2022-10-28 | 2022-10-28 | 一种NVMe事件测试方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115579047A true CN115579047A (zh) | 2023-01-06 |
Family
ID=84587513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211337904.4A Pending CN115579047A (zh) | 2022-10-28 | 2022-10-28 | 一种NVMe事件测试方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115579047A (zh) |
-
2022
- 2022-10-28 CN CN202211337904.4A patent/CN115579047A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI410976B (zh) | 固態儲存媒體可靠度的測試方法 | |
CN105573676B (zh) | 一种存储***中验证数据一致性的方法 | |
CN109918022B (zh) | 一种ssd开卡坏块表继承方法 | |
CN113778822B (zh) | 纠错能力测试方法、装置、可读存储介质及电子设备 | |
CN110618892A (zh) | 一种固态硬盘的bug定位方法、装置、电子设备及介质 | |
CN116719675B (zh) | 硬盘磨损测试方法、装置及介质 | |
CN115440294A (zh) | 一种NAND Flash控制器多命令混合测试方法 | |
CN110764960B (zh) | 一种固态硬盘固件测试方法 | |
CN112363909B (zh) | 一种继电保护装置中文件***可靠性的自动测试方法 | |
CN114664369A (zh) | 一种存储芯片测试方法及装置 | |
CN112802530B (zh) | Nand测试方法、装置、可读存储介质及电子设备 | |
CN105843716A (zh) | 一种基于mltt的io功能测试方法 | |
CN106648969B (zh) | 一种磁盘中损坏数据巡检方法及*** | |
CN117056218A (zh) | 测试管理方法、平台、介质和设备 | |
CN115579047A (zh) | 一种NVMe事件测试方法、装置和设备 | |
CN116149901A (zh) | 一种数据校验测试方法、装置及计算机可读存储介质 | |
CN112397136B (zh) | 一种半导体存储器测试软件的参数测试方法和装置 | |
CN114664372A (zh) | 一种叠瓦式硬盘的性能测试方法、装置、设备及产品 | |
US8141039B2 (en) | Method and system for consolidating machine readable code | |
CN118173153B (zh) | 一种坏块管理程序验证方法、产品及存储介质 | |
CN110993015B (zh) | 一种硬盘的差分信号质量检测方法、装置、主控及介质 | |
CN107766221B (zh) | 一种读时延测试方法、***、设备及计算机存储介质 | |
CN111581035A (zh) | 用于储存装置的不正常断电测试方法及设备 | |
CN117711478A (zh) | 一种固态硬盘的上下电测试方法、装置以及介质 | |
CN116959543A (zh) | 一种在lun工作数量限制下的ssd可靠性测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |