当前位置: 首页 > news >正文

​​vdbench 存储性能测试工具​​的详细使用教程,结合安装部署、参数配置、测试执行及结果分析

安装部署

下载与解压
从Oracle官网或可信源获取vdbench压缩包(如vdbench50407.zip)。使用unzip命令解压至目标目录:
官网需要注册账号才能下载,网盘链接:https://pan.quark.cn/s/369db2feab82

unzip vdbench50407.zip -d /opt/vdbench

环境依赖
确保系统已安装Java 1.8或更高版本,通过以下命令验证:

java -version

若未安装,可通过包管理器安装(如yum install java-1.8.0-openjdk)。

权限配置
为脚本添加可执行权限:

chmod +x /opt/vdbench/vdbench

参数配置

主配置文件(如test.conf
vdbench通过文本文件定义测试参数,以下为常见配置示例:

  1. 基础磁盘测试
    块设备测试(顺序:HD → SD → WD → RD)​
hd=default,vdbench=/opt/vdbench,jvms=1
hd=hd1,system=192.168.1.100
sd=sd1,hd=hd1,lun=/dev/sdb,openflags=o_direct,threads=4
wd=wd1,sd=sd1,xfersize=4k,rdpct=100,seekpct=0
rd=rd1,wd=wd1,iorate=max,elapsed=60,interval=10
  • hd: 定义主机和vdbench路径。
  • sd: 存储设备配置,指定LUN和线程数。
  • wd: 工作负载定义,设置I/O大小(xfersize)、读写比例(rdpct)。
  • rd: 运行参数,如测试时长(elapsed)和结果间隔(interval)。
  1. 文件系统测试
# 示例:多级目录随机读
fsd=fsd1, anchor=/mnt/test, depth=2, width=10, files=100, size=1M  # 文件系统定义
fwd=fwd1, fsd=fsd1, operation=read, xfersize=4k, fileio=random  # 文件工作负载
rd=rd1, fwd=fwd1, fwdrate=100, elapsed=30  # 运行定义:100%速率
  • fsd: 定义文件系统目录结构和文件属性。
  • fwd: 文件操作类型(operation)和I/O模式(fileio)。
    关键参数说明:​​
    ​​openflags=o_direct​​:禁用缓存,贴近真实性能。
    ​​seekpct=100​​:100%随机访问;0为顺序访问。
    ​​rdpct​​:读操作占比(0=纯写,100=纯读)。
    ​​iorate=max​​:最大化压测;可设固定值(如iorate=500限制IOPS)。
    ​​depth/width/files​​:目录深度/宽度/文件数,生成复杂文件树。

测试执行

启动测试
进入vdbench目录并运行:

./vdbench -f test.conf -o output_dir
  • -f: 指定配置文件路径。
  • -o: 输出目录,存储日志和结果。

实时监控
测试期间可通过-jn选项启用实时监控(需配合-j参数定义端口):

./vdbench -f test.conf -o output_dir -j 10.0.0.1 -jn

在这里插入图片描述

结果分析

关键指标

  • IOPS: 每秒I/O操作数,反映吞吐能力。
  • 吞吐量(MB/s): 数据传输速率。
  • 延迟(ms): 平均响应时间,包括avgmaxstddev

日志文件解析

  1. output_dir/flatfile.html

    • 汇总测试结果,包含各时间段的性能数据。
    • 图表展示IOPS、吞吐量、延迟趋势。
  2. output_dir/totals.html

    • 测试总览,显示平均值、最大值和标准差。
  3. 错误日志(errorlog.html

    • 检查I/O错误或超时问题,如SD_SEE_ERRSD_TIMEOUT

自定义分析脚本
可通过awk或Python提取特定数据:

awk '/interval/ {print $4,$6,$8}' output_dir/summary.html | grep -v "0.000"

高级调优

参数优化建议

  • xfersize: 根据应用场景调整(如4k随机、128k顺序)。
  • threads: 增加并发数以提升压力,但需避免系统过载。
  • openflags: 使用o_direct绕过缓存获取真实磁盘性能。

多节点测试
hd中定义多个主机,并通过shell=ssh指定通信方式:

hd=hd1,system=node1,shell=ssh
hd=hd2,system=node2,shell=ssh

典型测试场景模板​​
​​场景1:云盘最大随机读IOPS​​

sd=sd1, lun=/dev/vdb, openflags=o_direct
wd=wd1, sd=sd1, rdpct=100, seekpct=100, xfersize=4k
rd=rd1, wd=wd1, iorate=max, elapsed=300, warmup=60

​​场景2:NFS文件混合读写​​

fsd=fsd1, anchor=/nfs_share, depth=1, width=50, files=1000, size=128k
fwd=fwd1, fsd=fsd1, operation=read, rdpct=70, xfersize=64k
rd=rd1, fwd=fwd1, fwdrate=max, elapsed=600
http://www.dtcms.com/a/331648.html

相关文章:

  • 电池模组奇异值分解降阶模型
  • Pandas数据处理与分析实战:Pandas数据转换与处理基础课程
  • 既然是长连接 ,资源已经占用,已经存在。那抢购就直接用长连接不更好?
  • 前端八股文-HTML5篇
  • AI绘画:从算法原理解读其风格、质量与效率变革
  • RLHF综述-GRPO之前
  • 《SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents》论文精读笔记
  • 机器学习算法篇(八)-------svm支持向量机
  • 机器人“ChatGPT 时刻”倒计时
  • 码上爬第九题【协程+webpack】
  • 苹果正计划大举进军人工智能硬件领域
  • 【wpf】WPF 中的 MouseBinding 详解
  • Node-RED系列教程-V4版本Dashboard2使用教程
  • 【科研绘图系列】R语言绘制微生物丰度和基因表达值的相关性网络图
  • 数智先锋 | 告别运维黑盒!豪鹏科技×Bonree ONE构建全栈智能可观测体系
  • Java 中导出 Excel 文件的方法
  • Java 设计模式-装饰器模式
  • 基于51单片机万年历时钟设计
  • Auto-Coder的CLI 和 Python API
  • 顺序表插入删除
  • React 18/19 新特性 核心 API 深入讲解
  • GraphQL从入门到精通完整指南
  • Scrapy 基础框架搭建教程:从环境配置到爬虫实现(附实例)
  • 开源数据发现平台:Amundsen 第1部分:基础入门与本地环境设置
  • 数据结构:用两个栈模拟队列(Queue Using 2 Stacks)
  • 2025年商协会新运营模式,正在破局
  • NokoPrint:安卓平台上的全能打印解决方案
  • 软件测试之接口测试,接口自动化测试, request
  • 【FreeRTOS】刨根问底4: 优先级反转是啥?咋解决?
  • 系统升级部署中的常见问题与解决方案