vdbench的使用及常用流量模型

一、相关参数

(1)IOPS也即吞吐量(Throughput):每秒的IO数量

(2)带宽(Bandwidth):每秒传输的数据量(iops*iops_size).如:iops=20w,size=4kB,则带宽Bandwidth=20w*4KB ≈ 780MB

在存储领域有个不成文的规定,只要以IOPS来描述,那么就代表是小I/O(<32KB),以Bandwidth来描述,那就是大I/O(>32KB)

一、linux下的常用流量模型

经常更换流量模型可更容易发现错误。大块读写也容易出问题

随机比顺序延迟高、写比读延迟高

1.1OLTP


messagescan=no
data_errors=1 

#单个服务器时,不需配置HD参数(主机参数)
hd=default,jvms=8,vdbench=/root/vdbench50406,user=root,shell=ssh
#hd=hd1,system=172.25.102.142
#hd=hd2,system=172.25.102.140

sd=default,openflags=o_direct,hitarea=1g,threads=16

sd=sd1,lun=/dev/dm-,count=(3,32)      #对32个lun打流量,从dm3开始

#sd=sd1,lun=/dev/mapper/msdiskbjf   #对指定lun打流量
#sd=sd2,lun=/dev/mapper/msdiskbjg
#sd=sd3,lun=/dev/mapper/msdiskbjh

#OLTP模型
wd=wd1,sd=sd*,seekpct=100,rdpct=100,xfersize=8k,skew=20
wd=wd2,sd=sd*,seekpct=100,rdpct=100,xfersize=4k,skew=45
wd=wd3,sd=sd*,seekpct=100,rdpct=0,xfersize=8k,skew=15
wd=wd4,sd=sd*,seekpct=0,rdpct=100,xfersize=64k,skew=10
wd=wd5,sd=sd*,seekpct=0,rdpct=0,xfersize=64k,skew=10

rd=rd1,wd=wd*,iorate=max,elapsed=200h,interval=1,warmup=20

1.2OLAP


messagescan=no
data_errors=1

hd=default,jvms=8,vdbench=/root/vdbench50406,user=root,shell=ssh
#hd=hd1,system=172.25.102.142

sd=default,openflags=o_direct,hitarea=1g,threads=16

sd=sd1,lun=/dev/dm-,count=(3,32)      #对32个lun打流量,从dm3开始

#sd=sd1,lun=/dev/mapper/msdiskbjf   #对指定lun打流量
#sd=sd2,lun=/dev/mapper/msdiskbjg
#sd=sd3,lun=/dev/mapper/msdiskbjh

#OLAP模型
wd=wd1,sd=sd*,seekpct=100,rdpct=100,xfersize=4k,skew=15
wd=wd2,sd=sd*,seekpct=100,rdpct=0,xfersize=4k,skew=5
wd=wd3,sd=sd*,seekpct=0,rdpct=100,xfersize=64k,skew=70
wd=wd4,sd=sd*,seekpct=0,rdpct=0,xfersize=64k,skew=10

rd=rd1,wd=wd*,iorate=max,elapsed=200h,interval=1,warmup=20

1.3小块随机读写


messagescan=no
data_errors=1

hd=default,jvms=8,vdbench=/root/vdbench50406,user=root,shell=ssh
#hd=hd1,system=172.25.102.142

sd=default,openflags=o_direct,hitarea=1g,threads=16

sd=sd1,lun=/dev/dm-,count=(3,32)      #对32个lun打流量,从dm3开始

#sd=sd1,lun=/dev/mapper/msdiskbjf   #对指定lun打流量
#sd=sd2,lun=/dev/mapper/msdiskbjg
#sd=sd3,lun=/dev/mapper/msdiskbjh

wd=wd1,sd=sd*,xfersize=16k,seekpct=0,rdpct=70     #小块读写:4/8/16k——

rd=rd1,wd=wd*,iorate=max,elapsed=200h,interval=1,warmup=20

1.4混合模型(不同模型交替使用)

messagescan=no
data_errors=1  #出现一个错误就中断流量

hd=default,jvms=8,vdbench=/root/vdbench50406,user=root,shell=ssh
#hd=hd1,system=172.25.102.142

sd=default,openflags=o_direct,hitarea=1g,threads=16

sd=sd1,lun=/dev/dm-,count=(3,100) 

#混合多个模型:按照先后顺序打如下6个模型,并设置每个模型的时间
wd=wd1,sd=sd*,xfersize=4k,seekpct=100,rdpct=0
wd=wd2,sd=sd*,xfersize=8k,seekpct=0,rdpct=100
wd=wd3,sd=sd*,xfersize=16k,seekpct=100,rdpct=50
wd=wd4,sd=sd*,xfersize=1024k,seekpct=0,rdpct=80
wd=wd5,sd=sd*,xfersize=256k,seekpct=0,rdpct=50
wd=wd6,sd=sd*,xfersize=(512k,20,128k,20,32k,20,8k,20,4k,20),rdpct=30

rd=rd1,wd=wd1,iorate=10000,elapsed=8h,interval=1,warmup=30
rd=rd2,wd=wd2,iorate=5000,elapsed=8h,interval=1,warmup=30
rd=rd3,wd=wd3,iorate=10000,elapsed=8h,interval=1,warmup=30
rd=rd4,wd=wd4,iorate=10000,elapsed=6h,interval=1,warmup=30
rd=rd5,wd=wd5,iorate=5000,elapsed=6h,interval=1,warmup=30
rd=rd6,wd=wd6,iorate=10000,elapsed=200h,interval=1,warmup=30

二、linux下的文件系统流量模型

(1)文件系统操作步骤

对文件系统使用vdbench流量模型,必须先挂载lun到linux操作系统,如下:

1. 创建文件系统:mkfs.ext4 /dev/mapper/dm-40
2. 创建文件夹:  mkdir /mnt/dm40
3. 挂载lun到lun文件夹下:mount /dev/dm-40 /mnt/dm40

4.准备好文件系统模型,执行命令:./vdbench -f file.name -o output/0730-output

一次创建多个文件夹:mkdir dm{1..10}  #创建10个文件夹:dm1 dm2...dm10

                                    mkdir dm{1,5,13} #创建3个文件夹:dm1 dm5  dm13

注意事项:

  •  使用df -h可以查看文件写入量
  • 取消ITL关联时必须先取消挂载:umount /mnt/dm5
  • 设备双点时也要先取消挂载
  • 强制取消挂载:umount -l /mnt/dm5
  • 清除环境时先取消挂载
  • #调整文件系统的大小:对于已经挂载的文件系统,后续
        #显示文件系统的最小值:resize2fs -P /dev/sda1
        #设置文件大小为1k:resize2fs /dev/sdb4 1k

(2)参数解释

#参数介绍:
    #anchor:挂在文件系统的目录(文件写入目录)
    #depth: 创建目录层级数(目录深度)
    #width:每层文件夹的子文件夹数
    #shared:默认为no,当多主机时需设置shared=yes

    #openflags= o_direct或directio:以无缓冲缓存的方式进行读写操作
    #fileio=random/sequential: 文件io将执行的方式
    #fileselect=random/sequential:选择文件或目录的方式
    #预填数据工作负载定义为threads=8,xfersize=128k,即预填数据使用8线程,IO大小为128

messagescan=no
*report_run_totals=yes
data_errors=5

#fsd=fsd1,anchor=/mnt/dm-,count=(4,1),depth=1,width=1,files=20,size=1g

#fwd=fwd1,fsd=*,rdpct=30,openflags=o_direct,xfersize=(4k,15,256k,35,1M,50),fileio=random,fileselect=random,threads=20,stopafter=20g

#rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=2000h,interval=1

#挂载2个文件系统
fsd=fsd1,anchor=/mnt/dm40,depth=2,width=2,files=5,size=1g
fsd=fsd2,anchor=/mnt/dm41,depth=2,width=3,files=4,size=1g

#对多个挂载的lun写数据:从dm3开始的连续5个lun打流量:
#fsd=fsd1,anchor=/mnt/dm-,count=(3,5),depth=1,width=1,files=20,size=1g

fwd=fwd1,fsd=*,rdpct=30,openflags=o_direct,xfersize=(4k,15,8k,35,16k,50),fileio=random,fileselect=random,threads=16,stopafter=20g

rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=2000h,interval=1

三、Windows下的流量模型

(1)测试裸盘操作步骤

1.将lun挂载到Windows操作系统

2.修改流量模型

3.执行:C:\vdbench504\vdbench.bat –f example7

#测试磁盘1,文件大小40M
sd=sd1,lun=\\.\physicaldrive1,size=40m

#数据传输大小1K,50%读,顺序
wd=wd1,sd=sd1,xf=1k,rdpct=50

#iorate每秒100个I/Os,elapsed运行时间5s,interval时间间隔1s
rd=rd1,wd=wd1,iorate=100,elapsed=5,interval=1

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值