Vdbench vs. FIO: Choosing the Right Storage Testing Tool

Written by

in

Vdbench Tutorial: How to Benchmark Storage Performance Vdbench is a command-line utility used to generate disk I/O workloads and validate storage performance. Developed by Oracle, it is a industry-standard tool for testing architectures ranging from single solid-state drives (SSDs) to complex enterprise storage area networks (SANs).

This guide covers the core concepts, installation steps, and configuration syntax needed to run your first benchmark. Understanding Vdbench Execution Structure

Vdbench operates using a highly structured, hierarchical configuration file. It models workloads using four main sequential parameters:

HD (Host Definition): Identifies the target hosts where the workloads run. This is essential for multi-host, clustered testing environments.

SD (Storage Definition): Pinpoints the physical or logical storage targets, such as raw disk volumes or pre-allocated file systems.

WD (Workload Definition): Defines the characteristics of the I/O operations, dictating read/write ratios, random versus sequential distribution, and data block sizes.

RD (Run Definition): Specifies the execution constraints of the benchmark, including thread count, total runtime, and warmup periods. Prerequisites and Installation

Vdbench requires a Java Runtime Environment (JRE) to execute. Follow these steps to prepare your system: 1. Install Java

Ensure Java 1.8 or higher is installed on your test machine. Ubuntu/Debian: sudo apt install default-jre RHEL/CentOS: sudo yum install java-1.8.0-openjdk 2. Download and Extract Vdbench

Download the official zip package from the Oracle Technology Network. Create a dedicated directory and extract the files:

mkdir /vdbench && cd /vdbench unzip vdbench50407.zip # Replace with your specific version number Use code with caution. Make the execution script executable: chmod +x vdbench Use code with caution. Creating Your Configuration File

To execute a test, you must define your parameters in a plain text configuration file. Below are two template scenarios for block and file system architectures. Scenario A: Testing a Raw Block Device (E.g., /dev/sdb) Create a file named block_test.txt:

Host Definition hd=default,vdbench=/vdbench,user=root * Storage Definition sd=sd1,hd=default,lun=/dev/sdb,openflags=o_direct * Workload Definition wd=wd1,sd=sd1,rdpct=70,seekpct=100,xfersize=4k * Run Definition rd=run1,wd=wd1,iorate=max,elapsed=300,interval=1,warmup=30 Use code with caution.

Scenario B: Testing a Mounted File System (E.g., /mnt/storage) Create a file named filesystem_test.txt:

* Host Definition hd=default,vdbench=/vdbench,user=root * File System Definition fsd=fsd1,anchor=/mnt/storage/testdir,depth=2,width=10,files=100,size=file_size=1m * Workload Definition fwd=fwd1,fsd=fsd1,operation=write,xfersize=4k,threads=8 * Run Definition rd=run1,fwd=fwd1,fwdrate=max,elapsed=300,interval=1 Use code with caution. Parameter Reference Breakdown Description Common Values openflags Bypasses operating system caching for raw performance. o_direct rdpct Specifies the percentage of read operations. 100 (pure read), 0 (pure write) seekpct Sets the random access percentage. 100 (fully random), 0 (fully sequential) xfersize The data block size transferred per I/O operation. 4k, 8k, 64k, 1m iorate The target Input/Output Operations Per Second (IOPS). max (unlimited throttling) elapsed Total duration of the testing cycle in seconds. 300 (5 minutes) interval Frequency of the live terminal status reports. 1 (every second) Executing the Test and Interpreting Results

Run your test configuration using the execution flag pointing to your parameter file: ./vdbench -f block_test.txt Use code with caution. Reading the Terminal Output

During runtime, Vdbench prints real-time statistics across columns:

iorate: The achieved IOPS. Higher numbers indicate better transactional speed.

MB/sec: Total throughput. Crucial metric for backup and streaming workloads. cpu: Total host processing consumption.

resp: Read/write response times (latency) measured in milliseconds. Lower values mean better responsiveness. Reviewing the Output Directory

Once complete, Vdbench creates an /output/ folder containing granular breakdowns:

summary.html: A clean, webpage-style compilation of the total run metrics.

logfile.html: Contains the stdout logging data, useful for tracing systemic failures or aborted runs.

flatfile.html: A raw comma-separated value format designed for custom scripting and data charting.

To help refine this testing workflow for your environment, please let me know:

What specific operating system (Linux, Windows, VMware) are you running?

What storage array type or protocol (NVMe, SAN, NFS) are you targeting?

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *