Using and installing vdbench

Storage Performance Testing with vdbench:

Introduction

This is a write-up on using vdbench. In this blog we will cover setting up vdbench on an Ubuntu server 14.04.5 LTS. Most of this information can be found in the vdbench guide on Oracle’s website.

First a few things you should know.

  1. Understand Linux administration (most of this stuff you can google)
    • You should be able to change access type to files
      • chmod ### /filename
    • Copy and create directories
      • cp to copy cp /filename cp /newdir/filename
      • mkdir
    • Install packages
      • apt-get for Ubuntu – apt-get install java*
      • apt-get install dstat
    • Setting up ssh keys for tool to use ssh and root

Note: Only needed if using a central server to collect all the data, single server testing ssh is not needed.

  1. ssh-keygen -t rsa
    • Follow the prompts and keep the defaults without adding anything for simple setup
  2. Once ssh key is setup you can type in ssh-copy-id (ip address)
  1. MUST unlock root account sudo passwd root; sudo passwd -u root
    • To use root either ssh in by logging out then logging back in with root or sudo -s
  1. With the proper version of Ubuntu 14.04 the correct java version is loaded by default. If you decide to run something like Ubuntu 12 you’ll need to upgrade java with apt-get
  2. Read the vdbench guide to understand all of the switches and what they are used for. We will cover a few in this blog but for all of the needed switches and values please see the guide.
  3. Even though you can run this in Windows for extensive testing leveraging multiple workers/servers it is best to use a Linux server

Installing vdbench

Now this is the easy part. Google vdbench download. This will pull a few links to Oracles website. Once on the site you’ll need a username and password to download the software. It is free just need an account to accept the licensing and to access the documentation and software that is stored in a zip file.

Once you’ve downloaded the zip file and documentation you’ll want to copy it to the server that you will be using, either a single server or a master server. To do this you’ll need an application like MobaXterm that combines the ssh session with TFTP and SCP capabilities to drag and drop files from your desktop to the server that we’ll be using. If using a MAC, there are several ways to go about copying files to a Linux server. I will not cover these in detail just know you will need to be able to perform these functions to move your downloads over to the server that we will be working with.

Note: If you load the desktop on the Ubuntu server you can use the browser to download this or if you are familiar with get/put commands you can do this from the CLI. Again go with what you are comfortable with as there are many way to go about doing this.

Now that you have the zip file downloaded you’ll want to extract it prior to moving it onto the Linux server unless you’re comfortable using gzip and gunzip commands then by all means use what you are comfortable with. Once copied over to the worker or master you may and I stress may need to run chmod to run the ./vdbench app.

Once installed go to the directory you have the unzipped files in and run ./vdbench -t this will run a test to make sure the tool is running as it should. This runs a single local worker.

Now that the test is finished let’s take a look at the output of the test.

root@vdbench-hx1:/# vdbench -t -o testout
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Vdbench distribution: vdbench50406 Wed July 20 15:49:52 MDT 2016
For documentation, see ‘vdbench.pdf’.

12:19:50.691 Created output directory ‘/testout’
12:19:50.726 input argument scanned: ‘-f/tmp/parmfile’
12:19:50.726 input argument scanned: ‘-otestout’
12:19:50.796 Starting slave: /root/testing/vdbench/vdbench SlaveJvm -m localhost -n localhost-10-160927-12.19.50.667 -l localhost-0 -p 5570
12:19:51.130 All slaves are now connected
12:19:51.222 Vdbench will attempt to expand a disk file if the requested file size is a multiple of 1mb
12:19:51.222 lun=/tmp/quick_vdbench_test does not exist or is too small. host=localhost
12:19:52.002 Starting RD=SD_format; I/O rate: Uncontrolled MAX; elapsed=(none); For loops: threads=2 iorate=max
12:19:52.479 All sequential workloads on all slaves are done.
12:19:52.479 This triggers end of run inspite of possibly some non-sequential workloads that are still running.

Sep 27, 2016 interval i/o MB/sec bytes read resp read write resp resp queue cpu% cpu%
rate 1024**2 i/o pct time resp resp max stddev depth sys+u sys
12:19:53.039 1 320.00 40.00 131072 0.00 0.133 0.000 0.133 0.255 0.016 0.0 12.9 2.5
12:19:53.054 avg_2-1 320.00 40.00 131072 0.00 0.133 0.000 0.133 0.255 0.016 0.0 12.9 2.5
12:19:54.001 Starting RD=rd1; I/O rate: 100; elapsed=5; For loops: None

Sep 27, 2016 interval i/o MB/sec bytes read resp read write resp resp queue cpu% cpu%
rate 1024**2 i/o pct time resp resp max stddev depth sys+u sys
12:19:55.010 1 78.00 0.08 1024 51.28 0.004 0.003 0.005 0.012 0.002 0.0 6.3 0.8
12:19:56.045 2 90.00 0.09 1024 52.22 0.004 0.004 0.005 0.020 0.002 0.0 2.0 0.5
12:19:57.045 3 115.00 0.11 1024 51.30 0.004 0.004 0.005 0.011 0.002 0.0 1.0 0.5
12:19:58.045 4 100.00 0.10 1024 50.00 0.004 0.003 0.006 0.059 0.006 0.0 0.5 0.0
12:19:59.048 5 96.00 0.09 1024 55.21 0.004 0.003 0.005 0.015 0.002 0.0 1.5 0.0
12:19:59.093 avg_2-5 95.80 0.09 1024 51.98 0.004 0.003 0.005 0.059 0.003 0.0 2.9 0.4
12:20:00.351 Vdbench execution completed successfully. Output directory: /testout 
This information is important as it will tell you where the output files are stored and this is the meat of what we are looking for. When we extract the data and start analyzing the data this is where we will get said data from.

Pulling the data from the html output

First thing we want to look for is output folder from vdbench just like the below example.

vdbenchoutputcapture

Since I am using MobaXterm I can just drag and drop from my session onto my desktop. Once you have the output folder copied open the folder and go to the server name or IP.html. It should look as follows;

vdbench-outputhtmlcapture

From here you can copy and past the data into Excel. Remove the top lines from the copy and past leaving only the header then highlight column a where you pasted the data. In the menu click data and select Text to Columns. See example below.

vdbenchtexttocolumn-capture

I keep the defaults and do not import the date column. This makes it easier to chart and provide customer graphs for people to view. Once you have done this you will see something that looks like.

vdbench-texttocolumn2-capture

No let’s setup a graph. First highlight the column that we want to see in the graph. In my example I will use MB/sec. Once highlighted click insert in the menu bar at the top of the Excel page. I typically click Recommended Charts that looks like the following.

vdbench-texttocolumn3-capture

From here select the chart that best works for you to review all the information graphically. When you are done you should have something that looks like the following.

capture

This concludes my review of installing vdbench on Ubuntu 14.04 and extracting data. You can always get much more detailed information from the vdbench guide on Oracle’s website.

Happy Testing!