Nas性能测试工具-vdbench

版本:

vdbench50406

简介:

vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。

配置参数:

  1. 大文件设置深度为2,广度为10,每个文件夹下的文件数量为400,每个文件的大小为10M,采用10个线程并发,顺序选择文件,随机读写, DirectIO的形式处理1M的数据
  2. 小文件设置深度为2,广度为100,每个文件夹下的文件数量为20,每个文件的大小为4k,采用10个线程并发,顺序选择文件,随机读写, DirectIO的形式处理4k的数据
# 主机定义
hd=default,vdbench=/tmp/vdbench,shell=vdbench
hd=hd1,system=10.17.2.37
# 文件系统定义
fsd=default,depth=2,width=10,files=400,size=10m
fsd=fsd1,anchor=/mnt/nfs/small-node1
# 文件系统工作负载定义
fwd=default,operation=write,xfersize=1m,fileio=random,fileselect=sequential,openflags=directio,threads=10
fwd=fwd1,fsd=fsd1,host=hd1
# 运行定义
rd=rd1,fwd=(fwd1-fwd7),fwdrate=max,format=restart,elapsed=1800,interval=10


  1.  

测试过程:

 

  1. 先生成读或写配置文件(配置文件里hd1为master)
  2. 在除了master的每台机器(slave)上执行监听程序
vdbench_output="/tmp/vdbench.out"
nohup ./vdbench rsh 2>/dev/null >> $vdbench_output &
  1. 指定配置文件,运行程序
 # conf为第一步生成的配置文件
 ./vdbench -f $conf -o ./output_write > $vdbench_output
  1. 运行运行初期vdbench会先自己创建测试文件,若不存在则会创建,若存在则略过,然后进行配置中的读写测试
  2. 经测试,大文件的测试文件所占存储空间为391G(创建时间约为2个多小时),小文件的测试文件所占存储空间为787M(创建时间为1个小时以内)

结果解析:

结果实例

image.png

关键指标:

read/write rate: 读写速率(单位: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,您可在其中指定不同的选项。
  1. 对于一个虚拟块设备

对于一个虚拟块设备,配置以下参数:

HD:主机定义

  • 如果您希望展示当前主机,则设置 hd= localhost。如果希望指定一个远程主机,hd= label。
  • system= IP 地址或网络名称。
  • clients= 用于模拟服务器的正在运行的客户端数量。

SD:存储定义

  • sd= 标识存储的名称。
  • 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。
  • warmup= time:加热期,最终会被忽略。
  • distribution= I/O 请求的分布:指数、统一或确定性。
  • pause= 在下一次运行之前休眠的时间,以秒为单位。
  • openflags= 用于打开一个 lun 或一个文件的 flag_list。
  1. 对于一个文件系统

对于一个文件系统,配置以下参数:

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.

参考链接:

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
分析下面的ebtables规则 # ebtables -L Bridge table: filter Bridge chain: INPUT, entries: 2, policy: ACCEPT -j br_wan -j portmapping_igmp Bridge chain: FORWARD, entries: 6, policy: DROP -j disBCMC -j br_wan_forward -j wlan_block -j wlan_map_block -j macfilter -j portmapping Bridge chain: OUTPUT, entries: 2, policy: ACCEPT -j br_wan_out -j br_lan_out Bridge chain: br_lan_out, entries: 2, policy: ACCEPT -p IPv6 -o eth0.4 --ip6-proto ipv6-icmp --ip6-icmp-type router-advertisement -j DROP -p IPv6 -o eth0.5 --ip6-proto ipv6-icmp --ip6-icmp-type router-advertisement -j DROP Bridge chain: br_wan_forward, entries: 3, policy: RETURN -p IPv6 -o nas0_5 -j ACCEPT -p PPP_SES -o nas0_5 -j ACCEPT -o nas0_5 -j DROP Bridge chain: wlan_block, entries: 0, policy: RETURN Bridge chain: wlan_map_block, entries: 0, policy: RETURN Bridge chain: disBCMC, entries: 2, policy: RETURN -d Broadcast -j DROP -d Multicast -j DROP Bridge chain: br_wan, entries: 1, policy: RETURN -i nas0_5 -j DROP Bridge chain: br_wan_out, entries: 1, policy: RETURN -o nas0_5 -j DROP Bridge chain: portmapping_igmp, entries: 2, policy: RETURN -p IPv4 -i eth0.4 --ip-proto igmp -j DROP -p IPv4 -i eth0.5 --ip-proto igmp -j DROP Bridge chain: macfilter, entries: 0, policy: ACCEPT Bridge chain: portmapping, entries: 31, policy: ACCEPT -i nas0_5 -o wlan1-vap3 -j RETURN -i wlan1-vap3 -o nas0_5 -j RETURN -i nas0_5 -o wlan1-vap2 -j RETURN -i wlan1-vap2 -o nas0_5 -j RETURN -i nas0_5 -o wlan1-vap1 -j RETURN -i wlan1-vap1 -o nas0_5 -j RETURN -i nas0_5 -o wlan1-vap0 -j RETURN -i wlan1-vap0 -o nas0_5 -j RETURN -i nas0_5 -o wlan1 -j RETURN -i wlan1 -o nas0_5 -j RETURN -i nas0_5 -o wlan0-vap3 -j RETURN -i wlan0-vap3 -o nas0_5 -j RETURN -i nas0_5 -o wlan0-vap2 -j RETURN -i wlan0-vap2 -o nas0_5 -j RETURN -i nas0_5 -o wlan0-vap1 -j RETURN -i wlan0-vap1 -o nas0_5 -j RETURN -i nas0_5 -o wlan0-vap0 -j RETURN -i wlan0-vap0 -o nas0_5 -j RETURN -i nas0_5 -o wlan0 -j RETURN -i wlan0 -o nas0_5 -j RETURN -i nas0_5 -o eth0.5 -j RETURN -i eth0.5 -o nas0_5 -j RETURN -i nas0_5 -o eth0.4 -j RETURN -i eth0.4 -o nas0_5 -j RETURN -i eth+ -o eth+ -j RETURN -i eth+ -o wlan+ -j RETURN -i wlan+ -o eth+ -j RETURN -i wlan+ -o wlan+ -j RETURN -i eth0+ -j DROP -i wlan+ -j DROP -i nas0_5 -j DROP
07-08
这是一组ebtables规则,用于过滤和控制网络流量。以下是每个链和规则的简要解释: 1. INPUT链:用于处理桥接的输入流量。有两个规则,目标是将流量转发到"br_wan"和"portmapping_igmp"链。 2. FORWARD链:用于处理桥接的转发流量。有六个规则,目标是将流量转发到"disBCMC"、"br_wan_forward"、"wlan_block"、"wlan_map_block"、"macfilter"和"portmapping"链。策略为丢弃。 3. OUTPUT链:用于处理桥接的输出流量。有两个规则,目标是将流量转发到"br_wan_out"和"br_lan_out"链。 4. br_lan_out链:用于处理桥接到局域网的输出流量。有两个规则,目标是丢弃传输IPv6 ICMP协议类型为路由广告的流量。 5. br_wan_forward链:用于处理从WAN端口到桥接的转发流量。有三个规则,目标是接受传输IPv6协议和PPP_SES协议的流量,并丢弃其他所有流量。 6. wlan_block链和wlan_map_block链:这两个链没有规则,策略为返回。 7. disBCMC链:用于处理广播和多播流量。有两个规则,目标是丢弃广播和多播流量。 8. br_wan链:用于处理从WAN端口到桥接的流量。有一个规则,目标是丢弃从"nas0_5"接口进入的流量。 9. br_wan_out链:用于处理从桥接到WAN端口的输出流量。有一个规则,目标是丢弃传输到"nas0_5"接口的流量。 10. portmapping_igmp链:用于处理IGMP流量。有两个规则,目标是丢弃传输IPv4协议和IGMP协议的流量。 11. macfilter链:这个链没有规则,策略为接受所有流量。 12. portmapping链:用于处理端口映射流量。有31个规则,用于配置不同接口之间的流量转发。 请注意,这只是对规则的简要解释,具体的含义和功能取决于网络配置和需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值