Vdbench测试工具

Vdbench和Fio都是POC中常用的测试工具,个人偏向使用Fio一点,逻辑上感觉更好理解。
官方最新版本使用文档 点击这里
SNIA的Vdbench使用介绍 点击这里

快速找出io跌零的interval
awk '{print $2,$3}' summary.html | sort -t " " -k 2 | more

1. 测试模型参数配置

vdbench裸盘、文件系统两套参数有点难用,记录详细点。

1.1. 文件系统

  • 小块随机读
    1
    2
    3
    fsd=fsd1,anchor=Y:\nasPerf,depth=2,width=3,files=1000,size=(64k,40,128k,30,512k,30)
    fwd=fwd1,fsd=fsd*,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=32
    rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=300,interval=1
  • 小块随机读写
    1
    2
    3
    4
    fsd=fsd1,anchor=Y:\nasPerf,depth=2,width=4,files=10000,size=(8k,30,32k,30,64k,40)
    fwd=fwd1,fsd=fsd*,operation=read,xfersize=8k,fileio=random,fileselect=sequential,threads=32
    fwd=fwd2,fsd=fsd*,operation=write,xfersize=8k,fileio=random,fileselect=sequential,threads=32
    rd=rd1,fwd=fwd*,fwdrate=max,elapsed=300,interval=1
  • 大块顺序读
    1
    2
    3
    fsd=fsd1,anchor=Y:\nasPerf,depth=2,width=3,files=500,size=(512k,20,1m,30,10m,30,100m,20)
    fwd=fwd1,fsd=fsd*,operation=read,xfersize=512k,fileio=sequential,fileselect=random,threads=32
    rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=300,interval=1
  • 压缩测试
    1
    2
    3
    4
    5
    6
    7
    # 压缩比只能设置为 1-25 (compratio=原始文件大小/压缩后文件大小=nn)
    # 因为压缩算法的原因,压缩比可能不会严格等于设置值,5%的误差可以接受
    compratio=2
    hd=default,jvms=3
    fsd=fsd1,anchor=/mnt/mspoc/test,depth=2,width=2,files=3,size=1g
    fwd=fwd1,fsd=fsd*,operation=read,xfersize=128k,fileio=sequential,fileselect=random
    rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=30,interval=2
  • 重删测试
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 三个基本的重删参数,分别为重删比、重删数据块大小、重删数据组数
    # 比如对一个128m的文件,按照dedupunit=128k,分成1024个数据块;dedupratio=2,意味着有512个随机的数据块,512个重复的数据块;
    # 然后dedupsets=5%,1024*5%=51 为可重复的数据。那么512个随机的数据块中,有51个可以重复的数据。这51个随机数据块,分别重复11次(51*11=561 ~ 563=512+51)
    dedupratio=2
    dedupunit=128k
    dedupsets=5%
    # 或者 dedupsets=50
    hd=default,jvms=3
    fsd=fsd1,anchor=/mnt/mspoc/test,depth=1,width=2,files=3,size=1g
    fwd=fwd1,fsd=fsd*,operation=read,xfersize=128k,fileio=sequential,fileselect=random
    rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=30,interval=2

1.2. 裸盘测试

  • 小块随机
    1
    2
    3
    sd=sd1,lun=/dev/mapper/mpatha,threads=32,openflags=o_direct
    wd=wd1,sd=sd1,xfersize=4k,rdpct=100,seekpct=100
    rd=run1,wd=wd1,iorate=max,elapsed=300,interval=2,warmup=30
  • 混合模型
    1
    2
    3
    4
    sd=sd1,lun=/dev/mapper/mpathe,threads=32,openflags=o_direct
    wd=wd1,sd=sd1,xfersize=(64k,20,128k,30,256k,50),rdpct=30,seekpct=0,skew=70
    wd=wd2,sd=sd1,xfersize=4k,rdpct=0,seekpct=100
    rd=run1,wd=wd*,iorate=max,elapsed=300,interval=2,warmup=30

2. 参数详解