vdbench使用介绍

6 篇文章 0 订阅
4 篇文章 0 订阅

一、介绍

vdbench是一个IO负载生成工具,用于测试存储的IO,可以测试磁盘和文件系统的性能。vdbench采用java编写,需要测试环境中有jre才能够运行。

二、使用

vdbench包解压后可以直接使用,执行./vdbench -t进行最简单的测试,此命令会在使用如下配置进行一个最简单的负载测试,此次测试的配置如下

sd=sd1,lun=/var/tmp/quick_vdbench_test,size=10m

wd=wd1,sd=sd1,xf=4k,rdpct=50

rd=rd1,wd=wd1,iorate=100,elapsed=5,interval=1

./vdbench -t命令会在/tmp目录下创建一个临时文件,临时文件大小是10m,执行一个5秒钟的测试,测试执行4k大小的io读写,50%的读50%的写操作,io rate限制在100,每隔1秒钟输出一次测试结果,最后的测试结果输出到vdbench/output/summary.html中。

三、使用

vdbench执行测试时需要编写一个测试配置文件

3.1 单客户端块设备测试

只是用一个客户端进行vdbench测试

一个单客户端测试配置文件格式如下:

sd=sd1,lun=/dev/dm-2,openflags=o_direct

wd=wd1,sd=sd1,xfersize=8k,rdpct=70,seekpct=0

rd=run1,wd=wd1,iorate=max,elapsed=30,interval=1,warmup=180,thread=5

将上述测试文件命名为mytest,并执行测试

./vdbench -f mytest

测试结果存放在output目录中。

上述配置文件中,

第一行:sd为自定义名称,用于表示测试的目标,当有多个目标的时候可以写多个sd=xxx,lun表示测试使用的卷名称,可以是一个文件也可以是一个磁盘设备,openflags=o_direct表示以无缓存的方式进行读写操作。

第二行:wd是自定义的工作负载名称,sd=sd1表示此工作负载使用了sd1对应的设备,xfersize为操作数据的大小,rdpct表示读操作的比例,seekpct表示随机操作的百分比,如果是0表示顺序操作。

第三行:rd是自定义的运行名称,wd=wd1表示运行的是wd1对应的工作负载,iorate=max表示以最大速率运行,elapsed表示运行的测试时长,单位是秒,interval表示测试结果输出间隔,warmup是预测试时长,这段时长不会统计到最终测试结果中,threads表示测试使用的线程数目。

3.2 多客户端块设备测试

vdbench也支持多客户端协同测试,需要保证各个客户端上都能够正常运行vdbench,并且客户端之间能够通过ssh进行免密访问,下面是一个采用多客户端进行测试的配置文件

hd=default,vdbench=/home/vdbench,user=root,shell=ssh

hd=host1,system=100.1.1.101

hd=host2,system=100.1.1.102

sd=sd1,hd=host1,lun=/dev/dm-1

sd=sd2,hd=host1,lun=/dev/dm-2

sd=sd3,hd=host1,lun=/dev/dm-3

sd=sd4,hd=host2,lun=/dev/dm-4

sd=sd5,hd=host2,lun=/dev/dm-5

sd=sd6,hd=host2,lun=/dev/dm-6

wd=wd1,sd=sd*,seekpct=100,rdpct=70,xfersize=8k

rd=default,iorate=max,elapsed=30,interval=1,warmup=10,threads=10

第一列说明了客户端测试的默认设置,vdbench表明vdbench软件的存放位置,user是客户端用户名,shell=ssh表示通过ssh进行访问。

第二行hd=host1是客户端名称,system是客户端地址

第三行是第二个客户端的名称和地址

后面的sd是使用的测试磁盘,只是需要添加hd参数表示对应的是哪一个客户端,wd是测试负载,rd是运行设置,与单客户端一致。

3.3 单客户端文件测试

文件测试和块测试的区别在于,块存储测试会直接读取或写入数据,不管磁盘挂载状态,而文件存储测试在进行测试之前会先写入测试需要的文件,当所有的文件和目录都生成完毕后才会进行测试。下面是文件测试的一个配置文件

fsd=fsd1,anchor=/dir1,depth=2,width=2,files=4,size=128k

fwd=fwd1,fsd=fsd1,operation=read,xfersize=4k,fileio=sequential,fileselect=random,threads=2

rd=rd1,fwd=fwd1,fwdrate=100,format=yes,elapsed=10,interval=1

第一行fsd说明了测试的自定义文件系统名称,anchor为测试文件目录,depth是测试是的文件目录深度,width是测试时每个文件夹中的子文件夹个数,files是最后一层子文件夹中文件的数目,size是文件的大小。

第二行是测试负载,fwd是自定义负载名称,fsd表示使用的测试文件系统,operation为测试类型,可以是read或者write,xfersize是测试数据大小,fileio是文件操作方式,可以是random和sequential,threads是测试使用的线程数目,fileselect是使用文件的方式

第三行是运行参数,fwd表示使用哪个工作负载,fwdrate是测试速率,format是预处理方式,no为不删除现有文件直接测试,yes表示删除现有文件重新写入,restart表示如果存在目录,则直接运行,不删除目录,elapsed表示运行时长,interval表示输出结果的时间间隔。

3.4 多客户端文件测试

多客户端文件测试和多客户端块测试一样,需要各个客户端都能够运行vdbench,并且各个客户端都可以ssh无密码访问,下面是一个测试配置,不再赘述。

hd=default,vdbench=/home/vdbench50407,user=root,shell=ssh

hd=hd1,system=100.1.1.101

hd=hd2,system=100.1.1.102

fsd=fsd1,anchor=/tmp1,depth=2,width=10,files=2000,size=4M

fsd=fsd2,anchor=/tmp2,depth=2,width=10,files=2000,size=4M

fwd=fwd1,fsd=fsd1,host=hd1,operation=read,xfersize=4M,fileio=random,fileselect=random,threads=32

fwd=fwd2,fsd=fsd2,host=hd2,operation=read,xfersize=4M,fileio=random,fileselect=random,threads=32

rd=rd1,wd=wd1,iorate=max,elapsed=600,interval=5,warmup=30

四、测试结果查看

测试过程中会在屏幕上打印实时结果,测试完成后也会将对应的测试结果生成到文件中。

第一列:测试时间

第二列:interval:每一次interval的序号

第三列:i/o rate:每秒io操作数

第四列:MB/sec:每秒平均贷款

第五列:bytes i/o:每次io操作的字节大小

第六列:read pct:读百分比

第七列:resp time:平均响应时长

第八列:read resp:读操作平均响应时长

第九列:write resp:写操作平均响应时长

第十列:resp max:最大响应时长

第十一列:resp stddev:响应时长标准差

第十二列:queue depth:队列长度

在测试结束后,在output目录中生成了多个文件,各个文件的内容

errorlog:测试过程中产生的一些错误信息,包括io错误信息和数据无效信息

histogram.html:用于显示响应时间的柱状图,只有在文件测试后才有内容

logfile.html:用于调试的log

parmfile.html:配置参数信息

summary.html:全部测试数据

totals.html:记录数据计算后的平均值,最后的测试结果就存放在这个文件中,除了预测试外的所有间隔的加权平均值。

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aolitianya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值