一种基于iozone的HBA卡性能测试的方法

文档序号:9261285阅读:695来源:国知局
一种基于iozone的HBA卡性能测试的方法
【技术领域】
[0001]本发明涉及计算机服务器技术领域,具体地说是一种实用性强,可以针对不同配置使用1zone对HBA卡进行性能测试的方法。
【背景技术】
[0002]随着IT领域技术的不断发展,传统信息化服务以及日趋强大的云计算服务对服务器的性能要求越来越高。HBA卡做为数据传输的一种通道,其性能直接影响服务器的整体呈现。做为服务器硬件供应商,在产品开发时对于HBA卡的性能测试需要更多的投入。
[0003]Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。
[0004]1zone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试 Read, write, re-read, re-write, read backwards, readstrided, fread, fwrite, random read, pread.mmap, a1_read, a1_write 等等不同的模式下的存储盘的性能。
[0005]但是1zone只提供了简单的参数,单条1zone命令有非常大的测试局限,如只能对一块存储盘进行测试,测试线程数控制难等。
[0006]基于上述技术,如果能够通过shell脚本,根据实际服务器配置来修改测试文件,并能够手动调整部分参数,这将对于多种多样的配置的硬盘性能测试带来便利和更高的效率。

【发明内容】

[0007]本发明的技术任务是针对以上不足之处,提供是一种实用性强,可以对1zone的测试参数进行扩展,使之适应多种多样的性能测试需求的方法。
[0008]本方法改进了 1zone测试命令的限制性,通过前期测试参数和配置文件的设置和修改,丰富了 1zone的测试环境。能够同时对多个HBA卡进行多个线程的多种模式的读写测试。测试过程中的线程数、测试块大小、测试文件大小、测试模式等都是可以根据实际需求进行手动调节的。
[0009]一种基于1zone的自动测试HBA性能的方法,其具体实现过程为:
1.识别本服务器通过HBA卡所连接的存储模块。
[0010]2.对存储模块进行分区,挂载和格式化。
[0011]3.根据实际配置修改将测试参数传递给性能测试脚本。
[0012]4.开始性能测试,并输出结果。
[0013]可同时对数个HBA同时进行数个线程的多种模式的读写性能测试。
[0014]测试过程中的线程数、测试块大小、测试文件大小、测试模式都可以根据实际需求进行手动调节。
[0015]本发明的有益效果是:
基于shell的1zone性能测试方法,丰富了 1zone的测试方法,可以根据不同需求调整测试参数和配置文件,满足越来越多不同客户的性能测试需求。对于提升给客户的印象有重大作用。
【附图说明】
[0016]图1是本发明的实现流程图。
【具体实施方式】
[0017]下面对本发明的内容进行更加详细的阐述:
下面结合附图和具体实施例对本发明作进一步说明。
[0018]一、通过HBA卡连接外部存储 O识别本服务器所有的外接存储盘 #!/bin/bash
#判断输入参数个数,不符合时输出usage后退出 if [ $# -ne 2]; then
echo “Usage:./$0 RECSIZE THREADS_PERFHDDexit 0;fi
#识别所有的盘符 funct1n get—disk()
{
fdisk -1 |grep ,,Disk /dev/sd,, | awk,{print $2 | ^cut -bS,,},>> /root/1, txtfor i in cat /root/1, txt'do
echo 〃/dev/sd$i〃 >> /root/disk.1stdone
}
2)对外接存储进行分区,格式化和挂载 #分区
funct1n fdisk—disk O
{
for disk in cat /root/disk.1stdo
#对外接存储盘分区
echo -e 〃fdisk $disk now...〃
parted -s $disk mklabel gpt mkpart $disk〃l〃 I 10gbecho -e 〃Done〃fidone
}
#格式化
funct1n mkfs_disk()
{
for i in cat /root/1, txt'do
if [ $i = a ]then
mkfs.ext4 /dev/sd$i〃3〃else
mkfs.ext4 /dev/sd$i〃l〃fidone
}
#挂载
funct1n mount_disk()
{
for i in cat /root/1, txt'
if [ $i = a ]
then
mkdir /mnt/sd$i〃3〃mount /dev/sd$i〃3〃 /mnt/sd$i〃3〃else
mkdir /mnt/sd$i〃l〃mount /dev/ sd$i〃l〃 /mnt/sd$i〃l〃fi
}
3)根据实际配置修改将测试参数传递给性能测试脚本 funct1n 1zone_disk()
{
count=' cat /root/disk, txt | wc _ Γ #确定测试的存储盘个数FILESIZE=1g #测试文件大小RECSIZE=$I #测试块大小
THREADS=' echo “$2 * $count”|bc' #测试总的线程数,根据硬盘数量和输入的每个硬盘的线程数决定OUTPUTFILE=
#根据每个存储盘测试的线程数,确定测试文件 for ((1=0; K= $2; I++))do
for J in cat /root/1, txt'do
FILE=$FILE〃 "7mnt/sd$J” l”/k$ {1} 〃donedone
echo $FILE
for TIMES in {1..2}
do
0UTPUTFILE="hddext4—${THREADS}thrd_${FILESIZE}—recsize—${RECSIZE}_
sep
echo "Reading and Writing test Starting …〃 >> $OUTPUTFILE./1zone -r ${RECSIZE} -s $FILESIZE -t $THREADS -F $FILE _i 0 _i I _breport, xls _c _+n _e >> $OUTPUTFILE
echo "Reading and Writing test Finished …〃 >> $OUTPUTFILEecho 〃 〃 ? $OUTPUTFILEexit I
done
}
4)主程序
#按顺序执行分程序 get—disk fdisk—disk mkfs_disk mount_disk 1zone—disk
二、脚本执行完成后,在本文件夹中以hddext4开头的文件为最终结果。
[0019]本方法在各种配置上都可以应用,可以灵活、便捷的根据不同配置修改测试参数来调用1zone测试HBA卡性能。解决了单一使用1zone的测试局限性。丰富了测试手段,更好的检测部件的性能。
【主权项】
1.一种基于1zone的HBA卡性能测试的方法,其特征在于, 其具体实现过程为: 1)、识别本服务器通过HBA卡所连接的存储模块; 2)、对存储模块进行分区,挂载和格式化; 3)、根据实际配置修改将测试参数传递给性能测试脚本; 4 )、开始性能测试,并输出结果。2.根据权利要求1所述的方法,其特征在于,同时对数个HBA同时进行数个线程的多种模式的读写性能测试。3.根据权利要求1或2所述的方法,其特征在于,测试过程中的线程数、测试块大小、测试文件大小、测试模式都可以根据实际需求进行手动调节。4.根据权利要求1所述的方法,其特征在于, O识别本服务器所有的外接存储盘#!/bin/bash #判断输入参数个数,不符合时输出usage后退出 if [ $# -ne 2]; thenecho “Usage:./$0 RECSIZE THREADS_PERFHDDexit 0;fi #识别所有的盘符 funct1n get_disk() {fdisk -1 |grep "Disk /dev/scT awk ' {print $21"cut -bS"},>> /root/1, txtfor i in 'cat /root/1, txt'do echo 〃/dev/sd$i〃 >> /root/disk.1stdone }o5.根据权利要求1所述的方法,其特征在于, 2)对外接存储进行分区,格式化和挂载 #分区funct1n fdisk_diskO {for disk in cat /root/disk.1stdo #对外接存储盘分区echo -e 〃fdisk $disk now...〃parted -s $disk mklabel gpt mkpart $disk〃l〃 I 10gbecho -e 〃Done〃fidone } #格式化funct1n mkfs_disk() {for i in cat /root/1, txt'doif [ $i = a ]then mkfs.ext4 /dev/sd$i〃3〃else mkfs.ext4 /dev/sd$i〃l〃 fidone } #挂载funct1n mount_disk() {for i in cat /root/1, txt'if [ $i = a ]then mkdir /mnt/sd$i〃3〃mount /dev/sd$i〃3〃 /mnt/sd$i〃3〃else mkdir /mnt/sd$i〃l〃mount /dev/ sd$i〃l〃 /mnt/sd$i〃l〃fi }o6.根据权利要求1所述的方法,其特征在于, 3)根据实际配置修改将测试参数传递给性能测试脚本 funct1n 1zone_disk() { count=' cat /root/disk, txt | wc _ Γ #确定测试的存储盘个数 FILESIZE=1g #测试文件大小 RECSIZE=$I #测试块大小 THREADS=' echo “$2 * $count”|bc' #测试总的线程数,根据硬盘数量和输入的每个硬盘的线程数决定OUTPUTFILE= #根据每个存储盘测试的线程数,确定测试文件for ((1=0;I<= $2;I++))dofor J in cat /root/1, txt'do FILE=$FILE〃 "7mnt/sd$J” l”/k$ {1} 〃 donedoneecho $FILEfor TIMES in {1..2}do 0UTPUTFILE="hddext4—${THREADS}thrd_${FILESIZE}—recsize—${RECSIZE}_sep echo "Reading and Writing test Starting …〃 >> $OUTPUTFILE./1zone -r ${RECSIZE} -s $FILESIZE -t $THREADS -F $FILE _i 0 _i 1-b report.xls _c _+n _e >> $OUTPUTFILE echo "Reading and Writing test Finished …〃 >> $OUTPUTFILEecho 〃 〃 ? $OUTPUTFILEexit Idone }o7.根据权利要求1所述的方法,其特征在于, 4)主程序 #按顺序执行分程序 get—disk fdisk—disk mkfs_disk mount_disk 1zone_disk0
【专利摘要】本发明提供一种基于iozone的HBA卡性能测试的方法,涉及计算机服务器技术领域。本发明实现过程为1.识别本服务器通过HBA卡所连接的存储模块;2.对存储模块进行分区,挂载和格式化;3.根据实际配置修改将测试参数传递给性能测试脚本;4.开始性能测试,并输出结果。本发明摆脱了iozone单条测试命令的局限性,能够对多个存储模块同时进行多个线程的多种模式的读写性能测试。
【IPC分类】G06F11/26
【公开号】CN104978250
【申请号】CN201510350727
【发明人】姜庆臣
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年10月14日
【申请日】2015年6月23日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1