Vdbench工具的安装及使用

Vdbench工具的安装

  1. Vdbench的运行依赖java环境,请务必先安装java运行环境
  2. 安装java,Ubuntu OS环境安装java:
apt-get install openjdk-8-jdk

Centos OS环境安装:

yum install openjdk-8-jdk

检查是否安装成功
在这里插入图片描述

  1. 安装vdbench,下载vdbench50407.zip包,上传至服务器上
    解压unzip vdbench50407.zip -d vdbench50407/

  2. 进入vdbench解压后的目录中,修改vdbench文件的权限 chmod 777 vdbench
    在这里插入图片描述

  3. 执行./vdbench -t 成功运行即vdbench安装成功
    在这里插入图片描述

测试脚本编写

  • 以下脚本是测试裸盘 4k随机100%写的IO模型为例
hd=default,vdbench=/root/vdbench50407,user=root,shell=ssh

#客户端主机,分别命名为hd1

hd=hd1,system=hostname

#待测试的存储命名为sd1、指代的是lun=/dev/sdb,用客户端hd1测试,

sd=sd1,hd=hd1,lun=/dev/nvme0n1,openflag= o_direct,size=10G

#定义我们的工作负载,名叫wd1,这个工作负载包括sd* (就是我们上面定义的sd1)
wd=wd1,sd=sd*,seekpct=100,rdpct=0,xfersize=4k

#定义我们的vdbench要运行的内容,命名为rd1,要做的工作是我们上面定义的wd1
rd=rd1,wd=wd1,iorate=max, elapsed=600,interval=1
参数详解
vdbench指定运行的vdbench的路径
lun指定测试的盘
openflago_direct 指定对整个盘进行访问
seekpct指定随机或顺序;100或random为随机;0或sequential为顺序
rdpct读的比例,默认100;为0表示100%写,例如3表示读写比为3:7
xfersizeIO的块大小
elapsed运行时间,默认单位秒S
interval运行过程中测试结果打印的间隔

测试脚本运行

运行方式:./vdbench -f 脚本名
运行结果会存放在output中,如果多次执行会覆盖结果
建议使用-o参数 指定测试结果存放目录,避免测试结果被覆盖
例如:

./vdbench -f randwrite4k -o randwrite4k_output/

运行过程中的打印

i/o rate:代表IOPS
MB/sec:每秒的带宽
bytes i/o:运行的IO 块大小
read pct: 读的比例
resp time:时延

注意:

  1. 如果需要多个客户端联机跑vdbench 需要主客户端对其他客户端进行免密操作
    ssh-keygen -t rsa
    ssh-copy-id root@IP
    且每个客户端都需要安装vdbench 且存放的目录要一致否则会无法运行成功
  2. 运行vdbench若出现java.net.NoRouteToHostException: No route to host (Host unreachable)
    可能是服务器防火墙没关,关闭即可
    systemctl stop firewalld
    systemctl disable firewalld

关于vdbench其他的参数详解请看解压后的zip中的:vdbench.pdf

host= 存储所在的主机的 ID。 lun= 原始磁盘、磁带或文件系统的名称。vdbench 也可为您创建一个磁盘。 threads= 对 SD 的最大并发 I/O 请求数量。默认为 8。 hitarea= 调整读取命中百分比的大小。默认为 1m。 openflags= 用于打开一个 lun 或一个文件的 flag_list。 WD:工作负载定义 wd= 标识工作负载的名称。 sd= 要使用的存储定义的 ID。 host= 要运行此工作负载的主机的 ID。默认设置为 localhost。 rdpct= 读取请求占请求总数的百分比。 rhpct= 读取命中百分比。默认设置为 0。 whpct= 写入命中百分比。默认设置为 0。 xfersize= 要传输的数据大小。默认设置为 4k。 seekpct= 随机寻道的百分比。可为随机值。 openflags= 用于打开一个 lun 或一个文件的 flag_list。 iorate= 此工作负载的固定 I/O 速率。 RD:运行定义 rd= 标识运行的名称。 wd= 用于此运行的工作负载的 ID。 iorate= (#,#,...) 一个或多个 I/O 速率。 curve:性能曲线(待定义)。 max:不受控制的工作负载。 elapsed= time:以秒为单位的运行持续时间。默认设置为 30。 interval:报告间隔序号 warmup= time:加热期,最终会被忽略。 distribution= I/O 请求的分布:指数、统一或确定性。 pause= 在下一次运行之前休眠的时间,以秒为单位。 openflags= 用于打开一个 lun 或一个文件的 flag_list。 对于一个文件系统 对于一个文件系统,配置以下参数: HD:主机定义。与虚拟块设备相同。 FSD:文件系统定义 fsd= 标识文件系统定义的名称 anchor= 将在其中创建目录结构的目录 width= 要在定位符下创建的目录数 depth= 要在定位符下创建的级别数 files= 要在最低级别创建的文件数 sizes= (size,size,...) 将创建的文件大小 distribution= bottom(如果希望仅在最低级别创建文件)和 all(如果希望在所有目录中创建文件) openflags= 用于打开一个文件系统 (Solaris) 的 flag_list FWD:文件系统工作负载定义 fwd= 标识文件系统工作负载定义的名称。 fsd= 要使用的文件系统定义的 ID。 host= 要用于此工作负载的主机的 ID。 fileio= random 或 sequential,表示文件 I/O 将执行的方式。 fileselect= random 或 sequential,标识选择文件或目录的方式。 xfersizes= 数据传输(读取和写入操作)处理的数据大小。 operation= mkdir、rmdir、create、delete、open、close、read、write、getattr 和 setattr。选择要执行的单个文件操作。 rdpct= (仅)读取和写入操作的百分比。 threads= 此工作负载的并发线程数量。每个线程需要至少 1 个文件。 RD:运行定义 fwd= 要使用的文件系统工作负载定义的 ID。 fwdrate= 每秒执行的文件系统操作数量。 format= yes / no / only / restart / clean / directories。在开始运行之前要执行的操作。 operations= 覆盖 fwd 操作。选项相同。 运行之后的输出文件夹文件 每次运行后,vdbench 会创建一个包含以下文件的输出文件夹: errorlog.html 当为测试启用了数据验证时,它可包含一些数据块中的错误的相关信息: 无效的密钥读取 无效的 lba 读取(一个扇区的逻辑字节地址) 无效的 SD 或 FSD 名称读取 数据损坏,即使在使用错误的 lba 或密钥时 数据损坏 坏扇区
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值