Vdbench工具安装使用

Vdbench工具安装使用一 概述 1 1 内容简介 Vdbench 是一个命令行使用程序 旨在帮助工程师和客户生成用于验证存储性能和存储数据完整性的磁盘 I O 负载 还可通过输入文本文件指定 Vdbench 执行参数 它是一个免费的工具 容易使用 而且常常用于测试和基准测试 本指南向读者介绍 Vdbench 工具在在 Linux 和 Windows 平台安全使用 对快速学习该工具提供参考 文档包含以下内容 安装配置 常用参数详解 常用测试用例 1 2 产品版本

Vdbench工具安装使用

 

     文档包含以下内容:

  • 安装配置
  • 常用参数详解
  • 常用测试用例

1.2 产品版本

产品名称

版本

描述

Vdbench 5.04.07 性能测试工具
Linux 客户端 CentOS 7.6 X64 Linux 操作系统
Windows 客户端 Windows 2012 R2 X64 Windows 操作系统
  • 部门工程师
  • 合作伙伴技术工程师
  • 客户技术工程师

二、 下载地址

官网下载链接: Vdbench Downloads

3.1 Linux 安装步骤

  • Linux 对应版本操作系统的 iso
  • vdbench50407.zip

Vdbench工具安装使用

mount -o loop /root/
<对应版本操作系统>
.iso /media/

yum-config-manager --add-repo=file:///media

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-*

yum clean all

yum makecache

yum repolist

yum install -y java-1.8.0-openjdk

#vim /etc/resolv.conf    //在这个文件中插入如下内容

nameserver 114.114.114.114

ping www.baidu.com

输出如下,则说明可以正常访问互连网且域名解析正常;否则请检查网络和 DNS 的配置。

# vi /etc/yum.repos.d/CentOS-Base.repo //在这个文件中插入如下内容

[base]

name=CentOS-$releasever - Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&i

nfra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates

[updates]

name=CentOS-$releasever - Updates

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=upda

tes&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extra

s&infra=$infra

#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

4、安装 java

yum install -y java-1.8.0-openjdk

mkdir /root/vdbench50407

mv /root/vdbench50407.zip /root/vdbench50407

unzip /root/vdbench50407/vdbench50407.zip

/root/vdbench50407/vdbench -t

Vdbench工具安装使用

 

  • jre-8u241-windows-x64.exe
  • vdbench50407.zip

Vdbench工具安装使用

c) 完成安装

Vdbench工具安装使用

 Vdbench工具安装使用

看到结尾输入如下,则说明安装成功:

Vdbench工具安装使用

      4.2.4 运行定义(RD)

/root/vdbench50407/vdbench -f parmfile

c:\vdbench50407\vdbench.bat -f parmfile

//定义主机的默认参数,Vdbench 的路径为/root/vdbench50407,用户为 root,shell 为 ssh

hd=default,vdbench=/root/vdbench50407,user=root,shell=ssh

//定义 3 个主机,标签为 hd1-3,ip 为 44.8.16.205-207

hd=hd1,system=44.8.16.205

hd=hd2,system=44.8.16.206

hd=hd3,system=44.8.16.207

//定义存储的默认参数,openflags 采用 O_direct,卷大小为 100G,线程为 8 个。

sd=default,openflags=o_direct,size=100GB,threads=8

//定义 6 个存储,分别是主机 hd1 的 sdn、sdo 的卷,主机 hd2 的 sdn、sdo 的卷,主机 hd3 的sdn、sdo 的卷

sd=sd1,hd=hd1,lun=/dev/sdn

sd=sd2,hd=hd1,lun=/dev/sdo

sd=sd3,hd=hd2,lun=/dev/sdn

sd=sd4,hd=hd2,lun=/dev/sdo

sd=sd5,hd=hd3,lun=/dev/sdn

sd=sd6,hd=hd3,lun=/dev/sdo

//定义工作负载 RandomCase1,4k 100%随机写

wd=RandomCase1,rdpct=0,seekpct=100,xfersize=4k

//定义工作负载 RandomCase2,4k 100%随机读

wd=RandomCase2,rdpct=100,seekpct=100,xfersize=4k

//定义工作负载 RandomCase3,1M 100%顺序写

wd=RandomCase3,rdpct=0,seekpct=0,xfersize=1024k

//定义工作负载 RandomCase4,1M 100%顺序读

wd=RandomCase4,rdpct=100,seekpct=0,xfersize=1024k

//定义运行默认参数,打印间隔为 1s,io 速率为最大

rd=default,interval=1,iorate=max

//定义运行任务 TestCase1,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 4k 随机写测试)

rd=TestCase1,wd=RandomCase1,sd=sd*,warmup=120,elapsed=60

//定义运行任务 TestCase2,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 4k 随机读测试)

rd=TestCase2,wd=RandomCase2,sd=sd*,warmup=120,elapsed=60

//定义运行任务 TestCase3,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 1M 顺序写测试)

rd=TestCase3,wd=RandomCase3,sd=sd*,warmup=120,elapsed=60

//定义运行任务 TestCase4,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 1M 顺序读测试)

rd=TestCase4,wd=RandomCase4,sd=sd*,warmup=120,elapsed=60

  6.1.2 文件存储常用测试脚本

//定义主机的默认参数,Vdbench 的路径为/root/vdbench50407,用户为 root,shell 为 ssh

hd=default,vdbench=/root/vdbench50407,user=root,shell=ssh

//定义 3 个主机,标签为 hd1-3,ip 为 44.8.16.205-207

hd=hd1,system=44.8.16.205

hd=hd2,system=44.8.16.206

hd=hd3,system=44.8.16.207

//定义文件存储的默认参数,文件夹的深度为 3,广度为 8,共计 512 个文件夹。

fsd=default,depth=3,width=8

//定义文件存储 fsd1,目录为/test-nas/4k,最下层每个文件夹里有 512 个文件,每个文件大小为4k。

fsd=fsd1,anchor=/test-nas/4k,files=512,size=4k,shared=yes

//定义文件存储 fsd2,目录为/test-nas/4k,最下层每个文件夹里有 32 个文件,每个文件大小为1m。

fsd=fsd2,anchor=/test-nas/1m,files=32,size=1m,shared=yes

//定义默认文件工作负载,线程为 16 个,openflags 采用 O_direct,传输数据的大小为 512k。

fwd=default,threads=16,openflags=o_direct,xfersize=512k

//定义文件工作负载 fwd1,主机为 hd1-hd3,文件存储定义为 fsd1,单个文件为顺序写,文件选择方式为随机。

fwd=fwd1,hd=(hd1,hd2,hd3),fsd=fsd1,operation=write,fileio=sequential,fileselect=random

//定义文件工作负载 fwd2,主机为 hd1-hd3,文件存储定义为 fsd1,单个文件为顺序读,文件选择方式为随机。

fwd=fwd2,hd=(hd1,hd2,hd3),fsd=fsd1,operation=read,fileio=sequential,fileselect=random

//定义文件工作负载 fwd3,主机为 hd1-hd3,文件存储定义为 fsd2,单个文件为顺序写,文件选择方式为随机。

fwd=fwd3,hd=(hd1,hd2,hd3),fsd=fsd2,operation=write,fileio=sequential,fileselect=random

//定义文件工作负载 fwd4,主机为 hd1-hd3,文件存储定义为 fsd2,单个文件为顺序读,文件选择方式为随机。

fwd=fwd4,hd=(hd1,hd2,hd3),fsd=fsd2,operation=read,fileio=sequential,fileselect=random

//定义运行 rd1,文件工作负载为 fwd1,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd1,fwd=fwd1,interval=1,format=restart,fwdrate=max,elapsed=60

//定义运行 rd2,文件工作负载为 fwd2,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd2,fwd=fwd2,interval=1,format=restart,fwdrate=max,elapsed=60

//定义运行 rd3,文件工作负载为 fwd3,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd3,fwd=fwd3,interval=1,format=restart,fwdrate=max,elapsed=60

//定义运行 rd4,文件工作负载为 fwd4,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd4,fwd=fwd4,interval=1,format=restart,fwdrate=max,elapsed=60

//定义主机的默认参数,Vdbench 的路径为 c:\vdbench50407,shell 为 vdbench

hd=default,vdbench=c:\vdbench50407,shell=vdbench

//定义 3 个主机,标签为 hd1-3,ip 为 44.8.16.205-207

hd=hd1,system=44.8.16.205

hd=hd2,system=44.8.16.206

hd=hd3,system=44.8.16.207

//定义存储的默认参数,openflags 采用 directio,卷大小为 90G(设置为创建的卷的 90%),线程为 8 个。

sd=default,openflags=directio,size=90GB,threads=8

//定义 6 个存储,分别是主机 hd1 的磁盘 id 为 1、2 的磁盘,主机 hd2 的磁盘 id 为 1、2 的磁盘,主机 hd3 的磁盘 id 为 1、2 的磁盘

sd=sd1,hd=hd1,lun=\\.\physicaldrive1

sd=sd2,hd=hd1,lun=\\.\physicaldrive2

sd=sd3,hd=hd2,lun=\\.\physicaldrive1

sd=sd4,hd=hd2,lun=\\.\physicaldrive2

sd=sd5,hd=hd3,lun=\\.\physicaldrive1

sd=sd6,hd=hd3,lun=\\.\physicaldrive2

//定义工作负载 RandomCase1,4k 100%随机写

wd=RandomCase1,rdpct=0,seekpct=100,xfersize=4k

//定义工作负载 RandomCase2,4k 100%随机读

wd=RandomCase2,rdpct=100,seekpct=100,xfersize=4k

//定义工作负载 RandomCase3,1M 100%顺序写

wd=RandomCase3,rdpct=0,seekpct=0,xfersize=1024k

//定义工作负载 RandomCase4,1M 100%顺序读

wd=RandomCase4,rdpct=100,seekpct=0,xfersize=1024k

//定义运行默认参数,打印间隔为 1s,io 速率为最大

rd=default,interval=1,iorate=max

//定义运行任务 TestCase1,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 4k 随机写测试)

rd=TestCase1,wd=RandomCase1,sd=sd*,warmup=120,elapsed=60

//定义运行任务 TestCase2,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 4k 随机读测试)

rd=TestCase2,wd=RandomCase2,sd=sd*,warmup=120,elapsed=60

//定义运行任务 TestCase3,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 1M 顺序写测试)

rd=TestCase3,wd=RandomCase3,sd=sd*,warmup=120,elapsed=60

//定义运行任务 TestCase4,使用工作负载 RandomCase1,使用存储为所有定义存储,预热120s,运行 60s。(执行 1M 顺序读测试)

rd=TestCase4,wd=RandomCase4,sd=sd*,warmup=120,elapsed=60

   6.2.2 文件存储常用测试脚本

//定义主机的默认参数,Vdbench 的路径为 c:\vdbench50407,shell 为 vdbench

hd=default,vdbench=c:\vdbench50407,shell=vdbench

//定义 3 个主机,标签为 hd1-3,ip 为 44.8.16.205-207

hd=hd1,system=44.8.16.205

hd=hd2,system=44.8.16.206

hd=hd3,system=44.8.16.207

//定义文件存储的默认参数,文件夹的深度为 3,广度为 8,共计 512 个文件夹。

fsd=default,depth=3,width=8

//定义文件存储 fsd1,目录为/test-nas/4k,最下层每个文件夹里有 512 个文件,每个文件大小为4k。

fsd=fsd1,anchor=X:\4k,files=512,size=4k,shared=yes

//定义文件存储 fsd2,目录为/test-nas/4k,最下层每个文件夹里有 32 个文件,每个文件大小为1m。

fsd=fsd2,anchor=X:\1m,files=32,size=1m,shared=yes

//定义默认文件工作负载,线程为 16 个,openflags 采用 directio,传输数据的大小为 512k。

fwd=default,threads=16,openflags=directio,xfersize=512k

//定义文件工作负载 fwd1,主机为 hd1-hd3,文件存储定义为 fsd1,单个文件为顺序写,文件选择方式为随机。

fwd=fwd1,hd=(hd1,hd2,hd3),fsd=fsd1,operation=write,fileio=sequential,fileselect=random

//定义文件工作负载 fwd2,主机为 hd1-hd3,文件存储定义为 fsd1,单个文件为顺序读,文件选择方式为随机。

fwd=fwd2,hd=(hd1,hd2,hd3),fsd=fsd1,operation=read,fileio=sequential,fileselect=random

//定义文件工作负载 fwd3,主机为 hd1-hd3,文件存储定义为 fsd2,单个文件为顺序写,文件选方式为随机。

fwd=fwd3,hd=(hd1,hd2,hd3),fsd=fsd2,operation=write,fileio=sequential,fileselect=random

//定义文件工作负载 fwd4,主机为 hd1-hd3,文件存储定义为 fsd2,单个文件为顺序读,文件选择方式为随机。

fwd=fwd4,hd=(hd1,hd2,hd3),fsd=fsd2,operation=read,fileio=sequential,fileselect=random

//定义运行 rd1,文件工作负载为 fwd1,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd1,fwd=fwd1,interval=1,format=restart,fwdrate=max,elapsed=60

//定义运行 rd2,文件工作负载为 fwd2,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd2,fwd=fwd2,interval=1,format=restart,fwdrate=max,elapsed=60

//定义运行 rd3,文件工作负载为 fwd3,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd3,fwd=fwd3,interval=1,format=restart,fwdrate=max,elapsed=60

//定义运行 rd4,文件工作负载为 fwd4,打印间隔为 1s,运行前执行的操作为 restart,执行文件操作的速率为最大,执行时间为 60s。

rd=rd4,fwd=fwd4,interval=1,format=restart,fwdrate=max,elapsed=60

七、 测试结果解读

  • errorlog.html:当为测试启用了数据验证(-jn)时,它可包含一些数据块中的错误的相关信息
  • 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 的摘要报告。
  • sdN.histogram.html、sdN.html:每个 N 存储定义的柱状图和存储定义 “N” 报告。
  • summary.html:主要报告文件,显示为在每个报告间隔的每次运行生成的总工作负载,以及除第一个间隔外的所有间隔的加权平均值。

interval:打印间隔

I/O rate:每秒平均 I/O 率

MB sec:每秒平均带宽

bytes I/O:平均 I/O 大小

read pct:平均读百分比

resp time:平均读写响应时间

read resp:平均读响应时间

write resp:平均写响应时间

resp max:最大响应时间 mb/sec

resp stddev:响应时间的标准偏差

queue depth:Vdbench 计算的平均 I/O 队列深度

cpu% sys+usr:CPU 使用率(sys+usr)

cpu% sys:CPU 使用率(sys)

  7.3.2 文件存储 sunmary.html 说明

ReqstdOps(rate/resp):每秒处理请求的个数(速率/响应时间)

cpu%(total/sys):CPU 使用率(total/sys)

read pct:读百分比

read(rate/resp):读(速率/响应时间)

write(rate/resp):写(速率/响应时间)

mb/sec(read/write):带宽(读/写)

mb/sec total:总的读写带宽

xfer size:平均传输大小

mkdir(rate/resp):创建文件夹(速率/响应时间)

rmdir(rate/resp):移除文件夹(速率/响应时间)

create(rate/resp):创建文件(速率/响应时间)

open(rate/resp):打开文件(速率/响应时间)

close(rate/resp):关闭文件(速率/响应时间)

delete(rate/resp):删除文件(速率/响应时间)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222333.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:01
下一篇 2026年3月17日 下午4:02


相关推荐

  • 数据库之六大范式详解

    数据库之六大范式详解数据库六大范式详解关系数据库中的关系满足一定要求的 满足不同程度要求的为不同的范式 满足最低要求的叫第一范式 简称 1NF 在第一范式的基础上满足进一步要求的称为第二范式 简称 2NF 其余范式以此类推 对于各种范式之间有如下关系 如下图所示 1 第一范式 1NF 定义 属于第一范式关系的所有属性都不可再分 即数据项不可分 理解 第一范式强调数据表的原子性 是其他范式的

    2026年3月19日
    2
  • QueryInterface 实现及使用的完整的例子

    QueryInterface 实现及使用的完整的例子下面我们将把前面所提到过和各代码段组合起来,以构成一个说明QueryInterface实现及使用的完整例子。总的来说可以将这些代码分成三部分。第一部分是接口IX、IY和IZ的定义部分。接口IUnknown的定义在Win32SDK的头文件1见UNKNWN.H中。第二部分是组件的实现。类CA实现了一个支持IX和IY接口的组件。QueryInterface的实现

    2022年7月22日
    9
  • 最长递增子序列python_求最长递增子序列并输出序列

    最长递增子序列python_求最长递增子序列并输出序列一,    最长递增子序列问题的描述设L=&lt;a1,a2,…,an&gt;是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=&lt;aK1,ak2,…,akm&gt;,其中k1&lt;k2&lt;…&lt;km且aK1&lt;ak2&lt;…&lt;akm。求最大的m值。二,    第一种算法:转化为LCS问题求解设序列X=&lt;b1,b2,…,bn&gt;是对序列L…

    2025年6月22日
    3
  • java 下载文件的文件名乱码_java下载文件名乱码解决方法介绍

    java 下载文件的文件名乱码_java下载文件名乱码解决方法介绍javaWeb 开发下载文件功能 代码如下 文件名如果带有中文 经常会出现乱码现象 需要进行编码 推荐 java 视频教程 StringfileNa 测试文件 doc try HttpServletR HttpServletR FacesContext getCurrentIn getExternalC

    2026年3月26日
    3
  • DB2 DECODE函数

    DB2 DECODE函数DB2DECODE函数的用法:在查询数据,需要进行条件判断时,一般我们使用CASE…WHEN实现,当判断条件为相等时,除了使用CASE…WHEN实现,还可以使用DECODE函数。若要使用like、>、DECODE()使用方法: decode(条件,值1,翻译值1,值2,翻译值2,…值n,翻译值n,缺省值)DECODE()含义说明:IF条件=值1THEN

    2022年7月25日
    39
  • html代码格式化vscode,Vscode代码格式化

    html代码格式化vscode,Vscode代码格式化Vscode 代码格式化 Vscode 代码格式化 首选项 设置 点击这个小图标 然后把以下的代码复制进去 window zoomLevel 2 设置窗口缩放级别 files autoSave afterDelay 自动保存代码 breadcrumbs enabled true 开启 vscode 文件路径导航 search exclude

    2026年3月20日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号