CN105389236A - 一种基于fio的hba卡自动化测试方法 - Google Patents
一种基于fio的hba卡自动化测试方法 Download PDFInfo
- Publication number
- CN105389236A CN105389236A CN201510906443.1A CN201510906443A CN105389236A CN 105389236 A CN105389236 A CN 105389236A CN 201510906443 A CN201510906443 A CN 201510906443A CN 105389236 A CN105389236 A CN 105389236A
- Authority
- CN
- China
- Prior art keywords
- test
- fio
- hba card
- script
- testing method
- 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 73
- 238000011056 performance test Methods 0.000 description 3
- 238000013112 stability test Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于FIO的HBA卡自动化测试方法,属于服务器技术HBA卡I/O性能测试领域,本发明要解决的技术问题为解决HBA卡性能、稳定性自动化测试,采用的技术方案的步骤为:(1)根据HBA卡连接存储的测试需求人工修改测试脚本参数;(2)脚本根据参数自动选择对应测试模块;(3)测试模块根据参数自动开始测试;(4)完成测试并输出结果到日志。
Description
技术领域
本发明涉及服务器技术HBA卡I/O性能测试领域,具体地说是一种基于FIO的HBA卡自动化测试方法。
背景技术
随着IT行业的高速发展,信息化、大数据及云计算的发展对服务器性能要求越来越高。HBA卡作为服务器连接数据存储的载体,性能指标直接影响服务器及存储的整体呈现。
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。
FIO是一个文件***的benchmark工具,可以测试各种操作***文件***的I/O性能,可以进行不同测试块大小、不同模式下的I/O性能测试。但是FIO只提供了简单的参数,单条命令的使用有非常大的测试局限,很难做到对HBA卡的I/O进行较为***的性能及稳定性测试。
如果能够通过shell语言编写自动化的测试脚本,并手动进行测试参数的调整,将会极大提高HBA卡性能及稳定性测试的质量及效率。
发明内容
本发明的技术任务是针对以上不足,提供一种基于FIO的HBA卡自动化测试方法,来解决HBA卡性能、稳定性自动化测试的问题。
本发明的技术任务是按以下方式实现的:
一种基于FIO的HBA卡自动化测试方法,通过shell语言编写的自动化测试脚本进行测试,步骤为:
(1)根据HBA卡连接存储的测试需求人工修改测试脚本参数;
(2)脚本根据参数自动选择对应测试模块;
(3)测试模块根据参数自动开始测试;
(4)完成测试并输出结果到日志。
所述测试模块包括在线程不同、读写策略不同及数据块大小不同时的测试,还包括带宽测试以及在线程不同、读写策略不同及数据块大小不同时运行稳定性的测试。
本发明的一种基于FIO的HBA卡自动化测试方法的流程示意图具有以下优点:
本发明适用于不同HBA卡型号及配置,仅需根据测试需求修改对应参数即可。解决了使用FIO单条命令的测试局限性。丰富了测试手段,提高了测试效率和测试质量,更好的实现了HBA卡自动化测试。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种基于FIO的HBA卡自动化测试方法的流程示意图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于FIO的HBA卡自动化测试方法的流程示意图作以下详细地说明。
实施例:
本发明的一种基于FIO的HBA卡自动化测试方法,通过shell语言编写的自动化测试脚本进行测试,步骤为:
(1)根据HBA卡连接存储的测试需求人工修改测试脚本参数;
(2)脚本根据参数自动选择对应测试模块;
(3)测试模块根据参数自动开始测试;
(4)完成测试并输出结果到日志。
测试模块包括在线程不同、读写策略不同及数据块大小不同时的测试还包括带宽测试以及在线程不同、读写策略不同及数据块大小不同时运行稳定性的测试。
本发明测试实施方式为:
对模块变量及部分参数进行初始定义,如默认跑IOengine为libaio模式,代码为:
IS_FRAG=false
IS_STRESS=false
IS_BASE=false
IS_FILESYSTEM=false
IS_IOPS=false
IO_ENGINE=libaio
FILE_SIZE=100%
usage说明,对脚本可用到的参数进行说明,执行iotest.sh–h会屏幕print,代码为:
usage(){
echo"$0[-f][-s][-eio_engine][-h][-b][-ddev_name][-m][-ppartion][-wworkdir][-r][-iiops]"
echo"-ffragment"
echo"-sstresstest"
echo"-eioenginetype,defaulttypeislibaio"
echo"-brawdevicebasetest"
…
…
echo"example:"
echo"rawdevicefragment:nohup&>/dev/nullshiotest.sh-f-d/dev/sda&"
echo"rawdevicebasetest:nohup&>/dev/nullshiotest.sh-b-d/dev/sda&"
…
…
echo"Ifyouhaveanyquestion,contactwithme:miaoywinspur.com"
exit
套用getopts方式,对脚本命令行参数进行定义,例如执行iotest.sh–b会自动将“IS_BASE=true”,代码为:
whilegetopts"hsfbe:d:mp:w:ri:"arg
do
case$argin
h)
usage;;
s)
IS_STRESS=true;;
f)
IS_FRAG=true;;
b)
IS_BASE=true;;
…
…
w)
workdir=${OPTARG};;
r)
IS_IOPS=true;;
i)
define_iops=${OPTARG};;
esac
done
利用for循环嵌套,采用不同线程不同读写策略不同数据块大小进行测试并输出结果至log档,代码为:
if${IS_FRAG};then
fragment
fi
if${IS_BASE};then
base_test
fi
…
…
if${IS_IOPS};then
fixed_iops_test
fi
根据if语句的判断,调用base_test测试模块;
base_test(){
forRWinwriterandwritereadrandread
do
forBSin4k16k64k512k
do
forTHREADSin128163264256
do
if[$THREADS-le32];then
fio--readwrite=${RW}--bs=${BS}--numjobs=${THREADS}--runtime=300s${PARA_LINE}--filename=${DEV_LIST}--name=${RW}_${BS}_${THREADS}|tee-a${RW}.log
else
iodepth=$(($THREADS/32))
PARA_LINE2="--end_fsync=0--group_reporting--direct=1--ioengine=${IO_ENGINE}--iodepth=$iodepth--time_based--invalidate=1--norandommap--randrepeat=0--exitall--size=${FILE_SIZE}"
fio--readwrite=${RW}--bs=${BS}--numjobs=32--runtime=300s${PARA_LINE2}--filename=${DEV_LIST}--name=${RW}_${BS}_${THREADS}|tee-a${RW}.log
fi
done
done
sleep60s
done
设置参数运行带宽测试,代码为:
fio--readwrite=read--bs=512k--direct=1--runtime=300s--end_fsync=0--ioengine=${IO_ENGINE}--time_based--invalidate=1--norandommap--randrepeat=0--group_reporting--numjobs=1--size=${FILE_SIZE}--filename=${DEV_LIST}--name=BW_read|tee-aBW_read.log
sleep60s
…
…
fio--readwrite=write--bs=512k--direct=1--runtime=300s--end_fsync=0--ioengine=${IO_ENGINE}--time_based--invalidate=1--norandommap--randrepeat=0--group_reporting--numjobs=1--size=${FILE_SIZE}--filename=${DEV_LIST}--name=BW_write|tee-aBW_write.log
sleep60s
利用不同数据块大小、不同线程及不同读写策略运行稳定性测试,代码为:
#steady
iostat-xm1>4k_rw_iops&
fio--readwrite=randrw--rwmixread=70--bs=4k--runtime=3000s--numjobs=32${PARA_LINE}--filename=${DEV_LIST}--name=4k_rw_iops|tee-a4k_rw_iops.log
kill`pidofiostat`>/dev/null
sleep30s
…
…
iostat-xm1>16k_w_iops&
fio--readwrite=randwrite--bs=16k--runtime=3000s--numjobs=32${PARA_LINE}--filename=${DEV_LIST}--name=16k_w_iops|tee-a16k_w_iops.log
kill`pidofiostat`>/dev/null
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (2)
1.一种基于FIO的HBA卡自动化测试方法,其特征在于通过shell语言编写的自动化测试脚本进行测试,步骤为:
(1)根据HBA卡连接存储的测试需求人工修改测试脚本参数;
(2)脚本根据参数自动选择对应测试模块;
(3)测试模块根据参数自动开始测试;
(4)完成测试并输出结果到日志。
2.根据权利要求1所述的一种基于FIO的HBA卡自动化测试方法,其特征在所述测试模块包括在线程不同、读写策略不同及数据块大小不同时的测试还包括带宽测试以及在线程不同、读写策略不同及数据块大小不同时运行稳定性的测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510906443.1A CN105389236A (zh) | 2015-12-09 | 2015-12-09 | 一种基于fio的hba卡自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510906443.1A CN105389236A (zh) | 2015-12-09 | 2015-12-09 | 一种基于fio的hba卡自动化测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105389236A true CN105389236A (zh) | 2016-03-09 |
Family
ID=55421543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510906443.1A Pending CN105389236A (zh) | 2015-12-09 | 2015-12-09 | 一种基于fio的hba卡自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105389236A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843716A (zh) * | 2016-04-01 | 2016-08-10 | 浪潮电子信息产业股份有限公司 | 一种基于mltt的io功能测试方法 |
CN106502844A (zh) * | 2016-10-11 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种测试RAID存储器IO的sAS端口带宽的方法 |
CN113296704A (zh) * | 2021-05-27 | 2021-08-24 | 济南浪潮数据技术有限公司 | Sas hba卡固件日志的在线并行收集方法、装置及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850479A (zh) * | 2015-05-15 | 2015-08-19 | 浪潮电子信息产业股份有限公司 | 一种基于fio的硬盘自动化测试方法 |
-
2015
- 2015-12-09 CN CN201510906443.1A patent/CN105389236A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850479A (zh) * | 2015-05-15 | 2015-08-19 | 浪潮电子信息产业股份有限公司 | 一种基于fio的硬盘自动化测试方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843716A (zh) * | 2016-04-01 | 2016-08-10 | 浪潮电子信息产业股份有限公司 | 一种基于mltt的io功能测试方法 |
CN106502844A (zh) * | 2016-10-11 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种测试RAID存储器IO的sAS端口带宽的方法 |
CN113296704A (zh) * | 2021-05-27 | 2021-08-24 | 济南浪潮数据技术有限公司 | Sas hba卡固件日志的在线并行收集方法、装置及设备 |
CN113296704B (zh) * | 2021-05-27 | 2022-12-02 | 济南浪潮数据技术有限公司 | Sas hba卡固件日志的在线并行收集方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105487952A (zh) | 一种基于fio的pcie-ssd自动化测试方法 | |
CN104850479A (zh) | 一种基于fio的硬盘自动化测试方法 | |
US10528742B2 (en) | Method and apparatus for repairing kernel vulnerability | |
CN106156278B (zh) | 一种数据库数据读写方法和装置 | |
US8898642B2 (en) | Profiling and sequencing operators executable in an emulated computing system | |
CN106708718B (zh) | 服务框架接口测试方法与装置 | |
CN108984160B (zh) | 基于组件化的信息化快速开发框架*** | |
CN108959080B (zh) | 一种基于UnitTest并行执行的自动化测试方法 | |
CN106682036A (zh) | 一种数据交换***及其交换方法 | |
CN102902558A (zh) | 项目脚本文件更新***和方法、脚本文件合并方法和装置 | |
CN107168879B (zh) | 集中配置管理***测试报告的生成方法及装置 | |
CN107741903A (zh) | 应用程序兼容性测试方法、装置、计算机设备和存储介质 | |
CN104809042A (zh) | 一种基于iozone的硬盘性能测试的方法 | |
CN105389236A (zh) | 一种基于fio的hba卡自动化测试方法 | |
CN109542562A (zh) | 界面图片的识别方法及装置 | |
CN113886162A (zh) | 一种计算设备性能测试方法、计算设备及存储介质 | |
CN105260281A (zh) | 一种基于iozone的PCIE SSD卡性能测试的方法 | |
US9563541B2 (en) | Software defect detection identifying location of diverging paths | |
CN105843716A (zh) | 一种基于mltt的io功能测试方法 | |
CN106293862B (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN105242947A (zh) | 一种批量升级bios的方法 | |
CN105243022B (zh) | 主机应用软件***的性能数据分析方法及装置 | |
CN104978250A (zh) | 一种基于iozone的HBA卡性能测试的方法 | |
CN105302604B (zh) | 应用程序的版本更新方法及装置 | |
CN114647588A (zh) | 接口测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160309 |