vdbench测试SSD快速入门

article/2025/11/9 8:04:32

介绍

vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。我们下面主要以块设备为介绍对象。

下载及安装

下载地址:

Vdbench Downloads

下载后直接解压就可以使用,此外还要安装javacsh,因为vdbench是使用java编写的。

Linux下:

yum install java

yum install csh

使用

1)检查vdbench环境

当开始使用时,./vdbench   -t 验证下是否存在问题,如下图有报错现象,对整个文件夹增加权限后,输出正常。

2)运行测试模型

对于单独的块设备来说,常见的vdbench使用如下

./vdbench –f xxx –o xxx

-f后跟运行的配置文件,-o后面跟保存测试结果的文件夹

3)配置文件

配置文件可以参考解压后的examples文件夹下的脚本,比如create_files;也可以参考output目录下的parmfile.html,下面我们以一个例子来进行拆解。

 

块设备配置文件定义顺序为:HDSDWDRD,后面三个对应上图的A,B,C,至于为什么没有HD(Host Define 主机定义),主要是我们是单机使用,未涉及联机使用,不是一个必选项,暂时跳过。

区域A主要是对SD(Storage Define 存储定义)配置

  • sd= 标识存储定义的名称
  • hd= 标识主机定义的名称
  • lun= 写入块设备,如:/dev/sdb, /dev/sdc...
  • openflags= 通过设置为o_direct,以无缓冲缓存的方式进行读写操作
  • threads= SD的最大并发I/O请求数量
  • offset=lun上的偏移

注意:待测SSD要进行分区,不要使用fdisk命令,因为它最大只能对2T进行操作,而SSD显然可以更大,所以我们要使用parted分区命令。操作如下:

  #创建分区表

  parted /dev/nvme0n1 mklabel gpt

   #将硬盘容量分给分区1并指定起止位置

  parted /dev/nvme0n1 mkpart 1  0% 25%

    #查询磁盘的已有分区

  parted /dev/nvme0n1 print

    #格式化分区

       mkfs -t ext2 /dev/nvme0n1p1

区域B主要是对WD(Workload Define 工作负载定义)配置

  • wd= 标识工作负载定义的名称
  • sd= 标识存储定义的名称
  • seekpct= 可选值为0100(也可使用sequentialrandom表示),默认值为100,随机寻道的百分比,设置为0时表示顺序,设置为100时表示随机。
  • rdpct= 读取请求占请求总数的百分比,设置为0时表示写,设置为100时表示读
  • xfersize= 要传输的数据大小。默认设置为4k

这里主要是配置要测试哪个sd,读还是写,顺序还是随机,bs是多少。需要注意的是sd*实际上是指所有的sd,虽然区域A上面只有1sd,但是如果有多个sd的话都是要一起去执行。

区域C主要是对RD(Run Define)配置

  • rd= 标识运行定义的名称
  • wd= 标识工作负载定义的名称
  • iorate= 常用可选值为100max,此工作负载的固定I/O速率
    --当参数值为100时,以每秒100I/Os的速度运行工作负载,当参数值设置为一个低于最大速率的值时,可以达到限制读写速度的效果
    --当参数值为max时,以最大的I/O速率运行工作负载,一般测试读写最大性能时,该参数值均为max
  • warmup= 预热时间(单位为秒),默认情况下vdbench会将第一个时间间隔输出数据排除在外,程序在预热时间内的测试不纳入最终测试结果中(即预热结束后,才开始正式测试)
  • elapsed= 默认值为30,测试运行持续时间(单位为秒)
  • interval= 报告时间间隔(单位为秒)

这里需要注意的地方有两点:

1)我们选择iorate=(curve),curve=(10-120,10),实际上就是限制io的速率从10%120%按照10%为间隔增长,即就是顺序随机读写每个workload都要在不同的速率下跑一次,即要跑12次。(高于100%实际还是按100%执行)

2)  RD出现”forxx”时,会把之前的参数配置强制覆盖掉,比如我们再区域B定义顺序读写bs=4k,但是区域C中使用forxfersize=(64k),所以最终还是会以64k去传输数据。

结果分析

如果运行没有出现错误,最后打印会出现

即我们log的存放地址,如果没有指定log存放地址,一般会生成一个output文件。

log文件夹我们主要关注summary这个报告,如下是截取的一部分:

图中,是截取了在I/O rate 20%情况下的测试状况,warmup=90,采样间隔是5s,所以前18个值都不会采用,只有后面的6个值才是有效值(elapsed=30),取平均即为我们真正要获得的值。取完所有I/O rate average值画图即可观察到盘的运行趋势。

补充更新

实际测试时发现测试的值比正常的要小很多,在报告中发现有很多这样的警告,原来是我们的IOPS已经超过了单个java虚拟机可以处理的IOPS,这里需要在HD部分增加。

 HD(Host Define):主机定义

  • hd= 标识主机定义的名称,多主机运行时,可以使用hd1hd2hd3...区分
  • system= 主机IP地址或主机名
  • vdbench= vdbench执行文件存放路径,当多主机存放路径不同时,可在hd定义时单独指定
  • user= slavemaster通信使用用户
  • shell= 可选值为rshsshvdbench,默认值为rsh,多主机联机测试时,materslave主机间通信方式
    当参数值为rsh时,需要配置masterslave主机rsh互信,考虑到rsh使用明文传输,安全级别不够,通常情况下不建议使用这种通信方式
    当参数值为ssh时,需要配置masterslave主机ssh互信,通常Linux主机联机时使用此通信方式
    当参数值为vdbench,需要在所有slave主机运行vdbench rsh启用vdbench本身的rsh守护进程,通常Window主机联机时使用此通信方式

        协议推荐hd=defaultjvms=nn设置JVM计数或者hd=hostXjvms=nn。要合理选择jvms个数,不要太多当然也要满足需求。

      最后还有一点要说的是,SSD分区时,要不要做文件系统,以及做什么文件系统都要看实际的要求,毕竟在windows分完区要格式化才能使用磁盘,而linux可以直接对裸盘操作。


http://chatgpt.dhexx.cn/article/RLhCmUuK.shtml

相关文章

vdbench多主机运行指导

测试工具之vdbench多主机运行 本文介绍vdbench在多机环境下的操作和配置,以及本人在配置过程中遇到的问题和解决方法。 文章目录 测试工具之vdbench多主机运行前言一、vdbench在linux环境下多机运行1.环境参数2.配置说明二、vdbench在windows环境下多机运行1.环境参数2.配置…

Vdbench工具安装使用

一、 概述 1.1 内容简介 Vdbench 是一个命令行使用程序,旨在帮助工程师和客户生成用于验证存储性能和存储数据完 整性的磁盘 I/O 负载。还可通过输入文本文件指定 Vdbench 执行参数。它是一个免费的工具,容 易使用,而且常常用于测试和基准测试…

Vdbench工具的安装及使用

Vdbench工具的安装 Vdbench的运行依赖java环境,请务必先安装java运行环境安装java,Ubuntu OS环境安装java: apt-get install openjdk-8-jdkCentos OS环境安装: yum install openjdk-8-jdk检查是否安装成功 安装vdbench,下载vdbench50407.zip包&#…

Java jre的安装与卸载

文章目录 1. jre安装2. 卸载 Java JDK安装教程 Idea Java开发环境配置教程: https://tangxing.blog.csdn.net/article/details/112392218 1. jre安装 java下载网址: https://www.java.com/zh-CN/download/manual.jsp 这里有联机版和脱机版,…

彻底卸载jdk,jdk安装 ,javaa安装,jdk删除干净

标签: 一.备份安装好的绿色版JDK a.重新安装JDK到任意目录,假设这个目录是C:\java。 b.将装好的JDK,JRE拷贝到任意一个其他目录,如D:\bak,这样做的目的主要是为了备份JDK。(建议打成zip压缩包奔备用)二.彻底卸载JDK1.第一步,首先卸载或删除J…

Java如何卸载?怎么删掉Windows计算机上的Java?Java卸载流程详解!

大家都知道Java版本不是一成不变的,Java会朝着功能增加、漏洞修复和性能优化的方向一直进步。而公布新版Java之后,我们需要使用它,那么卸载掉旧版的Java很有必要,为什么呢? 这是Java官方给出的回复: 我们强烈建议您…

JAVA安装、配置及卸载

基本上从入门到实用非常全面了。 安装 安装Eclipse先配置jdk jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html (此处以jdk8为示例) 一、安装jdk 此处默认路径即可,单击下一步 安装完成后会…

Java类的卸载机制

类的生命周期 当Sample类被加载、连接和初始化后,它的生命周期就开始了。 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期,Sample类在方法区内的数据也会被卸载,从而结束Sample类的生命…

JAVA的安装与卸载

1.java的卸载 1.删除java的安装目录 2.删除系统环境变量里的JAVA_HOME和Path里面的bin目录和jre/bin目录 3.cmd输入java -version 查看是否删除取消 2.java的安装 1.百度搜索jdk1.8找到下载地址 2.双击安装文件安装 3.配置系统环境变量 1.配置环境变量JAVA_HOME&#xff…

教你如何完全卸载Java

有时候卸载Java时真的让人很烦,明明卸载了但重新安装Java时还报错,今天我就把我卸载Java的过程给大家分享一下。 1. 在控制面板中删除。(但我这么卸载之后java没有完全卸载)。 2.找到java的安装目录,直接将Java文件夹删…

【java基础】Java如何卸载

Java如何卸载 首先右键我的电脑,属性选择高级系统设置,找到环境变量,打开之后在系统变量里找到JAVA_HOME,点击JAVA_HOME复制变量值中的路径 在资源管理器中找到这个目录,将目录删除。 再次打开环境变量&#xff…

Java的安装与卸载方法

Java的安装与卸载方法(附图) JDK的卸载步骤 我的电脑–>属性–>高级系统设置–>环境变量 删除Java的安装目录–>删除JAVA_HOME 双击path,然后删除path下JAVA_HOME相关的 打开DOS输入java -version检查 JDK的安装步骤 百…

如何卸载干净JAVA

有很多小伙伴下载了JAVA的JDK(java开发工具包)并安装成功运行后,发现自己下错了版本。凉了,半天白搞了。卸载之后又发现在再安装出现安装不了的问题。这往往是因为JAVA并没有卸载完全。今天我们就看看如何完全卸载JAVA。 JAVA卸载有两种方式。手动和用J…

JAVA的卸载与重新安装

1.JAVA的卸载,在系统的添加与删除中删去Java。 2.清理Java有关的缓存文件 到Java安装途径下把Java文件夹删除干净,然后删除Java的缓存文件 一般在C盘Users文件夹下的APPData\LocalLow\Sun下去看看有没有 3.清除注册表 使用电脑管家把无用的注册表清除…

Java卸载删除(2023最强版)

Java卸载删除(2023最强版) 卸载程序删除相关环境变量删除编辑注册表相关检查C盘相关文件是否删除收尾 看了网上很多教程,结果还是提示没卸载干净,做了以下整理,希望对大家有所帮助。 卸载程序 在应用和功能中&#xf…

如何卸载干净JAVA?

有很多小伙伴下载了JAVA的JDK(java开发工具包)并安装成功运行后,发现自己下错了版本。凉了,半天白搞了。卸载之后又发现在再安装出现安装不了的问题。这往往是因为JAVA并没有卸载完全。今天我们就看看如何完全卸载JAVA。 JAVA卸载有两种方式。手动和用J…

如何将Java完全卸载

之前安装的Java没有卸载干净,造成重新安装JDK能正常安装,接着安装JRE的时候总是报1603错误。虽然说JRE安装报错了没安装上,但是eclipse、IntelliJ IDEA和AndroidStudio都能正常打开和使用,然而在命令行里却无法使用。虽然工具能正…

【异常解决】vim编辑文件时提示 Found a swap file by the name “.start.sh.swp“的解决方案

vim编辑文件时提示 Found a swap file by the name ".start.sh.swp"的解决方案 一、问题描述二、原因说明三、解决方案3.1 方案1 删除即可3.2 方案2 禁止生成swp文件 一、问题描述 vim编辑文件时提示 Found a swap file by the name “.start.sh.swp”,如…

linux swap file already exists,vim编辑文件警告Swap file already exists ,如何删除vim编辑产生的.swp文件?查看隐藏文件命令...

Linux(centos7)下多个用户同时编辑一个文件,或编辑时非正常关闭,再下次编辑打开文件时均为显示如下警告信息: E325: ATTENTION Found a swap file by the name ".other.conf.swp" owned by: root dated: Wed Nov 29 02:23:20 2017 …

Vim异常退出经典故障处理Swap file already exists

Vim异常退出经典故障处理 1、了解Vim修改文件的机制 Vim在编辑一份文件时,会自动在内存中打开一幅副本,当异常退出的时候,这个副本还是会保留在内存中,所以再次编辑这个文件时,会出现异常提示 2、报错提示如下Swap …