一种自动化测试SSDQos的测试方法与流程

文档序号:13735889阅读:1505来源:国知局
一种自动化测试SSD Qos的测试方法与流程

本发明公开一种测试方法,涉及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的品质情况,对于测试端和客户的使用有很高的意义。

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