资讯详情

Vdbench工具安装使用

一、 概述 1.1 内容简介

Vdbench 为了帮助工程师和客户生成验证存储性能和存储数据完成的命令行使程序 整性的磁盘 I/O 负载也可以通过输入文本文件来指定。 Vdbench 执行参数。它是一种免费工具,容忍 易于使用,常用于测试和基准测试。 本指南向读者介绍 Vdbench 工具在在 Linux 和 Windows 平台安全使用,快速学习工具 供参考。

文档包括以下内容:

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

1.2 产品版本

产品名称

版本

描述

Vdbench 5.04.07 性能测试工具
Linux 客户端 CentOS 7.6 X64 Linux 操作系统
Windows 客户端 Windows 2012 R2 X64 Windows 操作系统

1.3 读者对象 本文档主要适用于如下工程师:

  • 部门工程师
  • 合作伙伴技术工程师
  • 客户技术工程师

二、 下载地址

官网下载链接:Vdbench Downloads

3.1 Linux 安装步骤

3.1.1 上传所需软件 使用 winscp 或者 filezilla 上传到//root/目录下

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

3.1.2 配置 YUM 源安装 java 环境 检查是否已安装 java,如果已安装,请跳过此步骤(3.1.二、继续执行 3.1.3 步骤即可。 rpm -qa|grep ^java 如下输出表明已安装 java。

3.1.2.1 本地 YUM 源安装(推荐) 1.如果无法访问外网,可以考虑本地配置 YUM 源安装相关依赖包;使用 winscp 或者filezilla 将 Linux 对应版本操作系统 iso 上传至/root/目录下

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

2、安装 java

yum install -y java-1.8.0-openjdk

3.1.2.2 互联网 YUM 源安装 1.确定本机可以访问互联网 2、配置 DNS

#vim /etc/resolv.conf///将以下内容插入本文件中

nameserver114.114.114.114

ping www.baidu.com

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

3.使用系统自带 CentOS-Base.repo 配置文件 注:如果没有配置文件,可以手动创建新编辑 CentOS-Base.repo 文件

# 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=fle:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

4、安装 java

yum install -y java-1.8.0-openjdk

3.1.3 安装 Vdbench Vdbench 无需安装,解压 vdbench50407.zip 即可。

mkdir /root/vdbench50407

mv /root/vdbench50407.zip /root/vdbench50407

unzip /root/vdbench50407/vdbench50407.zip

3.1.4 验证 Vdbench 是否安装成功 执行以下命令检查是否安装成功:

/root/vdbench50407/vdbench -t

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

 

3.2 Windows 安装步骤 3.2.1 上传所需软件 使用远程桌面将所需软件上传至 C 盘目录下

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

3.2.2 安装 java a) 双击“jre-8u241-windows-x64.exe” b) 点击“安装”,开始安装

c) 完成安装

3.2.3 安装 Vdbench Vdbench 无需安装,解压 vdbench50407.zip 即可。 3.2.4 验证 Vdbench 是否安装成功 win + R,打开命令行窗口 依次进入到 Vdbench 所在的文件夹,执行.\vdbench -t

 

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

四、 常用参数详解 4.1 块设备常用参数       4.1.1 主机定义(HD)

hd:主机定义 system= IP 地址或网络名称

      4.1.2 存储定义(SD)

sd= 标识存储的名称。 host= 存储所在的主机的 ID。 lun= 原始磁盘、磁带或文件系统的名称。Vdbench 也可为您创建一个磁盘。 threads= 对 SD 的最大并发 I/O 请求数量。默认为 8。 hitarea= 调整读取命中百分比的大小。默认为 1m openflags= 用于打开一个 lun 或一个文件的 flag_list

      4.1.3 工作负载定义(WD)

wd= 标识工作负载的名称 sd= 要使用的存储定义的 ID host= 要运行此工作负载的主机的 ID。默认设置为 localhost rdpct= 读取请求占请求总数的百分比,为 100,则为读;为 0,则为写。 rhpct= 读取命中百分比。默认设置为 0。 whpct= 写入命中百分比。默认设置为 0。 xfersize= 要传输的数据大小。默认设置为 4k。 seekpct= 随机寻道的百分比。可为随机值,为 0 则为顺序;为 100 则为随机。

      4.1.4 工作负载定义(RD)

rd= 标识运行的名称。 wd= 用于此运行的工作负载的 ID。 iorate= 一个或多个 I/O 速率XSKY Vdbench 工具安装使用标准文档 interval=报告间隔序号 elapsed= time:以秒为单位的运行持续时间。默认设置为 30。 warmup= time:加热期,最终会被忽略

4.2 文件系统常用参数       4.2.1 主机定义(HD)

hd:主机定义 system= IP 地址或网络名称

      4.2.2 文件存储定义(FSD)

fsd= 标识文件系统定义的名称 anchor= 将在其中创建目录结构的目录 width= 要在定位符下创建的目录数 depth= 要在定位符下创建的级别数 files= 要在最低级别创建的文件数 sizes=将创建的文件大小 openflags= 用于打开一个 lun 或一个文件的 flag_list

      4.2.3 文件工作负载定义(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。 选择要执行的单个文件操作。 threads= 此工作负载的并发线程数量。每个线程需要至少 1 个文件。

      4.2.4 运行定义(RD)

rd= 标识运行的名称。 fwd= 要使用的文件系统工作负载定义的 ID。 interval=报告间隔序号 fwdrate= 每秒执行的文件系统操作数量。 format= yes / no / only / restart / clean / directories。在开始运行之前要执行的操作。 yes:是每次都会先删除目录文件,再重新创建 restart:每次起的时候会先校验文件、目录是否全,不全的补上 elapsed= time:以秒为单位的运行持续时间。

五、 使用方法         5.1 Linux 使用方法

/root/vdbench50407/vdbench -f parmfile

        5.2 Windows 使用方法

c:\vdbench50407\vdbench.bat -f parmfile

六、 常用测试脚本         6.1 Linux 常用测试脚本              6.1.1 块存储常用测试脚本

//定义主机的默认参数,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

fsd=fsd1,anchor=/testing_dir,depth=1,width=1,file=100000,size=10m,openflags=o_direct   fwd=fwd1,fsd=fsd1,operation=read,xfersize=1m,fileio=random,fileselect=random,threads=64   rd=rd1,fwd=fwd1,fwdrate=max,format=no,forrdpct=(0),elapsed=120,interval=2,pause=1m

6.2 Windows 常用测试脚本       6.2.1 块存储常用测试脚本

//定义主机的默认参数,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

七、 测试结果解读

        7.1 输出结果 最后输出结果如下,则说明测试完成: Vdbench execution completed successfully. Output directory: /root/vdbench50407/output        7.2 输出文件说明 每次运行后,Vdbench 会创建一个包含以下文件的 output 文件夹:

  • 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:主要报告文件,显示为在每个报告间隔的每次运行生成的总工作负载,以及除第一个间隔外的所有间隔的加权平均值。

      7.3 summary.html 文件说明            7.3.1 块存储 sunmary.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):删除文件(速率/响应时间)

标签: 流量传感器hd1ko

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台