Henk Vandenbergh
Vdbench: a disk and tape I/O workload generator and performance reporter.
Vdbench: a disk and tape I/O workload generator and performance reporter.
Vdbench: Sun StorageTek Vdbench, a storage I/O workload
generator.
(For those interested in details: Vdbench stands for Vandenbergh
benchmarking).
Vdbench is written in Java (and a little C) and runs on Solaris Sparc and X86, Windows, AIX, Linux, HP, 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,
read/write, copy/move (Vdbench 5.00 beta)
o Unlimited amount of concurrent file systems and
workloads
Centralized control, running either on a single host or on multiple hosts (vdbench 5.00 beta) 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 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’.
- Starting Vdbench 5.00 (beta) 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: 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 or optionally in journal files. Journaling allows data to be written to disk in one execution of Vdbench with Data Validation then continued in a future Vdbench execution to make sure that after a system shutdown all data is still there.
I/O Replay: 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 customer’s production I/O workload, bring the trace data to your lab, and then replay your customers 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 customer’s production workload without the hassle of having to get your customer’s data base software and licenses, his application software, or even his production data.
Vdbench is now available for the general public:
This old 4.07 link is obsolete: you can find Vdbench at vdbench.org
The version currently available for the general public will expire on April 25, 2009.
By then there will be a non-expiring version at vdbench.org
Henk.
Posted at 12:19PM Jul 31, 2008 by Henk Vandenbergh in Sun | Comments[20]
I was working on my own tool for simulating SPC-2 workloads when I discovered vdbench. I found it was a piece of cake to reproduce the SPC-2 workload definitions in vdbench and get the right kind of reporting. That's pretty funny, then, that the SPC tools are based on vdbench! No wonder I had such an easy time.
FWIW, I'm using R to generate graphs from the vdbench output and it produces really beautiful results.
Posted by Josh Carter on July 31, 2008 at 03:42 PM MDT #
One question on simulating SPC benchmarks: is there a way to do sparse incremental access pattern? The seekpct workload parameter allows random and sequential (and a combination thereof) but so far I haven't found a way of doing sparse incremental.
Posted by Josh Carter on July 31, 2008 at 04:17 PM MDT #
Can you give me an explanation of what you mean with "sparse incremental access pattern"?
Posted by Henk Vandenbergh on July 31, 2008 at 05:19 PM MDT #
One question, is vdbench able to generate workload and run the workload defintion in the following pattern: x% of random read hit, y% sequential read hit, z% read miss and finally XX% write?
Posted by Alan on November 20, 2008 at 02:19 AM MST #
Will the following workloads generate the stated workload profile? Any advise is greatly appreciated.
10% random read hit
30% sequential read hit
20% read miss
40% write
wd=100pct_random_read,sd=sd1,rdpct=100%,xfersize=8k,seekpct=100,skew=10
wd=100pct_seq_read_hit,sd=sd1,rhpct=100%,xfersize=8k,seekpct=0,skew=30
wd=100pct_read_miss,sd=sd1,rhpct=0%,xfersize=8k,skew=20
wd=100pct_write,sd=sd1,whpct=100%,xfersize=8k,skew=40
Posted by Alan on November 20, 2008 at 02:41 AM MST #
Alan, This should work just fine but one small change is needed: remove the '%' character.
Henk.
Posted by Henk Vandenbergh on November 20, 2008 at 08:12 AM MST #
Henk, Thanks for the quick response. Another question. The intent of the above workload profile was to generate a sequence of workload consisting of random read + sequential reads. ie eg 3 sequential reads + 1 random read, so as to produce a pattern as close to the real production system as possible. So, is the above workload or vdbench able to achieve this pattern of granularity?
Posted by Alan on November 20, 2008 at 08:36 PM MST #
Alan,
It won't happen in this exact order. I/O inter-arrival times are calculated based on the I/O rate you specified and the distribution parameter used, exponential, uniform or deterministic. The end result is that at the end of a run (or when using deterministic each second) your I/O rates and the skew for each workload will match what you asked for.
If you really want to execute a workload as close as possible to your real production workload, look at the Vdbench Replay option and the Sun StorageTek Workload Analysis Tool (Swat). Swat is another of my tools and you’ll find a link to that somewhere in my blog. It’s available for Windows and Solaris.
Henk.
Posted by Henk Vandenbergh on November 20, 2008 at 09:12 PM MST #
Henk,
For vdbench, is that a way to simulate multiple hosts driving the SD concurrently? Something similar to the thread, but the thread in vdbench is referring to the outstanding IO in the queue.
Posted by Alan on November 21, 2008 at 03:03 AM MST #
I am not sure what you mean with 'multi host' here. There are sample multi-host parameter files in my blog.
Henk.
Posted by Henk Vandenbergh on November 21, 2008 at 06:02 AM MST #
Henk, I had a look at your multi-host parameter files. If i have not mistaken, your multiple hosts is actually referring to physical hosts. What i meant is, can vdbench simulate "multi-hosts" virtually rather than physically? Like IOmeter, they can be simulated by increasing the number of worker(s).
Posted by Alan on November 22, 2008 at 01:22 AM MST #
Henk,
I work on vdbench 5.0 by using File System testing and I have an issue with the vdbench compare. If I try to compare two output directories (generated with the same parameter file), I have the following error : "Error durging Workload Compare: Unmatching RD names in file /var/tmp/output0/summary.html:rd1/format_for_rd1<b></i>". Do you know something about that? Do I miss something?
Thanks,
Philippe.
Posted by Philippe on March 24, 2009 at 05:50 AM MDT #
Philippe,
Vdbench compare was never written for Vdbench File System testing; the data for that was never put in flatfile.html. That is something that is on my wishlist,but I am not sure if and when that will be done.
Henk.
Posted by Henk Vandenbergh on March 24, 2009 at 04:03 PM MDT #
Henk, thanks for your response. My idea was to test several ZFS FS performance with Vdbench FS and compare the results with Vdbench Compare. But ok, I will find another way to do it.
Philippe.
Posted by Philippe on March 25, 2009 at 01:58 AM MDT #
Can you run it on zLinux ?
Posted by Kaisar on April 06, 2009 at 02:02 PM MDT #
Kaisar,
send me your email address to vdbench@sun.com and I'll send you a (beta) version that contains zLinux support.
I just included it for the next Vdbench release.
Henk.
Posted by Henk Vandenbergh on April 06, 2009 at 02:41 PM MDT #
The cds.sun.com link no longer works, is there another source for a currently valid copy of vdbench please?
Posted by Paul (UK) on May 26, 2009 at 10:36 AM MDT #
Paul,
thank you for reminding me to remove this old link. You can find Vdbench now at vdbench.org
Henk.
Posted by Henk Vandenbergh on May 26, 2009 at 10:43 AM MDT #
Henk, I am testing an SSD Drive using directories/files "lun=/data/2/file0" and get miscompares on Linux. However, my HDD does not miscompare. Are there any limitations on using the faster SSD Drives?
Bill
Posted by Bill (USA) on September 22, 2009 at 04:17 PM MDT #
Bill,
Can you send a tar file of the complete Vdbench output directory to vdbench@sun.com?
Vdbench should not have any problems with SSDs, though maybe Linux has.
Posted by Henk Vandenbergh on September 22, 2009 at 04:23 PM MDT #