Vdbench, is counted as one of the most powerful benchmarking tools and can also be used as a GUI tool or a CLI tool. It can work on different platforms like Windows, Solaris, and Linux. It is a controlled I/O load monitoring tool for storage systems and gains control over workload parameters like I/O rate, LUN or file size, transfer size and cache hit percentage. Also it can generate reports which are browser visible in HTML format.
Being an open source tool from Oracle, with 99 per cent of it is written in Java and one percent in C language, it works on all Linux and Windows operating systems and is designed to execute workloads on a storage system.
In an equation, it is explained as f (workload, Config) = Power + Performance. The performance of a storage array can be measured with a set of workloads defined through a configuration file. It runs as two or more Java virtual machines and the one we invoke is the master, which takes care of parsing and reporting. The actual workload is executed by one or more slaves. The slave can run along with the master or on a different host. Vdbench can identify data corruption of the storage system. A combination of data validation and journaling allows us to identify data corruption issues across executions. To be precise, Vdbench is an open source, enterprise-grade storage benchmark that comes free.
Installation part is as follows:
Set the directory
cd /root
mkdir vdbench
cd vdbench
Download Vdbench
Wget http://sourceforge.net/projects/vdbench/files/vdbench502.tar/download
Extract the TAR file
tar xvf vdbench502.tar
Create Paramater file
vim <your_param_filename>
Sample Parameters
sd=sd1,lun=/tmp/200MB_file.bin,size=200MB
wd=wd1,sd=sd1,xf=4k,seekpct=100,readpct=80
rd=rd1,wd=wd1,iorate=5000,elapsed=30,interval=1,forthreads=4
The Parameter file is made up of 3 sections
Storage Definition – Identifies each physical or logical volume or file system file to be used
Workload Definition – Defines what kind of workload will be executed using the storage definitions listed above
Run Definition – Defines what I/O rate to be generated, and how long the workload will run. In the above example, we will be writing a 200MB file to the /tmp directory. It will use a four kilobyte data transfer size with 80% read and 20% write off, which will be 100% random reads. It will run for 30 seconds with an average I/O rate of 5000 iops. The interval will update every second.
If you want to see how many IOPS you can get with the set parameters, you can set iorate=max instead of a number.
Test the param file
/root/vdbench/vdbench -f /root/vdbench/params/<your_param_filename>
Turn off unwanted services
chkconfig sendmail off
chkconfig yum-updatesd off
chkconfig bluetooth off
chkconfig iptables off
chkconfig ip6tables off
chkconfig snmpd off
chkconfig smartd off
chkconfig firstboot off
chkconfig iscsi off
chkconfig iscsid off
chkconfig ntpd off
Set SELinux to disabled
vim /etc/selinux/config
Set
SELINUX=disabled
Create StartUp Script
cd /etc/init.d
vim <startup_script_name>
Set Script Attributes
chmod +x <startup_script_name>
Start Script for Starting vdbench
#!/bin/bash
/root/vdbench/vdbench -l -f /root/vdbench/params/<params_filename> >/dev/null &
Create Link for the Script to start on Boot in init 3
cd /etc/rc3.d
ln -s ../init.d/<statup_script_name> S99<YourscriptLabel>
That will be enough to get the server rebooted.