You are on page 1of 99

Vdbench 5.

03
Vdbench
Users Guide
Version: 5.03
October 2012
Author: Henk Vandenbergh
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 1
Vdbench 5.03
1. Copyright Notice
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved.
2. Trademar Notice
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may e
trademarks of their respective o!ners.
!. "icense #estrictions $arranty/Conse%&ential 'amages 'isclaimer
"his soft!are and related doc#mentation are provided #nder a license agreement containing
restrictions on #se and disclos#re and are protected y intellect#al property la!s. $%cept as
e%pressly permitted in yo#r license agreement or allo!ed y la!, yo# may not #se, copy,
reprod#ce, translate, roadcast, modify, license, transmit, distri#te, e%hiit, perform,
p#lish or display any part, in any form, or y any means. &everse engineering, disassemly,
or
decompilation of this soft!are, #nless re'#ired y la! for interoperaility, is prohiited.
(. $arranty 'isclaimer
"he information contained herein is s#(ect to change !itho#t notice and is not !arranted to
e error)free. *f yo# find any errors, please report them to #s in !riting.
). #estricted #ights Notice
*f this is soft!are or related doc#mentation that is delivered to the +.,. -overnment or
anyone licensing it on ehalf of the +.,. -overnment, the follo!ing notice is applicale.

+.,. -O/$&01$0" $02 +,$&,. Oracle programs, incl#ding any operating system,
integrated soft!are, any programs installed on the hard!are, and/or doc#mentation,
delivered to +.,. -overnment end #sers are 3commercial comp#ter soft!are4 p#rs#ant to the
applicale 5ederal Ac'#isition &eg#lation and agency)specific s#pplemental reg#lations. As
s#ch, #se, d#plication, disclos#re, modification, and adaptation of the programs, incl#ding
any operating system, integrated soft!are, any programs installed on the hard!are, and/or
doc#mentation, shall e s#(ect to license terms and license restrictions applicale to the
programs. 0o other rights are granted to the +.,. -overnment.
*. +a,ardo&s Applications Notice
"his soft!are or hard!are is developed for general #se in a variety of information
management applications. *t is not developed or intended for #se in any inherently
dangero#s applications, incl#ding applications that may create a risk of personal in(#ry. *f
yo# #se this soft!are or hard!are in dangero#s applications, then yo# shall e responsile
to take all appropriate failsafe, ack#p, red#ndancy, and other meas#res to ens#re its safe
#se. Oracle Corporation and its affiliates disclaim any liaility for any damages ca#sed y
#se of this soft!are or hard!are in dangero#s applications.
-. Third .arty Content, .rod&cts, and /ervices 'isclaimer
"his soft!are or hard!are and doc#mentation may provide access to or information on
content, prod#cts and services from third parties. Oracle Corporation and its affiliates are not
responsile for and e%pressly disclaim all !arranties of any kind !ith respect to third)party
content, prod#cts, and services. Oracle Corporation and its affiliates !ill not e responsile
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2
Vdbench 5.03
for any loss, costs, or damages inc#rred d#e to yo#r access to or #se of third)party content,
prod#cts, or services.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 3
Vdbench 5.03
"A67$ O5 CO0"$0", .
1 /26$0C8. 2*,9 /26$0C8 :O&97OA2 -$0$&A"O& ......................................... ;
1.1 Introduction .............................................................................................................................. 6
1.2 Objective ................................................................................................................................... 6
1.3 Terminology .............................................................................................................................. 6
1.4 Summary of changes since release .!2 .................................................................................. "
1. Installing #dbench ................................................................................................................... $
1.6 %o& to start #dbench' ............................................................................................................. (
1." )*ecution +arameter overvie& ............................................................................................. 1!
1.$ ,arameter -ile.s/ .................................................................................................................... 12
1.( )*ecution +arameter detail ................................................................................................... 2!
1.1! #dbench utility functions. ................................................................................................... 2
1.11 0eneral +arameter detail .................................................................................................... 2"
1.12 1e+lay 0rou+ .10/ +arameter detail ................................................................................ 32
1.13 %ost 2efinition +arameter detail ........................................................................................ 33
1.14 Storage 2efinition +arameter detail .................................................................................. 3
1.1 3or4load 2efinition +arameter detail .............................................................................. 41
1.16 1un 2efinition for ra& I5O +arameter detail .................................................................... 4"
1.1" 2ata 2edu+lication' ............................................................................................................. 4
1.1$ 2ata #alidation and 6ournaling ........................................................................................ $
1.1( 1e+ort files ............................................................................................................................ 61
1.2! S&at #dbench Trace 1e+lay ............................................................................................... 64
1.21 7om+lete S&at #dbench 1e+lay )*am+le ........................................................................ 6
1.22 -ile system testing ................................................................................................................ 66
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 4
Vdbench 5.03
1.23 -ile System 2efinition .-S2/ +arameter overvie&' .......................................................... 6(
1.24 -ilesystem 3or4load 2efinition .-32/ +arameter overvie&' ....................................... 6(
1.2 1un 2efinition .12/ +arameters for file systems8 overvie& ............................................ "!
1.26 -ile System 2efinition .-S2/ +arameter detail' ................................................................ "!
1.2" -ile system 3or4load 2efinition .-32/ detail ................................................................. "4
1.2$ 1un 2efinition .12/ +arameters for file system testing8 detail ....................................... ""
1.2( 9ulti Threading and file system testing ............................................................................ $2
1.3! O+erations counts vs. nfsstat counts' ................................................................................. $3
1.31 1e+ort file e*am+les ............................................................................................................ $4
1.32 Sam+le +arameter files ....................................................................................................... $$
1.33 ,ermanently override 6ava soc4et +ort numbers. ............................................................ (1
1.34 6ava 1untime )nvironment ................................................................................................ (2
1.3 Solaris ................................................................................................................................... (2
2 /26$0C8 57A"5*7$ ,$7$C"*/$ <A&,*0- ........................................................... =>
> /26$0C8 :O&97OA2 CO1<A&$ .......................................................................... =?
? /26$0C8 ,2 <A&A1$"$& -$0$&A"*O0 "OO7.
......................................................................................................................................... =;
; /26$0C8 2A"A /A7*2A"*O0 <O,")<&OC$,,*0- "OO7. ................................. =@
1 /dench. 2isk /dench :orkload -enerator
Getting started with Vdbench:
Installation Instructions
Execution
Sa!le !araeter "iles
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 5
Vdbench 5.03
1.1 Introduction
Vdbench is a dis# I$% wor#load generator to be used "or testing and benchar#ing o" existing
and "uture storage !roducts.
Vdbench is written in &a'a with the ob(ecti'e o" su!!orting %racle heterogeneous attachent. )t
this tie Vdbench has been tested on Solaris S!arc and x*+, -indows ./, 2000, 2003, 200*,
01 and -indows 2, 31$40, )I0, 5inux, 6ac %S 0, 75inux, and nati'e V-are
.ote: one or ore o" these !lat"ors a8 not be a'ailable "or this latest release, this due to the
"act that a !ro!er s8ste "or a &a'a &.I 9 co!ile a8 not ha'e been a'ailable at the tie o"
distribution. In this case there will be a :reade.txt; "ile in the %S s!eci"ic subdirector8, as#ing
"or a 'olunteer to do a sall &a'a &.I 9 co!ile.
1.2 Objective
/he ob(ecti'e o" Vdbench is to generate a wide 'ariet8 o" controlled storage I$% wor#loads,
allowing control o'er wor#load !araeters such as I$% rate, 54. or "ile si7es, trans"er si7es,
thread count, 'olue count, 'olue s#ew, read$write ratios, read and write cache hit
!ercentages, and rando or se<uential wor#loads. /his a!!lies to both raw dis#s and "ile s8ste
"iles and is integrated with a detailed !er"orance re!orting echanis eliinating the need "or
the Solaris coand iostat or e<ui'alent !er"orance re!orting tools. Vdbench !er"orance
re!orts are web accessible and are lin#ed using 3/65. &ust !oint 8our browser to the
summary.html "ile in the Vdbench out!ut director8.
/here is no re<uireent "or Vdbench to run as root as long as the user has read$write access "or
the target dis#=s> or "ile s8ste=s> and "or the out!ut?re!orting director8.
.on?!er"orance related "unctionalit8 includes data 'alidation with Vdbench #ee!ing trac# o"
what data is written where, allowing 'alidation a"ter either a controlled or uncontrolled
shutdown.
1.3 Terminology
Execution !araeters control the o'erall execution o" Vdbench and control things li#e
!araeter "ile nae and target out!ut director8 nae.
a! "#O !ork$oad !araeters describe the storage con"iguration to be used and the
wor#load to be generated. /he !araeters include Genera$% Host &e'inition (H&)% e*$a+
Grou* (G)% ,torage &e'inition (,&)% -ork$oad &e'inition (-&) and un &e'inition (&)
and ust alwa8s be entered in the order in which the8 are listed here. ) un is the execution
o" one wor#load re<uested b8 a @un Ae"inition. 6ulti!le uns can be re<uested within one
@un Ae"inition.
.i$e s+ste/ -ork$oad !araeters describe the "ile s8ste con"iguration to be used and the
wor#load to be generated. /he !araeters include Genera$% Host &e'inition (H&)% .i$e
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +
Vdbench 5.03
,+ste/ &e'inition (.,&)% .i$e s+ste/ -ork$oad &e'inition (.-&) and un &e'inition
(&) and ust alwa8s be entered in the order in which the8 are listed here. ) un is the
execution o" one wor#load re<uested b8 a @un Ae"inition. 6ulti!le uns can be re<uested
within one @un Ae"inition.
e*$a+: /his Vdbench "unction will re!la8 the I$% wor#load traced with and !rocessed b8
the Sun Storage/e#
/6
-or#load )nal8sis /ool =Swat>.
0aster and ,$a1e: Vdbench runs as two or ore &a'a Virtual 6achines =&V6s>. /he &V6
that 8ou start is the aster. /he aster ta#es care o" the !arsing o" all the !araeters, it
deterines which wor#loads should run, and then will also do all the re!orting. /he actual
wor#load is executed b8 one or ore Sla'es. ) Sla'e can run on the host where the 6aster
was started, or it can run on an8 reote host as de"ined in the !araeter "ile. See also B? nnB:
6ulti &V6 Execution
&ata Va$idation: /hough the ain ob(ecti'e o" Vdbench has alwa8s been to execute storage
I$% wor#loads, Vdbench also is 'er8 good at identi"8ing data corru!tions on 8our storage.
2ourna$ing: ) cobination o" Aata Validation and &ournaling allows 8ou to identi"8 data
corru!tion issues across executions o" Vdbench. See Aata Validation and &ournaling.
1.4 Summary of changes since release 5.2
1. /he Vdbench G4I has been reo'ed.
2. /a!e s!eci"ic "unctionalit8 has been reo'ed. /a!e access will wor# though as long as
8ou s!eci"8 single threaded I$% using BthreadsC1B.
3. Vdbench allows 8ou to choose the dedu! ratio o" the data it generates: dedu!ratioC
4. 9o!ression has been co!letel8 rewritten, now using co!ression ratio instead o"
co!ression !ercentages: co!ratioC
5. @e!la8 and data 'alidation can now be done using ulti!le &V6s.
+. @e!la8 no longer re<uires all detail data to be #e!t in eor8.
2. @es!onse tie histogras now also "or raw I$% wor#loads.
*. Dorat o" the histogras has changed "or both "ile s8ste wor#loads and raw wor#loads.
E. )ddition o" three new coluns in raw I$% re!orts: read and write res!onse tie and
acti'e <ueue de!th.
10. )ddition o" the co!ression and dedu! ratios and abo'e read$write res!onse ties in the
"lat"ile.
11. ) color chooser "or Vdbench wor#load co!are.
12. Aata Validation "or raw I$% now su!!orts a ix o" data trans"er si7es instead o" onl8 one
"ixed trans"er si7e.
13. Ae"ault data !atterns generated will guarantee that the data will not co!ress and is
uni<ue so cannot result in dedu! being used. /his change was ade to assure that
!er"orance results are not accidentall8 bene"iting "ro a target storage de'ice ha'ing
co!ression and$or dedu! a'ailable.
14. /he "ollowing re"erence under the B"oratCB !araeter has been reo'ed: . "When one or
more forxxx= parameters are specified the delete and recreation in between runs is
only done when the directory and file structure changes, for instance because of using
the fordepth= parameter." Dorat -I55 be done "or each "orxxx unless "oratConce
is s!eci"ied.
15. 9oncurrent se<uential streas against the sae lun. See the BstreasCB !araeter.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2
Vdbench 5.03
1+. Dile sharing. .orall8 Vdbench Dile S8ste "unctionalit8 onl8 allows a single thread to
use a "ile. S!eci"8ing B"ileioC=rando,shared>B changes this, allowing a "ile to be
concurrentl8 used b8 ulti!le threads.
12. Variable substitution : this allows !araeter "ile contents to be o'erridden "ro the
coand?line, "or instance .$'dbench ?" !ar"ile lunC$x$8$7
1*. axdata C. Instead o" controlling the duration o" a run using the ela!sedC !araeter, 8ou
now can s!eci"8 axdataCnnn, where Vdbench will terinate a"ter nnn b8tes o" data
ha'e been read or written. /he run will then terinate a"ter the lower o" ela!sedC or
axdataC.
1E. B"oratCliitedB to sto! a "ile s8ste "oratting run a"ter ela!sedC seconds instead o"
waiting "or all "iles to be "oratted.
20. BrangeC=in,ax> B allows 8ou to wra! around 8our range "ro the end to the begin o" a
lun.
21. Bs#i! se<uentialB I$% using the strideC=in,ax> and the see#!ctC !araeter.
22. Bx"ersi7eC=in,ax,align> B: generate rando data trans"er si7e.
23. Btotals.htl B: this re!ort onl8 shows run totals.
24. %n each re!ort Vdbench alwa8s generates htl lin#s to the data o" each di""erent @un
Ae"inition =@A>. -ith co!lex runs those lin#s itsel" could becoe hard to "ind. %nl8
the last 'alue o" the :"orxxC; !araeters will now be shown, a#ing run out!ut a little
easier to "ind.
25. distributionC=xxx,'ariable>: allows "or second b8 second control o'er I$% rates.
1.5 Installing !dbench
Vdbench is !ac#aged as a zip "ile. 4n7i! the "ile and 8ou;re read8 to go.
/he 7i! "ile contains e'er8thing 8ou need "or both -indows and 4nix s8stes.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *
Vdbench 5.03
1." #o$ to start !dbench%
Fou can do a 'er8 <uic# si!le test without e'en ha'ing to create a !araeter "ile:
.$'dbench Gt ="or a raw I$% wor#load>
.$'dbench ?t" ="or a "ile s8ste wor#load>
)"ter this, use 8our "a'orite web browser to loo# at $'dbench$out!ut$suar8.htl and 8ou;ll
see the re!orts that Vdbench creates.
/o start Vdbench:
4nix: $hoe$'dbench$'dbench G" !ar"ile
-indows: c:H'dbenchH'dbench.bat G" !ar"ile
Fou can "ind soe si!le exa!le !araeter "iles here: sam+le +arameter files.
/here are an8 ore exa!les in the ..$exa!les$ director8.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E
Vdbench 5.03
1.& '(ecution )arameter overvie$
.$'dbench I? "xxx 888 777J I?o xxxJ I?c xJ I?sJ I?#J I?e nnJ I?i nnJ I?w nn J I? nnJ I?'J I?'rJ I?'wJ
I?'tJ I?'cJ I?(J I?(rJ I?(J I?(nJ I?(roJ I?! nnnJ I?tJ I?l nnnJ I xxxC888,K.J I ? J
Execution !araeters ust be s!eci"ied indi'iduall8: Enter :?' G"!ar"ile;, and not
:?'"!ar"ile;.

or,
.$'dbench Ico!areJ Id'!ostJ IeditJ I(stac#J I!arseJ I!rintJ IsdsJ IrshJ "or soe Vdbench utilit8
"unctions.
3ere is a brie" descri!tion o" each !araeter, with a lin# to a ore detailed descri!tion:
1.@.1 $%ec#tion <arameters
See also Execution 1araeter Aetail.
co!are Start Vdbench wor#load co!are
d'!ost 1ost?!rocessing o" out!ut generated b8 Aata Validation
edit 1riiti'e "ull screen editor, s8ntax :.$'dbench edit "ile.nae;.
(stac# 9reate stac# trace. @e<uires a &AL.
!arse="lat> Selecti'e !arsing o" "lat"ile.htl
!rint 1rint an8 bloc# on an8 dis# or dis# "ile
rsh Start Vdbench @S3 daeon =Dor ulti?host testing>
sds Start Vdbench SA !araeter generation tool =Solaris, 5inux, -indows>
?" xxx 888 777 -or#load !araeter "ile nae=s>. %ne !araeter "ile is re<uired.
?o xxx %ut!ut director8 "or re!orting. Ae"ault is :out!ut; in current director8.
?t @un a "i'e second sa!le wor#load on a sall dis# "ile ="or deo>.
?t" @un a "i'e second sa!le Dile s8ste wor#load.
?e nn %'erride :ela!sed; !araeters in @un Ae"initions =@A>
?i nn %'erride :inter'al; !araeters in @un Ae"initions =@A>
?w nn %'erride :waru!; !araeters in @un Ae"initions =@A>.
? nn %'erride the aount o" concurrent &V6s to run wor#load
?' )cti'ate data 'alidation.
?'r )cti'ate data 'alidation, iediatel8 re?read a"ter each write.
?'w )cti'ate data 'alidation, but don;t read be"ore write.
?'t )cti'ate data 'alidation, #ee! trac# o" each write tiesta! =eor8
intensi'e>
?'c )cti'ate data 'alidation, but continue using the !re'iousl8 created a! "ile.
?( )cti'ate data 'alidation with (ournaling.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 10
Vdbench 5.03
?(r @eco'er existing (ournal, 'alidate data and run wor#load
?(ro @eco'er existing (ournal, 'alidate data but do not run re<uested wor#load.
?( )cti'ate (ournaling, but onl8 write the (ournal a!s.
?(n )cti'ate (ournaling, but use as8nchronous writes to (ournal.
?s Siulate execution. Scans !araeter "iles and dis!la8s run naes.
?# Solaris onl8: @e!ort #stat statistics on console.
?c 9lean =delete> existing DSA "ile s8ste structure at start o" run.
?co Dorce "oratConl8
?c8 Dorce "oratC8es
?cn Dorce "oratCno
?! nnn %'erride &a'a soc#et !ort nuber =de"ault 5520>.
?l nnn =lowercase B5B>: )"ter the last run, start o'er with the "irst run. -ithout nnn this
is an endless loo!, or loo! "or a total nnn s$$h seconds$inutes$hours, e.g. ?l
24h
G 9oand line in!ut "or Vdbench. :?"; "iles will be ignored.
xxxC888 K.. See 'ariable substitution.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 11
Vdbench 5.03
1.* +arameter ,ile-s.
/he !araeter "iles entered will be read in the order s!eci"ied. )ll !araeters ha'e a re<uired
order as de"ined here: 0eneral, %28 108 S28 32 and 12, or "or "ile s8ste testing: 0eneral,
%28 -S28 -32 and 12.
.ote that not all t8!es o" !araeters are alwa8s needed.
1.A.1 /ariale s#stit#tion.
Variable substitution allows 8ou to code 'ariables li#e Mlun in 8our !araeter "ile which then
can be o'erridden "ro the coand line. Dor exa!le:
sdCsd1,lunCMlun
Mlun ust be o'erridden "ro the coand line: .$'dbench ?" !ar"ile lunC$de'$x.
In case 8our !araeter "ile is ebedded in a shell scri!t, 8ou a8 also s!eci"8 a BNB to !re'ent
accidental substitution b8 the scri!ting language, e.g. sdCsd1,lunCNlun
1.A.2 1#lti)host parameter replication.
-hene'er the constant :Mhost;, :Nhost; or :Ohost; is "ound in an in!ut line in a !araeter "ile, this
line is autoaticall8 re!eated once "or each host label that has been de"ined using the 3ost
Ae"inition =3A> !araeters. Soe ties when 8ou run tests against ulti!le di""erent hosts,
directing "ile s8ste wor#loads towards s!eci"ic target hosts can becoe ight8 co!lex. /he
Mhost !araeter is there to a#e li"e a little easier. ) si!le exa!le:
hdChost1,K
hdChost2,K.
"sdC"sdPMhost,anchorC$dir$Mhost,K..
@esult:
"sdC"sdPhost1,anchorC$dir$host1,K..
"sdC"sdPhost2,anchorC$dir$host2,K..
&ust add hostChost3,K. "sdC"sdPhost1,anchorC$dir$host1,K..
"sdC"sdPhost2,anchorC$dir$host2,K..
"sdC"sdPhost3,anchorC$dir$host3,K..
.ote that this onl8 wor#s on one single line in the !araeter "ile, not i" the !araeters are s!lit
o'er ulti!le lines, "or instance using abo'e exa!le, one line "or "sdC"sdPMhost, and then
anchorC on the next line.
:Mhost; and :Nhost; are re!laced with the host label. :Nhost; is there to !re'ent !robles when 8ou
include 8our !araeter "ile inside o" a #sh$csh scri!t that is tr8ing to inter!ret Mhost too earl8.
:Ohost; is re!laced with the current relati'e host, 0,1,2, etc.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 12
Vdbench 5.03
1.A.> incl#deBparmfile
/here is howe'er one !araeter that can be an8where: includeC$!ar$"ile$nae
-hen this !araeter is "ound, the contents o" the "ile nae s!eci"ied will be co!ied in !lace.
Exa!le: includeC$co!licated$wor#load$de"initions.txt
Fou can use as an8 includes as needed, though o'eruse o" this !araeter will a#e it 'er8
di""icult to ta#e a <uic# loo# at a !araeter "ile to see what;s being re<uested. Dile
:!ar"ile.htl; in the out!ut director8 will show 8ou the "inal results o" e'er8thing that has been
included.
1.A.? -eneral <arameters. Overvie!
/hese !araeters ust be the 'irst !araeters in the !araeter "ile, be"ore an8 SA or DSA.
See also General 1araeter Aetail.
General !araeters
co!ratioCnn S!eci"8 the co!ression ratio o" the data !attern used "or writes.
createPanchorsC8es 9reate !arent directories "or DSA anchor.
dataPerrorsCnn /erinate a"ter BnnB read$write$data 'alidation errors =de"ault 50>
dataPerrorsCcd @un coand or scri!t BcdB a"ter "irst read$write$data 'alidation error,
then terinate.
See also Aata Aedu!lication !araeters:
dedu!ratioC Ex!ected ratio. Ae"ault 1 =all bloc#s are uni<ue>.
dedu!unitC -hat si7e o" data does Aedu! co!areQ
dedu!setsC 3ow an8 t8!es o" du!licates.
endcdCcd Execute coand or scri!t at the end o" the last run
"oratsdsC Dorce a one?tie =!re>"orat o" all SAs
"oratx"ersi7eC S!eci"8 x"ersi7e used when creating, ex!anding, or =!re>"oratting an
SA.
histograC=de"ault,K.> %'erride de"aults "or res!onse tie histogra.
includeC$"ile$nae Includes $"ile$nae inline. See abo'e.
!atternC %'erride the de"ault data !attern generation.
!ortCnn %'erride the &a'a soc#et !ort nuber.
re!ortChostPdetail
re!ortCsla'ePdetail
S!eci"ies which SA detail re!orts to generate. Ae"ault is SA total onl8.
startcdCcd Execute coand or scri!t at the beginning o" the "irst run
swatC=xx,88> 9all Swat to create !er"orance charts.
Aata Validation !araeters:
"orcePerrorPa"terC=nn,> Siulate data 'alidation error a"ter nn reads. Siulate :; errors
=de"ault 1>
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 13
Vdbench 5.03
'alidateC8es =?'t> )cti'ate Aata Validation. %!tions can be cobined:
'alidateC=x,8,7>
'alidateCreadPa"terPwrite =?'r> @e?reads a data bloc# iediatel8 a"ter it was written.
'alidateCnoP!reread =?'w> Ao not read be"ore rewrite, though this de"eats the !ur!ose o"
data 'alidationN
'alidateCtie =?'t> #ee! trac# o" each write tiesta! =eor8 intensi'e>
&ournaling !araeters:
(ournalC8es )cti'ate Aata Validation and &ournaling:
(ournalCreco'er @eco'er existing (ournal, 'alidate data and run wor#load
(ournalConl8 @eco'er existing (ournal, 'alidate data but do not run re<uested
wor#load.
(ournalCno"lush 4se as8nchronous I$% on (ournal "iles
1.A.; 8ost 2efinition C82D <arameter overvie!
/hese !araeters are %.5F needed when running Vdbench in a ulti?host en'ironent or i"
8ou want to o'erride the nuber o" &V6s used in a single?host en'ironent.
See also 3ost Ae"inition !araeter detail.
hdCde"ault Sets de"aults "or all 3As that are entered later
hdClocalhost Sets 'alues "or the current host
hdChostPlabel S!eci"8 a host label.
s8steChostPnae 3ost I1 address or networ# nae, e.g. x87.custoer.co
'dbenchC'dbenchPdirPnae -here to "ind Vdbench on a reote host i" di""erent "ro current.
('sCnnn 3ow an8 sla'es to use. See 6ulti &V6 execution.
shellCrsh R ssh R 'dbench 3ow to start a Vdbench sla'e on a reote s8ste.
userCxxxx 4serid on reote s8ste @e<uired.
clientsCnn /his host will siulate the running o" ulti!le :clients;. Ver8
use"ul i" 8ou want to siulate nuerous clients "or "ile ser'ers
without ha'ing all the hardware.
ountCSount xxx KS /his ount coand is issued on the target host a"ter the
!ossibl8 needed ount directories ha'e been created.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 14
Vdbench 5.03
1.A.E &eplay -ro#p C&-D <arameter Overvie!
See also Swat and Vdbench @e!la8.
rgCnae 4ni<ue nae "or this @e!la8 Grou! =@G>.
de'icesC=xxx,888,K.> /he de'ice nubers "ro Swat;s "lat"ile.bin.g7 to be re!la8ed.
Exa!le: rgCgrou!1,de'icesC=*E4+5200,+5+*10*,110>
.ote: Swat /race Dacilit8 =S/D> will create @e!la8 !araeters "or 8ou. Select the :Dile; :9reate
@e!la8 !araeter "ile; enu o!tion. )ll thatBs then le"t to do is s!eci"8 enough SAs to satis"8 the
aount o" gigab8tes needed.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 15
Vdbench 5.03
1.A.@ ,torage 2efinition C,2D <arameter Overvie!
See also Storage Ae"inition 1araeter Aetail.
/his set o" !araeters identi"ies each !h8sical or logical 'olue anager 'olue or "ile s8ste
"ile used in the re<uested wor#load. %" course, with a "ile s8ste "ile, the "ile s8ste ta#es the
res!onsibilit8 o" all I$%: reads and writes can and will be cached =see also o!en"lagsC> and
Vdbench will not ha'e control o'er physical I$%. 3owe'er, Vdbench can be used to test "ile
s8ste "ile !er"orance =See also Dile s8ste testing>.
Exa!le: sdCsd1,lunC$de'$rds#$c0t0d0s0,threadsC*
sdCde"ault Sets de"aults "or all SAs that are entered later.
sdCnae 4ni<ue nae "or this Storage Ae"inition =SA>.
hostCnae .ae o" host where this SA can be "ound. Ae"ault :localhost;
lunClunPnae .ae o" raw dis# or "ile s8ste "ile.
alignCnnn Generate logical b8te address in :nnn; b8te boundaries, not using de"ault
:x"ersi7e; boundaries.
countC=nn,> 9reates a se<uence o" SA !araeters.
hitareaCnn See read hit !ercentage "or an ex!lanation. Ae"ault 1.
(ournalCxxx Airector8 nae "or (ournal "ile "or data 'alidation
o""setCnnn )t which o""set in a lun to start I$%.
o!en"lagsC="lag,..> 1ass s!eci"ic "lags when o!ening a lun or "ile
rangeC=nn,> 4se onl8 a subset BrangeCnnB: 5iit See# @ange o" this SA.
re!la8C=grou!,..> @e!la8 Grou!=s> using this SA.
re!la8C=nnn,..> Ae'ice nuber=s> to select "or Swat Vdbench re!la8
resetbusCnnn Issue ioctl =4S9SIP@ESE/P)55> e'er8 nnn seconds. Solaris onl8
resetlunCnnn Issue ioctl =4S9SIP@ESE/> e'er8 nnn seconds. Solaris onl8
si7eCnn Si7e o" the raw dis# or "ile to use "or wor#load. %!tional unless 8ou
want Vdbench to create a dis# "ile "or 8ou.
streasC=nn,> 9reate inde!endent se<uential streas on the sae de'ice.
threadsCnn 6axiu nuber o" concurrent outstanding I$% "or this SA. Ae"ault *
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 1+
Vdbench 5.03
1.A.A 5ile system 2efinition C5,2D <arameter Overvie!
See Diles8ste Ae"inition =DSA> !araeter o'er'iew
1.A.= :orkload 2efinition C:2D <arameter Overvie!
See also -or#load Ae"inition 1araeter Aetail.
/he -or#load Ae"inition !araeters describe what #ind o" wor#load ust be executed using the
storage de"initions entered.
Exa!le: wdCwd1,sdC=sd1,sd2>,rd!ctC100,x"ersi7eC4#
wdCde"ault Sets de"aults "or all -As that are entered later.
wdCnae 4ni<ue nae "or this -or#load Ae"inition =-A>
sdCxx .ae=s> o" Storage Ae"inition=s> to use
hostChostPlabel -hich host to run this wor#load on. Ae"ault localhost.
iorateCnn @e<uested "ixed I$% rate "or this wor#load.
o!en"lagsC="lag,..> 1ass s!eci"ic "lags when o!ening a lun or "ile.
!riorit8Cnn I$% !riorit8 to be used "or this wor#load.
rangeC=nn,nn> 5iit see# range to a de"ined range within an SA.
rd!ctCnn @ead !ercentage. Ae"ault 100.
rh!ctCnn @ead hit !ercentage. Ae"ault 0.
see#!ctCnn 1ercentage o" rando see#s. Ae"ault see#!ctC100 or
see#!ctCrando.
s#ewCnn 1ercentage o" s#ew that this wor#load recei'es "ro the total I$%
rate.
strideC=in,ax> /o allow "or s#i!?se<uential I$%.
wh!ctCnn -rite hit !ercentage. Ae"ault 0.
x"ersi7eCnn Aata trans"er si7e. Ae"ault 4#.
x"ersi7eC=n,,n,,..> S!eci"8 a distribution list with !ercentages.
x"ersi7eC=in,ax,align> Generate x"ersi7e as a rando 'alue between in and ax.
1.A.10 5ile system :orkload 2efinition C5:2D <arameter
Overvie!
See Diles8ste -or#load Ae"inition =D-A> !araeter o'er'iew
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 12
Vdbench 5.03
1.A.11 &#n 2efinition C&2D <arameter Overvie! C5or ra! */O
testingD
See also @un Ae"inition 1araeter Aetail.
/he @un Ae"inition !araeters de"ine which o" the earlier de"ined wor#loads need to be
executed, what I$% rates need to be generated, and how long the wor#load will run. %ne @un
Ae"inition can result in ulti!le actual wor#loads, de!ending on the !araeters used.
Exa!le: rdCrun1,wdC=wd1,wd2>,iorateC1000,ela!sedC+0,inter'alC5
/here is a se!arate list o" @A !araeters "or "ile s8ste testing.
rdCde"ault Sets de"aults "or all @As that are entered later.
rdCnae 4ni<ue nae "or this @un Ae"inition =@A>.
wdCxx -or#load Ae"initions to use "or this run.
sdCxxx -hich SAs to use "or this run =%!tional>.
cur'eC=nn,nn,..> Aata !oints to generate when creating a !er"orance cur'e.
distributionC=xI,'ariableJ I$% inter arri'al tie calculations: ex!onential, uni"or, or
deterinistic. Ae"ault ex!onential.
ela!sedCnn Ela!sed tie "or this run in seconds. Ae"ault 30 seconds.
axdataCnnn Sto! the run a"ter nnn b8tes ha'e been read or written, e.g.
axdataC200g. Vdbench will sto! at the lower o" ela!sedC
and axdataC.
endcdCcd Execute coand or scri!t at the end o" the last run
="or>co!ratioCnn 6ulti!le runs "or each co!ression !ercentage.
="or>hitareaCnn 6ulti!le runs "or each hit area si7e.
="or>h!ctCnn 6ulti!le runs "or each read hit !ercentage.
="or>rd!ctCnn 6ulti!le runs "or each read !ercentage.
="or>see#!ctCnn 6ulti!le runs "or each see# !ercentage.
="or>threadsCnn 6ulti!le runs "or each read thread count.
="or>wh!ctCnn 6ulti!le runs "or each write hit !ercentage.
="or>x"ersi7eCnn 6ulti!le runs "or each data trans"er si7e.
6ost "orxxx !araeters can (ust be abbre'iated to their regular nae, e.g. x"ersi7eC=..,..>
inter'alCnn @e!orting inter'al in seconds. Ae"ault Bin=ela!sed$2,+0>B
iorateC=nn,nn,nn,K> %ne or ore I$% rates.
iorateCcur'e 9reate a !er"orance cur'e.
iorateCax @un an uncontro$$ed wor#load.
iorateC=nn,ss,K> nn,ss: !airs o" I$% rates and seconds o" duration "or this I$%
rate. See also BdistributionC'ariableB.
o!en"lagsCxxxx 1ass s!eci"ic "lags when o!ening a lun or "ile
!auseCnn Slee! BnnB seconds be"ore starting next run.
re!la8C="ilenae,s!litPdir ?B"ilenaeB: @e!la8 "ile nae used "or Swat Vdbench re!la8
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 1*
Vdbench 5.03
,nn> ? Bs!litPdirB: director8 used to do the re!la8 "ile s!lit.
? BnnB: how o"ten to re!eat the re!la8.
startcdCcd Execute coand or scri!t at the beginning o" the "irst run
waru!Cnn %'erride waru! !eriod.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 1E
Vdbench 5.03
1./ '(ecution )arameter detail
1.=.1 F)f %%% F. :orkload <arameter 5ileCsD
/he wor#load !araeter "ile=s> contains all the wor#load !araeters.
Vdbench wor#load !araeters can also be !assed as coand line !araeters. )ll coand
line in!ut entered a"ter the "irst blan# se!arated Bh8!henB =T ? T> will be used as a re!laceent "or
the wor#load !araeter "ile. Since !arentheses are s!ecial characters in 4nix shells, =signi"8ing a
sub shell> 8ou ust either esca!e !arentheses or enclose !araeters in either single or double
<uotesU e.g., .$'dbench Go out!ut ? TsdCK wdCK rdC..T
9oand line !araeters are used as a re*$ace/ent "or the B?" !ar"ileB o!tion, not an addition.
/here are "i'e grou!s o" !araeters in the "ile: General =o!tional>, 3ost Ae"inition =%2>
=o!tional>, Storage Ae"inition =S2>, -or#load Ae"inition =32>, and @un Ae"inition =12>. Dor
Dile s8ste testing this will be General =o!tional>, 3ost Ae"inition =%2> =o!tional>, Dile S8ste
Ae"inition =-S2>, Dile s8ste -or#load Ae"inition =-32>, and @un Ae"inition =12>.
/hese grou!s ust be entered in the order de"ined here.
Each !araeter has a #e8word "ollowed b8 one or ore sub !araeters. 6ost #e8words =and
al!hanueric sub !araeter> can be abbre'iated to its shortest uni<ue 'alue with a iniu o"
two characters. Dor exa!le x"ersi7eC512 can be abbre'iated to x"C512. Sub !araeters can be
coded with a single 'alue BiorateC1000B, or with ulti!le 'alues BiorateC=100,200,300>B. 6ulti!le
'alues ust alwa8s be enclosed within !arentheses. ) set o" sub !araeters ust be either
nueric, or al!hanueric, not a ix. .ot all #e8words acce!t ulti!le sub !araeters, but the
docuentation will a#e clear which !araeters will acce!t the. Le8words a8 be entered in
ixed case: e.g. B0"ersi7eC4#B. -hen using ebedded blan#s or other s!ecial characters =B,B B?B or
BCB> 8ou ust enca!sulate the !araeters in double <uotes.
.ueric !araeters allow de"inition in =#>ilob8tes, =>egab8tes, =g>igab8tes and =t>erab8tes.
#$$g$t a8 be s!eci"ied in lower or u!!er case. %ne #ilob8te e<uals 1024 b8tes. /ie 'alues
a8 also be entered as inutes or hoursU e.g., Bela!sedC2200 is e<ui'alent to Bela!sedC120B or
:ela!sedC2h;.
6ulti!le nueric 'alues can be entered as "ollows:
#e8wordC=1,2,3,4,5,+,2,*,E,10,..> Indi'idual 'alues
#e8wordC=1?10,1> @ange, "ro 1 to 10, increented b8 1
=1,2,3,4,5,+,2,*,E,10>
#e8wordC=1?+4,d> Aoubles: "ro 1 to +4, each successi'e 'alue
doubled =1,2,4,*,1+,32,+4>
#e8wordC=+4,1,d> @e'erse double =di'ide b8 two>
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 20
Vdbench 5.03
) detailed !araeter scan re!ort is written to output$parmscan.html. -hen there are !robles
with the inter!retation o" the #e8words and sub !araeters, loo#ing at this "ile can be 'er8
hel!"ul because it shows the last !araeter that was read and inter!reted. ) co!lete co!8 o" the
in!ut !araeters is written to output$parmfile.html. /his is done so that when 8ou loo# at a
Vdbench out!ut director8 8ou will see exactl8 what wor#load was executed ?? no ore guessing
tr8ing to reeber :what did I run + onths ago;.
9oents: a line starting with B$B, BOB or BVB and an8thing "ollowing the "irst blan# on a line is
considered a coent. )lso, a line beginning with Beo"B is treated as end o" "ile, so whate'er is
be8ond that will be ignored.
9ontinuation: I" a line gets too large 8ou a8 continue the !araeters on the next line b8 ending
the line with a coa and a blan# and then start the next line with a new #e8word.
Vdbench allows "or the s!eci"ication o" ulti!le !araeter "iles. /his allows "or instance the
se!aration o" SA !araeters "ro -A and @A !araeters. Iagine running the sae wor#load
on di""erent storage con"igurations. Fou can then create one -A and @A !araeter "ile, and
ulti!le SA !araeter "iles, running it as "ollows: W.$'dbench G" sdP!ar"ile wdPrdP!ar"ileS.
includeC$!ar$"ile$nae
-hen this !araeter is "ound, the contents o" the "ile nae s!eci"ied will be co!ied in !lace.
Exa!le: includeC$co!licated$wor#load$de"initions.!ar"ile
1.=.2 F)o%%%F. O#tp#t 2irectory
Vdbench writes all its 3/65 "iles to this out!ut director8. /he director8 will be created i" it does
not exist. )n alread8 existing director8 will be reused a"ter "irst deleting all existing 3/65 "iles.
@eused directories can contain 3/65 "iles that were !laced there b8 an earlier execution o"
Vdbench, and a8 not be related in an8 wa8 to the new execution. 5ea'ing these "iles around
could cause con"usion, so the old 3/65 "iles are deleted.
I" 8ou do not want to reuse an out!ut director8, 8ou a8 add a BXB a"ter the director8 nae: e.g.
B?o dirnaeX; . I" BdirnaeB does not exist it will be created. I" it does exist, the director8 nae is
increented b8 one to Bdirnae001B, and i" that director8 nae is a'ailable it is created. )nd so
on until BdirnaeEEEB, a"ter which Vdbench will sto!.
Fou a8 also re<uest that a tiesta! be added to the out!ut director8 nae: B?o out!ut.todB will
result in a director8 naed Bout!ut.88dd.hhssB.
/his d8naic creation o" new out!ut director8 naes is 'er8 use"ul i" 8ou don;t want to
accidentall8 o'erwrite this 'er8 i!ortant test that (ust too# 8ou 24 hours.
Ae"ault: B?" out!utB.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 21
Vdbench 5.03
1.=.> F)vF. Activate 2ata /alidation
/his execution !araeter acti'ates Aata Validation. Each write o" a bloc# will be recorded, and
a"ter the next read to the sae bloc#, the bloc#;s old contents will be 'alidated. /he next write to
the bloc# will cause the bloc# to be read "irst and then 'alidated.
%!tion B?'rB can be used to do a read and 'alidate iediatel8 a"ter each write, 'ersus norall8
onl8 'alidating when a bloc# o" data is scheduled "or the next read or the next write. -hen doing
I$% against a large 54. it can norall8 ta#e <uite a while be"ore a bloc# is re"erenced again.
So, at ties this a8 be use"ul to get a <uic# con"iration that the data is correct.
Ye aware, howe'er, that reading a bloc# iediatel8 a"ter a write li#el8 will onl8 show that the
data reached the controller cache and there is no !roo" that the data e'er reached the !h8sical
dis# dri'es.
%!tion B?'tB will sa'e the tiesta! o" the last success"ul read or write in eor8 =no (ournaling
a'ailable>. -hen that data bloc# "ails this tiesta! will be re!orted. Lnowing the tie o" da8
that the bloc# was good can hel! 8ou identi"8 which error in(ection ight ha'e caused the
!roble. Yeware: this re<uires * ore b8tes o" eor8 !er data bloc# =eor8 needs "or 512
b8te bloc#s could there"ore be !rohibiti'e>.
See Aata Validation and &ournaling "or a ore detailed descri!tion o" data 'alidation.
Aata Validation can also be acti'ated using the :'alidateC8es; !araeter in the !araeter "ile.
1.=.? F)(F. Activate 2ata /alidation and Jo#rnaling
&ournaling allows data 'alidation to continue a"ter I$% or the o!erating s8ste terinates.
B?(B creates a new (ournal "ile or o'erwrites an existing one. S!eci"8 B?(rB to reco'er an existing
(ournal. B?(nB !re'ents a "lush to dis# on (ournal writes =b8 de"ault, each (ournal write is "lushed
directl8 to dis#=s8nchronous I$%>>. 3owe'er, be aware that i" the o!erating s8ste terinates
without a !ro!er shutdown, the un"lushed (ournal "ile a8 be inco!lete.
See Aata Validation and &ournaling "or a ore detailed descri!tion o" data 'alidation.
&ournaling can also be acti'ated using the :(ournalC8es; !araeter in the !araeter "ile.
1.=.; F)sF. ,im#late $%ec#tion
Vdbench can create large and co!lex wor#loads. ) siulation run scans and inter!rets the
!araeter "ile=s>, but does not execute the wor#loads.
/he out!ut director8 nae s!eci"ied with the B?oB !araeter will ha'e B.siulateB su""ixed to it.
1.=.E F)kF. 9stat ,tatistics on Console
%n Solaris s8stes, #stat !er"orance statistics are re!orted to kstat.html. /o allow these
statistics also to be written to the acti'e console window, s!eci"8 B?#B.
Vdbench does its utost to atch the re<uested 54. and$or "ile naes with correct Lstat
in"oration. Veritas VxV, ZDS, SV6, and [DS are su!!orted, but there are situations where
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 22
Vdbench 5.03
Vdbench has soe !robles. -hen Vdbench "ails to "ind the correct Lstat in"oration,
execution continues, but without using Lstat.
Solaris de'ice naes =$de'$rds#$cxtxdxsx> are translated to Lstat instance naes using the out!ut
o" iostat. %ut!ut o" :iostat?xd; is atched with out!ut o" :iostat Gxdn;, and the de'ice and
instance naes are ta#en "ro there. I" a de'ice nae cannot be translated to the !ro!er Lstat
instance nae this wa8 there is !ossibl8 a bug in Solaris that needs to be resol'ed.
1.=.@ F)m nnF. 1#lti J/1 $%ec#tion
Ae!ending on the !rocessor s!eed, there is a axiu nuber o" I%1S or axiu thread
count that a single &a'a Virtual 6achine =&V6> can handle. Since &a'a runs as a single !rocess,
it is bound b8 what a single !rocess can do. /o alle'iate this !roble, Vdbench starts an extra
co!8 o" itsel" =a sla'e> "or each re<uested 5000. /he de"ault 5000 was set se'eral 8ears ago when
testing with 300 637 or slower s8stes. /he newer "aster s8stes can handle an8 ore io!s
!er &V6, though I decided to #ee! the de"ault unchanged.
/he axiu nuber o" &V6s started this wa8 is liited b8 the nuber s!eci"ied with the B?
nnB !araeter or :hdChostnae,('sCnn;, o" which the de"ault is *.
Each wor#load is executed on each &V6 or sla'e, exce!t "or se<uential wor#loads. @unning
se<uential wor#loads on each sla'e would result in the sae se<uential bloc#s being read b8
each sla'e, soething that a#es "or nice !er"orance nubers, but that does not reall8
re!resent an accurate se<uential wor#load. Se<uential wor#loads there"ore are s!read round
robin o'er each a'ailable &V6$sla'e.
/he &V6 count can also be set =and that is the !re"erred ethod> using the
hdChostnae,('sCnn !araeter.
1.=.A G)tH. ,ample /dench e%ec#tion.
-hen running :.$'dbench Gt; Vdbench will run a hard?coded sa!le run. ) sall te!orar8 "ile
is created and a 50$50 read$write test is executed "or (ust "i'e seconds.
/his is a great wa8 to test that Vdbench has been correctl8 installed and wor#s "or the current %S
!lat"or without the need to "irst create a !araeter "ile.
.$'dbench ?t" will run a <uic# Dile s8ste test.
1.=.= G)e nnH Override elapsed time
/his !araeter can be used to te!oraril8 o'erride the 'alue o" an8 ela!sedC !araeters
s!eci"ied in the !araeter "ile. /his can be 'er8 use"ul to <uic#l8 disco'er !robles. Dor
instance, 8ou (ust created a 24hour test run, including ulti!le @un Ae"initions =@As>. I" there is
a !roble 8ou don;t want to "ind that out a"ter hours and hours o" running. &ust run the test with
onl8 a "ew seconds or inutes o" ela!sed tie to see how things wor# "or 8ou.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 23
Vdbench 5.03
1.=.10 G)i nnH Override report interval time.
/his o'errides all inter'alC 'alues s!eci"ied in the !araeter "ile. See also :?e nn; abo'e.
1.=.11 G)! nnH Override !arm#p time.
/his o'errides all waru!C 'alues s!eci"ied in the !araeter "ile. See also :?e nn; abo'e.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 24
Vdbench 5.03
1.1!dbench utility functions.
Vdbench has se'eral sall utilit8 "unctions to hel! 8ou with 8our da8?to?da8 Vdbench
testing. &ust enter :.$'dbench xxx;, "or instance .$'dbench sds;.
1.10.1 ./vdench sds. -enerate /dench ,2 parameters.
Sic# and tired o" entering 200 50X hexadecial Solaris de'ice naes without an8 t8!osQ
@un .$'dbench sds and Vdbench will do it "or 8ou.
See Vdbench SA !araeter generation tool. /his wor#s "or Solaris, 5inux and -indows,
1.10.2 ./vdench dvpost. 2ata /alidation post processing
@unning :.$'dbench d'!ost; brings u! a G4I that allows 8ou to 7oo in on the Aata
Validation errorlog.htl "ile. /his allows 8ou to :<uic#l8; s#i through !ossibl8
thousands and thousands o" lines o" data generated when a data corru!tion is recogni7ed
b8 Vdbench. See also Vdbench Aata Validation !ost?!rocessing tool.
1.10.> ./vdench (stack. 2isplay (ava e%ec#tion stacks of active
/dench r#ns.
5i#e all so"tware, there alwa8s is a chance that there is a !roble or bug. 9ode hangs are
'er8 di""icult to "ix i" 8ou don;t #now where the !roble is. :.$'dbench (stac#; will !rint
out the acti'e &a'a execution stac# o" all currentl8 running &a'a !rogras. @un this
be"ore #illing Vdbench.
6ust be run using the sae user id used "or VdbenchU 8ou also ust be using a
&AL$SAL, since that includes the (a'a (stac# executable.
1.10.? ./vdench rsh. /dench &,8 daemon.
.ot e'er8 %S has an @S3 or SS3 daeon a'ailable =windows "or instance> "or testing,
and soe ties getting the a'ailable @S3 or SS3 to do what 8ou want (ust does not
wor#.
Dor those situations, Vdbench has his own =!riiti'e> @S3 daeon. It onl8 wor#s "or
Vdbench. &ust run .$'dbench rsh; once on the target s8ste, and Vdbench will o!en a
(a'a soc#et that will be used to start Vdbench sla'es on that host and return its stdout and
stderr out!ut.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 25
Vdbench 5.03
1.10.; ./vdench print. <rint any lock on any l#n or file.
Es!eciall8 when running into data corru!tion issues identi"ied b8 Aata Validation being
able to see what the current contents is o" a data bloc# can be 'er8 use"ul.
S8ntax: .$'dbench !rint de'ice lba x"ersi7e I?<J
de'ice: an8 de'ice or "ile nae.
lba: logical b8te address. 6a8 be !re"ixed with 0x i" this is hexadecial. Fou
a8 also s!eci"8 # or "or #ilob8tes or egab8tes.
x"ersi7e: length o" bloc# to !rint.
-hile !rinting, Vdbench also does a <uic# Aata Validation on the bloc# being !rinted
and re!orts di""erences "ound. /o su!!ress this, add :?<; =<uiet> as an extra execution
!araeter.
1.10.E ./vdench edit. ,imple f#ll screen editor, or Gack to the
f#t#reH.
It was around 1E2* that I went awa8 "ro line editors, ne'er ex!ecting to ha'e to go bac#
there. -hen starting to wor# with 4nix s8stes bac# in 2000 all I "ound was 'i. Y8 that
tie I had lost all 8 .eanderthal habits, so 'i (ust wasn;t the wa8 to go "or e.
It too# e less than hal" an hour to write a "ull screen editor using &a'a, and here it is:
&ust run .$'dbench edit $"ile$nae and the con'enience o" the 21
st
centur8 will be with
8ou.
1.10.@ ./vdench compare. Compare /dench test res#lts.
/his "unction co!ares two sets o" Vdbench out!ut directories and shows the delta io!s
and res!onse tie and o!tionall8 the data rate in E di""erent colors: light green is good,
dar# green is better, red is bad, etc. See also: Vdbench -or#load 9o!are.
/here is a uch ore co!lete -or#load 9o!are a'ailable in Swat.
1.10.A ./vdench parse. <arse /dench flatfile.
/he Vdbench "lat"ile !arser is a si!le !rogra that ta#es the "lat"ile, !ic#s out the
coluns and rows that the user wants, and then writes it to a tab deliited "ile. See
Vdbench "lat"ile selecti'e !arsing.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2+
Vdbench 5.03
1.110eneral )arameter detail
1.11.1 Gincl#deBparmfileH
)s s!eci"ied earlier, there is a s!eci"ic order in which these !araeters ust be s!eci"ied, with
the :General 1araeters; at the beginning o" the !araeter "ile.
/here is howe'er %.E exce!tion: the ;includeCparmfile !araeter. /his can reside an8where.
It beha'es li#e the good old "ashioned Oinclude stateent "or 9 code.
/he "ile nae s!eci"ied will be inserted in?line into what is currentl8 being read. Fou can use as
an8 includeC !araeters needed.
%ne use o" this !araeter could be i" 8ou want to #ee! the SA or DSA !araeters se!arated "ro
the rest o" the !araeters. SAs and DSAs t8!icall8 change "re<uentl8, while the rest o" the
!araeters sta8 unchanged.
) di""erent use could be "or instance i" 8ou ha'e created a "ixed, co!lex :)!!lication 0; set o"
wor#loads and 8ou (ust want to include this existing wor#load in a new test run.
Dor instance includeC!a8roll or includeCeail.
I" 8ou code onl8 a "ile nae and not a director8 nae, Vdbench will loo# "or the "ile nae in the
director8 o" the "ile containing the current :includeC; stateent.
1.11.2 FdataIerrorsB%%%F. "erminate After 2ata /alidation or */O
errors
Vdbench b8 de"ault will abort a"ter 50 data 'alidation or read$write errors. I" one or ore but less
than the s!eci"ied aount o" errors occur, Vdbench at the end o" the run =ela!sedC> will abort.
/here are three wa8s to de"ine the error count:
dataPerrorsCnn 9auses an abort a"ter nn 'alidation errors. Ae"ault 50
dataPerrorsCTscri!tPnaeT 9auses this coand$scri!t to be executed a"ter the "irst
error, "ollowed b8 an abort. /his coand can be used "or
diagnostic data collection and$or s8ste du!s.
dataPerrorsC=nn,> /erinates the Vdbench run a"ter :nn; errors, or
:;seconds a"ter the last error. /his gi'es Vdbench the
chance to re!ort ore errors, but eliinates the !ossibilit8
that Vdbench #ee!s running unnoticed "or a long !eriod o"
tie a"ter an error.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 22
Vdbench 5.03
/he coand s8ntax under :dataPerrorsCscri!tPnae; can be as "ollows:
dataPerrorsC Tscri!tPnae Mout!ut Mlun Mlba Msi7eT. )"ter the error, the scri!t is called with
substituted 'alues "or Bout!ut director8 naeB, B54. naeB, BlbaB, and Bdata trans"er si7e;. /his
allows "or <uic#er collection o" diagnostic data.
1.11.> FFforceIerrorIafterF. ,im#late 2ata /alidation $rror
/he B"orcePerrorPa"terC=nn,>B o!tion siulates a data 'alidation error a"ter BnnB success"ul read
o!erations. /his o!tion allows 8ou "or instance to test the BdataPerrorsCscri!tPnaeB o!tion.
/his o!tion can be also 'er8 use"ul to see what ha!!ens when a real Aata Validation error
occurs.
Vdbench will b8 de"ault siulate onl8 one error, but 8ou a8 o'erride this b8 using a second
:; !araeter: "orcePerrorPa"terC=500,10>.
1.11.? Gs!atB%%%H. Create performance charts #sing ,!at.
/his is onl8 a'ailable "or SA$-A raw I$% wor#loads.
Swat =Sun Storage/e#\ -or#load )nal8sis /ool> has a batch utilit8 that allows 8ou to
autoaticall8 create a set o" &1G "iles containing !er"orance charts.
Vdbench will autoaticall8 call that batch utilit8 when 8ou add the "ollowing !araeters in the
!araeter "ile:
swatC=where,which>
where: the director8 where Swat is installed
which: a "ile containing the !ro!er !araeters "or the Swat batch utilit8, with a de"ault o"
:swatcharts.txt; which contains the !araeters needed to create a Yasic 1er"orance chart,
@es!onse /ie chart, and an I%1S chart.
/hese &1G "iles will be !laced in subdirector8 :charts; in the Vdbench out!ut director8. /here
will also be a lin# in the suar8.htl "ile to all these charts.
1.11.; FstartcmdBF and FendcmdBF
4ntil Vdbench 503 these !araeters were #nown as BstartPcdB and BendPcdB and can continue
to be used. Aouble <uotes ust be used i" an8 o" the coands include a blan#.
Fou a8 s!eci"8 one or ore coands: startcdC=cd1,cd2,K.>, each o" course using
!arentheses i" needed.
Fou a8 also add BconsB, BsuB, or BlogB as an extra !araeter, with BlogB being the de"ault. /his
!araeter deterines where the out!ut o" these coands will be sent: the terinal,
suar8.htl, or to log"ile.htl. Exa!le: startcdC=Techo hello worldT, cons>
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2*
Vdbench 5.03
/here are two !laces where 8ou a8 use this !araeter: Either as a general !araeter s!eci"ied
at the beginning o" a !araeter "ile, or as !art o" a @un Ae"inition =@A>.
-hen used as a general !araeter, BstartcdCcmd will be executed right be"ore the "irst runU
BendcdCcmd will be executed iediatel8 a"ter the last run is "inished or has "ailed. -hether
BendcdB will run a"ter a "ailure o" course de!ends on the t8!e o" "ailure. /he use o" 9/@5?9
!recludes BendcdB "ro being run.
-hen used as a @un Ae"inition !araeter, BstartcdCcmd will be executed right be"ore each
runU BendcdCcmd will be executed iediatel8 a"ter each run is "inished.
.ote that i" 8ou start a long running coand 8ou need to add B]B at the end o" the coand to
allow as8nchronous execution.
/hese coands or scri!ts can be used "or an8thing 8ou li#e. Dor exa!le, Bunae GaB and
B!srin"oB coe to ind.
) string containing BMout!utB in the re<uested coand will be re!laced b8 the out!ut director8
nae re<uested using the B?oB execution !araeter, allowing the coand$scri!t access to this
director8 nae.
-hen starting Vdbench, the coand Bcon"ig.sh output.directoryB will alwa8s be executed. /his
allows an8 #ind o" !re!rocessing to be done, or in the de"ault case, the gathering o" con"iguration
s!eci"ic data. )"ter this, B8Pcon"ig.sh output.directoryB will be executed. B8Pcon"ig.shB is there
"or 8ou to use, and will not be re!laced b8 a =re>installation o" Vdbench.
I" 8ou ne'er want either o" these scri!ts to be executed, create "ile Bnocon"igB in the Vdbench
director8.
.ote: Soeties, de!ending on which s8ste 8ou are running on, con"ig.sh can ta#e a "ew
seconds or soe ties inutes. I" 8ou don;t need this to run, si!l8 create "ile Bnocon"igB in the
Vdbench director8.
.ote: /hese coands will onl8 be executed on the localhostU the host where the 6aster is
running. )t this tie there are no !ro'isions to run this on a reote host.
1.11.E FpatternB. 2ata <attern to e #sed
Y8 de"ault Vdbench writes a rando non?co!ressible, non dedu!able data !attern. See also the
Bco!ratioCB and Bdedu!ratioCB !araeters.
/he wa8 the data !attern is generated has been co!letel8 rewritten "or Vdbench503. Dor those
!eo!le who ha'e a lot o" historic !er"orance data a'ailable using the !re?503 data !attern and
want to be able to co!are new runs with old runs, the8 can s!eci"8 B!atternCuse502B.
I highl8 suggest though that 8ou not do thisU this o!tion will not be around in "uture releases.
!atternC$"ile$nae /he data "ound in this "ile is co!ied as o"ten as !ossible into the data
!attern bu""er. /he "irst "our eight in the data bu""er will be re!laced with a
uni<ue 'alue be"ore each write o!eration, this to !re'ent this bloc# to
becoe a du!licate, unless o" course dedu!ratioC has been re<uested.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2E
Vdbench 5.03
!atternCuse502 4se the !re?503 data !attern. !his option will be remo"ed in the future.
/his is how the data !attern is generated:
1. ) one?egab8te iniu data !attern bu""er is "illed with rando nubers. /his is done
onl8 once.
2. ) nuber o" rando 32?bit words will be re!laced with 7eroes, this de!ending on the
co!ratioC !araeter used. /he nuber o" 7eros is based on ex!erients done using the
5[&Y co!ression algorithU co!ression ratios 1:1 through 25:1 are the onl8 ones
i!leentedU an8 ratio larger than 25:1 will be set to 25.
3. Aata starting at the !attern bu""er X =reainder o" the 5ogical Y8te )ddress =lba> di'ided b8
the length o" the !attern bu""er> is co!ied into the data bu""er. /he co!8 wra!s around to the
beginning o" the !attern bu""er i" needed. /his ta#es care o" the re<uested co!ression ratio.
4. /he "irst * b8tes o" each 4# !ortion o" the data bu""er is o'erlaid b8 a cobination o" lba, 4#
o""set, "ile handle, and the lower "our b8tes o" the s8steBs 3igh @esolution /ier =3@/>.
/his is done to a#e sure that the data can not be dedu!ed. See also the dedu!ratioC
!araeter.
1.11.@ GcompratioBnnH. ,et compression for data patterns
See also !atternC abo'e.
Y8 de"ault Vdbench will write an unco!ressible rando data !attern. Bco!ratioCnnB generates
a data !attern that results in a nn:1 ratio.
4nderstanding that there are di""erent co!ression algoriths this !araeter cannot guarantee
the ultiate results. /he data !atterns i!leented are based on the use o" the :5[&YB
co!ression algorith, and with that in ind the accurac8 "or this i!leentation is !lus or
inus 5^.
/his !araeter a8 be o'erridden using the :"orco!ratioC; !araeter.
.ote: earlier 'ersions o" Vdbench used Bco!ressionCnnB and B"orco!ressionCnnB. /hough "or
now these !araeters are still acce!ted and internall8 translated to Bco!ratioC=100$nn>B, "uture
'ersions a8 no longer do so.
1.11.A GportBnnnnH. ,pecify port n#mer for Java sockets.
Vdbench counicates between the aster and sla'e &V6s using &a'a soc#ets, using !ort 5520.
I" on 8our s8ste this !ort is alread8 used b8 soething else 8ou a8 o'erride this setting using
the :!ortCnnn; !araeter.
Since with Vdbench 8ou can create and execute as an8 di""erent wor#loads as 8ou can thin# o",
running ore than one Vdbench run at the sae tie should not be necessar8. 3owe'er, i" 8ou
choose to do so 8our Vdbench could run into connection !robles i" it tries to connect to the
sae !ort that another Vdbench execution alread8 is using. /o eliinate this ris#, Vdbench will
increent the !ort nuber b8 one when it gets a connection "ailure to see i" that connection will
be success"ul. Vdbench will do this a axiu o" ten ties be"ore it gi'es u!. /he end result is
that it will tr8 to use !orts 5520 through 552E =de"ault>.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 30
Vdbench 5.03
Fou can also use the :?! nnnn; execution !araeter to o'erride the !ort nuber, or o'erride the
used !ort nubers !eranentl8 using the :!ortnubers.txt; "ile.
1.11.= GcreateIanchorsByesH. Create anchor parent directory
/he anchor director8 "or a Dile S8ste Ae"inition =DSA> is autoaticall8 created i" it does not
exist. 3owe'er, its !arent directories will .%/ be created. 4se :createPanchorsC8es; to also
include the creation o" the !arent directories.
1.11.10 GreportBH. -enerate e%tra ,2 reports.
Y8 de"ault Vdbench will create a se!arate re!ort with detailed statistics "or each SA. Starting
Vdbench 5.02 Vdbench will no longer create SA re!orts "or each sla'e or host =200 SAs o'er *
sla'es !lus one host creates 1*00 re!ortsN>. /o still create these detail re!orts s!eci"8
re!ortChostPdetail or re!ortCsla'ePdetail or abbre'iated re!ortC=host,sla'e> de!ending on 8our
needs.
1.11.11 GhistogramBH. set #cket co#nt and #cket siJe for
response time histograms.
@es!onse tie histogras allow 8ou to get a ore detailed understanding o" I$% res!onse ties.
Vdbench alread8 re!orts a'erages and axius, but at ties it can be 'er8 use"ul to #now
what 'ariation there is in res!onse ties. /he histogras "or instance can gi'e 8ou soe
indication as to how uch o" the I$% was handled "ro storage s8ste cache and which ones had
to reall8 coe "ro s!inning dis#. .ote o" course that the res!onse tie can 'er8 de!ending on
the data trans"er si7e and the <ueue de!th.
/he BhistograC=de"ault,nn,K,nn>B !araeter de"ines how an8 histogra buc#ets there are and
what the range o" the buc#ets is. /he de"ault is:
histograC=de"ault,20,40,+0,*0,100,200,400,+00,*00,1,2,4,+,*,10,20,40,+0,*0
,100,200,400,+00,*00,1s,2s> =)ll in one line>.
Values are in icroseconds, 8ou a8 also s!eci"8 u=icro>, =illi> or s=seconds>. Fou a8
s!eci"8 a axiu o" +4 buc#ets>.
Fou a8 !eranentl8 o'erride the de"ault b8 creating "ile Bhistogra.txtB with a 'alid histogra
!araeter inside o" 8our Vdbench installation director8.
1.11.12 Gformat%fersiJeBnnnnH
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 31
Vdbench 5.03
-hen Vdbench creates new or ex!ands existing dis# "iles s!eci"ied using SA !araeters the
de"ault is x"ersi7eC12*#. =x"ersi7eC512 "or "iles saller than 12*#>. /o o'erride this de"ault,
s!eci"8 "oratx"ersi7eCnnn.>
Dor "ile naes s!eci"ied using DSA !araeters, use the :"wdC"orat; !araeter.
1.121e)lay 0rou) -10. )arameter detail
rgCnae, 4ni<ue nae "or this @e!la8 Grou! =@G>.
de'icesC=xxx,888,K.> /he de'ice nubers "ro Swat;s "lat"ile.bin.g7 to be re!la8ed.
) @e!la8 Grou! is a grou! o" de'ices obtained "ro Swat whose I$% wor#load ust be re!la8ed
on one o" ore SAs. Vdbench will obtain the axiu lba used "or each de'ice "ro
"lat"ile.bin.g7, and will !lace the on the target luns, straddling luns i" needed.
Exa!le:
rgCgrou!1,de'icesC=*E4+5200,+5+*10*,110>
rgCgrou!2,de'icesC=200,300>
sdCsd1,lunC$de'$rds#$cxtxdxsx,re!la8Cgrou!1
sdCsd2,lunC$de'$rds#$c8t8d8s8,re!la8Cgrou!1
sdCsd3,lunC$de'$rds#$c7t7d7s7,re!la8Cgrou!2
/hese @e!la8 Grou!s a#e Vdbench wor# li#e a !riiti'e 'olue anager.
) Vdbench re!la8 !araeter "ile can also be created b8 Swat /race Dacilit8 =S/D using the :Dile;
:9reate re!la8 !araeter "ile; enu o!tion.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 32
Vdbench 5.03
1.13#ost 2efinition )arameter detail
1.1>.1 GhdBhostIlaelH
/he host label is used "or cross?re"erencing and re!orting.
Exa!le: hdClocalhost or hdCs8ste)
4se :localhost; when 8ou want to set 'alues "or the current host, the host where the Vdbench
aster &V6 is running.
hdCde"ault s!eci"ies the de"ault settings to be used "or all later 3A !araeters.
.ote that the contents o" this !araeter ha'e changed since Vdbench 5.00 and 5.01. /he old
contents howe'er will be acce!ted "or a while to !re'ent 'ersion co!atibilit8 issues.
Dor a co!lete exa!le, see exa!le 5 below.
1.1>.2 GsystemBsystemInameH
-hen running Vdbench in ulti?host ode 8ou s!eci"8 here the s8ste nae o" the s8ste;s I1
address, e.g. s8steCx.8.7.co or s8steC12.34.5+.2*.
1.1>.> G(vmsBnnnH
/his !araeter tells Vdbench how an8 &V6s to use on this host. See :6ulti &V6 Execution.
1.1>.? GvdenchB/vdench/dir/nameH
/his tells Vdbench where it can "ind its installation director8 on a reote host. Ae"ault: the sae
director8 as currentl8 used. 4se double <uotes =W> when a director8 nae has ebedded blan#s,
"or instance on windows s8stes.
1.1>.; GshellBrsh K ssh K vdenchH
Dor ulti?host execution Vdbench b8 de"ault uses @S3. Fou can o!tionall8 use SS3. I" 8our
target s8ste does not ha'e @S3 or SS3 or i" 8ou can;t get the !ro!er settings on the local or
reote s8stes to get @S3 or SS3 to wor# 8ou can use Vdbench;s own @S3 daeon b8
s!eci"8ing shellC'dbench. %n the target reote s8ste 8ou ust do a one tie start o"
:.$'dbench rsh; to start the Vdbench @S3 daeon. /his daeon o" course will onl8 wor# with
Vdbench, and it is si!l8 a sall !rogra that uses &a'a soc#ets to start a coand and recei'e
stdout$stderr out!ut bac#. See also :!ortnubers.txt;.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 33
Vdbench 5.03
.ote: I" 8ou ha'e the 6LS tool#it installed on 8our -indows s8ste 8ou a8 want to reo'e
the 6LS 'ersion o" @S3. Ex!erience has shown that the stdout and stderr out!ut streas created
b8 this 'ersion o" @S3 do not close !ro!erl8 there"ore !re'enting Vdbench "ro recogni7ing the
co!letion o" a reote co!8 o" Vdbench.
1.1>.E G#serB%%%%H
4sed "or @S3 and SS3. .ote: it is the user;s res!onsibilit8 to !ro!erl8 de"ine the @S3 or SS3
securit8 settings on the local and on the reote hosts.
1.1>.@ Gmo#ntB%%%H
/his !araeter is ainl8 use"ul when doing soe serious ulti?host "ile s8ste testing. I" 8ou
"or instance ha'e 20 target clients that 8ou ha'e connected all to the sae "ile s8ste it is nice
not to ha'e to anuall8 create all these ount !oints and issue the ount coands.
/he :ountC; !araeter can be used in two !laces:
? )s !art o" a 3ost Ae"inition =3A>.
? )s !art o" a @un Ae"inition =@A>.
-hen used as a 3ost Ae"inition !araeter 8ou s!eci"8 the co!lete ount coand that 8ou
want issued on the reote s8ste, e.g.:
ountCTount ?o "orcedirectio $de'$ds#$c2t+d0s0 $ex!ort$h01T
Vdbench will create the ount !oint director8 i" needed, in this exa!le $ex!ort$h01 and then
will issue the ount coand.
-hen used as a @un Ae"inition !araeter =@A>, 8ou onl8 s!eci"8 the ount o!tions, e.g.
ountCT?o no"orcedirectioT.
Vdbench will re!lace the =!ossible> ount o!tions as s!eci"ied as !art o" the 3ost Ae"inition
with the newl8 s!eci"ied ount o!tions.
-hen 8ou code :ountCreset;, the original ount coand as s!eci"ied will be executed.
.ote, that "or noral "ile s8ste testing o!erations, each host will need his own DSA !araeter,
unless the :sharedC8es; DSA !araeter is used in which case all hosts can use the sae.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 34
Vdbench 5.03
1.14 Storage 2efinition )arameter detail
1.1?.1 FsdBnameF. ,torage 2efinition 0ame
BsdCB uni<uel8 identi"ies each Storage Ae"inition. /he SA nae is used b8 the -or#load
Ae"inition =-A> and @un Ae"inition =@A> !araeters to identi"8 which SAs to use "or its
wor#load.
-hen 8ou s!eci"8 :de"ault; as the SA nae, the 'alues entered will be used as de"ault "or all SA
!araeters that "ollow.
/he :nae; can contain an8 "ree?"orat nae, s!ecial characters not allowed.
1.1?.2 Fl#nBl#nInameF. 7+0 or 5ile 0ame
BlunCB describes the nae o" the raw dis# or the "ile nae o" the "ile s8ste "ile to use. Ye care"ul
that 8ou do not s!eci"8 an8 dis# that contains data that 8ou do not want to lose. Yeen there, done
that J. /his is the ain reason wh8 Vdbench does not re<uire root access. Fou don;t want to
lose 8our root dis#.
#lease dont think, $%ll only be reading the customers currently acti"e production disks&. 'ne
accidental rdpct= with a "alue different than ()) and all data will be gone. !hat has happened
at least twice*
lunC$de'$rds#$c0t0d0s0 .ae o" raw Solaris dis# to be used "or this SA.
lunC$de'$'x$rds#$c0t0d0s0 .ae o" a raw V0V6 'olue
lunC$hoe$dir$"ilenae Solaris "ile s8ste "ilenae. .o control o'er !h8sical I$%
guaranteed since the "ile s8ste a8 use s8ste cache.
lunCHH.Hd: .ae o" raw ounted -indows dis# to be used "or this SA.
lunCHH.H1h8sicalAri'e1 1h8sical nuber o" raw -indows dis# to be used "or this SA.
lunCc:Hte!H"ilenae -indows: "ile s8ste "ile nae.
lunCHH.Hc:Hte!H"ilenae -indows: raw access to "ile.
/he raw dis# or the "ile s8ste "ile will be o!ened "or in!ut onl8 unless Brd!ctC is s!eci"ied with
an8 'alue other than 100 =de"ault>. /his allows Vdbench to execute with read?onl8 access to
dis#s or "iles.
Yloc# 7ero on a raw 'olue will ne'er be accessed to !re'ent the 'olue label "ro being
o'erwritten. /his is acco!lished b8 ne'er allowing Vdbench to generate a see# address o" 7ero,
no atter how large the data trans"er si7e is. /his also i!lies that bloc# 7ero will ne'er be read.
.ote: soe 'olue anagers will return a .455 bloc# each tie that a bloc# is read that has
ne'er been written. /hough o" course this gi'es wonder"ul !er"orance nubers the dis# is
ne'er read and this there"ore is .%/ a 'alid wor#load. -hen 8ou ha'e a 'olue anager li#e
this, a#e sure that 8ou "irst !re?"orat the whole 'olue using:
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 35
Vdbench 5.03
sdCsd1,lunCxx
wdCwd1,sdCV,x"C1,see#!ctCeo",rd!ctC0
rdCrd1,wdCV,iorateCax,ela!sedC100h,inter'alC+0
=/he ela!sed tie ust be large enough to co!letel8 "orat the 'olue. Vdbench will sto!
when done, but i" the ela!sed tie is too short Vdbench a8 terinate too earl8 be"ore the
'olue has been co!letel8 "oratted>.
Fou a8 also s!eci"8 "oratsdsC8es as a General 1araeter, but reeber, this will cause the
"orat to be done each tie the sae !araeter "ile is used.
1.1?.> GhostBnameH
/his !araeter is onl8 needed when 8ou do a ulti?host run where the lun naes on each host
are di""erent. Dor instance i" a lun is $de'$rds#$a on hosta but it is naed $de'$rds#$b on hostb
then 8ou;ll ha'e to tell Vdbench about it.
/he :lun; and :host; !araeters in this case ha'e to be entered in !airs, connecting a lun nae to
a host nae, e.g.:
sdCsd1,lunC$de'$rds#$a,hostChosta,lunC$de'$rds#$b,hostChostb
Y8 de"ault Vdbench assues that the lun naes on each host are identical.
1.1?.? Gco#ntBCnn,mmDH
/his !araeter allows 8ou to <uic#l8 create a se<uence o" SAs, e.g.
sdCsd,lunC$de'$rt$,countC=0,*> results in sd0?sd2 "or $de'$rt$0?2.
Fou a8 also s!eci"8 a BVB:
sdCsd,lunC$de'$rt$Vcbn,countC=0,2> /his will result in de'ices 0cbn and 1cbn being selected.
.ote: I ha'e been as#ed nuerous ties to also su!!ort using soething li#e lunC$de'$rds#$c0V.
I consider this "ar too dangerous though and there"ore decided against it. %nce u!on a tie I
accidentall8 erased all dis# dri'es on a !roduction s8ste =)+,)) am>. Fou donBt e'er want to do
that .
1.1?.; FsiJeBnn. ,iJe of 7+0 or 5ile
Bsi7eCB describes the si7e o" the raw dis# or "ile. Fou can enter this in b8tes, #ilob8tes, egab8tes,
gigab8tes or terab8tes =#$$g$t>. I" not s!eci"ied, the si7e will be ta#en "ro the raw dis# or "ro
the "ile. Vdbench su!!orts addresses larger than 2GY.
I" this is a non?existing "ile, or an existing "ile that is not large enough, a se!arate Vdbench run
naed :DileP"oratPorPa!!endP"orPsdC; is autoaticall8 executed that will do a se<uential
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 3+
Vdbench 5.03
write or a!!end to the "ile until the "ile is "ull. /his re!laces the need to create a new "ile using
mkfile or other utilit8.
.ote: to !re'ent accidentall8 creating a huge "ile in the $de'$rds#$ director8 because an
incorrectl8 entered 50X digit lun nae, Vdbench will re"use to create new "ile naes that start
with $de'$. Yad things ha!!en when 8our root director8 "ills u! .
Fou can also use si7eC to gi'e Vdbench access to onl8 a !ortion o" 8our 'olue, though "or that
8ou can also use BrangeCB below.
1.1?.E FrangeBCmin,ma%DF. 7imit ,eek &ange
Y8 de"ault, the whole SA will be used. /o liit the see# range "or a wor#load, s!eci"8 the
starting and ending range o" the SA: BrangeC=40,+0>B will liit I$% acti'it8 starting at 40^ into
the SA and ending at +0^ into the SA.
I" the ax 'alue is larger than 100 but saller than 200, Vdbench will consider this a wra!
across the end o" 8our 'olue. Dor instance with rangeC=E0,110> , Vdbench will generate an I$%
wor#load using the last 10^ and the "irst 10^ o" 8our 'olue.
-hen the 'alues are greater than 200, the 'alues will be considered gi'en in bytes instead o" in
percentagesU e.g., :rangeC=1g,2g>;.
1.1?.@ FthreadsBnnF. 1a%im#m 0#mer of Conc#rrent
o#tstanding */Os
BthreadsCnnB s!eci"ies the axiu nuber o" concurrent I$% that can be outstanding "or this
SA. Ye aware that de!ending on the storage subs8ste, soe o" these I$%s a8 be <ueued inside
o" the o!erating s8ste =wait <ueue>. =%n Solaris, chec# "ile #stat.htl>.
-arning: I" 8ou s!eci"8 a 54. that !h8sicall8 consists o" ulti!le dis# dri'es, the thread count
deterines the axiu concurrenc8 "or the 54., not "or the dis#s. ) total o" * concurrent
threads "or a total o" 1+ !h8sical dis#s will not allow "or uch concurrenc8. )lso, "or Solaris,
a#e sure that 8our sd-max-throttle !araeter in .etc.system allows the re<uested aount o"
concurrenc8.
.ote: be aware that the axiu concurrenc8 will onl8 occur when there is enough deand.
@e<uesting 10 io!s against a de'ice that can handle 1000 io!s will not gi'e 8ou the concurrenc8
that 8ou re<uest with the threadC !araeter.
/his !araeter a8 be o'erridden using the B"orthreadsCB !araeter.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 32
Vdbench 5.03
1.1?.A FhitareaBnnF. ,torage ,iJe for Cache 8its
See read hit !ercentage "or an ex!lanation. Ae"ault 'alue is 16Y.
1.1?.= F(o#rnalBnameF. 2irectory 0ame for Jo#rnal 5ile
4sed with (ournaling onl8. &ournal "iles are needed "or each Storage Ae"inition and are created
b8 de"ault in the current director8. /he "ile naes are Bsdnae.(nlB and Bsdnae.a!B, where
BsdnaeB is the nae o" the SA.
See Aata Validation and &ournaling "or a ore detailed descri!tion o" data 'alidation and
(ournaling.
-hen as !art o" the Aata Validation and (ournaling testing 8ou bring down 8our %S it is
i!erati'e that all writes to the (ournal "ile are s8nchronous. I" 8our %S or "ile s8ste does not
handle this !ro!erl8 8ou could end u! with a corru!ted (ournal "ile. ) corru!ted (ournal "ile
eans that the results will be un!redictable during (ournal reco'er8.
&ournaling there"ore allows 8ou to s!eci"8 a @)- de'ice, e.g. (ournalC$de'$xxxx, b8!assing the
!ossibl8 "ault8 "ile s8ste code.
1.1?.10 GoffsetBH. 2onHt start at yte Jero of a 7+0
Vdbench alwa8s starts at the beginning o" a 54., but soe ties it is needed to odi"8 that.
Soe ties a 54. does not start at an exact !h8sical stri!e boundar8 and this !araeter allows
8ou do ad(ust "or that. /he o""set is in b8tes and ust be a ulti!le o" 512.
.ote: Vdbench ne'er accesses bloc# 7ero on an8 raw 'olue. /his has been done to a#e sure
that it ne'er o'erwrites a 'olue label and$or 'toc.
1.1?.11 GalignBH. 2etermine la o#ndary for random seeks.
-hene'er Vdbench generates an 5Y) it b8 de"ault is alwa8s on a bloc# boundar8 =x"ersi7eC>.
4se the :alignC; !araeter to change that to alwa8s generate an 5Y) on a di""erent alignent.
/he alignC 'alue is in b8tes and ust be a ulti!le o" 512.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 3*
Vdbench 5.03
1.1?.12 GopenflagsBH. control over open and close of l#ns or files
/his !araeter allows 8ou to control what !araeters are !assed to the s8ste;s o!en and close
"unctions. Y8 de"ault write o!erations are handled according to how the "ile s8ste is ounted
or "or raw de'ices, how the de'ice norall8 o!erates. /his can ean that a write o!eration
co!letes as soon as the data is stored in s8ste cache. /his a#es "or 'er8 good !er"orance,
but does not reall8 exercise the storage.
%!en"lags can be s!eci"ied "or SA, -A, DSA, D-A, and @A !araeters.
%!tions =8ou can create an8 cobination o" these>
Solaris: =xxPSF.9 descri!tions "ound in an o!en>
oPds8nc -rite I$% o!erations on the "ile descri!tor co!lete as de"ined b8
s8nchroni7ed I$% data integrit8 co!letion
oPrs8nc @ead I$% o!erations on the "ile descri!tor co!lete at the sae le'el o"
integrit8 as s!eci"ied b8 the %PASF.9 and %PSF.9 "lags.
I" both %PASF.9 and %P@SF.9 are set in o"lag, all I$% o!erations on the
"ile descri!tor co!lete as de"ined b8 s8nchroni7ed I$% data integrit8
co!letion. I" both %PSF.9 and %P@SF.9 are set in o"lag, all I$%
o!erations on the "ile descri!tor co!lete as de"ined b8 s8nchroni7ed I$% "ile
integrit8 co!letion.
oPs8nc -rite I$% o!erations on the "ile descri!tor co!lete as de"ined b8
s8nchroni7ed I$% "ile integrit8 co!letion.
0xKK )n8 hex 'alue, to be !assed to the o!en=> "unction.
"s8nc 9all "s8nc=> be"ore the "ile is closed.
directio 9alls the directio=> "unction a"ter the "ile is o!ened, using :AI@E9/I%P%.;
directioPo"" 9alls the directio=> "unction a"ter the "ile is o!ened, using :AI@E9/I%P%DD;.
/his one is eant to be used i" a !re'ious "ailed Vdbench run le"t the target
"ile nae with directio acti'e and 8ou want to "orcibl8 reo'e that status.
clearPcache -hen using directio=> "or an .DS ounted "ile, an8 data still residing in "ile
s8ste cache will continue to be used, circu'enting the directio=> re<uest.
/his o!tion will "orcibl8 clear an8 existing data "ro cache using a!=>
"unctions.

5inux:
oPdirect or
directio
Gi'es 8ou raw access to a "ull 'olue =no !artition>. /his !araeter is
re/uired when using $de'$xxx 'olues
oPds8nc
oPrs8nc
oPs8nc
/hese three all !ass :0x01000; to the 5inux o!en=> "unction.
% highly suggest you check .usr.include.bits.fcntl.h since not all fla"ors of
0inux use the same bits. !hen if needed code openflags=)x1. instead.
"s8nc 9all "s8nc=> be"ore the "ile is closed.
0xKK )n8 hex 'alue, to be !assed to the o!en=> "unction.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 3E
Vdbench 5.03
-indows:
directio %!ens a "ile using the B DI5EPD5)GP.%PY4DDE@I.GB "lag
)I0
oPds8nc 1asses 0x00400000 to o!en=>.
oPrs8nc 1asses 0x00200000 to o!en=>.
oPs8nc 1asses 0x00000010 to o!en=>.
oPdirect or
directio 1asses 0x0*000000 to o!en=>.
0xKK )n8 hex 'alue, to be !assed to the o!en=> "unction.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 40
Vdbench 5.03
1.1?.1> streamsB. *ndependent se'#ential streams.
/he streasC=nn,> !araeter o'errides the de"ault !rocessing done when reading or writing
se<uential data. Y8 de"ault Vdbench (ust reads or writes the whole lun or "ile, or onl8 a !ortion o"
it when the rangeC !araeter is used, but the streasC !araeter allows ulti!le concurrent
se<uential streas to be acti'e.
streasCthreads-per-stream. /his !araeter wor#s together with the threadsC !araeter. /he
"ile or lun is s!lit into BnB !ieces, where BnB e<uals threads$threadsP!erPstrea.
Exa!le: sdCsd1,lunC$de'$large,si7eC100g,threadsC*,streasC2
/he SA is s!lit into =threadsC* $ streasC2> C 4 e<ual streas o" 25g each. Each strea uses two
threadsU the streas starting at 0^, 25, 50, and 25^ within the SA.
Extra !araeter: streasC=nn,size> /hough the starting lba o" each strea will be the sae, the
si7e o" the streas will be set to size.
.ote: rh!ctC and wh!ctC are ignored when streas are re<uested. 3owe'er, i" 8ou reall8 want to
run cache hits with streas, (ust code si7eCBsallB to "orce all Vdbench to cache.
1.15 3or4load 2efinition )arameter detail
/he -or#load Ae"inition !araeters describe what #ind o" wor#load ust be executed using the
storage de"initions entered. .ote that a lot o" these !araeters can be o'erridden within a @un
de"inition =@A> using :"orxxxC; !araeters.
Exa!le: wdCwd1,sdC=sd1,sd2>,rd!ctC100,x"ersi7eC4#
wdCde"ault Sets de"aults "or all -As that are entered later.
wdCnae 4ni<ue nae "or this -or#load Ae"inition =-A>
hostChostPlabel S!eci"8 here which host 8ou want this to run on.
iorateCnn -or#load s!eci"ic I$% rate
o!en"lagsC See o!en"lagsC
!riorit8C -or#load s!eci"ic I$% !riorit8.
rangeC=nn,nn> 5iit see# range to a de"ined range within an SA.
rd!ctCnn @ead !ercentage. Ae"ault 100.
rh!ctCnn @ead hit !ercentage. Ae"ault 0.
sdCxx .ae=s> o" Storage Ae"inition=s> to use
see#!ctCnn 1ercentage o" rando see#s. Ae"ault see#!ctC100 or
see#!ctCrando.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 41
Vdbench 5.03
s#ewCnn 1ercentage o" s#ew that this wor#load recei'es "ro the total
I$% rate.
strideC=in,ax> /o allow "or s#i!?se<uential I$%.
wh!ctCnn -rite hit !ercentage. Ae"ault 0.
x"ersi7eCnn Aata trans"er si7e. Ae"ault 4#.
x"ersi7eC=nn,^^,K> Aata trans"er si7e distribution.
x"ersi7eC=in,ax,align> Generate x"ersi7e as a rando 'alue between in and ax.
1.1;.1 F!dBnameF. :orkload 2efinition 0ame
BwdCnaeB uni<uel8 identi"ies each -or#load Ae"inition. /he -A nae is used b8 the @un
Ae"inition !araeters to identi"8 which wor#loads to execute. -hen 8ou s!eci"8 :de"ault; as the
-A nae, the 'alues entered will be used as de"ault "or all -A !araeters that "ollow.
1.1;.2 GhostBhostIlaelH
/his !araeter is onl8 needed "or ulti?host runs where 8ou do not want each wor#load to run
on each host. Dor exa!le:
wdCwd1,hostChosta,K.
wdCwd2,hostChostb,K
1.1;.> FsdBnameF. ,2 names #sed in :orkload
BsdCB selects a s!eci"ic SA "or this wor#load. ) single SA nae can be s!eci"ied as BsdCsd1B,
ulti!le SAs can be s!eci"ied as either BsdC=sd1,sd2,sd3,..>B, a range as in :sdC=sd1?sdEE>;, using
a wildcard character BsdCsdVB, or a cobination o" these.
.ote: -hen using an SA range, leading 7eros are not allowed, e.g. =sd01?sd0E>.
Fou a8 s!eci"8 SAs also as an @AC sub!araeter.
1.1;.? FrdpctBnnF. &ead <ercentage
Brd!ctCB s!eci"ies the read !ercentage o" the wor#load. rd!ctC100 eans 100^ readU rd!ctC0
eans 100^ write. rd!ctC*0 eans a read$write ratio o" 4:1, etc.
/he de"ault is 100^ read. I" there are no wor#loads "or a s!eci"ic SA with a read !ercentage
other than 100 this SA is o!ened "or in!ut onl8.
/his !araeter a8 be o'erridden using the :"orrd!ctC; !araeter.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 42
Vdbench 5.03
1.1;.; FrhpctBnnF and F!hpctBnnF. &ead and :rite 8it <ercentage
Brh!ctCB and Bwh!ctCB s!eci"8 the cache hit !ercentage that Vdbench will atte!t to generate. /his
!araeter is onl8 use"ul when accessing raw de'ices or "ile s8stes ounted with B"orcedirectioB
=or using :o!en"lags;>. Dor this to wor#, each 'olue is di'ided into two !arts: the "irst one?
egab8te o" storage will be accessed "or cache hits and is called the hit area. /he reaining
s!ace on the SA will be accessed "or cache isses and is called the /iss area.
-hen Vdbench needs to generate a cache hit, it generates an I$% to the hit area, assuing that
the data accessed is, or soon will be, residing in cache. 9ache isses will be targeted toward the
iss area, assuing that the iss area is large enough to ensure that ost rando accesses are
cache isses. )s 8ou can see, this will onl8 be use"ul when Vdbench has control o'er which
!h8sical 'olue and !h8sical bloc#s will be ultiatel8 read or written =so no "ile s8ste cache>.
/he :hitarea;nn: and :forhitarea;: !araeters ha'e been created to allow control o'er a
'olueBs cache wor#ing set si7e. Soe cached storage subs8stes ha'e di""erent !er"orance
characteristics i" too sall a subset o" the a'ailable cache is used. /he total si7e o" the 54.$SA
ust be at least 4 ties the hitarea si7e.
/hese !araeters a8 be o'erridden using the B"orrh!ctCB or :"orwh!ctC; !araeters.
1.1;.E F%fersiJeBnnF. 2ata "ransfer ,iJe
Bx"ersi7eCB s!eci"ies how uch data is trans"erred "or each I$% o!erationU allows =#>ilo and
=>ega b8tes. /his !araeter a8 be o'erridden using the :"orx"ersi7e; !araeter.
Exa!le: x"ersi7eC4# =de"ault>
Fou a8 also s!eci"8 a distribution o" data trans"er si7es. S!eci"8 !airs o" trans"er si7e and
!ercentagesU the total o" the !ercentages ust add u! to 100.
Exa!le: x"ersi7eC=4#,10,*#,10,1+#,*0>
) third o!tion uses three 'alues: x"ersi7eC=in,ax,align>. /his causes a rando 'alue between
in and ax, with a ulti!le o" align to be generated. /his also re<uires the used o" the SA
alignC !araeter. /his !araeter a8 not be used when dedu!ratioC is s!eci"ied.
1.1;.@ Fske!BnnF. <ercentage ske!
Bs#ewCB s!eci"ies the !ercentage o" the runBs total I$% rate that will be generated "or this
wor#load. Y8 de"ault the total I$% rate will be e'enl8 di'ided aong all wor#loads. 3owe'er, i"
the s#ew 'alue is non7ero, a !ercentage o" the re<uested I$% rate e<ual to the !ercentage s#ew
'alue will be a!!ortioned to one wor#load, with the reaining s#ew e'enl8 di'ided aong the
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 43
Vdbench 5.03
wor#loads that ha'e no s#ew !ercentage s!eci"ied. /he total s#ew "or all wor#loads used in a
@un Ae"inition ust e<ual 100^.
Exa!le: 5 wor#load de"initions, one wor#load s!eci"ies Bs#ewC+0B. /his wor#load recei'es +0
!ercent o" the re<uested I$% acti'it8 while the other 4 wor#loads each recei'e 10^ o" the
re<uested I$% rate, with a total o" 100^.
Vdbench generates I$% wor#loads b8 sending new I$% re<uests to a 'olueBs =SA> internal wor#
<ueue. /his wor# <ueue has a axiu <ueue de!th o" 2000 !er SA. I" an SA cannot #ee! u!
with its re<uested wor#load and the <ueue "ills u!, Vdbench will not be able to generate new I$%
re<uests "or this and all other SAs until s!ace in the <ueue becoes a'ailable again. /his eans
that i" 8ou send 1000 I%1S to an SA that can handle onl8 100 I%1S, and 50 I%1S to a siilar
de'ice, the <ueue "or the "irst de'ice will "ill u!, and I$% re<uest generation "or the second de'ice
will be held u!. /his has been done to enable Vdbench to !reser'e the re<uested wor#load s#ew
while still allowing "or a te!orar8 Bbac#logB o" re<uested I$%s.
/o accoodate users that still would li#e to run an uncontro$$ed wor#load see BiorateCaxB.
1.1;.A FseekpctBnnF. <ercentage of &andom ,eeks
Bsee#!ctCB s!eci"ies how o"ten a see# to a rando lba will be generated. See also the strideC
!araeter "or s#i! se<uential !rocessing.
see#!ctC100
or
see#!ctCrando
E'er8 I$% will go to a di""erent rando see# address.
see#!ctC0
or
see#!ctCse<uential
/here will be .% rando see#s, and the run will there"ore be !urel8
se<uential. -hen the end o" the 'olue or "ile is reached, I$% will
continue at the beginning, unless Bsee#!ctCeo"B =see below> is
s!eci"ied. Ye aware that i" the 'olue si7e is saller than the cache
si7e, continued !rocessing will be all cache hits.
see#!ctC20 %n a'erage, 20^ o" the I$% o!erations will start at a new rando
see# address. /his eans that on a'erage there will be one rando
see#, with 5 consecuti'e bloc#s o" data trans"erred.
See strideC below "or s#i! se<uential I$%.
see#!ctC?1
or
see#!ctCeo"
) negati'e one 'alue causes a se<uential wor#load to terinate as
soon as end?o"?"ile is reached. Vdbench will continue until all
wor#loads using see#!ctCeo" ha'e reached E%D.
/he randoi7er used to generate a see# address is seeded using the hostBs tie o" da8 in icro
seconds ulti!lied b8 the relati'e !osition o" the Storage Ae"inition =SA> de"ined "or the
wor#load =-A>. Dor se<uential !rocessing, I$% "or raw de'ices alwa8s starts at the second bloc#
as de"ined b8 the data trans"er si7e =bloc# 7ero is ne'er used>.
/his !araeter a8 be o'erridden using the :"orsee#!ctC; !araeter.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 44
Vdbench 5.03
1.1;.= strideBCmin,ma%D. ,kip)se'#ential */O.
/he strideC !araeter changes the beha'ior when a new lba has to be generated because o" the
use o" the see#!ctC !araeter. Instead o" generating a brand new rando lba, Vdbench s#i!s BnB
bloc#s, BnB being a rando 'alue between in and ax, with a ulti!le o" the current selected
data trans"er si7e. -hen end o" 'olue is reached we start again at the beginning.
1.1;.10 FrangeBnnF. 7imit ,eek &ange
Y8 de"ault, the whole SA will be used. /o liit the see# range "or a wor#load, s!eci"8 the
starting and ending range o" the SA: BrangeC=40,+0>B will liit I$% acti'it8 starting at 40^ into
the SA and ending at +0^ into the SA.
I" the ax 'alue is larger than 100 but saller than 200, Vdbench will consider this a wra!
across the end o" 8our 'olue. Dor instance with rangeC=E0,110> , Vdbench will generate an I$%
wor#load using the last 10^ and the "irst 10^ o" 8our 'olue.
-hen the 'alues are greater than 200, the 'alues will be considered gi'en in bytes instead o" in
percentagesU e.g., :rangeC=1g,2g>;.
1.1;.11 GiorateBH :orkload specific */O rate.
.orall8 the I$% rate "or a wor#load is controlled b8 the rdCxxx,iorateC !araeter, together
with the wor#load s#ewC !araeter. -ith the wor#load s!eci"ic iorateC !araeter 8ou can now
gi'e a DI0EA I$% rate to a wor#load, while the other wor#loads continue to be controlled b8 the
rdCxxx,iorateC and the wor#load s#ew !araeters.
-hen used, :!riorit8C; ust also be s!eci"ied..
/his o!tion was initiall8 created to test a :what i";: WI" I run a Video %n Aeand =V%A>
wor#load , what will the i!act on !er"orance be i" I add soe aintenance or 'ideo editing
wor#loadQS.
1.1;.12 GpriorityBH :orkload specific */O priority.
)ll I$% in Vdbench is scheduled using the ex!ected I$% arri'al ties, which is obtained "ro the
re<uested I$% rate. Dor instance, iorateC100 starts a new I$% on a'erage e'er8 1000$100 C 10
illiseconds. /here are no I$% !riorities within de'ices or wor#loads.
/he new :!riorit8C; !araeter atte!ts to change this.
.orall8 I$% in Vdbench is handled using internal :wor#; "i"o <ueues. -hen the !riorit8C
!araeter is used, an8 wor# in a higher !riorit8 "i"o <ueue is !rocessed be"ore an8 lower !riorit8
"i"o is chec#ed causing I$% "or that higher !riorit8 wor#load to be started "irst.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 45
Vdbench 5.03
-hen an8 !riorit8 is s!eci"ied, )55 wor#loads will ha'e to ha'e a !riorit8 s!eci"ied. 1riorities
go "ro 1 =highest> to :n; =lowest>, and ust be in se<uence =!riorities ust be "or instance 1 and
2, not 1 and 3>.
-arning though: allowing "or a s!eci"ic wor#load iorate and !riorit8 does not guarantee that i"
8ou as# "or 100 I%1S and 8our s8ste can do onl8 50 that Vdbench agicall8 gets the wor#load
done .
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 4+
Vdbench 5.03
1.1"1un 2efinition for ra$ I5O )arameter detail
Dor !araeters s!eci"ic to "ile s8ste testing, see @A !araeters "or "ile s8ste testing, detail.
/he @un Ae"inition !araeters s!eci"8 which o" the earlier de"ined wor#loads need to be
executed, which I$% rates need to be generated, and how long to run the wor#loads. %ne @un
Ae"inition can result in ulti!le actual runs, de!ending on the !araeters used.
Exa!le: rdCrun1,wdC=wd1,wd2>,iorateC1000,ela!sedC+0,inter'alC5
rdCde"ault Sets de"aults "or all @As that are entered later.
rdCnae 4ni<ue nae "or this @un Ae"inition =@A>.
wdCxx -or#load Ae"initions to use "or this run.
sdCxxx -hich SAs to use "or this run =%!tional>.
cur'eC=nn,nn,..> Aata !oints to generate when creating a !er"orance cur'e.
distributionC=xI,'ariableJ I$% inter arri'al tie calculations: ex!onential, uni"or, or
deterinistic. Ae"ault ex!onential.
ela!sedCnn Ela!sed tie "or this run in seconds. Ae"ault 30 seconds.
axdataCnnn Sto! the run a"ter nnn b8tes ha'e been read or written, e.g.
axdataC200g. Vdbench will sto! at the lower o" ela!sedC
and axdataC.
endcdCcd Execute coand or scri!t at the end o" the last run
="or>co!ratioCnn 6ulti!le runs "or each co!ression !ercentage.
="or>hitareaCnn 6ulti!le runs "or each hit area si7e.
="or>h!ctCnn 6ulti!le runs "or each read hit !ercentage.
="or>rd!ctCnn 6ulti!le runs "or each read !ercentage.
="or>see#!ctCnn 6ulti!le runs "or each see# !ercentage.
="or>threadsCnn 6ulti!le runs "or each read thread count.
="or>wh!ctCnn 6ulti!le runs "or each write hit !ercentage.
="or>x"ersi7eCnn 6ulti!le runs "or each data trans"er si7e.
6ost "orxxx !araeters can (ust be abbre'iated to their regular nae, e.g. x"ersi7eC=..,..>
inter'alCnn @e!orting inter'al in seconds. Ae"ault Bin=ela!sed$2,+0>B
iorateC=nn,nn,nn,K> %ne or ore I$% rates.
iorateCcur'e 9reate a !er"orance cur'e.
iorateCax @un an uncontro$$ed wor#load.
iorateC=nn,ss,nn,ss,K> nn,ss: !airs o" I$% rates and seconds o" duration "or this I$%
rate. See also BdistributionC'ariableB.
o!en"lagsCxxxx 1ass s!eci"ic "lags when o!ening a lun or "ile
!auseCnn Slee! BnnB seconds be"ore starting next run.
re!la8C="ilenae,K> Dile nae used "or Swat Vdbench re!la8 ="ile B"lat"ile.binB
"ro Swat>
startcdCcd Execute coand or scri!t at the beginning o" the "irst run
waru!Cnn %'erride waru! !eriod.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 42
Vdbench 5.03
1.1E.1 FrdBnameF. &#n 0ame
BrdCnameB de"ines a uni<ue nae "or this run. @un naes are used in out!ut re!orts to identi"8
which run is re!orted.
-hen 8ou s!eci"8 :de"ault; as the @A nae, the 'alues entered will be used as de"ault "or all SA
!araeters that "ollow.
1.1E.2 F!dBF. 0ames of :orkloads to &#n
BwdCB identi"ies wor#loads to run. S!eci"8 a single wor#load as BwdCwd1B or ulti!le wor#loads
either b8 entering the indi'iduall8 BwdC=wd1,wd2,wd3>B, a range BwdC=wd1?wd3>B or b8 using a
wildcard character: BwdCwdVB.
/he total s#ew !ercentage s!eci"ied "or all re<uested wor#loads ust e<ual 100.
.ote: -hen using a -A range, leading 7eros are not allowed, e.g. =wd01?wd0E>
1.1E.> GsdB%%%H
.orall8 8ou s!eci"8 the SAs to be used as !art o" a -or#load Ae"inition =-A> !araeter.
3owe'er, when 8ou s!eci"8 all wor#load !araeters using the a'ailable :"orxx; @A o!tions, the
-A !araeter reall8 is not necessar8 at all, so 8ou can now s!eci"8 the SA !araeters during
the @un Ae"inition.
Fou can s!eci"8 both the -A and the SA !araeters though. In that case the SA !araeters
s!eci"ied here will o'erride the SA !araeters used when 8ou de"ined the -AC wor#load. I" 8ou
do not s!eci"8 the -A !araeter, all de"aults as currentl8 set "or the -or#load Ae"inition are
used.
1.1E.? FiorateBnnF. One or 1ore */O rates
iorateC100 @un a wor#load o" 100 I$%s !er second
iorateC=100,200,K> @un a wor#load o" 100 I$%s !er second, then 200, etc.
iorateC=100?1000,100> @un wor#loads with I$% rates "ro 100 to 1000, increented b8
100.
iorateCcur'e @un a !er"orance cur'e. See below.
iorateCax @un the axiu uncontrolled I$% rate !ossible. See below.
iorateC=nn,ss,nn,ss,K> nn,ss: !airs o" I$% rates and seconds o" duration "or this I$% rate.
See also BdistributionC'ariableB.
BiorateCcur'eB: @un a !er"orance cur'e.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 4*
Vdbench 5.03
-hen no s#ew is re<uested "or an8 wor#load in'ol'ed, deterine the axiu
!ossible I$% rate b8 running BiorateCaxB. )"ter this BaxB run, the target s#ew "or the
re<uested wor#loads will be set to the s#ew that was obser'ed. -or#loads o" 10^,
50^, 20^, *0^, E0^ and 100^ o" the obser'ed axiu I$% rate and s#ew will be
run. /arget I$% rates abo'e 100 will be rounded u! to 100U I$% rates below 100 will
be rounded u! to 10. 9ur'e !ercentages can be o'erridden using the Bcur'eCB
!araeter.
-hen an8 s#ew is re<uested, do the sae, but !ithin the re<uested s#ew.
BiorateCaxB: @un the axiu I$% rate !ossible.
-hen no s#ew is re<uested, allow each wor#load to run as "ast as !ossible without
controlling s#ew. /his is called an uncontrolled ax wor#load.
-hen any s#ew is re<uested, allow all wor#loads to run as "ast as !ossible !ithin the
re<uested s#ew.
Auring a Vdbench re!la8 run, the I$% rate b8 de"ault is set to the I$% rate as it is obser'ed in the
trace in!ut. /his I$% rate is re!orted on the console and in "ile logfile.html.
I" a di""erent I$% rate is re<uested, the inter?arri'al ties o" all the I$%s "ound in the trace will be
ad(usted to allow "or the re<uested change.
1.1E.; Fc#rveBnnF. 2efine 2ata points for C#rve
/he de"ault data !oints "or a !er"orance cur'e are 10, 50, 20,*0, E0, and 100^. /o change this,
use the cur'eC !araeter. Exa!le: cur'eC=10?100,10> creates one data !oint "or each 10^ o"
the axiu I$% rate. /arget I$% rates abo'e 100 will be rounded u! to 100U I$% rates below
100 will be rounded u! to 10.
@eeber: each data !oint ta#es Bela!sedCnnB secondsN
1.1E.E FelapsedBnn. $lapsed "ime
/his !araeter s!eci"ies the ela!sed tie in seconds "or each run. /his 'alue needs to be at least
twice the 'alue o" the re!orting inter'al below. Each re<uested wor#load runs "or Bela!sedCB
seconds while detailed !er"orance inter'al statistics are re!orted e'er8 Binter'alCB seconds. )t
the end o" a run, a total is re!orted "or all inter'als except "or the "irst inter'al =or waru!Cnn
duration>. /he re<uireent to ha'e at least 2 inter'als allows us to ha'e at least 1 re!orting
inter'al included in the wor#load total.
See also: axdata and B"oratCliitedB.
1.1E.@ FintervalBnnF. &eporting *nterval
/his !araeter s!eci"ies the duration in seconds "or each re!orting inter'al. )t the end o" each
re!orting inter'al, all statistics that ha'e been collected are re!orted.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 4E
Vdbench 5.03
.ote: when doing 'er8 long runs "or instance o'er the wee#end, the aount o" detail data
re!orted can becoe o'erwheling. ) ore reasonable inter'al duration a8 be a!!ro!riate, "or
instance +0 seconds. 3owe'er, i" 8ou ha'e a !oorl8 !er"oring storage de'ice that ne'er sees
to be able to get to a stable wor#load I$% rate 8ou a8 want to choose the lowest re!orting
inter'al !ossible. /he longer 8our re!orting inter'al, the ore 8ou will hide !ossible
!er"orance !robles.
1.1E.A G!arm#pBnnH. :arm#p period
Y8 de"ault Vdbench will exclude the "irst inter'al "ro its run totals. /he waru! 'alue will
cause the "irst :waru!$inter'al; inter'als to be excluded. 4sing this !araeter also changes the
eaning o" the :ela!sedC; !araeter to ean :run ela!sedC seconds after the waru! !eriod
co!letes;.
1.1E.= Fma%dataBF. stop after nnn ytes.
.orall8 a run terinates a"ter ela!sedC seconds. axdataC will terinate the run a"ter the
shorter o" ela!sedC or axdataC b8tes ha'e been read or written.
.ote that the b8te count starts )D/E@ waru!C seconds, and that axdata is onl8 chec#ed at
the end o" a re!orting inter'al.
1.1E.10 Fdistri#tionB%%%F. */O arrival time distri#tion
distribution=23exponential43uniform43deterministic4,3"ariable4,3spike45
distribution=23e43u43d4,3"ariable4,3spike45
Ex!onential: ex!onential distribution. Ae"ault. In si!le ters, an ex!onential arri'al
rate is a good distribution to achie'e lots o" I$% bursts. It is a good ethod to
a!!roxiate a large a!!lication with an8 users. )n ex!onential arri'al rate is a classic
odeling a!!roach to describe a general arri'al distribution o" inde!endent e'ents. It
causes signi"icant <ueuing to occur e'en when the de'ice utili7ation is onl8 50^ bus8.
4ni"or: uni"or distribution
Aeterinistic: deterinistic: all I$% is e'enl8 s!read out using "ixed inter arri'al ties.
Variable: changes the eaning o" the iorateC !araeter, de"ining a set o" !airs, "irst in an
I$% rate, then the aount o" seconds to use that i$o rate. /his causes Vdbench to generate
a 'ariable i$o rate.
S!i#e: the I$% "or the abo'e entioned 'ariable I$% rates will be all started together at the
beginning o" each second instead o" the being s!read out using the re<uested
ex!onential or uni"or distribution.
Exa!le:
rdCrd1,K,iorateC=100,10,1000,5,50,10>,distC'ariable
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 50
Vdbench 5.03
@esult: 100 io!s "or ten seconds, 1000 io!s "or "i'e seconds, 50 io!s "or ten seconds and then
again 100 io!s. 6a#e sure 8our ela!sed tie co'ers 8our re<uested aount o" seconds.
/he total aount o" seconds s!eci"ied a8 not be ore than 3+00 seconds.
1.1E.11 Fpa#seBnnF. ,leep FnnF ,econds
-hen doing ulti!le runs, the B!auseCnnB !araeter causes Vdbench to go to slee! "or BnnB
seconds be"ore it starts the next run. /his !araeter is ignored "or the "irst run. B!auseCnnB can be
used to allow a storage controller soe tie to catch its breath and co!lete things li#e
e!t8ing cache.
1.1E.12 :orkload parameter specification in a &#n 2efinition.
/he original ob(ecti'e o" all the "orxxx !araeters was to allow a user to o'erride ost o" all
-or#load Ae"inition =-A> !araeters s!eci"ied earlier to create co!lex, 'ar8ing wor#loads,
li#e "orx"ersi7eC=1#?1,d>.
%nce I obser'ed that soe users were s!eci"8ing here "re<uentl8 (ust single !araeters li#e
"orxC1+# I reali7ed that this started a#ing the -or#load Ae"inition obsolete. Fes, 8ou;ll alwa8s
need ulti!le -As to allow the running o" different concurrent wor#loads, but "or a wor#load
without an8 "orxxx 'ariations -As were not reall8 needed an8ore.
/o a#e li"e easier "or 8 users I then added the sdC !araeter to a @un Ae"inition, and "ro
that !oint on indeed the -A becae obsolete "or this t8!e o" non?'ar8ing run.
/he next ste! then was o" course to not e'en as# 8ou to s!eci"8 "orx"ersi7eC, but (ust si!l8
x"ersi7eC. Internall8 o" course Vdbench still treats it as a "orxxx !araeter, but as "ar as the
!araeter de"inition, 8ou can now (ust s!eci"8 x"ersi7eC4#.
1re'ious:
sdCsd1,lunC$de'$xxx
wdCwd1,sdCV,rd!ctC100,x"ersi7eC4#
rdCrd1,wdCwd1,iorateCax,ela!sedC+0,inter'alC1
.ew =)nd o" course 8ou can still code x"ersi7eC=4#,*#>:
sdCsd1,lunC$de'$xxx
rdCrd1,sdCV,iorateCax,ela!sedC+0,inter'alC1,rd!ctC100,x"ersi7eC4#
1.16.12.1 <sd;***= S+ecify S2s to use
I" 8ou did not s!eci"8 a -or#load Ae"inition 8ou a8 s!eci"8 the SAs to be used here.
I" 8ou use both the sdC and wdC !araeters, this will o'erride the SAs s!eci"ied in the -or#load
Ae"inition.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 51
Vdbench 5.03
/wo little tric#s: sdCsingle and sdCrange. 5etBs sa8 8ou ha'e 10 de'ices 8ou want to test. &ust
code an SA "or each o" the, sd1?sd10. Instead o" ha'ing to s!eci"8 one @un Ae"inition "or each,
(ust code sdCsingle, and Vdbench will re!eat the current @A once "or each SA.
/o do a test "or sd1, then sd1?sd2, then sd1?sd3 etc. code sdCrange and Vdbench will ta#e care o"
it.
1.16.12.2 :.for/*fersi>e;nn:' 7reate :'or3 ?oo+ @sing 2ifferent
Transfer Si>es
/he B"orx"ersi7eCB !araeter is an o'erride "or all wor#load s!eci"ic x"ersi7e !araeters and
allows ulti!le autoatic executions o" a wor#load with di""erent data trans"er si7es.
"orx"ersi7eC4# %ne run with 4# trans"er si7e.
"orx"ersi7eC=4#,*#,12#,1+#> %ne run each "or 4#, *#, etc.
"orx"ersi7eC=4#?32#,4#> %ne run each "ro 4# to 32# in increents o" 4#.
"orx"ersi7eC=1#?12*#,d> %ne run each "ro 1# to 12*#, each tie doubling the
trans"er si7e. =1#,2#,4#,*#,etc>.
"orx"ersi7eC=12*#,1#,d> B@e'erseB double: =12*#,+4#,32#,etc>
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12.3 :.for/threads;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent
Thread 7ounts
/he B"orthreadsCB !araeter is an o'erride "or all storage de"inition s!eci"ic thread !araeters
and allows ulti!le autoatic executions o" a wor#load with di""erent nubers o" threads.
"orthreadsC32 Ao one run with 32 threads "or each SA.
"orthreadsC=1,2,3,4> Ao one run each with 1, 2, 3 and 4 threads.
"orthreadsC=1?5,1> Ao one run each "ro 1 to 5 threads in increents o" one.
"orthreadsC=1?+4,d> Ao one run each "ro 1 to +4 threads, each tie doubling the
thread count.
"orthreadsC=+4?1,d> B@e'erseB double: =+4,32,1+,etc>
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12.4 :.for/rd+ct;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent 1ead
,ercentages
/he B"orrd!ctCB !araeter is an o'erride "or all wor#load s!eci"ic rdpct !araeters, and allows
ulti!le autoatic executions o" a wor#load with di""erent read !ercentages.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 52
Vdbench 5.03
"orrd!ctC50 Ao one run with 50^ reads
"orrd!ctC=10?100,10> Ao one run each with read !ercentage 'alues ranging "ro 10
to 100 !ercent, increenting the read !ercentage b8 10 !ercent
each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12. :.for/rh+ct;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent 1ead %it
,ercentages
/he B"orrh!ctCB !araeter is an o'erride "or all wor#load s!eci"ic rhpct !araeters, and allows
ulti!le autoatic executions o" a wor#load with di""erent read hit !ercentages.
"orrh!ctC50 Ao one run with 50^ read hits
"orrh!ctC=10?100,10> Ao one run each with read hit !ercentage 'alues ranging
"ro 10 to 100 !ercent, increenting the read hit !ercentage
b8 10 !ercent each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12.6 :.for/&h+ct;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent 3rite
%it ,ercentages
/he B"orwh!ctCB !araeter is an o'erride "or all wor#load s!eci"ic whpct !araeters, and allows
ulti!le autoatic executions o" a wor#load with di""erent write hit !ercentages.
"orwh!ctC50 Ao one run with 50^ write hits
"orwh!ctC=10?100,10> Ao one run each with write hit !ercentage 'alues ranging
"ro 10 to 100 !ercent, increenting the write hit
!ercentage b8 10 !ercent each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12." :.for/see4+ct;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent See4
,ercentages
/he B"orsee#!ctCB !araeter is an o'erride "or all wor#load s!eci"ic seekpct !araeters, and
allows ulti!le autoatic executions o" a wor#load with di""erent see# !ercentages.
"orsee#!ctC50 Ao one run with 50^ see#
"orsee#!ct C=10?100,10> Ao one run each with see# !ercentage 'alues ranging "ro
10 to 100 !ercent, increenting the see# !ercentage b8 10
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 53
Vdbench 5.03
!ercent each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12.$ :.for/hitarea;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent %it
Area Si>es
/he B"orhitareaCB !araeter is an o'erride "or all Storage Ae"inition hit area !araeters, and
allows ulti!le autoatic executions o" a wor#load with di""erent hit area si7es:
"orhitareaC4 Ao one run with 46Y hit area
"orhitarea C=10?100,10> Ao one run each with hit area 'alues ranging "ro 10
6Y to 100 6Y, increenting the hit area b8 10 6Y
each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.16.12.( :.for/com+ratio;nn:' 7reate 3'or3 ?oo+ @sing 2ifferent
com+ression ratios.
/he B"orco!ratioCB !araeter is an o'erride "or the co!ratioC !araeter, and allows ulti!le
autoatic executions o" a wor#load with di""erent co!ression ratios.
1.16.12.1! Order of )*ecution @sing :forxxx: ,arameters
/he order in which the B"orthreadsCB, B"orx"ersi7eCB, B"orrd!ctCB, B"orrh!ctCB , B"orwh!ctCB,
B"orsee#!ctCB and B"orhitareaCB !araeters are "ound in the in!ut will deterine the order in which
the re<uested wor#loads will be executed.
/reat this as a se<uence o" ebedded B"orB loo!s. 4sing B"orthreadsCB and B"orx"ersi7eB as an
exa!le:
"or =all threads> _ "or =all x"ersi7es> _ "or =all I$% rates> ` ` 'ersus
"or =all x"ersi7es> _ "or =all threads> _ "or =all I$% rates> ` ` de!ending on what
!araeter cae "irst.
1.1&2ata 2edu)lication%

Aata Aedu!lication is built into Vdbench with the understanding that the dedu! logic included in
the target storage de'ice loo#s at each n?b8te data bloc# to see i" a bloc# with identical content
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 54
Vdbench 5.03
alread8 exists. -hen there is a atch the bloc# no longer needs to be written to storage and a
!ointer to the alread8 existing bloc# is stored instead.
Since it is !ossible "or dedu! and data co!ression algoriths to be used at the sae tie,
dedu! b8 de"ault generates data !atterns that do not co!ress.

dedu!ratioCn @atio between the original data and the actuall8 written data, e.g.
dedu!ratioC2 "or a 2:1 ratio. Ae"ault: no dedu!, or dedu!ratioC1
co!ratioCn @atio between the original data and the actuall8 written data, e.g.
co!ratioC2 "or a 2:1 ratio. Ae"ault: co!ratioC1
dedu!unitCnn /he si7e o" a data bloc# that dedu! tries to atch with alread8
existing data. Ae"ault dedu!unitC12*#
dedu!setsCnn 3ow an8 di""erent sets or grou!s o" du!licate bloc#s to ha'e. See
below. Ae"ault: dedu!setsC5^ =Fou can also (ust code a nueric
'alue, e.g. dedu!setsC100>

Dor a Storage Ae"inition =SA> dedu! is controlled on an SA le'elU Dor a Dile S8ste Ae"inition
=DSA> dedu! is controlled on an DSA le'el, so not on a "ile le'el.

/here are two di""erent dedu! data !atterns that Vdbench creates:
1.1@.1 +ni'#e locks
4ni<ue bloc#s: /hese bloc#s are uni<ue and will alwa8s be uni<ue, e'en when the8 are
rewritten. In other words, a uni<ue bloc# will be rewritten with a di""erent content than all its
!re'ious 'ersions.
1.1@.2 2#plicate locks.
-ith dedu!ratioC1 there o" course will not be an8 du!licate bloc#s.
Au!licate bloc#s as the nae indicates are du!licates o" each other. /he8 are not all du!licates o"
one single bloc# though. /hat would ha'e been too eas8. /here are :nn; sets or grou!s o"
du!licate bloc#s. )ll bloc#s within a set are du!licates o" each other. 3ow an8 sets are thereQ I
ha'e set the de"ault to dedu!setsC5^, or 5^ o" the estiated total aount o" dedu!unitCnn
bloc#s.
Exa!le: a 12* SA "ile, "or 1024 12*# bloc#s. /here will be =5^ o" 1024> 51 sets o" du!licate
bloc#s.
Aedu!ratioC2 ultiatel8 will result in wanting 512 data bloc#s to be written to dis# and 512
bloc#s that are du!licates o" other bloc#s.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 55
Vdbench 5.03
:512?51 C 4+1 uni<ue bloc#s; X :512X51C5+3 du!licate bloc#s; C 1024 bloc#s.
/he 4+1 uni<ue bloc#s and the 51 sets a#e "or a total o" 512 di""erent data bloc#s that are
written to dis#. 1024 $ 512 C 2:1 dedu! ratio. =/he real nubers will be slightl8 di""erent because
o" integer rounding and$or truncation>.

1.1@.> /dench %fersiJeB limitations.
Since the accurac8 o" dedu! all re'ol'es around the dedu!unitC !araeter, all read and write
o!erations ust be a ulti!le o" that dedu!unitC si7e. /his eans that i" 8ou use dedu!unitC*#,
all data trans"er si7es used ust e ulti!les o" that: *#, 1+#, 24#, etc. Vdbench will "ail i" it
"inds trans"er si7es that do not "ollow these rules.
/echnicall8 o" course =unless 8ou are running with data 'alidation> there is no need "or read
re<uests to "ollow these rules. I thought it best though to "ollow the sae rules "or both reads and
writes.

1.1@.? &e!riting of data locks.
)s entioned abo'e, the uni<ue bloc#;s data contents will change each tie the8 are written.
/he data !attern includes the current tie o" da8 in icroseconds, together with the SA or DSA
nae. /his a#es the content !rett8 uni<ue unless o" course the sae bloc# to the sae SA is
written ore than once within the sae icrosecond.
Dor the du!licate bloc#s that was a whole di""erent trail o" disco'er8. Initiall8 I had !lanned to
ne'er change these bloc#s until I reali7ed that i" I do not change the there will ne'er be an
other !h8sical dis# write because there alwa8s will be an alread8 existing co!8 o" each du!licate
bloc#. /hat a#es "or great benchar# nubers, but that ne'er is 8 ob(ecti'e. 3onest8 is
alwa8s the onl8 wa8 to go.
Yut changing the contents o" these bloc#s "or each write o!eration then causes a new !roble: I
won;t get 8 ex!ected dedu!ratio. 9atch 22.
/hat;s when I decided that 8es, I will change the contents, but onl8 once. )nd the next tie that
this bloc# is written it will be changed bac# to its original content, ="li! "lo!>. It still eans that
8 ex!ected dedu!ratio can be a little o"", this because within a set o" du!licates there now can
be two di""erent data contents, but it sta8s close. I t8!icall8 see 1.*2:1 instead o" the re<uested
2:1, which is close enough.
I" there is a better wa8, let e #now. /his is the best that I could coe u! with at this tie. I do
understand that once all dedu! sets ha'e bloc#s in both the :"li!; and :"lo!; state all !h8sical
write acti'it8 will sei7e as long as there is a iniu o" one bloc# in each state. Suggestions "or
i!ro'eent are alwa8s welcoe.

Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 5+
Vdbench 5.03
1.1@.; +se of 2ata /alidation code.
So how to #ee! trac# o" what the current content is o" a du!licate data bloc#Q
Aata Validation alread8 had e'er8thing that is neededU it #nows exactl8 what is written where.
4sing this abilit8 was a 'er8 eas8 decision to a#e. %" course, unless s!eci"icall8 re<uested the
actual contents o" a bloc# a"ter a read o!eration will not be 'alidated.
So now, when dedu! is used, Aata Validation instead o" #ee!ing trac# o" 12+ di""erent data
!atterns !er bloc# now #ee!s trac# o" onl8 two di""erent data !atterns to su!!ort the "li!?"lo!
entioned abo'e.
%ne ore !roble needed to be resol'ed: how to !ass on the in"oration about each bloc#;s
current content between Vdbench runsQ %" course there is &ournaling, but (ournaling is 'er8
ex!ensi'e and is onl8 needed to allow "or soe serious testing around !ossible data integrit8
issues and that is when o!tiu !er"orance is not a 100^ re<uireent.
I there"ore decided against the use o" &ournaling, but instead o'ed the in?eor8 Aata
Validation a!s "ro &a'a hea! s!ace to a eor8 a!!ed =a!> dis# "ile. 4nless 8our
o!erating s8ste goes down, eor8 a!!ing assures that the in"oration o" what is written
where is !reser'ed on dis#.
/o as# Vdbench to reuse the existing in"oration, code :'alidateCcontinue;. Y8 de"ault Vdbench
will create a brand new a!, but 'alidateCcontinue reuses the existing contents.

1.1@.E ,!at//dench &eplay !ith ded#p.
%ne o" the great "eatures when 8ou cobine Swat and Vdbench is the "act that 8ou can ta#e an8
custoer I$% trace =Solaris and @ed3at$%E5>, and re!la8 the exact I$% wor#load whene'er and
where'er =an8 %S> 8ou want.
%" course, the originall8 traced I$% wor#load li#el8 does not !ro!erl8 "ollow the abo'e?
entioned re<uireents o" all data trans"er si7es and there"ore lba;s being a ulti!le o" the
dedu!unitC si7e.
Dor @e!la8 Vdbench ad(usts all data trans"er si7es to its nearest ulti!le o" the re<uired si7e and
lba, and then also re!orts the a'erage di""erence between the original and odi"ied si7e.

1.1@.@ offsetB and alignB parameter and ded#p.
Yecause o" the re<uireent "or e'er8thing to be !ro!erl8 aligned the o""setC and alignC
!araeters o" course cannot be used with dedu!.

Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 52
Vdbench 5.03
1.1* 2ata !alidation and 6ournaling
Aata 'alidation should not to be used during a !er"orance run. /he !rocessor o'erhead can
i!act !er"orance results.
Ye"ore I start I want to answer a <uestion that has coe u! a "ew ties: Wwh8 use Vdbench to
chec# "or data corru!tionsQ I can (ust write large "iles, calculate a chec#su and then re?read and
co!are the chec#sus. W
Fes, o" course 8ou can do that, but is that reall8 good enoughQ )ll 8ou;re doing here is chec# "or
data corru!tions during se<uential data trans"ers. -hat about rando I$%Q Isn;t that i!ortant
enough to chec#Q I" 8ou write the sae bloc# 0 ties and the contents 8ou then "ind are correct,
doesn;t it ean that 8ou could ha'e lost 0?1 consecuti'e writes without e'er noticing itQ Fou
s!ent 24 hours writing and re?reading large se<uential "iles, which bloc# is the one that;s badQ
-hen was that bloc# written and when was that bloc# read againQ Fes, it is nice to sa8: I ha'e a
bad chec#su o'er the wee#end. It is uch ore use"ul to sa8 WI ha'e a s!eci"ic error in a
s!eci"ic bloc#, and 8es, I #now when it was written and when it was "ound to be in errorS, and b8
the wa8, this bad bloc# actuall8 cae "ro the wrong dis#.S
See dataPerrorsC "or in"oration about terinating a"ter a data 'alidation error.
Aata 'alidation wor#s as "ollows: E'er8 write o!eration against an SA or DSA will be recorded
in an in?eor8 table. Each 512?b8te sector in the bloc# that is written contains an *?b8te
logical b8te address =5Y)>, and a one?b8te data 'alidation #e8. /he data 'alidation #e8 is
increented "ro 1 to 12+ "or each write to the sae bloc#. %nce it reaches the 'alue 126, it will
roll o'er to one. Bero is an internal 'alue indicating that the bloc# has ne'er been written. /his
key ethodolog8 is de'elo!ed to identi"8 lost writes. I" the sae bloc# is written se'eral ties
without changing the contents o" the bloc# it is i!ossible to recogni7e i" one or ore o" the
writes ha'e been lost. 4sing this #e8 ethodolog8 we will ha'e to lose exactl8 12+ consecuti'e
writes to the sae bloc# without being able to identi"8 that writes were lost.
)"ter a bloc# has been written once, the data in the bloc# will be 'alidated a"ter each read
o!eration. ) write will alwa8s be !re"ixed b8 a read so that the original content can be 'alidated.
4se o" the B?'rB execution !araeter =or 'alidateCread !araeter "ile o!tion> "orces each bloc# to
be read iediatel8 a"ter it has been written. 3owe'er, reeber that there is no guarantee that
the data has correctl8 reached the !h8sical dis# dri'eU the data could ha'e been si!l8 read "ro
cache.
Since data 'alidation tables are aintained in eor8, data 'alidation will norall8 not be
!ossible a"ter Vdbench terinates, or a"ter a s8ste crash$reboot. /o allow continuous data
'alidation, use (ournaling.
&ournaling: to allow data 'alidation a"ter a Vdbench or s8ste outage, each write is recorded in a
(ournal "ile. /his (ournal "ile is "lushed to dis# using s8nchronous writes a"ter each u!date =or we
would lose u!dates a"ter a s8ste outage>. Each (ournal u!date writes 512 b8tes to its dis#. Each
(ournal entr8 is * b8tes long, thereb8 allowing +3 entries !lus an *?b8te header to be recorded in
one (ournal record. -hen the last (ournal entr8 in a (ournal record is written, an additional 512
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 5*
Vdbench 5.03
b8tes o" 7eros is a!!ended, allowing Vdbench to #ee! trac# o" end?o"?"ile in the (ournal. )
(ournal entr8 is written be'ore and a'ter each Vdbench write.
.ote: I witnessed one scenario where the (ournal "ile was !ro!erl8 aintained but the "ile s8ste
structure used "or the (ournal "iles was in'alid a"ter a s8ste outage. I there"ore allow now the
use o" raw de'ices "or (ournal "iles to get around this !roble.
Since each Vdbench wor#load write will result in two s+nchronous (ournal writes, (ournaling
will ha'e an i!act on through!ut$!er"orance "or the I$% wor#load. It is highl8 recoended
that 8ou use a dis# storage unit that has write?behind cache acti'ated. /his will inii7e the
!er"orance i!act on the I$% wor#load. /o allow "ile s8ste bu""ering on (ournal writes,
s!eci"8 B?(nB or B?(rnB =or (ournalCno"lush in 8our !araeter "ile> to !re'ent "orced "lushing. /his
will s!eed u! (ournal writes, but the8 a8 be lost when the s8ste does not shut down cleanl8.
It is "urther recoended that the (ournals be written to what a8 be called a Bsa"eB dis#. Ao not
write the (ournals to the sae dis# that 8ou are doing error in(ection or other scar8 things onN
-ith an unreliable (ournal, data 'alidation a8 not wor#.
)t the start o" a run that re<uests (ournaling, two "iles are created: a a! bac#u! "ile, and a
(ournal "ile. /he contents o" the in?eor8 data 'alidation table =a!> are written to both the
bac#u! and the (ournal "ile =all #e8 entries being 7ero>. &ournal u!dates are continuall8 written at
the end o" the (ournal "ile. -hen Vdbench restarts a"ter a s8ste "ailure and (ournal reco'er8 is
re<uested, the original a! is read "ro the beginning o" the (ournal "ile and all the u!dates in
the (ournal are a!!lied to the a!. %nce the (ournal "ile reaches end o" "ile, all bloc#s that are
ar#ed Bodi"iedB will be read and the contents 'alidated.
.ext, the in?eor8 a! is written bac# to the beginning o" the (ournal "ile, and then to the
bac#u! "ile. &ournal records will then be written iediatel8 behind the a! on the (ournal "ile.
I" writing o" the a! to the (ournal "ile "ails because o" a s8ste outage, the bac#u! "ile still
contains the original a! "ro the start o" the !re'ious run. I" during the next (ournal reco'er8 it
is deterined that not all the writes to the a! in the (ournal "ile co!leted, the a! will be
restored "ro the bac#u! "ile and the (ournal u!dates again are a!!lied "ro the (ournal entries
that still reside in the (ournal "ile after the inco!lete a!.
)"ter a (ournal reco'er8, there is one s!eci"ic situation that needs extra e""ort. Since each write
o!eration has a before and after (ournal entr8, it can ha!!en that an after entr8 has ne'er been
written because o" a s8ste outage. In that case, it is not clear whether the bloc# in <uestion
contains before or after data. In that case, the bloc# will be read and the data that is co!ared
a8 consist o" either o" the two 'alues, either the new data or old data.
.ote: I understand that an8 storage de'ice that is interru!ted in the iddle o" a write o!eration
ust ha'e enough residual !ower a'ailable to co!lete the 512?b8te sector that is currentl8
being written, or a8 be ignored. /hat eans that i" one single sector contains both old and new
data that there has been a data corru!tion.
%nce the (ournal reco'er8 is co!lete, all bloc#s that are identi"ied in the a! as being written
to at least once are read se<uentiall8 and their contents 'alidated.
Auring noral terination o" a run, the data 'alidation a! is written to the (ournal. /his ser'es
two !ur!oses: end o" "ile in the (ournal "ile will be reset to (ust a"ter the a!, thus !reser'ing
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 5E
Vdbench 5.03
dis# s!ace, =at this tie unused s!ace is not "reed, howe'er> and it a'oids the need to re?read the
whole (ournal and a!!l8 it to the starting a! in case 8ou need to do another (ournal reco'er8.
.ote: since the histor8 o" all data that is being written is aintained on a bloc# b8 bloc# le'el
using di""erent data trans"er si7es within a Vdbench execution has the "ollowing restrictions:
Ai""erent data trans"er si7es are allowed, as long as the8 are all ulti!les o" each other. I"
"or instance 8ou use a 1#, 4# and *# data trans"er si7e, data 'alidation will internall8 use the
1# 'alue as the :data 'alidation #e8 bloc# si7e;, with there"ore a 4# bloc# occu!8ing 4
saller data 'alidation #e8 bloc#s.
.ote: when 8ou do a data 'alidation test against a large aount o" dis# s!ace it a8 ta#e <uite a
while "or a rando bloc# to be accessed "or the second tie. =@eeber, Vdbench can onl8
co!are the data contents when it #nows what is there>. /his eans that a relati'e short run a8
a!!ear success"ul while in "act no bloc#s ha'e been re?read and 'alidated. Vdbench there"ore
since Vdbench 5.00 #ee!s trac# o" how an8 bloc#s were actuall8 read and 'alidated. I" the
aount o" bloc#s 'alidated at the end o" a run is 7ero, Vdbench will abort.
Exa!le: Dor a one /Y lun running 100 io!s o" *# bloc#s it will ta#e 244 hours or 31 da8s "or
each rando bloc# to be accessed at least twiceN
.ote: since an8 re?write o" a bloc# when running data 'alidation i!lies a !re?read o" that bloc#
I suggest that when 8ou s!eci"8 a read !ercentage =rd!ctC> 8ou s!eci"8 rd!ctC0. /his !re'ents
8ou, es!eciall8 at the beginning o" a test, "ro reading bloc#s that Vdbench has not written =8et>
and there"ore is not able to co!are, wasting !recious I%1S and bandwidth. In these runs =unless
8ou "orcibl8 re<uest an iediate re?read> 8ou;ll see that the run starts with a 7ero read
!ercentage, but then slowl8 clibs to 50^ read once Vdbench starts writing =and there"ore !re?
reading> bloc#s that Vdbench has written be"ore.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +0
Vdbench 5.03
1.1/1e)ort files
3/65 "iles are written to the director8 s!eci"ied using the B?oB execution !araeter.
/hese re!orts are all lin#ed together "ro one starting !oint. 4se 8our "a'orite browser and !oint
at :suar8.htl;.
/he "ollowing =see the re!ort "ile exa!les> are created.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +1
Vdbench 5.03
suar8.htl 9ontains wor#load results "or each run and inter'al. Suar8.htl also
contains a lin# to all other htl "iles, and should be used as a starting
!oint when using 8our browser "or 'iewing. Dor "ile s8ste testing see
suar8.htl "or "ile s8ste testing
Dro a coand !ro!t in windows (ust enter :start
suar8.htl;U on a unix s8ste, (ust enter :"ire"ox
suar8.htl ];.
totals.htl @e!orts onl8 run totals, allowing 8ou to get a <uic# o'er'iew o" run
totals instead o" ha'ing to scan through !age a"ter !age o" nubers.
hostx.suar8.htl Identical to suar8.htl, but containing results "or onl8 one s!eci"ic
host. /his re!ort will be identical to suar8.htl when not used in a
ulti?host en'ironent.
hostx6n.suar8.htl Suar8 "or one s!eci"ic sla'e.
log"ile.htl 9ontains a co!8 o" ost essages dis!la8ed on the console window,
including se'eral essages needed "or debugging.
hostx-n.stdout.htl 9ontains log"ile?t8!e in"oration "or one s!eci"ic sla'e.
!ar"ile.htl 9ontains a co!8 o" the !araeter "ile=s> "ro the :?" !ar"ile :
execution !araeter.
!arscan.htl 9ontains a running trail o" what !araeter data is currentl8 being
!arsed. I" a !arsing or !araeter error is gi'en this "ile will show 8ou
the latest !araeter that was being !arsed.
sdname.htl 9ontains !er"orance data "or each de"ined Storage Ae"inition. See
suar8.htl "or a descri!tion.
hostx.sdname.htl Identical to sdnae.htl, but containing results "or onl8 one s!eci"ic
host. /his re!ort will be identical to sdnae.htl when not used in a
ulti?host en'ironent. /his re!ort is onl8 created when the
:re!ortChostPdetail; !araeter is used.
hostx-n.sdname.html SA re!ort "or one s!eci"ic sla'e. . /his re!ort is onl8 created when the
:re!ortCsla'ePdetail; !araeter is used.
#stat.htl 9ontains Lstat suer8 !er"orance data "or Solaris
hostx.#stat.htl Lstat suar8 re!ort "or one s!eci"ic host. /his re!ort will be identical
to #stat.htl when not used in a ulti?host en'ironent.
host-x.instance.htl 9ontains Lstat de'ice detailed !er"orance data "or each Lstat
:instance;.
n"s 7.8 .htl Solaris onl8: Aetailed .DS statistics !er inter'al siilar to the n"sstat
coand out!ut.
"lat"ile.htl ) "ile containing detail statistics to be used "or extraction and in!ut "or
other re!orting tools. See also 1arse Vdbench "lat"ile
errorlog.htl )n8 I$% errors or Aata Validation errors will be written here. /his "ile
ser'es as in!ut to the :.$'dbench d'!ost; !ost?!rocessing utilit8.
swatPon.txt /his "ile can be i!orted into the Swat 1er"orance 6onitor allowing
8ou to dis!la8 !er"orance charts o" a Vdbench run.
swatPonPtotal.txt Siilar to swatPon.txt, but allows Swat to dis!la8 onl8 run totals.
swatPon.bin Siilar to swatPon.txt abo'e, but "or Dile S8ste wor#load data.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +2
Vdbench 5.03
essages.htl Dor Solaris and 5inux onl8. )t the end o" a run the last 500 lines
"ro $'ar$ad$essages or $'ar$log$essages are co!ied here. /hese
essages can be use"ul when certain I$% errors or tieout essages
ha'e been dis!la8ed.
fwdx.htl ) detailed re!ort "or each Dile s8ste -or#load Ae"inition =D-A>.
wdx.htl ) se!arate wor#load re!ort is generated "or each -or#load Ae"inition
=-A> when ore than one wor#load has been s!eci"ied.
histogra.htl Dor "ile s8ste wor#loads onl8. ) res!onse tie histogra re!orting
res!onse tie details o" all re<uested D-A o!erations.
sdx.histogra.htl ) res!onse tie histogra "or each SA.
wdx.histogra ) res!onse tie histogra "or each -A. %nl8 generated when there is
ore than one -A.
fsdx.histogra.htl ) res!onse tie histogra "or each DSA.
fwdx.histogra ) res!onse tie histogra "or each D-A. %nl8 generated when there
is ore than one D-A.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +3
Vdbench 5.03
1.2S$at !dbench Trace 1e)lay
Vdbench, in coo!eration with the Sun Storage/e#
/6
-or#load )nal8sis /ool =Swat> /race
Dacilit8 =S/D> allows 8ou to re!la8 the I$% wor#load o" a trace created using Swat.
) trace "ile created and !rocessed b8 Swat using the :9reate @e!la8 Dile; o!tion creates "ile
"lat"ile.bin.g7 which contains one record "or each I$% o!eration identi"ied b8 Swat.
See Exa!le +: Swat Vdbench /race @e!la8.
/here are two wa8s to do a re!la8:
1. I" 8ou want !recise control o'er which de'ice is re!la8ed on which SA, s!eci"8 the
de'ice nuber in the SA: sdCsd1,lunCxx,re!la8C=123,45+,2*E>. Fou cannot re!la8 larger
de'ices on a saller target SA.
2. I" 8ou want Vdbench to decide what goes where, create a @e!la8 Grou!:
rgCgrou!1,de'icesC=123,45+,2*E>
sdCsd1,lunCxxx,re!la8Cgrou!1
sdCsd2,lunC888,re!la8Cgrou!1
4sing this ethod, Vdbench will act li#e his own 'olue anager
Swat will e'en hel! 8ou with the creation o" this re!la8 !araeter "ile. Select :Dile;
:9reate re!la8 !araeter "ile;. &ust add enough SAs and soe "lour.
Fou can create a ix o" both ethods i" 8ou want !artial control o'er what is re!la8ed where.
)dd the Swat re!la8 "ile nae to the @un Ae"inition !araeters, and set an ela!sed tie at least
larger than the duration o" the original trace: BrdCrd1,K.,ela!sedC+0,re!la8C"lat"ile.bin.g7B.
/he I$% rate b8 de"ault is set to the I$% rate as it is obser'ed in the trace in!ut. I" a di""erent I$%
rate is re<uested, the inter?arri'al ties o" all the I$%s "ound in the trace will be ad(usted to allow
"or the re<uested change. /he run will terinate as soon as the last I$% has co!leted.
Vdbench$Swat trace re!la8 has been co!letel8 rewritten "or Vdbench503. /wo o" the original
re<uireents o" @e!la8 becae a hindrance: the "act that all o" the to?be?re!la8ed I$%
in"oration had to be loaded into eor8, and the !roble that @e!la8 could onl8 run inside o"
(ust one &V6 =@e!la8ing a high I%1S SSA wor#load (ust wouldn;t wor# this wa8>.
)t the start o" a re!la8 run the re!la8 "ile ="lat"ile.bin.g7> will be s!lit into one se!arate "ile !er
re!la8ed de'ice. /his s!litting will be done onl8 once, unless subse<uent runs change the aount
o" de'ices that will be re!la8ed. /hese :s!lit; "iles then will be read during the re!la8 instead o"
needing to ha'e all the data in eor8. =Y/-: i" 8ou want to reo'e unused de'ices "ro 8our
re!la8 "ile e'en be"ore 8ou gi'e it to Vdbench, use the :Dile; Dilter @e!la8 "ile; enu o!tion.>
Fou can now re<uest the @e!la8 to be done :n; ties instead o" sto!!ing a"ter the last I$% is
co!lete.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +4
Vdbench 5.03
)s I entioned abo'e, @e!la8 can now be run using ulti!le &V6s.
1araeter change to the @A !araeter: re!la8=2.xx.flatfile.bin.gz,nnnn,split-directory,nnn>,
where :nnn; is the aount o" ties that Vdbench needs to do the @e!la8, and s!litPdirector8 is
the target director8 where the :s!lit; "iles are written =instead o" in the sae director8 as
"lat"ile.bin.g7>.
.ote about BnnnB, how o"ten to do the @e!la8: reali7e that e'en though 8ou can re!eat the re!la8
BnnnB ties, the li#elihood that !re'iousl8 accessed data will be cached soewhere is great i" 8ou
do not ha'e a 'er8 long trace or when 8our cache is 'er8 large. /he sae is 'alid "or an8
consecuti'e re!la8, whether b8 re!eating re!la8 BnnnB ties using abo'e !araeter, or b8 a new
start o" Vdbench.
-ith Swat re!la8, there is no longer a need to ha'e an a!!lication installed to do !er"orance
testing. )ll 8ou need is a one?tie trace o" the a!!licationBs I$% wor#load and "ro that oent
on, 8ou can re!la8 that wor#load as o"ten as 8ou want without ha'ing to go to the e""ort and
ex!ense o" installing and$or !urchasing the a!!lication and$or data base !ac#age and co!8ing the
custoer;s !roduction data onto 8our s8ste.
Fou can re!la8 the wor#load on a di""erent t8!e o" storage de'ice to see what the !er"orance
will be, 8ou can increase the wor#load to see what ha!!ens with !er"orance, and with Veritas
VxV raw 'olues =Veritas VxV I$% is also traced> 8ou can e'en odi"8 the underl8ing
Veritas VxV structure to see what the !er"orance will be when, "or instance, 8ou change
"ro @)IA 1 to @)IA 5 or change stri!e si7eN
1.217om)lete S$at !dbench 1e)lay '(am)le
.ote: See Swat docuentation "or "urther in"oration.
1. 5og on as root =this exa!le is "or SolarisU "or -indows 8ou need to log on as
)dinistrator>
9. cd .swat
3. ..swat /his starts the Swat gra!hical user inter"ace.
4. Select :Swat /race Dacilit8 =S/D>.
5. 4se the B9reate I$% traceB tab to start a trace. =Fou can also create a trace using the
BswatPtraceB scri!t !ro'ided.
+. -ait "or the trace to co!lete.
2. Fou a8 lea'e root now.
*. 4sing Swat, run BExtractB. -ait "or co!letion.
E. @un )nal87e, with the :9reate @e!la8 Dile; chec#box selected. -ait "or co!letion.
10. 4se B@e!orterB. Select the de'ices that 8ou want re!la8ed.
11. Select :Dile; :9reate re!la8 !araeter "ile;.
12. 9o!8 the sa!le re!la8 !araeter "ile and !aste it into an8 new !araeter "ile.
13. )dd enough SAs to be at least e<ual to the total aount o" gigab8tes needed.
14. @un .."dbench :f parameter.file;
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +5
Vdbench 5.03
1.22,ile system testing
/he basic "unctionalit8 o" Vdbench has been created to test and re!ort the !er"orance o" one or
ore raw de'ices, and o!tionall8 one or ore large "ile s8ste "iles.
Starting release 405 a second t8!e o" !er"orance wor#load has been added to assist with the
testing o" "ile s8stes.
Vdbench "ile s8ste wor#loads re'ol'e around two #e8 sets o" !araeters:
) ;ile <ystem =nchor, consisting o" a director8 nae, and a director8 and "ile structure
that will be created under that anchor. Structure in"oration consists o" director8 de!th,
director8 width, nuber o" "iles, and "ile si7es. 6ulti!le "ile anchors a8 be de"ined and
used concurrentl8. ) axiu o" 32 illion "iles !er anchor are su!!orted. =32 illion
when running 32bit &a'a, 12* illion with +4bit &a'a. .ote that 8ou will need to a#e
sure 8our (a'a hea! si7e is large enough. 9hec# 8our .$swat scri!t "or 8our ?0x 'alue.
) ;ile <ystem 'peration. Dile s8ste o!erations are director8 create$delete, "ile
create$delete, "ile read$write, "ile o!en$close, setattr and getattr.
1araeter structure:
Dile S8ste Ae"inition =DSA>: /his !araeter describes the director8 and "ile structure
that will be created.
Dile s8ste -or#load Ae"inition =D-A> is used to s!eci"8 the DSA=s> to be used and
s!eci"ies iscellaneous wor#load !araeters.
@un Ae"inition =@A> has a set o" !araeters that controls the "ile s8ste wor#loads that
will be executed.
Each tie Vdbench starts it needs to #now the current status o" all the "iles, unless o" course
"oratC8es is s!eci"ied. -hen 8ou ha'e loads o" "iles, <uer8ing the directories can ta#e <uite a
while. /o sa'e tie, each tie when Vdbench terinates norall8 the current status o" all the
"iles is stored in "ile :'dbPcontrol."ile; in the anchor director8. /his control "ile is then read at the
start o" the next run to eliinate the need to re?establish the current "ile status using director8
searches.
-hen using :sharedC8es; as an DSA !araeter this control "ile howe'er will not be aintained.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. ++
Vdbench 5.03
1.22.1 2irectory and file names
Airector8 naes are generated as "ollows: 'dbPxP8.dir, e.g. 'db1P1.dir
-here :x; re!resents the de!th o" this director8 =as in de!thCnn>, and :8; re!resents the width =as
in widthCnn>.
Dile naes are generated as "ollows: 'dbP"nnnn."ile
-here :nnnn; re!resents a se<uence nuber "ro 1 to :"ilesCnnnn;
Exa!le: "sdC"sd1,anchorCdir1,de!thC2,widthC2,"ilesC2
find dir1 | grep file
dir1/vdb_control.file
dir1/vdb1_1.dir/vdb2_1.dir/vdb_f0001.file
dir1/vdb1_1.dir/vdb2_1.dir/vdb_f0002.file
dir1/vdb1_1.dir/vdb2_2.dir/vdb_f0001.file
dir1/vdb1_1.dir/vdb2_2.dir/vdb_f0002.file
dir1/vdb1_2.dir/vdb2_1.dir/vdb_f0001.file
dir1/vdb1_2.dir/vdb2_1.dir/vdb_f0002.file
dir1/vdb1_2.dir/vdb2_2.dir/vdb_f0001.file
dir1/vdb1_2.dir/vdb2_2.dir/vdb_f0002.file
Dile :'dbPcontrol."ile; contains a descri!tion o" the current director8 and "ile structure. /his "ile
is there to allow consecuti'e Vdbench tests that use an existing structure to a#e sure that the
existing structure atches the current !araeter settings.
Auring a cleanu! o" an existing director8 structure Vdbench onl8 deletes "iles and directories that
contain this naing !attern. .o other "iles will be deleted. So rest assured that i" 8ou s!eci"8
$root as 8our anchor director8 8ou won;t lose 8our s8ste
Diles b8 de"ault are created in the lowest director8 le'el. -hen s!eci"8ing :distributionCall;, "iles
will be created in e'er8 director8 I ex!ect to build ore detailed "ile structures in the "uture.
.EE&4A56 7EE&E&8
1.22.2 5ile system sample parameter file
fsd=fsd(,anchor=.dir(,depth=9,width=9,files=9,size=(9>k
fwd=fwd(,fsd=fsd(,operation=read,xfersize=8k,fileio=se/uential,fileselect=random,threads=9
rd=rd(,fwd=fwd(,fwdrate=max,format=yes,elapsed=(),inter"al=(
/his !araeter "ile will use a director8 structure o" 4 directories and * "iles =see abo'e "or "ile
naes>. /he @A !araeter :"oratC8es; causes the director8 structure to be co!letel8 created
=a"ter deleting an8 existing structure>, including initiali7ation o" all "iles to the re<uested si7e o"
12*#.
)"ter the "orat co!letes the "ollowing will ha!!en "or 10 seconds at a rate o" 100 reads !er
second:
Start two threads =threadsC2U 1 thread is de"ault>.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +2
Vdbench 5.03
Each thread:
o @andol8 selects a "ile ="ileselectCrando>
o %!ens this "ile "or read =o!erationCread>
o Se<uentiall8 reads 4# bloc#s =x"ersi7eC4#> until end o" "ile =si7eC12*#>
o 9loses the "ile and randol8 selects another "ile.
/his is a 'er8 si!le exa!le. 6uch ore co!lex scenarios are !ossible when 8ou use the
co!lete set o" Vdbench !araeters. Ye aware though that co!lexit8 coes at a !rice. Dor
instance, 8ou can;t read or write be"ore a "ile is created and 8ou can;t create a "ile be"ore its
!arent director8 is created. /he :"oratC8es; !araeter can be 'er8 hel!"ul here, e'en though it
is !ossible to do 8our own "orat using #dir, create and write o!erations. See also 6ulti
/hreading and "ile s8ste testing
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +*
Vdbench 5.03
1.23,ile System 2efinition -,S2. )arameter overvie$%
"sdCnae 4ni<ue nae "or this Dile S8ste Ae"inition.
"sdCde"ault )ll !araeters used will ser'e as de"ault "or all the "ollowing "sd;s.
anchorC$dir$ /he nae o" the director8 where the director8 structure will be
created.
countC=nn,> 9reates a se<uence o" DSA !araeters.
de!thCnn 3ow an8 le'els o" directories to create under the anchor.
distributionCall Ae"ault :botto;, creates "iles onl8 in the lowest directories. :all;
creates "iles in all directories.
"ilesCnn 3ow an8 "iles to create in the lowest le'el o" directories.
o!en"lagsC="lag,..> 1ass extra "lags to =Solaris> "ile s8ste o!en re<uest =See:
an o!en>
sharedC8es$no Ae"ault :no;: See DSA sharing
si7esC=nn,nn,K..> S!eci"ies the si7e=s> o" the "iles that will be created.
totalsi7eCnnn Sto! a"ter a total o" :nnn; b8tes o" "iles ha'e been created.
widthCnn 3ow an8 directories to create in each new director8.
wor#ingsetsi7eCnn
wssCnn
9auses Vdbench to onl8 use a subset o" the total aount o"
"iles de"ined in the "ile structure. See wor#ingsetsi7e.
(ournalCdir -here to store 8our Aata Validation (ournal "iles.
1.24,ilesystem 3or4load 2efinition -,32. )arameter overvie$%
"wdCnae 4ni<ue nae "or this Diles8ste -or#load Ae"inition.
"wdCde"ault )ll !araeters used will ser'e as de"ault "or all the "ollowing "wd;s.
"sdC=xx,K.> .ae=s> o" Diles8ste Ae"initions to use
o!en"lagsC 1ass extra "lags to =Solaris> "ile s8ste o!en re<uest =See: an o!en>
"ileioC=rando.shared> )llows ulti!le threads to use the sae "ile.
"ileioC=se<,delete> Se<uential I$%: -hen o!ening "or writes, "irst delete the "ile
"ileioCrando 3ow "ile I$% will be done: rando or se<uential
"ileioCse<uential 3ow "ile I$% will be done: rando or se<uential
"ileselectCrando$se< 3ow to select "ile naes or director8 naes "or !rocessing.
hostChostPlabel -hich host this wor#load to run on.
o!erationCxxxx S!eci"ies a single "ile s8ste o!eration that ust be done "or this
wor#load.
rd!ctCnn Dor o!erationCread and o!erationCwrite onl8. /his allows a ix and
read and writes against a single "ile.
s#ewCnn /he !ercentage o" the total aount o" wor# "or this D-A
sto!a"terCnnn Dor rando I$%: sto! and close "ile a"ter :nnn; reads or writes. Ae"ault
Bsi7eCB b8tes "or rando I$%.
threadsCnn 3ow an8 concurrent threads to run "or this wor#load. =6a#e sure
8ou ha'e at least one "ile "or each thread>.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. +E
Vdbench 5.03
x"ersi7eC=nn,K> S!eci"ies the data trans"er si7e=s> to use "or read and write o!erations.
1.251un 2efinition -12. )arameters for file systems8 overvie$
/hese !araeters are "ile s8ste s!eci"ic !araeters. 6ore @A !araeters can be "ound at @un
Ae"inition 1araeter %'er'iew. Ye aware, that soe o" those !araeters li#e :"orrh!ctC; are not
su!!orted "or "ile s8ste testing.
"wdC=xx,88,..> .ae=s> o" Diles8ste -or#load Ae"initions to use.
"wdrateCnn 3ow an8 "ile s8ste o!erations !er second
"oratC8es$no$onl8$
restart$clean$once$
directories
Auring this run, i" needed, create the co!lete "ile structure.
o!erationsCxx %'errides the o!eration s!eci"ied on all selected D-As.
"oro!erationsCxx 6ulti!le runs "or each s!eci"ied o!eration.
"orde!thCxx 6ulti!le runs "or each s!eci"ied director8 de!th
"orwidthCxx 6ulti!le runs "or each s!eci"ied director8 width
"or"ilesCxx 6ulti!le runs "or each s!eci"ied aount o" "iles
"orsi7esCxx 6ulti!le runs "or each s!eci"ied "ile si7e
"ortotalCxx 6ulti!le runs "or each s!eci"ied total "ile si7e
1.2",ile System 2efinition -,S2. )arameter detail%
Warning, specifying a directory and file structure is easy. ?owe"er, it is also "ery easy to make
it too large. Width=+,depth=+,files=+ results in 7@)+ directories and (+A9+ files*
Bdbench allows 79 million files per ;<C, (9> million when running A8bit Da"a. =bout A8 bytes of
Ea"a heapspace is needed per file, possibly causing memory problems. Fou may ha"e to update
the Gmx parameter in your .."dbench script.
1.2E.1 GfsdBnameH. 5ilesystem ,torage 2efinition name
:"sdC; uni<uel8 identi"ies each Dile S8ste Ae"inition. /he DSA nae is used b8 the Diles8ste
-or#load Ae"inition =D-A> !araeter to identi"8 which DSA=s> to use "or this wor#load.
-hen 8ou s!eci"8 :de"ault; as the DSA nae, the 'alues entered will be used as de"ault "or all
DSA !araeters that "ollow.
1.2E.2 GanchorBH. 2irectory anchor
/he nae o" the director8 where the director8 structure will be created. /his anchor a8 not be a
!arent or child director8 o" an anchor de"ined in a di""erent DSA. I" this anchor director8 is the
sae as an anchor director8 in a di""erent DSA the director8 structure =width, de!th etc> ust be
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 20
Vdbench 5.03
identical. I" this director8 does not exist, Vdbench will create it "or 8ou. I" 8ou also want
Vdbench to create this director8;s !arent directories, s!eci"8 :createPanchorC8es;.
Exa!le: anchorC$"ile$s8ste$
1.2E.> Gco#ntBCnn,mmDH &eplicate parameters
/his !araeter allows 8ou to <uic#l8 create a se<uence o" DSAs, e.g.
"sdC"sd,anchorC$dir,countC=1,5> results in "sd1?"sd5 "or $dir1 through $dir5
1.2E.? GsharedBH 5,2 sharing.
-ith Vdbench running ulti!le sla'es and o!tionall8 ulti!le hosts, counications between
sla'es and hosts about a "ile;s status becoes di""icult. /he o'erhead in'ol'ed to ha'e all these
sla'es counicate with each other about what the8 are doing with the "iles (ust becoes too
ex!ensi'e. Fou don;t want one sla'e to delete a "ile that a di""erent sla'e is currentl8 reading or
writing. Vdbench there"ore does not allow 8ou to share DSAs across sla'es and hosts.
/hat o" course all sounds great until 8ou start wor#ing with huge "ile s8stes. Fou (ust "illed u!
500 terab8tes o" dis# "iles and 8ou then decide that 8ou want to share that data with one or ore
reote hosts. @ecreating this whole "ile structure "ro scratch (ust ta#es too long. -hat to doQ
-hen s!eci"8ing :sharedC8es;, Vdbench will allow 8ou to share a Dile S8ste Ae"inition =DSA>.
It does this b8 allowing each sla'e to use onl8 e'er8 :nth; "ile as is de"ined in the DSA "ile
structure, where :n; e<uals the aount o" sla'es.
/his eans that the di""erent hosts won;t ste! on each other;s toes, with one exce!tion: -hen
8ou s!eci"8 :"oratC8es;, Vdbench "irst deletes an alread8 existing "ile structure. Since this can
be an old "ile structure, Vdbench cannot s!read the "ile deletes around, letting each sla'e delete
his :nth; "ile. Each sla'e there"ore tries to delete )55 "iles, but will not generate an error
essage i" a delete "ails =because a di""erent sla'e (ust deleted it>. /hese "ailed deletes will be
counted and re!orted howe'er in the :6iscellaneous statistics;, under the
:DI5EPAE5E/EPS3)@EA; counter. /he :DI5EPAE5E/ES; counter howe'er can contain a
count higher than the aount o" "iles that existed. I ha'e seen situations where ulti!le sla'es
were able to delete the sae "ile at the sae tie without the %S !assing an8 errors to &a'a.
I" 8ouBre sure 8ou will want to delete an existing "ile structure each tie 8ou run, 8ou can o"
course also code startcdCTr ?r" $"ile$anchorT which will do the delete "or 8ou. Ye care"ul
thoughU Vdbench onl8 deletes its own "iles, while Br ?r" $rootB deletes an8thing it "inds.
1.2E.; G!idthBH. 8oriJontal directory co#nt
/his !araeter s!eci"ies how an8 directories to create in each new director8. See abo'e "or an
exa!le.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 21
Vdbench 5.03
1.2E.E GdepthBH. /ertical directory co#nt
/his !araeter s!eci"ies how an8 le'els o" directories to create under the anchor. See abo'e "or
an exa!le.
1.2E.@ GfilesBH. 5ile co#nt
/his !araeter s!eci"ies how an8 "iles to create in the lowest le'el o" directories. See abo'e "or
an exa!le. .ote that 8ou need at least one "ile !er :"wdCxxx,threadsC; !araeter s!eci"ied. I"
there are not enough "iles, a thread a8 tr8 to "ind an a'ailable "ile u! to 10,000 ties be"ore it
gi'es u!.
1.2E.A GsiJesBH. 5ile siJes
/his !araeter s!eci"ies the si7e o" the "iles. Either s!eci"8 a single "ile si7e, or a set o" !airs,
where the "irst nuber in a !air re!resents "ile si7e, and the second nuber re!resents the
!ercentage o" the "iles that ust be o" this si7e. E.g. si7esC=32#,50,+4#,50>
-hen 8ou s!eci"8 :si7esC=nnn,0>;, Vdbench will create "iles with an a'erage si7e o" :nnn; b8tes.
/here are soe rules though related to the "ile si7e that is ultiatel8 used:
I" si7e a 10, si7e will be a ulti!le o" 1
I" si7e a 1, si7e will be ulti!le o" 100#
I" si7e a 100#, si7e will be ulti!le o" 10#
I" si7e b 100#, si7e will be ulti!le o" 1#.
1.2E.= GopenflagsBH. Optional file system GopenH parameters
4se this !araeter to !ass extra "lags to o!en re<uest =See: an o!en=2>>
Dlags currentl8 su!!orted: %PASF.9, %P@SF.9, %PSF.9.
See also :o!en"lagsC;: 9ontrol o'er o!en=> s8ste call.
1.2E.10 GtotalsiJeBH. Create files #p to a specific total file siJe.
/his !araeter sto!s the creation o" new "iles a"ter the re<uested total aount o" "ile s!ace is
reached. Ye aware that the :de!thC;, :widthC;, :"ilesC; and :si7esC; !araeter 'alues ust be
large enough to accoodate this re<uest. See also the @A :"ortotalC: !araeter.
Exa!le: totalsi7eC100g
See also B"oratCliitedB
1.2E.11 G!orkingsetsiJeBnnH or G!ssBnnH
-hile the de!th, width, "iles and si7es !araeters de"ine the axiu !ossible "ile structure,
:totalsi7eC; i" used s!eci"ies the aount o" "iles and "ile s!ace to create.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 22
Vdbench 5.03
:wor#ingsetsi7eC; creates a subset o" the "ile structure o" those "iles that will be used during this
run. I" "or instance 8ou ha'e 200g worth o" "iles, and 32g o" "ile s8ste cache, 8ou can s!eci"8
:wssC32g; to a#e sure that a"ter a waru! !eriod, all 8our "ile s!ace "its in "ile s8ste cache.
9an also be used with :"orwor#ingsetsi7e; or :"orwss;.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 23
Vdbench 5.03
1.2&,ile system 3or4load 2efinition -,32. detail
1.2@.1 Gf!dBnameH. 5ile system :orkload 2efinition name
:"wdC; uni<uel8 identi"ies each Dile s8ste -or#load Ae"inition. /he D-A nae is used b8 the
@un Ae"inition =@A> !araeter to identi"8 which D-As to use "or this wor#load.
-hen 8ou s!eci"8 :de"ault; as the D-A nae, the 'alues entered will be used as de"ault "or all
D-A !araeters that "ollow.
1.2@.2 GfsdBH. !hich 5ile ,ystem 2efinitions to #se
/his !araeter s!eci"ies which DSAs to use "or this wor#load.
Exa!le: "sdC="sd1,"sd2>
1.2@.> GfileioBH. random or se'#ential */O
/his !araeter s!eci"ies the t8!e o" I$% that needs to be done on each "ile, either rando or
se<uential. ) rando 5Y) will be generated on a data trans"er si7e boundar8.
? "ileioCrando: do rando I$%, one thread !er "ile onl8.
? "ileioC=rando,shared> do rando I$%, but allow ulti!le threads to share
the sae "ile.
? "ileioCse<uential: do se<uential I$%.
? "ileioC=se<,delete>: delete the "ile be"ore writing.
1.2@.? GrdpctBH. specify read percentage
/his !araeter allows 8ou to ix reads and writes. 4sing o!erationCread onl8 allows 8ou to do
reads, o!erationCwrite allows 8ou to onl8 do writes. S!eci"8 rd!ctC howe'er, and 8ou will be
able to ix reads and writes within the sae selected "ile. .ote that "or se<uential this won;t
a#e uch sense. Fou could end with read bloc#1, write bloc#2, read bloc#3, etc. Dor rando
I$% howe'er this a#es !er"ect sense.
1.2@.; GstopafterBH. ho! m#ch */OL
/his !araeter lets Vdbench #now how uch reads or writes to do against each "ile.
Fou a8 s!eci"8 :sto!a"terCnn; which will cause Vdbench to sto! using this "ile a"ter :nn;
bloc#s, or 8ou a8 s!eci"8 :sto!a"terCnn^; which will sto! !rocessing a"ter nn^ o" the
re<uested "ile si7e is !rocessed.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 24
Vdbench 5.03
Dor rando I$% Vdbench b8 de"ault will sto! a"ter :"ile si7e; b8tes are read or written. /his
de"ault !re'ents 8ou "ro accidentall8 doing 100 illion *# rando reads or writes against a
single *# "ile.
Dor se<uential I$% Vdbench b8 de"ault will alwa8s read or write the co!lete "ile.
-hen 8ou s!eci"8 :sto!a"terC; though, Vdbench will onl8 read or write the aount o" data
re<uested. /he next tie this "ile is used "or se<uential I$% howe'er it will continue a"ter the last
bloc# !re'iousl8 used.
/his can be used to siulate a "ile :a!!end; when writing to a "ile.
1.2@.E GfileselectBH. !hich files to selectL
/his !araeter allows 8ou to select directories and "iles "or !rocessing either se<uentiall8 in the
order in which the8 ha'e been s!eci"ied using the de!thC, widthC, and "ilesC DSA !araeters, or
whether the8 should be selected randol8. See also Airector8 and "ile naes.
.ote though that when 8ou use "ileioC=rando,shared> with as one o" the ob(ecti'es the setting
o" 8our acti'e wor#ing set si7e, "ileselectCrando a8 not be the correct thing to do. Fou a8
end u! with ulti!le threads using the sae "ile. /he total wor#ing set si7e there"ore a8 not be
what 8ou ex!ect.
1.2@.@ G%fersiJesBH. data transfer siJes for read and !rites
/his !araeter s!eci"ies the data trans"er si7e=s> to use "or read and write o!erations. Either
s!eci"8 a single x"ersi7e, or a set o" !airs, where the "irst nuber in a !air re!resents x"ersi7e,
and the second nuber re!resents the !ercentage o" the I$% re<uests that ust use this si7e. E.g.
x"ersi7esC=*#,50,1+#,30,2#,20>. 1ercentages o" course ust add u! to 100.
1.2@.A GoperationBH. !hich file system operation to e%ec#te
S!eci"ies a single "ile s8ste o!eration that ust be executed "or this wor#load: 9hoose one:
#dir, rdir, create, delete, o!en, close, read, write, getattr and setattr. I" 8ou need ore than
one o!eration s!eci"8 :o!erationsC; in the @un Ae"inition.
/o allow "or ixed read and write o!erations against the sae "ile, s!eci"8 "wdCxxx,rd!ctCnn.
1.2@.= Gske!BH. !hich percentage of the total !orkload
/he !ercentage o" the total aount o" wor# =s!eci"ied b8 the "wdrateC !araeter in the @un
Ae"inition> assigned to this wor#load. Y8 de"ault all the wor# is e'enl8 distributed aong all
wor#loads.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 25
Vdbench 5.03
1.2@.10 GthreadsBH. ho! many conc#rrent operations for this
!orkload
S!eci"ies how an8 concurrent threads to run "or this wor#load. It should be clear that this does
not ean that :n; threads are running against each "ile, but instead it eans that there will be :n;
concurrent "iles running this sae wor#load. 4nless o'erridden using the "ileioC=rando,shared>
!araeter =ll file operations for a specific directory or file are single threaded. See 6ulti
/hreading and "ile s8ste testing.
6a#e sure 8ou alwa8s ha'e at least one "ile "or each thread. I" not, one or ore threads continue
tr8ing to "ind an a'ailable "ile, but Vdbench gi'es u! a"ter 10,000 consecuti'e "ailed atte!ts.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2+
Vdbench 5.03
1.2*1un 2efinition -12. )arameters for file system testing8 detail
1.2A.1 Gf!dBH. !hich 5ile system :orkload 2efinitions to #se
/his !araeter tells Vdbench which D-As to use during this run. S!eci"8 a single wor#load as
:"wdC"wd1; or ulti!le wor#loads either b8 entering the indi'iduall8
:"wdC="wd1,"wd2,"wd3>;, a range :"wdC="wd1?"wd3;>; or b8 using a wildcard character
:"wdC"wdV;.
1.2A.2 Gf!drateBH. ho! many operations per second.
"wdrateC100 @un a wor#load o" 100 o!erations !er second
"wdrateC=100,200,K> @un a wor#load o" 100 o!erations !er second, then 200, etc.
"wdrateC=100?1000,100> @un wor#loads with o!erations !er second "ro 100 to 1000,
increented b8 100.
"wdrateCcur'e 9reate a !er"orance cur'e.
"wdrateCax @un the axiu uncontrolled o!erations !er second.
/his !araeter s!eci"ies the cobined rate !er second to generate "or all re<uested "ile s8ste
o!erations.
See also BiorateCnnB: %ne or 6ore I$% @ates.
/here is a s!eci"ic reason wh8 the label :"wdrate; was chosen co!ared to :iorate; "or raw I$%
wor#load. /hough usuall8 ost o" the o!erations executed against "ile s8stes will be reads and
writes, and there"ore I$% o!erations, Vdbench also allows "or se'eral other o!erations: #dir,
rdir, create, delete, o!en, close, getattr and setattr. /hese o!erations are all etadata o!erations
which are there"ore not considered I$% o!erations.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 22
Vdbench 5.03
1.2A.> GformatBH. pre)format the directory and file str#ct#re
-hen s!eci"8ing "oratC8es, this !araeter re<uests that at the start o" each run an8 old
director8 structure "irst is deleted and then the new one recreated.
)n8 "orat re<uest =unless "oratCrestart> will delete e'er8 "ile and director8 that "ollows the
director8 and "ile naing that Vdbench generates. Aon;t worr8U Vdbench won;t accidentall8
delete 8our root director8. See also Airector8 and "ile naes.
Ye care"ul though with "orat: 8ou a8 (ust ha'e s!ent 4* hours creating a "ile structure. Fou
don;t want to accidentall8 lea'e :"oratC8es; in 8our !araeter "ile when 8ou want to reuse the
(ust created "ile structure.
)lso understand that i" 8ou change the "ile structure a "orat run is re<uired. Vdbench #ee!s
trac# o" what the !re'ious "ile structure was and will re"use to continue i" it has been changed.
Fou a8 howe'er !lan "or growth o" 8our "ile s8ste. /he director8 and "ile structure s!eci"ied
will be the axiuU 8ou can use both totalsi7eC and wor#ingsetsi7eC to use subsets o" this
axiu.
) "orat i!lies that "irst all the directories are created. )"ter this all "iles will be se<uentiall8
"oratted using 12*# as a trans"er si7e.
-hen s!eci"8ing :"oratC8es; "or a "ile s8ste wor#load Vdbench autoaticall8 inserts an extra
wor#load and run to do the "oratting. Ae"aults "or this run are threadsC*,x"ersi7eC12*#.
/o o'erride this, add "wdC"orat,threadsCnn,x"ersi7eCnn. Fou can also s!eci"8
:o!en"lagsCxxx;. )ll other !araeters used in "wdC"orat will be ignored.
"oratC -hen using ore than one o!tion use !arenthesis: "oratC=8es,restart>
Ae"ault: "oratCno
no .o "orat re<uired, though the existing "ile structure ust atch the structure
de"ined "or this DSA.
8es Vdbench will "irst delete the current "ile structure and then will create the "ile
structure again. It will then execute the run 8ou re<uested in the current @A.
restart Vdbench will create onl8 "iles that ha'e not been created and will also ex!and "iles
that ha'e not reached their !ro!er si7e. =/his is where totalsi7e and wor#ingsetsi7e
can coe into !la8>.
onl8 /he sae as :8es;, but Vdbench will .%/ execute the current @A.
dir=ectories> /he sae as :8es;, but it will onl8 create the directories.
clean Vdbench will onl8 delete the current "ile structure and .%/ execute the current
@A.
once /his o'errides the de"ault beha'ior that a "orat is done "or each "orxxx !araeter
loo! done.
liited /he "orat will terinate a"ter Bela!sedC seconds instead o" a"ter all "iles or "iles
selected "or totalsi7eC ha'e been "oratted.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2*
Vdbench 5.03
1.2A.? GoperationsBH. !hich file system operations to r#n
S!eci"ies one or ore o" the a'ailable "ile s8ste o!erations: #dir, rdir, create, delete, o!en,
close, read, write, getattr and setattr. /his o'errides the :"wdCxxx,o!erationsC; !araeter.
E.g. o!erationsC#dir or o!erationsC=read,getattr>
/his can get tric#8, but Vdbench will be able to handle it all. I" "or instance 8ou do not ha'e an
existing "ile structure, and 8ou as# "or o!erationsCread, Vdbench will "ail because there are no
"iles a'ailable. 9ode o!erationsC=create,read> and Vdbench will still "ail because there still are
no directories a'ailable. 9ode o!erationsC=#dir,create,read> will also "ail because e'en though
the "iles exist, the8 are still e!t8. -ith o!erationsC=#dir,create,write,read> things should wor#
(ust "ine.
/here;s one :gotcha; here though: once all directories and "iles ha'e been created the threads "or
those o!erations are terinated because there no longer is an8thing "or the to do. /his eans
that i" 8ou ha'e s!eci"ied "or instance "wdrateC1000 the reaining threads "or :read; and :write;
will continue doing their re<uested !ortion o" the total aount o" wor#, and that is 250
o!erations !er second each "or a total o" "wdrateC500.
) di""erent wa8 to do 8our own "oratting o" the "ile structure is run with
:"oro!erationsC=#dir,create,write,read>;. Dor se<uential write o!erations a create is done i" the
"ile does not exist.
1.2A.; GforoperationsBH. create GforH loop #sing different
operations
/he :"oro!erationsCB !araeter is an o'erride "or all wor#load s!eci"ic operations !araeters,
and allows ulti!le autoatic executions o" a wor#load with di""erent o!erations.
-hile the :o!erationsC; !araeter abo'e does one run with all re<uested o!erations running at
the sae tie, :"oro!erationsC; does one run !er o!eration.
"oro!erationsCread %nl8 do read o!erations
"oro!erationsC=read,write,delete,rdir> Aoes one run each "irst reading all "iles, then
writing, and then deletes all directories and
"iles =) test li#e this re<uires the director8
structure to "irst ha'e been created b8 "or
instance using :"oratC8es;>
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. 2E
Vdbench 5.03
1.2A.E GfordepthBH. create GforH loop #sing different directory
depths
/he :"orde!thCB !araeter is an o'erride "or all DSA s!eci"ic depth !araeters, and allows
ulti!le autoatic executions o" a director8 structure with di""erent de!th 'alues..
"orde!th C5 %ne run using de!thC5
"orde!th C=5?10,1> Aoes one run each with di""erent de!th 'alues ranging "ro "i'e to
ten, increenting the director8 de!th b8 one each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.2A.@ Gfor!idthBH. create GforH loop #sing different directory
!idths
/he :"orwidthCB !araeter is an o'erride "or all DSA s!eci"ic width !araeters, and allows
ulti!le autoatic executions o" a director8 structure with di""erent width 'alues.
"orwidth C5 %ne run using widthC5
"orwidth C=5?10,1> Aoes one run each with di""erent width 'alues ranging "ro "i'e to
ten, increenting the director8 width b8 one each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.2A.A GforfilesBH. create GforH loop #sing different amo#nt of files
/he :"or"ilesCB !araeter is an o'erride "or all DSA s!eci"ic files !araeters, and allows ulti!le
autoatic executions o" a director8 structure with di""erent "iles 'alues.
"or"iles C5 %ne run using "ilesC5
"or"iles C=5?10,1> Aoes one run each with di""erent "ilesC 'alues ranging "ro "i'e to
ten, increenting the aount o" "iles b8 one each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.2A.= GforsiJesBH. create GforH loop #sing different file of siJes
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *0
Vdbench 5.03
/he :"orsi7esCB !araeter is an o'erride "or all DSA s!eci"ic sizes !araeters, and allows
ulti!le autoatic executions o" a director8 structure with di""erent "ile si7es.
-hen 8ou use this !araeter 8ou cannot s!eci"8 a distribution o" "ile si7es as 8ou can do using
the DSA de"initions.
"orsi7es C5 %ne run using si7esC5
"orsi7es C=5?10,1> Aoes one run each with di""erent si7esC 'alues ranging "ro "i'e to
ten, increenting the aount o" "iles b8 one each tie.
See %rder o" Execution "or in"oration on the execution order o" this !araeter.
1.2A.10 GfortotalBH. create GforH loop #sing different total file siJes
/his !araeter is an o'erride "or the DSA :"ilesC; !araeter. It allows 8ou to create enough "iles
to "ill u! the re<uired aount o" total "ile si7es, e.g. "ortotalC=10g,20g>. /hese 'alues ust be
increental. See also the :totalsi7eC; !araeter.
"ortotalC5g %ne run using "ortotalC5g
"ortotalC=5g,10g> %ne run with totalsi7eC5g, and then one run with totalsi7eC10g
.ote that this results in ulti!le "orat runs being done i" re<uested. Since 8ou do not want the
second "orat to "irst delete the !re'ious "ile structure 8ou a8 s!eci"8 "oratC=8es,restart>.
1.2A.11 Gfor!ssBH. GforH loop #sing !orking set siJes.
/his !araeter o'errides the DSA :wor#ingsetsi7eC; !araeter "orcing Vdbench to use onl8 a
subset o" the "ile structure de"ined with the DSA.
"orwssC1+g 4ses onl8 a 1+g subset o" the "iles s!eci"ied in the DSA
"orwssC=1+g,32g> /wo runs: one "or 1+g and one "or 32g.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *1
Vdbench 5.03
1.2/9ulti Threading and file system testing
Y8 de"ault, ulti threading "or "ile s8ste testing does not ean that ulti!le threads will be
concurrentl8 using the sae "ile. )ll indi'idual "ile o!erations are done single threaded. %ther
threads howe'er can be acti'e with di""erent "iles.
/his beha'ior can be o'erridden when s!eci"8ing B"ileioC=rando,shared>B.
9onsidering the co!lexit8 allowing director8 creates, "ile creates, "ile reads and "ile writes
against the sae director8 structure ha!!ening concurrentl8 there are soe !rett8 interesting
scenarios that Vdbench has to deal with. Soe o" the:
9reating a "ile be"ore its !arent director8 or directories exist.
@eading or writing a "ile that does not exist 8et.
@eading a "ile that has not been written 8et.
Aeleting a "ile that is currentl8 being read or written.
@eading a "ile that does not exist while there are no new "iles being created.
-hen these things ha!!en Vdbench will anal87e the situation. Dor instance, i" he wants to write
to a "ile that does not exist, the code will chec# to see i" an8 new "iles will be created during this
run. I" so, the current thread goes to slee! "or a "ew icroseconds, selects the next director8 or
"ile and tries again. I" there are no "ile creates !ending Vdbench will abort.
)t the end o" each run nuerous statistics related to these issues will be re!orted in log"ile.htl
and on stdout, with a brie" ex!lanation and with a count.
/o identi"8 deadloc#s =which is an error situation and should be re!orted to e> Vdbench will
abort a"ter 10000 consecuti'e slee!s without a success"ul o!eration.
.ote: there currentl8 is a #nown deadloc# situation where there are ore threads than "iles. I"
8ou "or instance s!eci"8 12 threads but onl8 * "iles, 4 o" the threads will continuall8 be in the :tr8
and slee!; loo!, ultiatel8 when the run is long enough hitting the 10000 count.
6iscellaneous statistics exa!le:
13:28:35.183 Miscellaneous statistics:
13:28:35.183 D!"#$%!&_#!"'$"( Directories creates: )810
13:28:35.183 *+"_#!"'$"( *ile creates: ,25000
13:28:35.183 -!$"_%."/( *iles opened for 0rite activit1: ,25000
13:28:35.182 D!_"3($( Director1 4a1 not e5ist 61et7: 338)2
13:28:35.182 *+"_M'&_/%$_"3($ *ile 4a1 not e5ist 61et7: 82
13:28:35.182 M((/9_.'!"/$ .arent director1 does not e5ist 61et7: )58
13:28:35.182 .'!"/$_D!_:;(& .arent director1 bus1< 0aiting: 25510
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *2
Vdbench 5.03
1.3O)erations counts vs. nfsstat counts%
/he o!erations that 8ou can s!eci"8 are: #dir, rdir, create, delete, o!en, close, read, write,
getattr and setattr. /hese are the o!erations that Vdbench will execute. )"ter a run against an
.DS director8 i" 8ou loo# at the n"s3$4.htl "iles =the8 are lin#ed to "ro #stat.htl> 8ou;ll see
the n"sstat re!orted counts. !hese counts do not include the operations that were either handled
from file system cache or from inode cache. E'en i" 8ou ount the "ile s8stes "or instance with
forcedirectio and noac there is no guarantee that the n"sstat counts atch one?"or?one the wor#
done b8 Vdbench. Dor instance, one single stat=> 9 "unction re<uest translates into "our .DS
getattr re<uests.
/he onl8 wa8 "or the Vdbench and n"sstat counts to !ossibl8 atch is i" Vdbench would use
nati'e .DS code. /his is not within the sco!e o" Vdbench.
)lso, n"sstat shows a total o" all .DS o!erations, not onl8 o" what Vdbench is running against
8our s!eci"ic "ile s8ste. I" 8ou ha'e a dedicated s8ste "or testing then 8ou can control how
uch other .DS wor# there is going on. /o a#e sure that Vdbench re!orting does not generate
extra .DS acti'it8, use the Vdbench :?out!ut; !araeter to send the Vdbench out!ut to a non
.DS "ile s8ste.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *3
Vdbench 5.03
1.311e)ort file e(am)les
1.>1.1 s#mmary.html
Bsuar8.htlB re!orts the total wor#load generated "or each run !er re!orting inter'al, and the
weighted a'erage "or all inter'als except the "irst =used to be "irst and last, re!ort exa!les ha'e
not been u!dated>.
.ote: the "irst inter'al will be ignored "or the run totals unless the waru!C !araeter is used in
which case 8ou can as# Vdbench to ignore ore than one inter'al.
Starting RD=rd1; I/O rate: 1000; elapsed=3; For loops: xfersize=1k
interval i/o !/se" #$tes read resp read %rite resp resp &'e'e "p'( "p'(
rate 10)*++) i/o p"t ti,e resp resp ,ax stddev dept- s$s.' s$s
1 /33000 00/1 10)* 0000 00001 00000 00001 00032 00003 000 1)02 00*
) 331000 0031 10)* 0000 00001 00000 00001 0003) 0000* 000 3104 000
3 1001000 003/ 10)* 0000 00001 00000 00001 000/4 0000* 000 10* 004
avg5)63 334000 0031 10)* 0000 00001 00000 00001 000/4 0000* 000 130* 003
inter'al @e!orting inter'al se<uence nuber. See Binter'alCnnB !araeter.
I$% rate )'erage obser'ed I$% rate !er second.
6Y sec )'erage nuber o" egab8tes o" data trans"erred.
b8tes I$% )'erage data trans"er si7e.
read !ct )'erage !ercentage o" reads.
res! tie )'erage res!onse tie easured as the duration o" the read$write
re<uest. )ll I$% ties are in illiseconds.
read res! )'erage res!onse tie "or reads
write res! )'erage res!onse tie "or writes
res! ax 6axiu res!onse tie obser'ed in this inter'al. /he last line contains
total ax.
res! stdde' Standard de'iation "or res!onse tie.
<ueue de!th )'erage I$% <ueue de!th calculated b8 Vdbench. /here a8 be slight
di""erences with the Lstat results, this due to at what tie during the
I$% !rocess the calculations are ade.
@eali7e also that Lstat re!orts on /-% <ueues: the host wait <ueue and
the de'ice acti'e <ueue.
c!u^ s8sXusr 1rocessor bus8 C 100 ? =s8ste X user tie> =Solaris, -indows, 5inux>
c!u^ s8s 1rocessor utili7ationU s8ste tie.
.ote that Vdbench will dis!la8 a warning i" a'erage c!u utili7ation
during a test reaches *0^. /his warns that 8ou a8 not ha'e enough
c!u c8cles a'ailable to !ro!erl8 run at the highest wor#load !ossible.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *4
Vdbench 5.03
1.>1.2 totals.htmlM r#n totals
/he run totals re!ort allows 8ou to get a <uic# o'er'iew o" all the totals without the need to
scroll through !age a"ter !age o" detailed inter'al results.
(tarting !D=rd1> /% rate: 1000> elapsed=3> *or loops: 5fersi?e=1@
interval i/o M:/sec b1tes read resp read 0rite resp resp Aueue cpuB cpuB
rate 1022CC2 i/o pct ti4e resp resp 4a5 stddev deptD s1sEu s1s
avg_2F3 88,.00 0.8) 1022 0.00 0.00) 0.000 0.00) 0.08, 0.002 0.0 18.2 0.3
(tarting !D=rd1> /% rate: 1000> elapsed=3> *or loops: 5fersi?e=2@
avg_2F3 1000.00 1.85 2028 0.00 0.00) 0.000 0.00) 0.052 0.002 0.0 )., 0.2
(tarting !D=rd1> /% rate: 1000> elapsed=3> *or loops: 5fersi?e=3@
a'gP2?3 1000.00 2.E3 3022 0.00 0.002 0.000 0.002 0.05+ 0.004 0.0 E.2 0.1
1.>1.> s#mmary.html for file system testing
/his sa!le re!ort has been truncated. /hree coluns exist "or each "ile s8ste o!eration.
.nterval. .!eAstd%ps.. ...cpuB... ....read.... ...0rite.... ..4b/sec... 4b/sec .5fer. etc.etc
rate resp total s1s rate resp rate resp read 0rite total si?e
1 83.0 2.81 2.) 1.00 83.0 2.81 0.0 0.00 0.05 0.00 0.05 512
2 88.0 2.1, 5.3 1.2) 88.0 2.1, 0.0 0.00 0.05 0.00 0.05 512
3 100.0 1.33 2.3 0.25 100.0 1.33 0.0 0.00 0.05 0.00 0.05 512
2 88.0 0.58 2.2 0.)5 88.0 0.58 0.0 0.00 0.05 0.00 0.05 512
5 88.0 0.8, 1.5 0.)5 88.0 0.8, 0.0 0.00 0.05 0.00 0.05 512
avg_2F5 88.0 1.23 2.8 0.)5 88.0 1.23 0.0 0.00 0.05 0.00 0.05 512
Inter'al: @e!orting inter'al se<uence nuber. See Binter'alCnnB !araeter.
@e<std%!s /he total aount o" re/uested o!erations. /hough when as#ing "or
o!erationCread re<uires an o!en o!eration, this o!en has not been s!eci"icall8
re<uested and is there"ore not included in this count. /his o!en howe'er IS
re!orted in the :o!en; colun. Dor a "orat run this count includes all write
o!erations.
c!u^ total 1rocessor bus8 C 100 ? =s8ste X user tie> =Solaris, windows, 5inux>
c!u^ s8s 1rocessor utili7ationU s8ste tie
read /otal reads and a'erage res!onse tie
write /otal writes and a'erage res!onse tie.
b$sec 6b !er second "or reads, writes, and the su o" reads and writes.
x"er )'erage trans"er si7e "or read and write o!erations.
K.. /wo coluns each "or all reaining o!erations.
Each o!eration, and also @e<std%!s ha'e two coluns: the aount o" o!erations and the
a'erage res!onse tie. /here are also coluns "or a'erage x"ersi7e and egab8tes !er second.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *5
Vdbench 5.03
.ote: due to the large aount o" coluns that are dis!la8ed here the !recision o" the dis!la8ed
data a8 'ar8. Dor instance, a rate o" 23.4 !er second will be dis!la8ed using decials, but a rate
o" 2345.+ will be dis!la8ed without decials as 2345. I li#e 8 coluns to line u! .
1.>1.? logfile.html
Blog"ile.htlB contains a co!8 o" each line o" in"oration that has been written b8 the &a'a code to
the terinal. 5og"ile.htl is !riaril8 used "or debugging !ur!oses. I" e'er 8ou ha'e a !roble
or a <uestion about a Vdbench run, alwa8s add a tar or 7i! "ile o" the co!lete Vdbench out!ut
director8 in 8our eail. Es!eciall8 when crossing ulti!le tie 7ones this can sa'e a lot o" tie
because usuall8 the "irst thing I;ll as# "or an8wa8 is this tar or 7i! "ile. I can usuall8 answer EE^
o" 8our <uestions when I ha'e the out!ut director8 a'ailable.
1.>1.; kstat.html
B#stat.htlB contains Lstat statistics for <olaris only:
interval G($'$_i/o resp 0ait service M:/sec read bus1 avg_i/o avg_i/o b1tes cpuB cpuB
rate ti4e ti4e ti4e 1022CC2 pct pct 0aiting active per_io s1sEusr s1s
11:55:51.035 (tarting !D=run1> /% rate: 5000> "lapsed: 20 seconds. *or loops: tDreads=8
11:5,:00.023 1 2888.10 0.88 0.02 0.8) 2.88 100.00 ,).) 0.11 2.33 1022 5.8 2.2
11:5,:02.08) 2 5000.0, 0.88 0.02 0.8, 2.88 100.00 ,).) 0.11 2.30 1022 2.2 0.5
11:5,:08.022 3 5000.0) 0.88 0.02 0.8) 2.88 100.00 ,)., 0.11 2.35 1022 1.2 0.2
11:5,:12.013 2 2888.85 0.8) 0.02 0.85 2.88 100.00 ,).) 0.11 2.25 1022 1.2 0.2
11:5,:1,.013 5 2888.83 0.8, 0.02 0.82 2.88 100.00 ,).) 0.11 2.21 1022 1.3 0.2
11:5,:1,.101 avg_2F5 2888.88 0.88 0.02 0.8, 2.88 100.00 ,).) 0.11 2.28 1022 1., 0.2
I$% rate: I$% rate !er second o'er the duration o" the re!orting inter'al
res! tie: @es!onse tie =the su o" wait tie and ser'ice tie>. )ll I$%
ties are in illiseconds.
wait tie: )'erage tie each I$% s!ent <ueued on the host
ser'ice tie: )'erage tie the I$% was being !rocessed
6Y$sec: )'erage data trans"er rate !er second
read !ct: )'erage !ercentage o" total I$% that was read
bus8 !ct: )'erage de'ice bus8 !ercentage
a'g OI$% waiting: )'erage nuber o" I$%s <ueued on the host
a'g OI$% acti'e: )'erage nuber o" I$%s acti'e
b8tes !er I$%: )'erage nuber o" b8tes trans"erred !er I$%
c!u^ s8sXusr 1rocessor bus8 C 100 ? =s8ste X user tie>
c!u^ s8s 1rocessor utili7ationU s8ste tie
-arning: Vdbench re!orts the su o" the ser'ice tie and wait tie correctl8 as res*onse ti/e.
iostat re!orts the sae 'alue as ser1ice ti/e. /he terinolog8 used b8 iostat is !rong.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *+
Vdbench 5.03
1.>1.E histogram.html
/his re!ort shows the distribution o" res!onse ties "or both reads and writes cobined, "or
reads, and "or writes. -hen onl8 reads or onl8 writes are done there will o" course be onl8 one
re!ort. ) histogra is generated "or each SA and DSA and "or each -A and D-A i" there is
ore than one s!eci"ied.
.ote that this "ile can be directl8 read into Excel as a tab?deliited "ile.
!eads and 0rites:
4in64s7 H 4a564s7 count BB cu4BB IEI: ndividualB> IEFI: #u4ulativeB
0.000 H 0.020 81 25.8523 25.8523 EEEEEEEEEEEE
0.020 H 0.020 2 0.5,82 2,.2205 FFFFFFFFFFFF
0.020 H 0.0,0 0 0.0000 2,.2205 FFFFFFFFFFFFF
0.0,0 H 0.080 1 0.2821 2,.)025 FFFFFFFFFFFFF
0.080 H 0.100 0 0.0000 2,.)025 FFFFFFFFFFFFF
0.100 H 0.200 0 0.0000 2,.)025 FFFFFFFFFFFFF
0.200 H 0.200 50 12.2025 20.8081 EEEEEEEFFFFFFFFFFFFF
0.200 H 0.,00 20 11.3,3, 52.2)2) EEEEEFFFFFFFFFFFFFFFFFFFF
0.,00 H 0.800 12 3.8))3 5,.2500 EFFFFFFFFFFFFFFFFFFFFFFFFFF
0.800 H 1.000 2 1.13,2 5).38,2 FFFFFFFFFFFFFFFFFFFFFFFFFFFF
1.000 H 2.000 ) 1.888, 58.3)50 FFFFFFFFFFFFFFFFFFFFFFFFFFFF
2.000 H 2.000 30 8.522) ,).88)) EEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2.000 H ,.000 2, ).38,2 )5.2821 EEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
,.000 H 8.000 15 2.2,12 )8.5255 EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
8.000 H 10.000 31 8.80,8 88.3523 EEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
10.000 H 20.000 28 8.238, 8,.5808 EEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
20.000 H 20.000 11 3.1250 88.)158 EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
20.000 H ,0.000 1 0.2821 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
,0.000 H 80.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
80.000 H 100.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
100.000 H 200.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
200.000 H 200.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
200.000 H ,00.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
,00.000 H 800.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
800.000 H 1000.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
1000.000 H 2000.000 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
2000.000 H 4a5 0 0.0000 100.0000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
1.>1.@ nfs>/?.html
/his re!ort is created on Solaris i" an8 o" the wor#loads created use .DS ounted "iles8stes.
/his sa!le re!ort has been truncated. %ne colun exists "or each .DS o!eration.
See also %!erations counts 's. n"sstat counts:
interval getattr setattr loo@up access read 0rite co44it create 4@dir etc.etc.
rate rate rate rate rate rate rate rate rate
10:02:55.038 1 1.2 0.0 2.8 1.2 1.2 1.2 0.0 0.0 0.0
10:02:5,.2), 2 5.5 1.2 11.) 3.2 2.8 1.2 0.0 0.0 ,.8
10:02:5).021 3 1.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10:02:58.028 2 8.0 0.0 1,.0 8.0 0.0 0.0 0.0 8.0 0.0
10:02:58.0)1 5 10.0 0.0 12.0 1).0 2.0 2.0 0.0 0.0 0.0
10:03:00.028 , 10.0 0.0 0.0 0.0 0.0 8.0 8.0 0.0 0.0
10:03:01.018 ) 2.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0
.ote: due to the large aount o" coluns that are dis!la8ed here the !recision o" the dis!la8ed
data a8 'ar8. Dor instance, a rate o" 23.4 !er second a8 be dis!la8ed using decials, but a
rate o" 2345.+ will be dis!la8ed without decials as 2345.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *2
Vdbench 5.03
1.>1.A flatfile.html
B"lat"ile.htlB contains Vdbench generated in"oration in a colun b8 colun )S9II "orat. /he
"irst line in the "ile contains a one word Bcolun header naeBU the rest o" the "ile contains data
that belongs to each colun. /he ob(ecti'e o" this "ile "orat is to allow eas8 trans"er o"
in"oration to a s!readsheet and there"ore the creation o" !er"orance charts.
See :Selecti'e "lat"ile !arsing;.
/his "orat has been chosen to allow bac#ward co!atibilit8 with "uture changes. S!eci"icall8,
b8 a#ing data selection colun header?de!endent and not colun nuber?de!endent, we can
assure that odi"ications to the colun order will not cause !robles with existing data
selection !rogras.
%n Solaris onl8, storage !er"orance data extracted "ro Lstat is written to the "lat "ile, along
with 914 utili7ation in"oration li#e user, #ernel, wait, and idle ties.
Dlat"ile.htl data is written both "or the original @)- I$% Vdbench "unctionalit8 =SA$-A$@A>
and "or "ile s8ste testing using DSA$D-A$@A !araeters.
1.32 Sam)le )arameter files
-hen running .$'dbench ?t Vdbench will run a sall hard coded raw I$% "unction test.
-hen running .$'dbench ?t" Vdbench will run a sall hard coded "ile s8ste "unction test.
/hese exa!le !araeter "iles can also be "ound in the installation director8.
/here is a larger set o" sa!le !araeter "iles in the $exa!les$ director8 inside 8our Vdbench
install director8.
Exa!le 1 : Single run, one raw dis#
Exa!le 2 : Single run, two raw dis#, two wor#loads.
Exa!le 3 : /wo runs, two concatenated raw dis#s, two wor#loads.
Exa!le 4 : 9o!lex run, including cur'es with di""erent trans"er si7es
Exa!le 5 : 6ulti?host.
Exa!le +: Swat trace re!la8.
Exa!le 2 : Dile s8ste test. See also Sa!le !araeter "ile:
1.>2.1 $%ample 1. ,ingle r#n, one ra! disk
VSA: Storage Ae"inition
V-A: -or#load Ae"inition
V@A: @un Ae"inition
V
sdCsd1,lunC$de'$rds#$c0t0d0sx
wdCwd1,sdCsd1,x"ersi7eC40E+,rd!ctC100
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. **
Vdbench 5.03
rdCrun1,wdCwd1,iorateC100,ela!sedC10,inter'alC1
Single raw dis#, 100^ rando read o" 4LY bloc#s at I$% rate o" 100 "or 10 seconds
1.>2.2 $%ample 2. ,ingle r#n, t!o ra! disk, t!o !orkloads.
sdCsd1,lunC$de'$rds#$c0t0d0sx
sdCsd2,lunC$de'$rds#$c0t0d1sx
wdCwd1,sdCsd1,x"ersi7eC4#,rd!ctC*0,s#ewC40
wdCwd2,sdCsd2,x"ersi7eC*#,rd!ctC0
rdCrun1,wdCwdV,iorateC200,ela!sedC10,inter'alC1
/wo raw dis#s: sd1 does *0 I$%Bs !er second, read?to?write ratio 4:1, 4LY bloc#s. sd2 does 120
I$%s !er second, 100^ write at *LY bloc#s.
1.>2.> $%ample >. "!o r#ns, t!o ra! disks, t!o !orkloads.
sdCsd1,lunC$de'$rds#$c0t0d0sx
sdCsd2,lunC$de'$rds#$c0t0d1sx
wdCwd1,sdC=sd1,sd2>,x"ersi7eC4#,rd!ctC25
wdCwd2,sdC=sd1,sd2>,x"ersi7eC*#,rd!ctC100
rdCde"ault,ela!sedC10,inter'alC1
rdCrun1,wdC=wd1,wd2>,iorateC100
rdCrun2,wdC=wd1,wd2>,iorateC200
@un1: /wo concatenated raw dis#s with a cobined wor#load o" 50 4LY I$%s !er second, r$w
ratio o" 3:1, and a wor#load o" 50 *LY reads !er second.
@un2: sae with twice the I$% rate.
/his can also be run as:
rdCrun1,wdCwdV,iorateC=100,200>,ela!sedC10,inter'alC1
1.>2.? $%ample ?. Comple% r#n, c#rves !ith different transfer
siJes
sdCsd1,lunC$de'$rds#$c0t0d0sx
wdCwd1,sdCsd1,rd!ctC100
rdCrun1,wdCwd1,ioCcur'e,elC10,inC1,"orxC=1#?+4#,d>
/his generates 4E wor#load executions: 2 cur'e runs =one to deterine ax I$% rate and + data
!oints "or 10, 50, 20, *0, E0, 100^> "or 2 di""erent trans"er si7es each. Dirst 2 runs "or 1LY, then
2 runs "or 2LY, etc.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. *E
Vdbench 5.03
)dd B"orthreadsC=1?+4,d>B, and we go to 2 V 4E C 343 wor#load executions. /his is wh8 it is
hel!"ul doing a siulated run "irst b8 adding B?sB to 8our execution: B.$'dbench G" !ar"ile GsB.
1.>2.; $%ample ;. 1#lti)host
V /his test does a three second 4# read test "ro two hosts against the sae "ile.
V /he :'dbenchC; !araeter is onl8 needed when Vdbench resides in a di""erent director8 on the
reote s8ste.
V Fou 8oursel" are res!onsible "or setting u! @S3 =de"ault> or SS3 access to 8our reote
s8ste. I" 8our reote s8ste does .%/ ha'e an @S3 daeon, 8ou a8 use the Vdbench @S3
daeon b8 starting :.$'dbench rsh; once on 8our target s8ste.
hdCde"ault,'dbenchC$hoe$user$'dbench,userCuser
hdCone,s8steCs8stea
hdCtwo,s8steCs8steb
sdCsd1,hostCV,lunC$hoe$user$(un#$'dbenchPtest,si7eC10
wdCwd1,sdCsdV,rd!ctC100,x"C4#
rdCrd1,wdCwd1,elC3,inC1,ioC10
1.>2.E $%ample E. ,!at */O trace replay
VExa!le +: Swat I$% trace re!la8
rgCgrou!1,de'icesC=123,45+,2*E>
sdCsd1,lunC$de'$rds#$c0t0d0sx,re!la8Cgrou!1
sdCsd2,lunC$de'$rds#$c1t0d0sx,re!la8Cgrou!1
wdCwd1,sdCsd1
rdCrun1,wdCwd1,ela!sedCEEEE,inter'alC10,re!la8C$t!$"lat"ile.bin.g7
V @e!la8 the wor#load o" de'ice nubers 123, 45+ and 2*E "ro the Swat
V "lat"ile.bin.g7 "ile on luns $de'$rds#$c0t0d0sx and $de'$rds#$c1t0d0sx
1.>2.@ $%ample @. 5ile system test
VExa!le 2: Dile s8ste testing
"sdC"sd1,anchorC$dir1,de!thC2,widthC2,"ilesC2,si7eC12*#
"wdC"wd1,"sdC"sd1,o!erationCread,x"ersi7eC4#,"ileioCse<uential,"ileselectCrando,threadsC2
rdCrd1,"wdC"wd1,"wdrateCax,"oratC8es,ela!sedC10,inter'alC1
V
V /his !araeter "ile will use a director8 structure o" 4 directories and * "iles
V /he @A !araeter B"oratC8esB causes the director8 structure to be co!letel8
V created, including initiali7ation o" all "iles to the re<uested si7e o" 12*#.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E0
Vdbench 5.03
V )"ter the "orat co!letes the "ollowing will ha!!en "or 10 seconds at a rate
V o" 100 reads !er second:
V Start two threads =threadsC2U 1 thread is de"ault>.
V Each thread:
V @andol8 selects a "ile ="ileselectCrando>
V %!ens this "ile "or read =o!erationCread>
V Se<uentiall8 reads 4# bloc#s =x"ersi7eC4#> until end o" "ile =si7eC12*#>
V 9loses the "ile and randol8 selects another "ile.
V
V
V Airector8 structure:
V
V "ind dir1 R gre! "ile
V dir1$'dbPcontrol."ile
V dir1$'db1P1.dir$'db2P1.dir$'dbP"0001."ile
V dir1$'db1P1.dir$'db2P1.dir$'dbP"0002."ile
V dir1$'db1P1.dir$'db2P2.dir$'dbP"0001."ile
V dir1$'db1P1.dir$'db2P2.dir$'dbP"0002."ile
V dir1$'db1P2.dir$'db2P1.dir$'dbP"0001."ile
V dir1$'db1P2.dir$'db2P1.dir$'dbP"0002."ile
V dir1$'db1P2.dir$'db2P2.dir$'dbP"0001."ile
V dir1$'db1P2.dir$'db2P2.dir$'dbP"0002."ile
V
1.33+ermanently override 6ava soc4et )ort numbers.
Fou can te!oraril8 o'erride the !ort nubers used b8 Vdbench to counicate between the
aster and the sla'es =5520>, or the !ort nubers used "or Vdbench;s own @S3 :daeon;
=55+0>.
/o do this 8ou ust create "ile :!ortnubers.txt; in the Vdbench installation director8, or i" 8ou
run Vdbench ulti?host, in each Vdbench installation director8.
9ontent o" this "ile:
astersla'e!ortCnnnn
rshdeaon!ortCnnnn =Fes, this is a hard coded :daeon; s!elling error >
6a#e sure that i" 8ou ha'e soe "irewall so"tware installed that &a'a is allowed to use these
!orts.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E1
Vdbench 5.03
1.346ava 1untime 'nvironment
It is ex!ected that the &a'a @untie En'ironent =&@E> or &a'a Ae'elo!ent Lit =&AL> alread8
has been installed. Vdbench ex!ects &a'a 1.5 or higher.
See the "ollowing web !ages:
htt!:$$www.oracle.co "or Solaris, -indows, and 5inux.
htt!:$$www?10+.ib.co$de'elo!erwor#s$(a'a$(d#$index.htl "or )ix.
Dollow the 'endorBs installation instructions.
It is %L to install (a'a in 8our own !ri'ate director8U there is no need to o'erride the existing
'ersion o" (a'a that is alread8 !resent. 6odi"8 either 8our standard search !ath, or change the
'dbench or 'dbench.bat scri!t changing B(a'aC(a'aB to !oint to the !ro!er (a'a executable, which
norall8 is $soe$thing$bin$(a'a=.exe>
1.35 Solaris
-hen not running 6)0 I$% rates, Vdbench uses Solaris Bslee!B "unctions. Yecause the de"ault
granularit8 o" the cloc# tiers is one Bcloc# tic#B e'er8 10 illiseconds, it is recoended to add
Bset hiresPtic#C1B to .etc.system and reboot.
/his allows I$%Bs to be started about 10 illiseconds closer to their ex!ected start tie.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E2
Vdbench 5.03
2 /dench flatfile selective parsing
It too# e about 2 8ears, but I "inall8 ade soe tie to create a si!le !rogra that ta#es the
"lat"ile, !ic#s out the coluns and rows that the user wants, and then writes it to a tab deliited
"ile.
4sage:
.$'dbench !arse"lat ?i "lat"ile.htl ?o out!ut.cs' I?c col1 col2 ..J
I?aJ I?" col1 'alue1 col2 'alue2 .. ..J
?i in!ut "lat"ile, e.g. out!ut$"lat"ile.htl
?o out!ut 9SV "ile nae =de"ault stdout>
?c which colun to write to 9SV. 9oluns are written in the order s!eci"ied.
?" "ilters: Bi" =col0 CC 'alue0> ... ...B =)l!habetic co!are>
?a include onl8 the Ba'gB data. Ae"ault: include onl8 non?a'g data.
Exa!le:
.$'dbench !arse ?i out!utH"lat"ile.htl ?c run inter'al rate res! ?" run rd1 ?o out.cs'
/his will gi'e 8ou "ile out.cs' which can be directl8 read into Excel or Star%""ice:
run,inter"al,rate,resp
rd(,(,()8.)))),7.799+
rd(,9,((@.)))),9.9(7H
rd(,7,@>.)))),7.AH((
rd(,8,()8.)))),7.))7>
rd(,+,@@.)))),9.+9(8
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E3
Vdbench 5.03
> /dench :orkload Compare
/his tool co!ares two sets o" Vdbench out!ut directories and shows the delta iorate or "wdrate
and res!onse tie and o!tionall8 the data rate in E di""erent colors: light green is good, dar#
green is better, red is bad, etc. 5oo# at sa!le screen below.
Fou a8 gi'e the tool either two Vdbench out!ut directories, e.g. $run1 and $run2, or the !arents
o" se'eral Vdbench out!ut directories, e.g. $test1 and $test2, where test1 and test2 ha'e one or
ore subdirectories, e.g. $test1$run1, $test1$run2, etc.

/o run Vdbench wor#load co!are, enter B.$'dbench co!areB
.ote that there is a "ar better -or#load 9o!are a'ailable in Sun Storage/e# -or#load
)nal8sis /ool =Swat>.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E4
Vdbench 5.03
? /dench ,2 parameter generation tool.
/he creation o" SA !araeters can becoe <uite cubersoe on Solaris since it uses 'er8 long
hexadecial target nubers as !art o" their de'ice naes.
/his tool is also a'ailable "or 5inux and -indows, though the ;50 or ore hexadecial
characters !er de'ice nae; !roble does not exist there.
/he SA !araeter generation tool will assist 8ou in the selection o" the !ro!er de'ice naes and
then the creation o" a set o" SA !araeters =or other !araeters, see below>.
/he !rogra either ta#es in a "ile containing the out!ut o" :"orat bb E%D;, or runs the
coand itsel". /he :!rt'toc; coand is run when a'ailable "or each de'ice "ound so that it
can dis!la8 the !artition si7es "or !artitions 0 through 2.

9lic# and select one or ore o" the de'ice naes on the right side o" the window, then clic# on
the :bbbbb; button and the selected de'ice=s> will be added to the list o" SAs. ) double clic#
will iediatel8 o'e the selected de'ice. 9lic# :Sa'e; to then sa'e the selected SAs into a "ile.
/he :@e!lace !ar"ile; button will read an existing !araeter "ile, and re!lace the existing SAs
within that "ile with the new SA !araeters (ust created.
.ote: since the new SAs are all labeled sd( through sdn, SA !araeters in this !araeter "ile
that use di""erent SA naes can no longer be re"erenced, e.g. wdCwd1,sdCdis#1.
Fou can also use this !rogra to use the selected de'ice naes "or an8thing else.
Dor that the !rogra ta#es as in!ut a mask. Y8 de"ault the as# contains:
sd=sdJ<lun=/dev/rds@/KB
-here:
O is re!laced b8 a se<uence nuber, starting "ro 1
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E5
Vdbench 5.03
M is re!laced b8 the selected de'ice nae.
^ is re!laced b8 the entered !artition$slice nuber.
Fou can odi"8 the as# either b8 directl8 entering it in the G4I, or b8 adding it to "ile
:buildPsds.txt; in 8our Vdbench installtion director8.
)n8 as# containing BbB and BaB will be s!lit in two, with the ob(ecti'e o" the le"t as# =until BbB>
being used "or the "irst dis#, and the right side o" the as# =inside BbB and BaB> being used "or all
other dis#s. /his allows the creation o" a single coand with ulti!le dis#s and coand
continuation characters =BHB>.
) as# containing the :b; and :a; characters allows 8ou to create a ulti?line coand, "or
instance:
ne0fs H/dev/ds@/KBL used "or two de'ices will create =a"ter :Sa'e;> a "ile containing:
ne0fs /dev/ds@/c1t0d0s, M
/dev/ds@/c1t1d0s,
Yelow are the currentl8 de"ined as#s in "ile :buildPsds.txt;. I" 8ou ha'e an8 other ideas "or
things to add let e #now.

* This is the hardcoded default:
sd=sd#,lun=/dev/rdsk/$%
* Placed in a script this should label this disk
printf "label\nes\n!uit\n" " for#at $d $
* This results in onl a list of disks:
$
* %reate a file sste# for one disk:
printf "es\n" " ne&fs /dev/dsk/$%
* %reate a file sste# for #ultiple disks:
ne&fs '/dev/dsk/$%(
* Testin):
ls $l '/dev/dsk/$%(
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E+
Vdbench 5.03
; /dench 2ata /alidation post)processing tool.
-hen Aata Validation does "ind a data corru!tion !roble, "ile errorlog.htl will contain all the
gor8 detail about the data that Vdbench ex!ects, and the data that Vdbench has "ound on the data
bloc# it (ust read and co!ared.
/hings get ugl8 when scrolling through hundreds and soe ties thousands o" lines o" out!ut, so
"or that I wrote a !riiti'e tool that allows 8ou to <uic#l8 loo# at all the out!ut tr8ing to hel! 8ou
understand what;s going on.
@un :.$'dbench d'!ost; or :.$'dbench $out!ut$errorlog.htl; and Vdbench brings u! the
"ollowing window =sorr8, it;s hard to read here in the doc>.
/he errorlog.htl "ile shown here is included in the $exa!les director8. It;s !robabl8 easier "or
8ou to (ust run :.$'dbench d'!ost exa!les$errorlog.htl.
Yuttons:
9lose: closes the tool.
%'er'iew: shows an o'er'iew o" the errors that Vdbench has "ound.
@eread bloc#: Soe ties data corru!tions are interittent. Dor instance, the corru!tion
ha!!ened in "ile s8ste or storage cache. Select a row "ro the list o" "ailed data bloc#s
on the le"t, clic# :@eread bloc#;, Vdbench then will re?read the bloc# =using the
:.$'dbench !rint; "unction> and dis!la8s it on the right. Ye"ore 8ou do this howe'er, a#e
sure that the status o" the storage in <uestion has not changed.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E2
Vdbench 5.03
Ais!la8 Yloc#: this button allows 8ou to dis!la8 all a'ailable in"oration related to the
currentl8 selected :"ailed data bloc#; on the right side o" the window. Since Aata
Validation is ulti?threaded, ha'ing ulti!le bloc#s "ail at the sae tie can cause
errorlog.htl to ha'e nuerous di""erent errors all interixed. /his G4I can hel! 8ou
"ilter out (ust those !ieces o" in"oration that 8ou need.
Ais!la8 selection: %n the right side o" 8our screen, highlight an8 !iece o" in"oration
that 8ou want, and then clic# this button =or (ust double clic# on an8 'alue>. Vdbench will
then dis!la8 onl8 those 'alues that 8ou selected. /he button then will change to @eset
selection, which 8ou clic# i" 8ou want to clear 8our selection.
Sa'e text: this allows 8ou to sa'e the currentl8 dis!la8ed contents o" the right side o"
8our window.
@ead text: this allows 8ou to read and dis!la8 an8 dis# "ile.
@ead errorlog: this allows 8ou to dis!la8 the co!lete contents o" errorlog.htl.
/here are o" course nuerous reasons "or data corru!tions. ) "ew that I can thin# o" right now:
Yloc# ne'er arri'ed at the storageU bloc# was written in the wrong !laceU the bloc# was
o'erwritten because a di""erent write ended u! on the wrong !laceU the wrong bloc# was readU
onl8 a !iece o" the bloc# ="or instance 4#> is is!laced or o'erlaidU a"ter the data bu""er was
"illed data was not co!ied "ro !rocessor cache to eor8U de'ice dri'ers !ic#ing u! the wrong
eor8 !agesU corru!tions due to an8 #ind o" transission error an8whereU loose cablesU bloc#
!artiall8 written to storage due to a !ower "ailureU indeed (ust a bad dis#U etc, etc.
Short error text: /his shows the errors "ound "or the currentl8 selected data bloc#.
/his gi'es 8ou a list o" errors that a8 be dis!la8ed "or a data bloc# in the list o" "ailed data
bloc#s.
In'alid #e8=s> read: chec# the Vdbench docuentation "or the eaning o" Aata
Validation #e8s. /his tells 8ou that the #e8 'alue that Vdbench ex!ected was not "ound in
the data bloc#.
In'alid lba read: each 512?b8te sector contains the logical b8te address o" that sector. I"
the 'alue there does not atch soething clearl8 is wrong.
In'alid SA or DSA nae read: the SA or DSA nae is also written in each sector. I" 8ou
want bloc#1 o" sd1, but get bloc#1 o" sd2 the lba will atch, but the SA nae won;t.
Aata corru!tion e'en when using wrong lba or #e8: this is there to answer the <uestion Wi"
I read the wrong bloc#, are the contents o" that wrong bloc# e'en good or badQS. /he data
!attern store in each 512?b8te sector is generated using 5inear Deedbac# Shi"t @egister
logic, which uses as seed the lba, #e8, and SA or DSA nae. 4sing these 'alues "ro the
bloc# that was read =not "ro what was re<uested>, Vdbench 'alidates the data in the
bloc# "or a second tie. It gets con"using, but re!orting that the :bad; bloc# is :good; can
be use"ul.
Aata corru!tion: Each sector contains a 32?b8te header and then 4*0 b8tes o" the 5DS@
data !attern. )n8 error in these 4*0 b8tes will be re!orted as Aata corru!tion.
Yad sectors: this will tell 8ou "or a data bloc# how an8 512?b8te sectors had errors. Dor
instance, a 1b bloc# consists o" 204* sectors. I" the8;re all good 8ou won;t see this
bloc#, but i" onl8 soe o" the are bad 8ou;ll ha'e a !artial data corru!tion "or this
bloc#. Soe ties 8ou can also see :inco!lete; here. Ae!ending on the axiu
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. E*
Vdbench 5.03
aount o" data errors 8ou allow =dataPerrorsC> and how an8 concurrent threads 8ou are
running it can ha!!en that Vdbench aborts be"ore Vdbench is able to re!ort each
indi'idual sector. I" 8ou see :bad sectors, 204* o" 204*; 8ou #now that all sectors are
bad, howe'er, i" 8ou see :bad sectors * o" 204* =inco!lete>; there a8 be ore bad
sectors than that Vdbench had the chance to re!ort. Dor this, use the :@eread bloc#;
abo'e.
.ot all sectors ha'e been re!orted: see Yad sectors abo'e.
)t least one single bit error: this is a <uic# warning that there was onl8 one single bit
di""erence between what we ex!ected and what was read.
Copyright 2000, 2012, Oracle and/or its affiliates. All rights reserved. EE

You might also like