Nas性能测试工具-vdbench
版本:
vdbench50406
简介:
vdbench是一个 I/O 工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。
配置参数:
- 大文件设置深度为2,广度为10,每个文件夹下的文件数量为400,每个文件的大小为10M,采用10个线程并发,顺序选择文件,随机读写, DirectIO的形式处理1M的数据
- 小文件设置深度为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
测试过程:
- 先生成读或写配置文件(配置文件里hd1为master)
- 在除了master的每台机器(slave)上执行监听程序
vdbench_output="/tmp/vdbench.out" nohup ./vdbench rsh 2>/dev/null >> $vdbench_output &
- 指定配置文件,运行程序
# conf为第一步生成的配置文件./vdbench -f $conf -o ./output_write > $vdbench_output
- 运行运行初期vdbench会先自己创建测试文件,若不存在则会创建,若存在则略过,然后进行配置中的读写测试
- 经测试,大文件的测试文件所占存储空间为391G(创建时间约为2个多小时),小文件的测试文件所占存储空间为787M(创建时间为1个小时以内)
结果解析:
结果实例
关键指标:
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,您可在其中指定不同的选项。
- 对于一个虚拟块设备
对于一个虚拟块设备,配置以下参数:
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。
- 对于一个文件系统
对于一个文件系统,配置以下参数:
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.
参考链接:
Nas性能测试工具-vdbench相关推荐
- 【ceph相关】ceph基准性能测试工具
一.前言 参考文档:RedHat-Ceph性能基准 本篇主要介绍几种ceph原生基准性能测试工具以及各自对应使用方法 不同于fio.vdbench等上层应用接口测试工具,ceph提供了一些自带的基准性 ...
- linux命令 iperf-网络性能测试工具
iperf命令是一个网络性能测试工具.iperf可以测试TCP和UDP带宽质量.iperf可以测量最大TCP带宽,具有多种参数和UDP特性.iperf可以报告带宽,延迟抖动和数据包丢失.利用iperf ...
- 深入浅出开源性能测试工具 Locust (使用篇 1)
在<[LocustPlus序]漫谈服务端性能测试>中,我对服务端性能测试的基础概念和性能测试工具的基本原理进行了介绍,并且重点推荐了Locust这一款开源性能测试工具.然而,当前在网络上针 ...
- apache性能测试工具ab使用详解
网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环.只有让服务器处在高压情况下,才能真正体现出软件.硬件等各种设置不当所暴露出的问题. 性能测试工具目前最常见的有以下几种:ab.http_lo ...
- python编写测试工具-python 写一个性能测试工具(一)
国庆重新学习了一下go的gin高性能测试框架. 用JMeter来测试gin与flask接口的性能,差别很大. 为什么我自己不尝试写一个性能工具,性能工具的核心就是 并发 和 请求. 请求可以选择Pyt ...
- 史上最全的Web性能测试工具大全(下 )
2019独角兽企业重金招聘Python工程师标准>>> 本文继续为大家介绍Web开发中常用的性能测试工具,如果你有其他性能测试产品推荐,欢迎交流! Opera Dragonfly O ...
- MySQL性能测试工具sysbench的安装和使用
sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.当前 ...
- Web网站的性能测试工具
随着Web 2.0技术的迅速发展,许多公司都开发了一些基于Web的网站服务,通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况,因此,当Web网站遇到访问高峰时,容易发生服务器 ...
- 如何ping端口_复刻smartbits的国产网络性能测试工具minismb-如何配置Ping报文
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽, ...
- 网络性能测试工具iperf的使用与参数解析
介绍 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理.网络存在安全漏洞等原因,都会导致网络带宽利用率不高.要找到网络带宽利用率不高的原因, ...
最新文章
- azure未连接_查找影响Azure成本的未使用资源
- sodp软件如何导入多个工作面信息_6款堪称业界良心的软件,好用到想为它们疯狂打call!...
- 如何自己编写一个交通仿真软件(一)火种。
- CODEFORCES 272C Dima and Staircase 细节理解题+简单技巧
- SQL UCASE() 函数
- 使用ASMap构建高密度遗传图谱
- python exec函数_Python中的exec函数
- 好设计如何诞生:关于好设计的100件事
- 计算机组成原理 --- 数据信息的表示
- [4G5G基础学习]:流程 - 4G LTE 接入网的随机接入流程
- 民生银行京东三位大咖,手把手教你构建用户画像
- 每日一题python90:找到小镇的法官
- 亿图图示:批量转化Visio的操作方法
- 合肥工业大学计算机与信息学院研究生招生,合肥工业大学计算机与信息学院有关研究生分配的有关规定...
- 《小狗钱钱》摘录——2019年04月14日19:11:50
- Java获取名字首字母拼音并按名字拼音分组工具类
- SQL Server jdbc驱动官方下载地址 sqljdbc4.jar
- c语言中怎么设计随机数表法的步骤,C语言随机数使用方法
- 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
- 小猫爪:i.MX RT1050学习笔记22-eLCDIF
热门文章
- Multisim 13.0.1 安装教程
- 分享视频分析软件常用的几个C++库
- 视频综合平台系统架构分析-1
- PPT常见的几种排版技巧,你都掌握了吗?
- 项目从 tomcat7部署到tomcat8
- 跳级全奖进哈佛,连马云都忌惮三分,赚18个亿后隐退美国,如今的他在干什么?...
- 产业互联网周报:博通610亿美元收购VMware;阿里云财报13年来首次年度盈利;华为:对所有供应商提出碳减排要求...
- 2 测试方法与理论 - 软件测试
- 闭关修炼,看了老大的博客,才发现自己是多么的技术低,原来我就达到06年的他...
- Python代码自动转成C++代码