版本: vdbench50406
前言: vdbench是一个I/O工作负载生成器,它验证数据完整性,并衡量直连和网络连接存储的性能。 免费工具,使用方便,常用于测试和基准测试。
配置参数:大文件设置深度为2,大小为10,每个文件夹下文件数为400,每个文件大小为10M,10个线程并发,文件选择,随机读写,以DirectIO格式处理1M数据的小文件#主机定义的hd=default,vdbench=/tmp/vdbench,shell,每个文件的大小按4k、10个线程并发的顺序选择,随机读写,以DirectIO的形式处理4k数据system=10.17.2.37# files=400,size=10mfsd=fsd1,anchor=/mnt/nfs/small-node1#文件系统工作负载定义FWD=DDD threads=10fwd=fwd1,fsd=fsd1,host=hd1#执行定义rd=rd1,fwd=(fwd1-fwd7),fwdrate=max,
测试流程:
先生创建配置文件(在配置文件中hd1为master ),并在除master之外的每台计算机(slave )上创建侦听器VD bench _ output=’/tmp/VD bench 运行deeench的可执行文件# conf在第一步生成的配置文件./VDBench-f $ conf-o./output _ write $ VD bench _ output执行初期,VD bench首先自己生成配置中进行读写测试的大文件测试文件占用的存储容量为391G (创建时间约2小时以上),小文件测试文件占用的存储容量为787M (创建时间1小时以内)结果分析:结果实例
重要指标:
读/写速率:读/写速度(单位:MB/s秒) ) ) ) ) ) )。
resp time :以读/写请求持续时间测量的平均响应时间(:ms )
与fio的异同:1、vdbench中的threads相当于fio的threads和depth
2、vdbench测试结果中的I/O相当于fio的iops;vdbench中的MB/sec相当于fio的BW带宽;vdbench的resp time相当于fio的时延
3、vdbench测试的是整个集群或者整个虚机或者所有磁盘的总性能,而fio需要写脚本去测试多个磁盘或者多台虚机
附录:配置参数说明:
要更好地控制刀具参数,请创建可以指定不同选项的parmfile。 对于对于一个虚拟块设备虚拟块设备,请设置以下参数:
HD:主机定义
如果要显示当前主机,请设置hd=localhost。 指定远程主机时,hd=label。 system=IP地址或网络名称。 clients=用于模拟服务器的正在运行的客户端的数量。SD:存储定义
sd=标识存储的名称。 host=存储所在主机的ID。 LUN=原始磁盘、磁带或文件系统的名称。 vdbench也可以为你做光盘。 针对threads=的并发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。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 。在开始运行之前要执行的操作。no是不改变文件目录;yes是改变;restart是接着原来的文件目录再去创建;operations= 覆盖 fwd 操作。选项相同。
输出结果说明:
每次运行后,vdbench 会创建一个包含以下文件的输出文件夹:
errorlog.html
当为测试启用了数据验证时,它可包含一些数据块中的错误的相关信息:
无效的密钥读取无效的 lba 读取(一个扇区的逻辑字节地址)无效的 SD 或 FSD 名称读取数据损坏,即使在使用错误的 lba 或密钥时数据损坏坏扇区
flatfile.html
包含 vdbench 生成的一种逐列的 ASCII 格式的信息。
histogram.html
一种包含报告柱状图的响应时间、文本格式的文件。
logfile.html
包含 Java 代码写入控制台窗口的每行信息的副本。logfile.html 主要用于调试用途
parmfile.html
显示已包含用于测试的每项内容的最终结果
resourceN-M.html、resourceN.html、resourceN.var_adm_msgs.html
摘要报告stdout/stderr 报告主机 N 的摘要报告最后 “nn” 行文件 /var/adm/messages 和 /var/adm/messages。每个 M 个 JVM/Slave 的目标主机 N 和主机 N 上为 0。
sdN.histogram.html、sdN.html
每个 N 存储定义的柱状图和存储定义 “N” 报告。
summary.html
主要报告文件,显示为在每个报告间隔的每次运行生成的总工作负载,以及除第一个间隔外的所有间隔的加权平均值。
interval:报告间隔序号I/O rate:每秒观察到的平均 I/O 速率MB sec:传输的数据的平均 MB 数bytes I/O:平均数据传输大小read pct:平均读取百分比resp time:以读/写请求持续时间度量的平均响应时间。所有 vdbench 时间都以毫秒为单位。resp max:在此间隔中观察到的最大响应时间。最后一行包含最大值总数。resp stddev:响应时间的标准偏差
运行参数说明:
./vdbench [Parameters]
Parameters include:
-f – Configuration file(s)-o – Output directory-e – Elapsed time override-i – Interval time to override-w – Warm-up time to override-j – Activates data validation and journaling
Utility functions
./vdbench sds – This is used to generate SD params../vdbench dvpost – This is used to analyse data corruption issues../vdbench rsh – This is to start Vdbench slaves on the host and return stdout and stderr../vdbench compare – Compares two sets of Vdbench output directories.
参考链接: