一种基于fio的pcie-ssd自动化测试方法

xiaoxiao2021-3-1  243

一种基于fio的pcie-ssd自动化测试方法
【技术领域】
[0001 ] 本发明涉及PCIE-SSD自动化测试领域,具体地说是一种基于F10的PCIE-SSD自动化测试方法。
【背景技术】
[0002]随着IT行业的高速发展,信息化、大数据及云计算的发展对服务器性能要求越来越高。PCIE-SSD作为数据存储的载体,性能指标直接影响服务器的整体呈现。做为国内领先的服务器硬件供应商,浪潮也在不断提高对PCIE-SSD性能测试的质量及效率。
[0003]Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。
[0004]F10是一个文件系统的benchmark工具,可以测试各种操作系统文件系统的读写性能。可以进行不同测试块大小、不同模式下的PCIE-SSD性能测试。但是F10只提供了简单的参数,单条命令的使用有非常大的测试局限,很难做到对PCIE-SSD进行较为系统的性能及稳定性测试。
[0005]如何能够通过shell语言编写自动化的测试脚本,并手动进行测试参数的调整使本发明要解决的技术问题。将会极大提高PCIE-SSD性能及稳定性测试的质量及效率。

【发明内容】

[0006]本发明的技术任务是针对以上不足,提供一种基于F10的PCIE-SSD自动化测试方法,来解决PCIE-SSD性能及稳定性测试的质量及效率低的问题。
[0007]本发明的技术任务是按以下方式实现的:
一种基于F10的PCIE-SSD自动化测试方法,步骤为:
(1)根据测试需求修改测试脚本参数;
(2)脚本根据参数自动选择对应的测试模块;
(3)测试模块根据参数自动开始测试;
(4)完成测试并将结果输出到日志。
[0008]在进行步骤(1)之前对模块变量及部分参数进行初始定义。
[0009]本发明的一种基于F10的PCIE-SSD自动化测试方法具有以下优点:适用于不同PCIE-SSD型号及配置,仅需根据测试需求修改参数即可。解决了使用F10单条命令的测试局限性。丰富了测试手段,提高了测试效率和测试质量,更好的实现了 PCIE-SSD自动化测试。
【附图说明】
[0010]下面结合附图对本发明进一步说明。
[0011 ]附图1为一种基于F10的PCIE-SSD自动化测试方法的流程示意图。
【具体实施方式】
[0012]参照说明书附图和具体实施例对本发明的一种基于F10的PCIE-SSD自动化测试方法作以下详细地说明。
[0013]实施例:
本发明的一种基于F10的PCIE-SSD自动化测试方法,步骤为:
(1)根据测试需求修改测试脚本参数;
(2)脚本根据参数自动选择对应的测试模块;
(3)测试模块根据参数自动开始测试;
(4)完成测试并将结果输出到日志。
[00M]在进行步骤(1)之前对模块变量及部分参数进行初始定义,如默认跑10 engine为liba1模式,其实现代码为:
IS_FRAG=false
IS_STRESS=false
IS_BASE=false
IS_FILESYSTEM=false
IS_10PS=false
1_ENGINE=liba1
FILE_SIZE=100%
usage说明,对脚本可用到的参数进行说明,执行1test.sh _h会屏幕print,其实现代码为:
usage(){
echo 〃$0 [-f] [_s] [~e 1_engine] [_h] [_b] [_d dev_name] [_m] [_ppart1n] [-w workdir] [_r] [_i 1ps]〃echo 〃-f fragment"echo 〃-s stress test〃
echo 〃-e 1engine type , default type is liba1〃 echo 〃-b raw device base test〃
echo "example:〃
echo 〃 raw device fragment: nohup &>/dev/null sh 1test.sh -f -d /dev/sda &〃
echo 〃 raw device base test: nohup &>/dev/null sh 1test.sh _b _d /dev/sda &〃
echo 〃If you have any quest1n, contact with me: miaoywOinspur.com〃 exit 套用getopts方式,对脚本命令行参数进行定义,例如执行1test.sh _b会自动将“IS_BASE=true”,其实现代码为:
while getopts 〃hsfbe:d:mp:w:r1:〃 argdo
case $arg in h)
usage;; s)
IS_STRESS=true;;f)
IS_FRAG=true;;b)
IS_BASE=true;;w)
workdir=${OPTARG};;r)
IS_1PS=true;;i)
define—1ps=${OPTARG};;
esac
done
根据if语句的判断,调用basejest测试模块,其实现代码为:if ${IS_FRAG};thenfragment
fi
if IS—BASE};then base_test
fi
if ${IS_1PS};thenfixed_1ps_test
fi
利用for循环嵌套,采用不同线程不同读写策略不同数据块大小进行测试并输出结果至log档,其实现代码为:base_test(){
for Rff in write randwrite read randread do
for BS in 4k 16k 64k 512k
do
for THREADS in 1 2 8 16 32 64 256do
if [ $THREADS -le 32 ];then
f1 —readwrite=${Rff} —bs=${BS} —numj o b s=${THREAD S}—runtime=300s ${PARA_LINE} —filename=${DEV—LIST} —name=${Rff}_${BS}_${THREADS} I tee —a ${Rff}.log
else
1depth=$(($THREADS/32))
PARA—LINE2=〃一end—fsync=0 —group—reporting —direct=l —1engine=${10_ENGINE} —1depth=$1depth —time_based —invalidate=l —norandommap —randrepeat=0 —exitall —size=${FILE—SIZE},,
f1 —readwrite=${Rff} —bs=${BS} —numjobs=32 —runtime=300s ${PARA—LINE2} —filename=${DEV—LIST} —name=${RW}—${BS}—${THREADS} | tee-a ${Rff}.log
fi
done
done
sleep 60s
done
根据设置参数运行带宽测试,其实现代码为:
f1 —readwrite=read —bs=512k —direct=l —runtime=300s —end—fsync=0 —1engine=${10—ENGINE} —time_based —invalidate=l —norandommap —randrepeat=
0—group_reporting —numjobs=l —size=${FILE_SIZE} —f i1ename=${DEV_LIST}—name=Bff_read |tee -a BW—read.logsleep 60s
f1 —readwrite=write —bs=512k —direct=l —runtime=300s —end_fsync=0 —1engine=${10_ENGINE} —time_based —invalidate=l —norandommap —randrepeat=0 —group_reporting —numjobs=l —size=${FILE_SIZE} —filename=${DEV—LIST} —name=Bff_write |tee -a Bff_write.logsleep 60s
利用不同数据块大小、不同线程及不同读写策略运行稳定性测试,其实现代码为:
# steady
1stat -xm 1 > 4k_rw_1ps &
f 1 —readwrite=randrw —rwmixread=70 —bs=4k —runtime=3000s —numjobs=32 ${PARA_LINE} —filename=${DEV_LIST} —name=4k_rw_1ps | tee -a4k_rw_1ps.log
kill pidof 1stat' > /dev/null sleep 30s
1stat -xm 1 > 16k—w—1ps &
f1 —readwrite=randwrite —bs=16k —runtime=3000s —numjobs=32 ${PARA—LINE} —filename=${DEV_LIST} —name = 16k_w_1ps | tee -a 16k_w_1ps.log
kill pidof 1stat' > /dev/null通过上面【具体实施方式】,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的【具体实施方式】。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。除说明书所述的技术特征夕卜,均为本专业技术人员的已知技术。
【主权项】
1.一种基于F1的PCIE-SSD自动化测试方法,其特征在于步骤为: (1)根据测试需求修改测试脚本参数; (2)脚本根据参数自动选择对应的测试模块; (3 )测试模块根据参数自动开始测试; (4)完成测试并将结果输出到日志。2.根据权利要求1所述的一种基于F10的PCIE-SSD自动化测试方法,其特征在于在进行步骤(1)之前对模块变量及部分参数进行初始定义。
【专利摘要】本发明公开了一种基于FIO的PCIE-SSD自动化测试方法,属于PCIE-SSD自动化测试领域,本发明要解决PCIE-SSD性能及稳定性测试的质量及效率低的问题,采用的技术方案步骤为:(1)根据测试需求修改测试脚本参数;(2)脚本根据参数自动选择对应的测试模块;(3)测试模块根据参数自动开始测试;(4)完成测试并将结果输出到日志。在进行步骤(1)之前对模块变量及参数进行初始定义。
【IPC分类】G06F11/22
【公开号】CN105487952
【申请号】CN201510928968
【发明人】韩琳琳
【申请人】浪潮电子信息产业股份有限公司
【公开日】2016年4月13日
【申请日】2015年12月15日

最新回复(0)