Vdbench工具的安装
- Vdbench的运行依赖java环境,请务必先安装java运行环境
- 安装java,Ubuntu OS环境安装java:
apt-get install openjdk-8-jdk
Centos OS环境安装:
yum install openjdk-8-jdk
检查是否安装成功
-
安装vdbench,下载vdbench50407.zip包,上传至服务器上
解压unzip vdbench50407.zip -d vdbench50407/
-
进入vdbench解压后的目录中,修改vdbench文件的权限
chmod 777 vdbench
-
执行./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 | 指定测试的盘 |
openflag | o_direct 指定对整个盘进行访问 |
seekpct | 指定随机或顺序;100或random为随机;0或sequential为顺序 |
rdpct | 读的比例,默认100;为0表示100%写,例如3表示读写比为3:7 |
xfersize | IO的块大小 |
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:时延
注意:
- 如果需要多个客户端联机跑vdbench 需要主客户端对其他客户端进行免密操作
ssh-keygen -t rsa
ssh-copy-id root@IP
且每个客户端都需要安装vdbench 且存放的目录要一致否则会无法运行成功 - 运行vdbench若出现java.net.NoRouteToHostException: No route to host (Host unreachable)
可能是服务器防火墙没关,关闭即可
systemctl stop firewalld
systemctl disable firewalld
关于vdbench其他的参数详解请看解压后的zip中的:vdbench.pdf