Vdbench测试步骤

安装Vdbench
- 下载Vdbench压缩包到所有client的“/home”目录下。
下载链接:https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/utilities_drivers/vdbench/vdbench50407.zip
- 进入所有客户端“/home”目录下解压Vdbench压缩包。
1
cd /home && unzip vdbench50407.zip
- 安装Java。
1
yum -y install java
Vdbench的使用依赖Java,若已安装,则可跳过本步骤。
- 测试Vdbench是否工作正常。
1 2 3
cd vdbench50407 chmod +x vdbench ./vdbench -t
若出现“Vdbench execution completed successfully”字段则说明Vdbench工作正常。
Vdbench测试模型
Vdbench通过执行工作负载配置文件运行,选取其中一台客户端执行即可,该客户端会通过负载配置文件中的其他客户端IP地址等信息自动登录到其他客户端执行测试。
创建Vdbench工作负载
本文以1个Ceph客户端为例,在任意一个客户端上(本文使用client1)创建vdbench 4KB随机读工作负载:
1
|
vi /home/4k_randread.txt
|
添加以下内容:
- 为所有测试机设置统一的默认参数,请根据实际情况修改Vdbench路径,此处为“/home”目录。
1
hd=default,vdbench=/home/vdbench50406,user=root,shell=ssh
- 定义测试机。
1
hd=hd1,system=client1
相关参数如表1所示。
- 文件系统定义。
1
fsd=fsd1,anchor=/mnt/cephfs,depth=1,width=10,files=200,size=20m,shared=yes
相关参数如表2所示。
- 文件系统工作负载定义。
1 2
fwd=default,xfersize=4k,fileio=random,fileselect=random,rdpct=100,threads=128 fwd=fwd1,fsd=fsd1,host=hd1
相关参数如表3所示。
- 运行定义。
1
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=5
相关参数如表4所示。
执行Vdbench测试

本文默认每台客户端的“/mnt/cephfs”目录已挂载Ceph文件系统,创建100个子目录,每个子目录下包含200个文件,每个文件20MB(可用dd写满20MB)。若实际测试时,客户端内无测试文件,可参考以下步骤创建文件以供测试。
- 创建文件生成脚本。
1
vim create_file.sh
1 2 3 4 5 6 7 8
#!/bin/bash for i in {1..10} do cd /mnt/cephfs mkdir $i cd $i seq 200 |xargs -i dd if=/dev/zero of={} bs=1024000 count=20 done
- 执行脚本。
1
bash create_file.sh
以创建Vdbench工作负载创建好的4k_randread.txt负载为例进行说明:
1 2 |
cd /home /home/vdbench50406/vdbench -f /home/4k_randread.txt -o 4k_randread_output |

-f 指定待测试的工作负载配置文件;-o表示测试结果存放的目录。
收集测试结果
测试完成后默认会在当前目录下创建一个名为“output”的目录存放测试结果,若测试命令中添加-o参数指定结果输出路径,则测试结果存放到该路径下。
以执行Vdbench测试的测试命令为例,会在“/home/4k_randread_output”目录下存放测试结果。
查看测试结果。
1 2 |
cd /home/4k_randread_output cat totals.html |
totals.html内容如下,其中i/o rate表示IOPS,MB/sec表示带宽,resp time表示时延: