Vdbench是Oracle编写的一款应用广泛的存储性能测试工具,既支持块设备的性能测试,也支持文件系统性能测试。Vdbench使用java编写,兼容linux和windows的操作系统,使用方便。
1、Vdbench使用及结果参看
使用vdbench时需要先安装java的jdk包,Vdbench作为性能测试工具,广泛应用于各种性能测试场景中,当然,它也是免费的(点击这里,了解为什么要说也)。同时vdbench一个重要特性就是数据一致性的测试。Vdbench在做随机写的一致性测试很方便,能实时检查出哪一个扇区出现了数据不一致。
具体使用包括:
./vdbench -t
这一步先测试一下工具能不能用,如何正常,会在目录下自动生成一个output
./vdbench -f parmfile
根据指定配置文件测试,这里的parmfile需要根据测试环境修改,可以参考output目录下的parmfile
2、Vdbench校验数据原理
每一个写操作对SD或FSD会记录在内存表中。每512字节的扇区的块写入包含一个8字节LBA,和一个字节的数据验证密钥。写同一个块是数据验证key会从1增加到126。一旦达到126,又会回到1。零是一个内部值,表示该块从未被写入。在块被写入一次后,块中的数据将在每次读取后进行验证。
3、Vdbench参数配置
具体使用实例较为明确,这里不再赘述。
4、Parmfile参数配置
*代表注释,参数配置写入到parmfile文件里面,hitarea如果设置为1m会报错,建议设置为100m
*
* This sample parameter file first creates a temporary file
* if this is the first time the file is referenced.
* It then does a five second 4k 50% read, 50% write test.
*
* sd=sd1,lun=/tmp/quick_vdbench_test,size=40m
* wd=wd1,sd=sd1,xf=1k,rdpct=50
* rd=rd1,wd=wd1,iorate=100,elapsed=5,interval=1
sd=sd1,lun=/dev/dm-3,openflags=o_direct,thread=30
wd=wd1,sd=sd*,seekpct=0,rdpct=100,whpct=100,rhpct=100,xfersize=128k
rd=rd1,wd=wd1,iorate=max,elapsed=14400,interval=2
*validate=yes,journal=yes,hitarea=1m
hitarea=100m
5、执行命令
./vdbench -f parmfile -jn
-jn是支持数据校验,可以验证数据一致性,可以支持crash和reboot时的数据校验。
说明:如果想测试下vdbench数据一致性检查功能是否生效,可以将一个LUN通过iSCSI或者FC挂载到两台主机,然后一台主机对LUN进行vdbench写操作,另一台对该LUN进行dd写,观察Vdbench是否能实时检测到数据不一致。
6、结果输出
Vdbench的结果放在安装目录下面的output文件夹中,如果有错误可以在errorlog.html,总体测试结果值放在summary.html
以上,就是使用Vdbench进行性能测试的完整流程。对于一名测试人员来说,工作的大部分乐趣就在于发现和分析,而善于使用工具则会让这一个过程更为美妙。