本发明公开一种测试方法,涉及ssd测试领域,具体的说是一种自动化测试ssdqos的测试方法。
背景技术:
随着it领域技术的不断发展,对服务器的存储性能要求越来越高。ssd具备存储速率快,存储性能高等特点。作为数据载体,其性能直接影响服务器的整体呈现。目前ssd测试参数很多,服务器硬件供应商,在产品开发时对于ssd的性能测试投入很大,其中qos是非常重要的参数,代表着ssd的平稳性如何,对于客户在使用中,业务应用中有很重要的意义。本发明提供一种自动化测试ssdqos的方法,基于python工具的脚本进行编写而成,实现全部自动化,容易操作,测试不同的操作系统中ssdqos。通过自动测试脚本实现自动化测试,并将测试数据直接以图表的形式表现,一目了然对比不同家ssd的稳定性,适用于绝大多数系统,可以根据客户的需求,提供不同表现的ssd,非常适合ssd的筛选工作,可以根据客户的不同需求,提供不同的产品,有利于进行供应商管理并提高服务器质量和性价比。
技术实现要素:
本发明针对目前技术发展的需求和不足之处,提供一种自动化测试ssdqos的测试方法,基于python编写而成的,通过自动测试脚本实现自动的ssdqos测试,对比各厂家的ssd时,具有很重要的意义。
一种自动化测试ssdqos的测试方法,在系统下,识别需要测试的ssd硬盘,通过python编写的自动化测试脚本,调用测试命令对ssd硬盘进行测试:先进行顺序写的测试,获得qos数值;再进行顺序写的测试,获得qos数值;继续进行随机写的测试,获得qos数值;最后进行随机读的测试,获得qos数值;输出测试结果,绘制结论图,用于分析ssd硬盘性能。
所述的测试方法,调用测试命令对ssd硬盘进行测试时,对测试任务进行编号,并设置参数信息。
所述的测试方法,调用测试命令进行顺序写的测试,对测试任务进行编号,并设置队列深度,blocksize,点数自动每隔一定时间取一个点,取满设定点数,获得qos数值。
所述的测试方法,调用测试命令进行顺序读的测试,对测试任务进行编号,并设置队列深度,blocksize,点数自动每隔一定时间取一个点,取满设定点数,获得qos数值。
所述的测试方法,调用测试命令进行随机写的测试,对测试任务进行编号,并设置队列深度,blocksize,点数自动每隔一定时间取一个点,取满设定点数,获得qos数值。
所述的测试方法,调用测试命令进行随机读的测试,对测试任务进行编号,并设置队列深度,blocksize,点数自动每隔一定时间取一个点,取满设定点数,获得qos数值。
本发明与现有技术相比具有的有益效果是:
本发明提供一种自动化测试ssdqos的方法,基于python工具的脚本进行编写而成,实现全部自动化,容易操作,测试不同的操作系统中ssdqos。通过自动测试脚本实现自动化测试,并将测试数据直接以图表的形式表现,一目了然对比不同家ssd的稳定性,适用于绝大多数系统,可以根据客户的需求,提供不同表现的ssd,非常适合ssd的筛选工作,可以根据客户的不同需求,提供不同的产品,有利于进行供应商管理并提高服务器质量和性价比。
附图说明
图1本发明测试输出的顺序写测试图;
图2本发明测试输出的顺序读测试图;
图3本发明测试输出的随机写测试图;
图4本发明测试输出的随机读测试图;
图5本发明方法流程示意图。
具体实施方式
本发明提供一种自动化测试ssdqos的测试方法,在系统下,识别需要测试的ssd硬盘,通过python编写的自动化测试脚本,调用测试命令对ssd硬盘进行测试:先进行顺序写的测试,获得qos数值;再进行顺序写的测试,获得qos数值;继续进行随机写的测试,获得qos数值;最后进行随机读的测试,获得qos数值;输出测试结果,绘制结论图,用于分析ssd硬盘性能。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。
以测试intelssd为例,安装主流linux系统,并获得root权限,利用本发明方法的python自动化测试脚本,识别需要测试的ssd硬盘,调用测试命令对ssd硬盘进行测试:
首先进行顺序写的测试,将numjobs设为1,队列深度设为64,blocksize取128k,点数自动每秒取一个点,取1000个点,脚本输出得到顺序写的qos数值;
然后进行顺序读测试,将numjobs设为2,队列深度设为64,blocksize取128k,点数自动每秒取一个点,取1000个点,脚本输出得到顺序读的qos数值;
继续进行随机写测试,将numjobs设为3,队列深度设为32,blocksize取4k,点数自动每秒取一个点,取1000个点,脚本输出得到随机写的qos数值;
最后进行随机读测试,将numjobs设为4,队列深度设为32,blocksize取4k,点数自动每秒取一个点,取1000个点,脚本输出得到随机读的qos数值;
测试结束,输出测试结果,将结果放入到excel中,绘制结论图,用于分析ssd硬盘性能。
上述过程在脚本中执行过程为:
#!/bin/bash
#definevar
disk=/dev/nvme0n1
runtime=7200
log1=1_sw_qd64
log2=2_sr_qd64
log3=3_rw_qd32
shopt-sexpand_aliases
aliasnvmelog='nvmeid-ctrl$disk>>summary.log;nvmesmart-log$disk>>summary.log;nvmesmart-log-add$disk>>summary.log'
#start
#date>summary.log
nvmelog
#1_log1_sequentialwrite
fio--name=global--time_based--direct=1--norandommap--randrepeat=0--buffered=0--refill_buffers--name=job--ioengine=libaio--group_reporting--filename=$disk--numjobs=1--iodepth=64--bs=128k--rw=write--runtime=$runtime--write_iops_log=$log1--write_lat_log=$log1--write_bw_log=$log1--log_avg_msec=1000>>summary.log
nvmelog
#2_log2_sequentialread
fio--name=global--time_based--direct=1--norandommap--randrepeat=0--buffered=0--refill_buffers--name=job--ioengine=libaio--group_reporting--filename=$disk--numjobs=1--iodepth=64--bs=128k--rw=read--runtime=$runtime--write_iops_log=$log2--write_lat_log=$log2--write_bw_log=$log2--log_avg_msec=1000>>summary.log
nvmelog
#3_log3_randomwrite_qd=32
fio--name=global--time_based--direct=1--norandommap--randrepeat=0--buffered=0--refill_buffers--name=job--ioengine=libaio--group_reporting--filename=$disk--numjobs=4--iodepth=32--bs=4k--rw=randwrite--runtime=$runtime--write_iops_log=$log3--write_lat_log=$log3--log_avg_msec=1000>>summary.log
nvmelog
#4_log4_randomread_qd=32
fio--name=global--time_based--direct=1--norandommap--randrepeat=0--buffered=0--refill_buffers--name=job--ioengine=libaio--group_reporting--filename=$disk--numjobs=4--iodepth=32--bs=4k--rw=randread--runtime=$runtime--write_iops_log=$log4--write_lat_log=$log4--log_avg_msec=1000>>summary.log
nvmelog
上述测试完成时,可直接观察测试输出图,看qos的平稳程度,也可根据测试结果计算实际值进行对比。其中图1-图4中,横轴为时间,纵轴为qos数值大小。测试数据简单明了,测试图表清晰,并且本发明方法可以应用于各家ssd,实现快速、高效、准确、自动化的进行测试,可以对比不同家ssd的品质情况,对于测试端和客户的使用有很高的意义。