CN107799158A - 一种NVMe SSD IO延时自动化测试方法 - Google Patents
一种NVMe SSD IO延时自动化测试方法 Download PDFInfo
- Publication number
- CN107799158A CN107799158A CN201711185350.XA CN201711185350A CN107799158A CN 107799158 A CN107799158 A CN 107799158A CN 201711185350 A CN201711185350 A CN 201711185350A CN 107799158 A CN107799158 A CN 107799158A
- Authority
- CN
- China
- Prior art keywords
- test
- nvme ssd
- delay
- automated testing
- log
- 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
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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50012—Marginal testing, e.g. race, voltage or current testing of timing
-
- 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
- G11C29/56012—Timing aspects, clock generation, synchronisation
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请发明一种NVMe SSD IO延时自动化测试方法,所述的方法包括以下步骤:S1:测试环境准备;S2:测试设备初始化;S3:设置测试参数;S4:IO延时测试;S5:监控***资源使用情况;S6处理测试结果。该方法操作简单,能够降低测试成本,为NVMe SSD IO延时测试的质量及效率提供保证,丰富了测试方法。
Description
技术领域
本发明涉及SSD硬盘测试领域,具体涉及一种NVMe SSD的IO延时自动化测试方法。
背景技术
随着大数据时代的来临,企业存储面临着各种性能挑战。SSD即固态硬盘,用固态电子存储芯片阵列而制成的硬盘,具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点。NVMe是一种建立在M.2接口上的类似AHCI的一种协议,是专门为闪存类存储设计的协议。对比传统的AHCI,NVMe重要的优势之一就是低延时,NVMe标准是面向PCI-ESSD的,使用原生PCI-E通道与CPU直连可以免去SATA与SAS接口的外置控制器(PCH)与CPU通信所带来的延时。
NVMe SSD目前在存储领域是一个非常受关注的部分,其重要的优势之一就是IO低延时。
IO延时测试过程和结果直接影响着NVMe SSD的最终性能,因此一种合理有效的IO延时测试方法就显得尤为重要。目前业内主要用于IO基准测试的工具为Iozone、Iometer等,这些工具仅能反映IO带宽、IOPS等相关指标,无法提供IO延时指标。
为了解决上述问题,本发明提供了一种NVMe SSD的IO延时自动化测试方法,采用Fio作为测试IO延时工具,Fio不仅能反应出NVMe SSD的带宽、IOPS,更能直观反应出IO延时情况。该测试方法操作简单,节约人力,同时降低了手工测试的误操作率,为NVMe SSD IO延时测试的质量及效率提供保证。
发明内容
具体地,本申请请求保护一种NVMe SSD IO延时自动化测试方法,其特征在于,该方法具体包括如下步骤:
S1:测试环境准备;
S2:测试设备初始化;
S3:设置测试参数;
S4:IO延时测试;
S5:监控***资源使用情况;
S6:处理测试结果。
如上所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S1的具体实现步骤为:
S11:限制shel l进程及其子进程的资源使用;
S12:配置NVMe SSD的I/O调度算法;
S13:数据同步,清空缓存。
如上所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S2的具体实现步骤为:
S21:顺序测试前需要用块大小为16k的IO顺序初始化设备,随机测试前需要用大小为16k的IO随机初始化设备,将初始化结果放到rw_precondit ion.log randrw_precondit ion.log中。
如上所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S4的具体实现步骤为:
S41:打印测试命令日志到result.log;
S42:执行测试。
如上所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S5的具体实现步骤为:
S51:在每条IO延时测试的过程中,通过iostat、mpstat、free命令监控***资源使用情况,并输出到相应日志;
S52:在每条IO延时测试项完成后结束***资源使用情况监控。
如上所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S6的具体实现步骤为:
S61:生成测试结果表头;
S62:匹配每条IO延时测试结果。
附图说明
图1、本发明IO延时自动化测试方法流程图
图2、本发明输出测试结果结构图
具体实施方式
为了使本领域的技术人员能够更好地理解、实现本发明,下面通过具体实施例对本发明进行详细说明。本发明采用以下技术方案:
一种NVMe SSD的IO延时自动化测试方法,所述的方法包括以下6个步骤:
S1:测试环境准备;
S2:测试设备初始化;
S3:设置测试参数;
S4:IO延时测试;
S5:监控***资源使用情况;
S6:处理测试结果。
具体内容如下:
1、步骤S1的具体实现步骤为:
S11:限制shell进程及其子进程的资源使用;
具体实现如下:
ulimit-d unlimited#对进程的数据段长度不进行限制
ulimit-s unlimited#对堆栈大小不进行限制
ulimit-m unlimited#对最大内存不进行限制
ulimit-v unlimited#对最大可用的虚拟内存不进行限制
ulimit-t unlimited#对最大的cpu占用时间不进行限制
ulimit-n 500000#限制最大可以使用500000个文件描述符
S12:配置NVMe SSD的I/O调度算法;
设置NVMe SSD的I/O调度算法为noop,将调度算法类型输出到结果scheduler.log中。
具体实现如下:
echo"noop">/sys/block/basename${iter_disk}`/queue/scheduler
cat/sys/block/`basename${iter_disk}`/queue/scheduler>${result_dir}/scheduler.log
其中basename${iter_disk}`为被测试NVMe SSD设备。
S13:数据同步,清空缓存。
通过sync命令将buffer中的IO强制写入disk,再清空缓存。
2、步骤S2的具体实现步骤为:
S21:顺序测试前需要用块大小为16k的IO顺序初始化设备,随机测试前需要用大小为16k的IO随机初始化设备,将初始化结果放到rw_precondition.log randrw_precondition.log中。
具体实现如下:
./fio--name=${filename}_precondition--time_based--numjobs=8--rw=$rw--direct=1--ioengine=libaio--filename=${filename}--rwmixread=0--bs=16k--iodepth=32--runtime=$pretime>>${basedir_log}/${rw}_precondition.log
其中
filename为被测试NVMe SSD设备,如/dev/NVMe01
rw为rw/randrw,即IO类型顺序/随机
pretime为7200,即初始化时间为7200s
S22:数据同步,清空缓存。
调用步骤S13中fs_sync函数将buffer中的IO强制写入disk,再清空缓存。保证测试结果可靠。
3、步骤S3的具体实现步骤为:
S31:设置测试参数。
direct=1#测试过程绕过机器自带的buffer。使测试结果更真实。
ioengine=libaio#测试IO引擎为libaio
numjobs_arr=(4)#测试线程为4
rw_arr=(rw randrw)#顺序读写IO、随机读写IO
rwmixread_arr=(0 70 100)#混合读写的模式下,读占0%,70%,100%
io_depth_arr=(32 64)#IO队列深度为32、64
bs_arr=(4 8 16 32 64 128 256 512)#IO块大小为4k、8k、16k、32k、64k、128k、256k、512k
rtime=600#测试时间为600s
4、步骤S4的具体实现步骤为:
S41:打印测试命令日志到result.log;
tlog"./fio--name=$name--time_based--group_reporting--numjobs=$numjobs--rw=$rw--direct=$direct--ioengine=$ioengine--filename=$filename--rwmixread=$rwmixread--bs=${bs}k--iodepth=${io_depth}--runtime=$rtime--minimal>>${basedir_log}/result.log"#输出每条测试日志到result.log
S42:执行测试。
./fio--name=$name--time_based--group_reporting--numjobs=$numjobs--rw=$rw--direct=$direct--ioengine=$ioengine--filename=$filename--rwmixread=$rwmixread--bs=${bs}k--iodepth=${io_depth}--runtime=$rtime--minimal>>${basedir_log}/result.log
#该测试命令中所有测试参数取值均通过步骤S31传入,并利用for循环遍历所有测试参数中所有值。
5、步骤S5的具体实现步骤为:
S51:在每条IO延时测试的过程中,通过iostat、mpstat、free命令监控***资源使用情况,并输出到相应日志
即在步骤S42每条IO延时测试项开始前,执行监控命令
具体实现如下:
mpstat-P ALL 30>${basedir_stat}/${name}_mp.log&
#每隔30s采样一次所有处理器的CPU利用率输出到相应日志
free-m-s 30|grep Mem|awk-F""'{print$3}'>${basedir_stat}/${name}raw_mem.log&
#每隔30s采样一次空闲的内存输出到相应日志
iostat-xm 30-p$filename>${basedir_stat}/${name}_io.log &
#每隔30s采样一次CPU及IO负载情况输出到相应日志
S52:在每条IO延时测试项完成后结束***资源使用情况监控
即在步骤S42测试命令结束后,结束监控
具体实现如下:
pkill iostat#结束iostat进程
pkill mpstat#结束mpstat进程
pkill free#结束free进程
6、步骤S6的具体实现步骤为:
S61:生成测试结果表头
即在步骤4开始IO延时测试开始前,生成测试结果表头输出到result.csv
具体实现为:
echo
"DISK,SEQ_RAND,DIRECT_IO,BLOCK(KB),READ%,R_BW(KB),R_IOPS,R_LAT(ms),W_BW(KB),W_IO PS,W_LAT(ms),Threads,PD_Num,IO_Depth"|tee-a${basedir_result}/result.csv
S62:匹配每条IO延时测试结果
即在步骤S52后,通过命令从步骤S42输出的result.log中匹配出最终结果,并追加到result.csv
具体实现为:
tail-n1${basedir_log}/result.log|awk-F";"'{printf"%s,%s,%d,%d,%d,%d,%d,%.3f,%d,%d,%.3f,%d,%d,%d\n","'${prefix}'","'$srw'","'$direct'","'$bs'","'$rwmixread'",$7,$8,$40/1000,$48,$49,$81/1000,"'$numjobs'","'$numj obs'","'$io_depth'"}'|tee-a${basedir_result}/result.csv
显而易见地,上面所示的仅仅是本发明的一个具体实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据上述实施例获得其他的技术方案,以及在本发明保护的范围内做出的等同变化均应落入本发明的保护范围内,都属于本发明保护的范围。
综上所述,本发明通过测试前限制shel l进程及其子进程的资源使用,配置NVMeSSD I/O调度算法,优化NVMe SSD性能;测试前将buffer中的IO强制刷到disk中,再清空缓存,设备测试前全盘初始化可以提升测试结果可靠性。本发明所述的IO延时自动化测试方法,可以覆盖多种参数可选值,测试更全面,充分;在测试过程中实时监控cpu、memory、io负载情况,可以辅助测试结果分析自动执行测试,通过自动处理测试结果这一环节,保留Fio工具原始测试结果,提取体IO延时结果值,使测试结果更直观易读,节约时间,简化手工操作。
Claims (6)
1.一种NVMe SSD IO延时自动化测试方法,其特征在于,该方法具体包括如下步骤:
S1:测试环境准备;
S2:测试设备初始化;
S3:设置测试参数;
S4:IO延时测试;
S5:监控***资源使用情况;
S6:处理测试结果。
2.如权利要求1所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S1的具体实现步骤为:
S11:限制shell进程及其子进程的资源使用;
S12:配置NVMe SSD的I/O调度算法;
S13:数据同步,清空缓存。
3.如权利要求2所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S2的具体实现步骤为:
S21:顺序测试前需要用块大小为16k的IO顺序初始化设备,随机测试前需要用大小为16k的IO随机初始化设备,将初始化结果放到rw_precondition.log randrw_precondition.log中。
4.如权利要求3所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S4的具体实现步骤为:
S41:打印测试命令日志到result.log;
S42:执行测试。
5.如权利要求4所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S5的具体实现步骤为:
S51:在每条IO延时测试的过程中,通过iostat、mpstat、free命令监控***资源使用情况,并输出到相应日志;
S52:在每条IO延时测试项完成后结束***资源使用情况监控。
6.如权利要求5所述的NVMe SSD IO延时自动化测试方法,其特征还在于,步骤S6的具体实现步骤为:
S61:生成测试结果表头;
S62:匹配每条IO延时测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711185350.XA CN107799158A (zh) | 2017-11-23 | 2017-11-23 | 一种NVMe SSD IO延时自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711185350.XA CN107799158A (zh) | 2017-11-23 | 2017-11-23 | 一种NVMe SSD IO延时自动化测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107799158A true CN107799158A (zh) | 2018-03-13 |
Family
ID=61536632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711185350.XA Pending CN107799158A (zh) | 2017-11-23 | 2017-11-23 | 一种NVMe SSD IO延时自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107799158A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763000A (zh) * | 2018-05-23 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种基于Linux平台的硬盘IO请求延时模拟判断方法及*** |
CN109062775A (zh) * | 2018-07-09 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种栈层优化判断的方法、***及设备 |
CN109215721A (zh) * | 2018-10-24 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种测试nvme ssd硬盘延迟的方法、装置及设备 |
CN109256173A (zh) * | 2018-08-13 | 2019-01-22 | 中国航空无线电电子研究所 | 机载存储设备测试*** |
CN110554936A (zh) * | 2018-06-04 | 2019-12-10 | 记忆科技(深圳)有限公司 | 一种ssd测试方法及*** |
CN116682479A (zh) * | 2023-07-28 | 2023-09-01 | 江苏华存电子科技有限公司 | 一种企业级固态硬盘时延指标的测试方法及测试*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317693A (zh) * | 2014-10-30 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种自动检测硬盘性能波动的方法 |
CN104598344A (zh) * | 2015-02-03 | 2015-05-06 | 浪潮电子信息产业股份有限公司 | 一种基于shell的测试内存读写的方法 |
CN105487952A (zh) * | 2015-12-15 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种基于fio的pcie-ssd自动化测试方法 |
CN107358980A (zh) * | 2017-07-19 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种自动化测试ssd延时的方法 |
-
2017
- 2017-11-23 CN CN201711185350.XA patent/CN107799158A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317693A (zh) * | 2014-10-30 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种自动检测硬盘性能波动的方法 |
CN104598344A (zh) * | 2015-02-03 | 2015-05-06 | 浪潮电子信息产业股份有限公司 | 一种基于shell的测试内存读写的方法 |
CN105487952A (zh) * | 2015-12-15 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种基于fio的pcie-ssd自动化测试方法 |
CN107358980A (zh) * | 2017-07-19 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种自动化测试ssd延时的方法 |
Non-Patent Citations (3)
Title |
---|
RAYKUAN: "IO测试工具之fio详解", 《CNBLOGS》 * |
吴永佩: "《Linux指令范例速查辞典》", 31 March 2014 * |
蒋健春: "《计算机网络管理理论与实践教程》", 30 September 2008 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763000A (zh) * | 2018-05-23 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种基于Linux平台的硬盘IO请求延时模拟判断方法及*** |
CN110554936A (zh) * | 2018-06-04 | 2019-12-10 | 记忆科技(深圳)有限公司 | 一种ssd测试方法及*** |
CN109062775A (zh) * | 2018-07-09 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种栈层优化判断的方法、***及设备 |
CN109062775B (zh) * | 2018-07-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种栈层优化判断的方法、***及设备 |
CN109256173A (zh) * | 2018-08-13 | 2019-01-22 | 中国航空无线电电子研究所 | 机载存储设备测试*** |
CN109215721A (zh) * | 2018-10-24 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种测试nvme ssd硬盘延迟的方法、装置及设备 |
CN116682479A (zh) * | 2023-07-28 | 2023-09-01 | 江苏华存电子科技有限公司 | 一种企业级固态硬盘时延指标的测试方法及测试*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107799158A (zh) | 一种NVMe SSD IO延时自动化测试方法 | |
WO2020233212A1 (zh) | 一种日志记录的处理方法、服务器及存储介质 | |
CN106293944B (zh) | 虚拟化多核环境下基于非一致性i/o访问***和优化方法 | |
CN104301404B (zh) | 一种基于虚拟机的调整业务***资源的方法及装置 | |
CN106708627B (zh) | 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及*** | |
US10817220B2 (en) | Sharing processor cores in a multi-threading block i/o request processing data storage system | |
CN104660471A (zh) | 一种Linux下自动测试PCIE-SSD传输速率和带宽的方法 | |
CN108595108A (zh) | 一种数据的迁移方法和装置 | |
CN106126124A (zh) | 一种数据处理方法及电子设备 | |
CN104391548A (zh) | 一种提高服务器Expander板卡芯片FW烧录效率的方法 | |
US11748241B2 (en) | Method and apparatus for generating simulated test IO operations | |
CN113722248B (zh) | 命令处理方法及命令处理装置 | |
Xu et al. | Performance characterization of hyperscale applicationson on nvme ssds | |
CN108121601A (zh) | 一种基于权重的应用资源调度装置及方法 | |
CN110209597A (zh) | 处理访问请求的方法、装置、设备和存储介质 | |
Xu et al. | Analysis and optimization of data import with hadoop | |
CN105468488B (zh) | 一种基于ib网络的无盘测试cpu的方法、装置及*** | |
US10705853B2 (en) | Methods, systems, and computer-readable media for boot acceleration in a data storage system by consolidating client-specific boot data in a consolidated boot volume | |
US20160170892A1 (en) | Expression pattern matching in a storage subsystem | |
CN105139890B (zh) | 一种信息处理方法及固态硬盘 | |
US10372347B2 (en) | Selectively limiting throughput of test objects that share system resources with production objects | |
CN104536861A (zh) | 一种基于多操作***的fc san存储测试方法 | |
CN107886996A (zh) | 一种批量测试nvme硬盘的方法 | |
US20210117094A1 (en) | Mirroring data onto disparate types of non-volatile data storage | |
CN104978250A (zh) | 一种基于iozone的HBA卡性能测试的方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180313 |
|
RJ01 | Rejection of invention patent application after publication |