Vdbench: Sun StorageTek Vdbench, a storage I/O workload generator.
By Henk Vandenbergh on Jul 14, 2009
Vdbench is written in Java (and a little C) and runs on Solaris Sparc and X86, Windows, AIX, Linux, zLinux, HP/UX, and OS/X.
I wrote the SPC1 and SPC2 workload generator using the Vdbench base code for the Storage Performance Council: http://www.storageperformance.org
Vdbench is a disk and tape I/O workload generator, allowing detailed control over numerous workload parameters like:
· For raw disk (and tape) and large disk files:
o Read vs. write
o Random vs. sequential or skip-sequential
o I/O rate
o Data transfer size
o Cache hit rates
o I/O queue depth control
o Unlimited amount of concurrent devices and workloads
o Compression (tape)
· For file systems:
o Number of directory and files
o File sizes
o Read vs. write
o Data transfer size
o Directory create/delete, file create/delete,
o Unlimited amount of concurrent file systems and workloads
Single host or Multi-host:
All work is centrally controlled, running either on a single host or on multiple hosts concurrently.
Centralized reporting, reporting and reporting using the simple idea that you can't understand performance of a workload unless you can see the detail. If you just look at run totals you'll miss the fact that for some reason the storage configuration was idle for several seconds or even minutes!
- Second by second detail of by Vdbench accumulated performance statistics for total workload and for each individual logical device used by Vdbench.
- For Solaris Sparc and X86: second by second detail of Kstat statistics for total workload and for each physical lun or NFS mounted device used.
- All Vdbench reports are HTML files. Just point your browser to the summary.html file in your Vdbench output directory and all the reports link together.
- Swat (an other of my tools) allows you to display performance charts of the data created by Vdbench: Just start SPM, then 'File' 'Import Vdbench data'.
- Vdbench will (optionally) automatically call Swat to create JPG files of your performance charts.
- Vdbench has a GUI that will allow you to compare the results of two different Vdbench workload executions. It shows the differences between the two runs in different grades of green, yellow and red. Green is good, red is bad.
Data Validation is a highly sophisticated methodology to assure data integrity by always writing unique data contents to each block and then doing a compare after the next read or before the next write. The history tables containing information about what is written where is maintained in memory and optionally in journal files. Journaling allows data to be written to disk in one execution of Vdbench with Data Validation and then continued in a future Vdbench execution to make sure that after a system shutdown all data is still there. Great for testing mirrors: write some data using journaling, break the mirror, and have Vdbench validate the contents of the mirror.
A disk I/O workload traced using Swat (an other of my tools) can be replayed using Vdbench on any test system to any type of storage. This allows you to trace a production I/O workload, bring the trace data to your lab, and then replay your I/O workload on whatever storage you want. Want to see how the storage performs when the I/O rate doubles? Vdbench Replay will show you. With this you can test your production workload without the hassle of having to get your data base software and licenses, your application software, or even your production data on your test system.
For more detailed information about Vdbench go to http://vdbench.org where you can download the documentation or the latest GA version of Vdbench.
You can find continuing updates about Swat and Vdbench on my blog: http://blogs.sun.com/henk/
PS: If you're wondering where the name Vdbench came from : Henk Vandenbergh benchmarking.