You are on page 1of 8

SLress 1esLlng ls done Lo undersLand Lhe break polnL of Lhe sysLemŦ CLherwlse normal load LesLlng ls

generally done Lo undersLand Lhe behavlor of Lhe appllcaLlon under Lhe expecLed user loadŦ uependlng
on oLher requlremenLsţ such as expecLaLlon of splke loadţ conLlnued load for an exLended perlod of Llme
would demand splkeţ endurance soak or sLress LesLlngŦ
1est cond|t|ons
ln performance LesLlngţ lL ls ofLen cruclal (and ofLen dlfflculL Lo arrange) for Lhe LesL condlLlons Lo be
slmllar Lo Lhe expecLed acLual useŦ 1hls lsţ howeverţ noL enLlrely posslble ln acLual pracLlceŦ 1he reason ls
LhaL Lhe workloads of producLlon sysLems have a random naLureţ and whlle Lhe LesL workloads do Lhelr
besL Lo mlmlc whaL may happen ln Lhe producLlon envlronmenLţ lL ls lmposslble Lo exacLly repllcaLe Lhls
workload varlablllLy Ŵ excepL ln Lhe slmplesL sysLemŦ
1asks Lo perform such a LesL would lncludeť
O ueclde wheLher Lo use lnLernal or exLernal resources Lo perform Lhe LesLsţ dependlng on
lnhouse experLlse (or lack Lhereof)
O aLher or ellclL performance requlremenLs (speclflcaLlons) from users and/or buslness analysLs
O uevelop a hlghŴlevel plan (or pro[ecL charLer)ţ lncludlng requlremenLsţ resourcesţ Llmellnes and
mllesLones
O uevelop a deLalled performance LesL plan (lncludlng deLalled scenarlos and LesL casesţ
workloadsţ envlronmenL lnfoţ eLcŦ)
O hoose LesL Lool(s)
O Speclfy LesL daLa needed and charLer efforL (ofLen overlookedţ buL ofLen Lhe deaLh of a valld
performance LesL)
O uevelop proofŴofŴconcepL scrlpLs for each appllcaLlon/componenL under LesLţ uslng chosen LesL
Lools and sLraLegles
O uevelop deLalled performance LesL pro[ecL planţ lncludlng all dependencles and assoclaLed
Llmellnes
O lnsLall and conflgure ln[ecLors/conLroller
O onflgure Lhe LesL envlronmenL (ldeally ldenLlcal hardware Lo Lhe producLlon plaLform)ţ rouLer
conflguraLlonţ quleL neLwork (we don'L wanL resulLs upseL by oLher users)ţ deploymenL of server
lnsLrumenLaLlonţ daLabase LesL seLs developedţ eLcŦ
O xecuLe LesLs Ŷ probably repeaLedly (lLeraLlvely) ln order Lo see wheLher any unaccounLed for
facLor mlghL affecL Lhe resulLs
O nalyze Lhe resulLs Ŵ elLher pass/fallţ or lnvesLlgaLlon of crlLlcal paLh and recommendaLlon of
correcLlve acLlon
9erformance 1est|ng Web App||cat|ons Methodo|ogy
ccordlng Lo Lhe MlcrosofL ueveloper neLwork Lhe Þerformance 1esLlng MeLhodology conslsLs of Lhe
followlng acLlvlLlesť
O Act|v|ty 1Ŧ Ident|fy the 1est Lnv|ronmentŦ ldenLlfy Lhe physlcal LesL envlronmenL and Lhe
producLlon envlronmenL as well as Lhe Lools and resources avallable Lo Lhe LesL LeamŦ 1he
physlcal envlronmenL lncludes hardwareţ sofLwareţ and neLwork conflguraLlonsŦ Pavlng a
Lhorough undersLandlng of Lhe enLlre LesL envlronmenL aL Lhe ouLseL enables more efflclenL LesL
deslgn and plannlng and helps you ldenLlfy LesLlng challenges early ln Lhe pro[ecLŦ ln some
slLuaLlonsţ Lhls process musL be revlslLed perlodlcally LhroughouL Lhe pro[ecL's llfe cycleŦ
O Act|v|ty 2Ŧ Ident|fy 9erformance Acceptance Cr|ter|aŦ ldenLlfy Lhe response Llmeţ LhroughpuLţ
and resource uLlllzaLlon goals and consLralnLsŦ ln generalţ response Llme ls a user concernţ
LhroughpuL ls a buslness concernţ and resource uLlllzaLlon ls a sysLem concernŦ ddlLlonallyţ
ldenLlfy pro[ecL success crlLerla LhaL may noL be capLured by Lhose goals and consLralnLsŤ for
exampleţ uslng performance LesLs Lo evaluaLe whaL comblnaLlon of conflguraLlon seLLlngs wlll
resulL ln Lhe mosL deslrable performance characLerlsLlcsŦ
O Act|v|ty 3Ŧ 9|an and Des|gn 1estsŦ ldenLlfy key scenarlosţ deLermlne varlablllLy among
represenLaLlve users and how Lo slmulaLe LhaL varlablllLyţ deflne LesL daLaţ and esLabllsh meLrlcs
Lo be collecLedŦ onsolldaLe Lhls lnformaLlon lnLo one or more models of sysLem usage Lo be
lmplemenLedţ execuLedţ and analyzedŦ
O Act|v|ty 4Ŧ Conf|gure the 1est Lnv|ronmentŦ Þrepare Lhe LesL envlronmenLţ Loolsţ and resources
necessary Lo execuLe each sLraLegy as feaLures and componenLs become avallable for LesLŦ
nsure LhaL Lhe LesL envlronmenL ls lnsLrumenLed for resource monlLorlng as necessaryŦ
O Act|v|ty SŦ Imp|ement the 1est Des|gnŦ uevelop Lhe performance LesLs ln accordance wlLh Lhe
LesL deslgnŦ
O Act|v|ty 6Ŧ Lxecute the 1estŦ 8un and monlLor your LesLsŦ valldaLe Lhe LesLsţ LesL daLaţ and
resulLs collecLlonŦ xecuLe valldaLed LesLs for analysls whlle monlLorlng Lhe LesL and Lhe LesL
envlronmenLŦ
O Act|v|ty 7Ŧ Ana|yze kesu|tsţ 1uneţ and ketestŦ nalyseţ onsolldaLe and share resulLs daLaŦ Make
a Lunlng change and reLesLŦ lmprovemenL or degradaLlon? ach lmprovemenL made wlll reLurn
smaller lmprovemenL Lhan Lhe prevlous lmprovemenLŦ When do you sLop? When you reach a
Þu boLLleneckţ Lhe cholces Lhen are elLher lmprove Lhe code or add more ÞuŦ
1esL conflguraLlon 1esL seLup and conflguraLlon ls conLrolled by Lhe sophlsLlcaLed runŴLlme consoleŦ 1he
console enables Lhe user Lo deflne each LesL run Lhrough Lhe manlpulaLlon of every runLlme parameLerţ
such as Lhe number of vlrLual usersţ Lhe sequenclng of user scrlpLs and LesL duraLlonŦ
1he flrsL sLep ln Lhe conflguraLlon of Lhe load LesL ls Lhe deflnlLlon of Lhe user scenarloŦ WebLCu allows
maxlmum flexlblllLy ln scenarlo conflguraLlon ranglng from slmply runnlng slngle scrlpLs Lo creaLlng a
composlLe scenarlo lnvolvlng mulLlple scrlpLs runnlng concucurenLlyŦ lor each selecLed scrlpL ls ls
posslble Lo deflne dlfferenL runŴLlme seLLlngs such as connecLlon speedţ browser cache slmulaLlon and
P11Þ proLocol seLLlngsŦ 1hls flexlblllLy ln runŴLlme parameLers enables Lhe mosL accuraLe slmulaLlon of
user behavlor under loadŦ
1he second sLep ln Lhe conflguraLlon of Lhe load LesL ls Lhe selecLlon of load machlnes and problng cllenL
machlnesŦ Load machlnes can be dlsLrlbuLed across organlsaLlons and flrewalls allowlng load Lo be
generaLed from lnslde Lhe flrewall and from Lhe cloudŦ Load generaLors are cross plaLform and can run
on Wlndows as well as Llnux machlnesŦ
1he Lhlrd sLep ln Lhe conflguraLlon of Lhe load LesL ls schedullng Lhe load sesslonŦ Schedullng can be
done manually allowlng Lhe user Lo selecL Llme frames and Lhe load Lo be generaLed over each frameŦ
lLernaLlvelyţ Lhe user can selecL from a llsL of preŴdeflned schedullng models or use a comblnaLlon of
boLhŦ

Testing for load - an example
1he scenarlo l wanLed Lo LesL for wlLh my Web SLore appllcaLlon ls Lhe laLLerŦ l [usL recelved a new
noLebook developmenL machlne and l wanLed Lo puL lL Lhrough lLs paces runnlng Lhe Web sLore
appllcaLlon (Lo see Lhe acLual Web appllcaLlon LesLed go Loť hLLpť//wwwŦwesLŴwlndŦcom/wwsLore/)Ŧ l
baslcally wanL Lo see how much Lrafflc l can Lhrow aL Lhe backend appllcaLlon before lL maxes ouL Lhe
machlne and sLarLs backlogglng requesLsŦ
ln LesLlng for load l sLarL by golng back Lo Lhe SeLLlngs page and seLLlng Lhe SLress Level Lo 10 and Lhe
mulLlpller Lo 10 resulLlng ln Lhe equlvalenL of 100 very efflclenLţ nonŴsLop cllcklng shoppers on my slLeŦ
now undersLand LhaL Lhese 100 cllenLs do noL maLch Lyplcal cllenLs on Lhe Web slLeţ because no delays
are occurrlng beLween requesLs senL by WS aL Lhls LlmeŦ keep ln mlnd LhaL real users on a slLe donƌL
conLlnuously cllck on llnks Ŷ Lhey have Lo walL for pages Lo download and acLually look aL Lhe conLenL on
Lhe pageŦ user wlLh a fasL connecLlon and who knows exacLly whaL he wanLs may cllck once every 3Ŵ10
secondsţ whlle more Lyplcal users wlll Lake closer Lo 20Ŵ30 seconds Lo go Lo Lhe nexL pageŦ CLhers may
browse even slower Laklng a coffee break every Len mlnuLesţ checklng Lhelr emall beLween requesLs or
checklng anoLher slLe for comparable prlclngŦ
My goal here however ls Lo see how well Lhe backend performs and l Lry Lo acLually run as many hlLs as l
posslbly can before Lhe sysLem becomes Lo loadedť Þu close Lo 100Ʒ and pages reLurned Laklng more
Lhan 10 seconds from anoLher machlneŦ
WlLh 100 conLlnuous cllenLs lƌm noL even close Lo Lhe 100Ʒ markť 33Ʒ Þu uLlllzaLlon and when hlLLlng
Lhe server wlLh a separaLe browser any requesLs are reLurned lmmedlaLelyŦ Soţ l double Lhe counL Lo 200
cllenLs (20 Lhreads/10 sockeLs)Ŧ now Lhlngs geL more lnLeresLlng Ŷ Lhe Þu ls runnlng aL 73Ʒ average
wlLh occaslonal splkes close Lo 100ƷŦ When runnlng browser requesLs agalnsL Lhe serverţ l now see
deflnlLe heslLaLlon Ŷ responses vary from close Lo lnsLanL Lo up Lo 10 seconds or soŦ 1hls ls very close Lo
whaL l would conslder redŴllne operaLlon of Lhe Web appllcaLlonŦ lLƌs sLlll keeplng up buL anyLhlng more
and lL would sLarL keellng overŦ Weƌve found our max sLress levelŧ
Poweverţ donƌL [ump Lo concluslons on shorL LesLs of 3 mlnuLes or soŦ 1hese shorL bursL LesLs are greaL
for flndlng sLarLlng breaklng polnLsţ buL ln order Lo Lruly LesL operaLlon under load you need Lo sLress
LesL for long perlodsŦ l llke Lo run my LesLs over nlghL for aL leasL 8 hoursţ buL ldeally youƌll wanL Lo run
for a 24 hour perlod or moreŦ Why? lor one Lhlng appllcaLlons Lend Lo geL more resource hungry Lhe
longer Lhey run Ŷ lLƌs noL uncommon Lo see slow downs over long perlods of hard operaLlonŦ lsoţ
conslder acLual daLa accumulaLlonŦ ln my 8 hour LesL l accumulaLed over 48ţ000 orders wrlLLen lnLo a
SCL daLabaseŦ user Sesslon daLa ls also logged lnLo a SCL Lable and Lhere were 30ţ000 user sesslon
lnlLlaLlonsŦ 8un a LesL long enough and Lhese numbers geL large qulckly resulLlng ln sllghLly slowlng
access Llmes Lo Lhe daLabase as Lhe daLa slze growsŦ
s a slde noLeţ flgurlng ouL backend slowdowns requlres addlLlonal logglng of requesLs ln your backend
appllcaLlonŦ 1he Web SLore appllcaLlon lncldenLally provldes Lhls logglng Lhrough Lhe Web framework lL
runs on (WesL Wlnd Web onnecLlon Ŷ more abouL Lhls aL Lhe end of Lhe arLlcle)Ŧ Logglng ls cruclal for
Web appllcaLlon monlLorlngţ buL LhaLƌs someLhlng LhaL needs Lo be lmplemenLed aL Lhe ppllcaLlon or
Web lramework level Ŷ lLƌs noL someLhlng LhaL WS wlll provlde you wlLhŦ ln facLţ WS only provldes
you a summary of Lhe daLa noL Lhe acLual deLall LhaL you can use Lo see degradaLlon over LlmeŦ
ln all falrnessţ Lhoughţ WS does provlde Lhe ablllLy Lo log n1 Þerformance counLers from Lhe Web
server Lo allow logglng of server performance sLaLlsLlcs over LlmeŦ WS generaLes a flle hcounLersŦcsv
whlch conLalns Lhese counLer valuesţ whlch you can Lhen manlpulaLe and graph exLernally (ln Lools such
as xcel for example)Ŧ
oad test|ng

We have already seen load LesLlng as parL of Lhe process of performance LesLlng and LunlngŦ ln LhaL
conLexLţ lL meanL consLanLly lncreaslng Lhe load on Lhe sysLem vla auLomaLed LoolsŦ lor a Web
appllcaLlonţ Lhe load ls deflned ln Lerms of concurrenL users or P11Þ connecLlonsŦ
ln Lhe LesLlng llLeraLureţ Lhe Lerm ƍload LesLlngƍ ls usually deflned as Lhe process of exerclslng Lhe sysLem
under LesL by feedlng lL Lhe largesL Lasks lL can operaLe wlLhŦ Load LesLlng ls someLlmes called vo|ume
test|ngţ or |ongev|ty]endurance test|ngŦ


xamples of volume LesLlngť
O LesLlng a word processor by edlLlng a very large documenL
O LesLlng a prlnLer by sendlng lL a very large [ob
O LesLlng a mall server wlLh Lhousands of users mallboxes
O a speclflc case of volume LesLlng ls zeroŴvo|ume LesLlngţ where Lhe sysLem ls fed empLy Lasks
xamples of longevlLy/endurance LesLlngť
O LesLlng a cllenLŴserver appllcaLlon by runnlng Lhe cllenL ln a loop agalnsL Lhe server over an
exLended perlod of Llme
oals of load LesLlngť
O expose bugs LhaL do noL surface ln cursory LesLlngţ such as memory managemenL bugsţ memory
leaksţ buffer overflowsţ eLcŦ
O ensure LhaL Lhe appllcaLlon meeLs Lhe performance basellne esLabllshed durlng performance
LesLlngŦ 1hls ls done by runnlng regresslon LesLs agalnsL Lhe appllcaLlon aL a speclfled maxlmum
loadŦ
lLhough performance LesLlng and load LesLlng can seem slmllarţ Lhelr goals are dlfferenLŦ Cn one handţ
performance LesLlng uses load LesLlng Lechnlques and Lools for measuremenL and benchmarklng
purposes and uses varlous load levelsŦ Cn Lhe oLher handţ load LesLlng operaLes aL a predeflned load
levelţ usually Lhe hlghesL load LhaL Lhe sysLem can accepL whlle sLlll funcLlonlng properlyŦ noLe LhaL load
LesLlng does noL alm Lo break Lhe sysLem by overwhelmlng lLţ buL lnsLead Lrles Lo keep Lhe sysLem
consLanLly hummlng llke a wellŴolled machlneŦ
ln Lhe conLexL of load LesLlngţ l wanL Lo emphaslze Lhe exLreme lmporLance of havlng large daLaseLs
avallable for LesLlngŦ ln my experlenceţ many lmporLanL bugs slmply do noL surface unless you deal wlLh
very large enLlLles such Lhousands of users ln reposlLorles such as LuÞ/nlS/cLlve ulrecLoryţ Lhousands
of mall server mallboxesţ mulLlŴglgabyLe Lables ln daLabasesţ deep flle/dlrecLory hlerarchles on flle
sysLemsţ eLcŦ 1esLers obvlously need auLomaLed Lools Lo generaLe Lhese large daLa seLsţ buL forLunaLely
any good scrlpLlng language worLh lLs salL wlll do Lhe [obŦ

tress test|ng

SLress LesLlng Lrles Lo break Lhe sysLem under LesL by overwhelmlng lLs resources or by Laklng resources
away from lL (ln whlch case lL ls someLlmes called negat|ve test|ng)Ŧ 1he maln purpose behlnd Lhls
madness ls Lo make sure LhaL Lhe sysLem falls and recovers gracefully ŴŴ Lhls quallLy ls known as
recoverab|||tyŦ

Where performance LesLlng demands a conLrolled envlronmenL and repeaLable measuremenLsţ sLress
LesLlng [oyfully lnduces chaos and unpredlcLablllLyŦ 1o Lake agaln Lhe example of a Web appllcaLlonţ here
are some ways ln whlch sLress can be applled Lo Lhe sysLemť
O double Lhe basellne number for concurrenL users/P11Þ connecLlons
O randomly shuL down and resLarL porLs on Lhe neLwork swlLches/rouLers LhaL connecL Lhe servers
(vla SnMÞ commands for example)
O Lake Lhe daLabase offllneţ Lhen resLarL lL
O rebulld a 8lu array whlle Lhe sysLem ls runnlng
O run processes LhaL consume resources (Þuţ memoryţ dlskţ neLwork) on Lhe Web and daLabase
servers
lƌm sure devlous LesLers can enhance Lhls llsL wlLh Lhelr favorlLe ways of breaklng sysLemsŦ Poweverţ
sLress LesLlng does noL break Lhe sysLem purely for Lhe pleasure of breaklng lLţ buL lnsLead lL allows
LesLers Lo observe how Lhe sysLem reacLs Lo fallureŦ uoes lL save lLs sLaLe or does lL crash suddenly? uoes
lL [usL hang and freeze or does lL fall gracefully? Cn resLarLţ ls lL able Lo recover from Lhe lasL good sLaLe?
uoes lL prlnL ouL meanlngful error messages Lo Lhe userţ or does lL merely dlsplay lncomprehenslble hex
codes? ls Lhe securlLy of Lhe sysLem compromlsed because of unexpecLed fallures? nd Lhe llsL goes onŦ
tress test|ng ls a form of LesLlng LhaL ls used Lo deLermlne Lhe sLablllLy of a glven sysLem or enLlLyŦ lL
lnvolves LesLlng beyond normal operaLlonal capaclLyţ ofLen Lo a breaklng polnLţ ln order Lo observe Lhe
resulLsŦ lor exampleţ a web server may be sLress LesLed uslng scrlpLsţ boLsţ and varlous denlal of servlce
Lools Lo observe Lhe performance of a web slLe durlng peak loadsŦ SLress LesLlng a subseL of load LesLlngŦ
lso see LesLlngţ sofLware LesLlngţ performance LesLlngŦ
SLress LesLlng ls seen as parL of Lhe process of performance LesLlng whlch Lrles Lo ldenLlfy Lhe breaklng
polnL ln a sysLem under LesL by overwhelmlng lLs resources or by Laklng resources away from lLŦ 1hls
helps Lo ensure LhaL Lhe sysLem falls and recovers gracefullyŦ
SLress 1esLlng ls done Lo uncover memory leaksţ bandwldLh llmlLsţ LransacLlonal problemsţ resource
locklngţ hardware llmlLaLlons and synchronlzaLlon problems LhaL occur when an appllcaLlon ls loaded
beyond Lhe llmlLs deLermlned by Lhe performance sLaLlsLlcsŦ

SLress LesLlng Lools generaLe exLremely hlgh load on Lhe Web server by slmulaLlng mulLlple cllenL
connecLlonsŦ
Cnglne sLress LesLlng process ls very slmple and sLralghLforward whlch ls done ln Lhree easy sLepsť
O 8ecord ?our SLress 1esL ScrlpLs
O dd dynamlc daLa Lo Lhe LesL and seL load level
O 8un sLress LesL and analyze sLress LesL resulLs

tress 1est|ng Ieatures

1he key feaLures LhaL help you perform sLress LesLlng areť
tress 1est kecord|ng
SLress LesL recordlng ls made slmple and easy wlLh a polnL and cllck user acLlonŦ ?ou can record sLress
LesL scrlpLs Lo capLure any P11Þ/P11ÞS/SSL/O requesLsŦ
I|ex|b|e User cenar|os and Dynam|c Data Generat|on
1o emulaLe Lhe realŴuser acLlvlLlesţ Cnglne sLress LesLlng provldes Lhe flexlblllLy Lo spllL Lhe number of
users accesslng dlfferenL parLs of Lhe web appllcaLlon performlng dlfferenL operaLlonsŦ ?ou can also
capLure user dlverslLy Lo slmulaLe a varleLy of vlrLual users characLerlsLlcs such as dlfferenL connecLlon
speedsţ dlfferenL browser Lypesţ lÞ Spooflng and dlfferenL servers/porLsŦ
1o capLure realŴllfe sLress LesLlngţ you can generaLe dynamlc daLa for Lhe sLress LesLŦ 1he values of
sesslon lus or requesL parameLers (eL/ÞosL daLa) can be feLched from a number of ways (from daLaseLţ
hldden elemenLsţ prevlous response/urlţ cooklesţ eLc)Ŧ
kea|Ŵwor|d oad |mu|at|on
1o sLress LesL and ldenLlfy Lhe poLenLlal breaklng polnLs ln your web appllcaLlonţ Cnglne supporLs Lhe
8urnŴln mode and Mlxed LoadŦ
8urnŴ|n Mode oad 1estť 1he burnŴln mode helps you Lo verlfy Lhe accepLablllLy of your web slLes/web
appllcaLlons when abnormal or exLreme load condlLlons are encounLered for an exLended perlod of
Llmeţ such as dlmlnlshed resources or exLremely hlgh number of usersŦ ?ou can exlL Lhe sLress LesL only
based on some speclfled exlL crlLerlaŦ xlL crlLerla allows you Lo seL mulLlple crlLerla based on whlch Lhe
sLress LesL should exlL or Lhe sysLem should breakţ lf one of Lhe crlLerlon ls noL meL durlng Lhe sLress LesL
execuLlonŦ 1hls goal based LesL meLhodology enables sLress LesLers Lo seL Lhresholds and parameLers
durlng sLress LesL conflguraLlon Lo ldenLlfy Lhe breaklng polnLsŦ lf noL aLLalnableţ elLher Lhe sysLem
should break or Lhe sLress LesL should exlLŦ
Lx|t Cr|ter|a Cpt|ons
lollowlng are Lhe opLlons avallable Lo seL Lhe goal for Lhe sLress LesLť
Lx|t on erver Crashť SelecL Lhls opLlon Lo exlL Lhe sLress LesLţ lf Lhe webŴserver crashesŦ
Lx|t |f 1est Durat|on exceeds spec|f|ed t|meť SelecL Lhls opLlon Lo exlL Lhe sLress LesLţ lf Lhe LesL duraLlon
exceeds Lhe speclfled Llme ln mllllsecondsŦ
Lx|t |f kesponse 1|me |s not |ess than spec|f|ed m||||secs for Ʒ of the t|meť SelecL Lhls opLlon Lo exlL Lhe
sLress LesLţ lf Lhe response Llme ls less Lhan Lhe speclfled mllllseconds for Lhe speclfled percenLlle of Lhe
LlmeŦ lor exampleţ lf Lhe response Llme ls glven as 10 mllllseconds for 93 Ʒ of Lhe LlmeŦ 1hen Lhe
response Llme ls sorLed ln ascendlng order from Lhe lowesL Lo Lhe hlghesLŦ ssume Lhere are 20 valuesţ
Lhen flnd Lhe 93Lh percenLlle value (93/100*20ƹ19)Ŧ lf Lhls value ls less Lhan 10 mllllseconds Lhen exlL
Lhe sLress LesLŦ
Lx|t |f C9UƷ on erver exceeds spec|f|ed Ʒť SelecL Lhls opLlon Lo exlL Lhe sLress LesLţ lf Lhe Þu Ʒ of Lhe
speclfled server exceeds Lhe speclfled Þu ƷŦ ?ou can also conflgure new server monlLors and check Lhe
Þu Ʒ of Lhe sameŦ
M|xed oad 1estť 1hls helps you Lo ldenLlfy Lhe breaklng polnL ln your web appllcaLlon when a
comblnaLlon of workloads ls added whlch emulaLes Lhe realŴworld load behavlor such as sLeadyŴsLaLeţ
rampŴup or rampŴdownŦ
D|str|buted tress 1est|ng
O 1o slmulaLe a very hlgh load hlLLlng your web slLe for sLress LesLlngţ you have Lhe opLlon of
slmulaLlng Lhe users ln a slngle machlne wlLh a hlgh conflguraLlon or dlsLrlbuLe Lhe load across
mulLlple machlnes uslng Lhe dlsLrlbuLed playback opLlonŦ Cnglne provldes a slngle load LesL
conLroller LhaL cenLrally managesţ auLomaLlcally generaLes and dlsLrlbuLes Lhe load across
mulLlple play englnesŦ
O WebŴbased Þlay nglne onflguraLlon ul allows you Lo qulckly and easlly conflgure Lhe
dlsLrlbuLed machlne lÞs and Lhe maxlmum vlrLual users Lo be slmulaLed ln each machlne
(Wlndows or Llnux machlnes)Ŧ
tress 1est keports
Þrovldes a clear and comprehenslve range of sLress LesL reporLs and graphs whlch lncludes boLh
summary and deLalled reporLsŦ ?ou can also refer Lo Lhe whlLe paper on Þerformance 1esLlng 8eporL
nalyslsŦ Some of Lhe key sLress LesL reporLs and graphs LhaL helps you Lo qulckly and easlly analyze Lhe
poLenLlal boLLlenecks ln your web appllcaLlon are as followsŦ
O 8equesL/8esponse SLaLus Summary Lo know wheLher Lhe sLress LesL conflguraLlon ls
approprlaLeŦ
O rror 8aLe raphţ rror ulsLrlbuLlon raphţ 8esponse valldaLlon rror ueLalls helps you Lo
analyze Lhe sLress LesL errors and ad[usL Lhe sLress LesLs ln order Lo achleve meanlngful and
accuraLe resulLsŦ
O raph Lo ldenLlfy performance boLLlenecks provldes a consolldaLed vlew whlch shows Lhe server
response Llme for lndlvldual u8Lsţ error percenLage and Lhe number of acLlve users over elapsed
LlmeŦ
O user ueLalls raph helps you Lo know Lhe number of vlrLual users generaLed by Lhe load
generaLorŦ
O 1he PlLs per Second graph shows Lhe number of P11Þ requesLs made by vlrLual users Lo Lhe
Web server durlng each second of Lhe runŦ
O 8esponse Llme graphs helps you Lo know wheLher Lhe response Llme meeLs your LargeL
requlremenLsŦ
O user capaclLy graph and 8esponse 1lme vs user Load raph helps you Lo know how many
slmulLaneous vlrLual users your web server can handleŦ
O Server and uaLabase graphs helps you Lo know how your web appllcaLlon performance affecLs
due Lo server and daLabase parameLersŦ

1est scenar|o
l usually sLarL my performance LesLlng wlLh a slngle cllenL machlne and l consLanLly lncrease Lhe number
of slmulaLed concurrenL users ŴŴ for exampleţ l sLarL wlLh 10 concurrenL connecLlons Lo Lhe server and l
lncrease LhaL number Lo 100 ln lncremenLs of 10Ŧ L some polnLţ elLher Lhe cllenL or Lhe server wlll
become Lhe boLLleneckŦ lf Lhe server ls capable of servlng a large number of concurrenL usersţ Lhen Lhe
cllenL machlne wlll become Lhe boLLleneckŦ L LhaL polnLţ you need Lo add more cllenLs Lo your LesL and
conLlnue Lo lncrease Lhe load on Lhe serverŦ
s for Lhe maln dlfference beLween performance and load LesLlngť you do performance LesLlng ln order
Lo flnd any boLLlenecks ln your appllcaLlon code and ellmlnaLe LhemŦ When you canƌL posslbly opLlmlze
your appllcaLlon anymoreţ you sLarL dolng load LesLlngţ whlch Lells you for example how many Web
servers you need behlnd a load balancerţ how many daLabase servers you needţ eLcŦ ŴŴ all Lhls so LhaL
you can susLaln some preŴdeflned load LhaL your cusLomers/users requlreŦ

¾  ¾%¾% ½ n€ ¾ ff° f° nf  €€%€ °   € °  f€ff  ½ €¯f°n  ¾%   ½½€ € n°n ½¾n½¾€ fnf½½nf°$n¯½° °°  ¾ ¾°–n¾ ° ¾ ¾f° ¾f – ¾   ½ f ½ €¯f°n  ¾½© n½f° °n °–f ½ ° °n ¾f° f¾¾nf  ¯ ° ¾ °¾ff° n°€– °© n¾$n°  .

n¾€  ½ -  9 €¯f°n @ ¾°–.°€–   ¾ °°¯ °% f °nff f  ½ n°½f€¯%   n°€–f°  ° %  °#f° ¾¾½¾   ¾ ¾%  ½¯ °€¾   °¾¯ °f°  ff f¾  ¾¾ ¾  ½  n   n  ¾¾ ½ f  ½ f % f %° ¾   f°°fnn° € €fn¯–f€€ n  ¾¾ °f   ¾¾   ½f¾¾$€f ° ¾–f°€nnf½ff°  n¯¯ ° f°€ n n fn° 9 €¯f°n @ ¾°–J ½½nf°¾.  – nn °– .  –n°¾¾¾€  €°–fn ¾  O n  °€ @ ¾°°¯ °  °€ ½¾nf ¾ °°¯ °f°   ½ n° °°¯ °f¾ f¾ ¾f°  ¾n ¾fff    ¾ f¯ @  ½¾nf °°¯ °°n ¾f f ¾€f f° ° n°€–f°¾ f°–f –° ¾f° °–€  °  ¾ °°¯ °f ¾  °f  ¾¯  €€n ° ¾ .

O O O O O O ¾–°f° ½f°°°–f°  ½¾ °€ ¾°–nf °– ¾ f° ½© n °¾¯  ¾f°¾ ¾½n ¾¾¯¾  ¾ ½  nf– ½© n#¾€ nn  n  °€9 €¯f°n nn ½f°n .

 f  °€  ¾½°¾ ¯ –½  f°  ¾n f°–f¾f° n°¾f°¾ °– ° f  ¾½°¾ ¯ ¾f¾ n°n °  –½¾f ¾° ¾¾n°n ° f°  ¾n f°¾f¾¾ ¯n°n °  °f   °€½© n¾nn ¾¾n ff¯f° nf½  ¾ –f¾f° n°¾f°¾ € f¯½ ¾°–½ €¯f°n  ¾¾ ff fn¯ °f°€n°€–f°¾ °–¾  ¾° ¯¾ ¾f  ½ €¯f°n nffn ¾n¾  n 9f°f°  ¾–°@ ¾¾  °€ ¾n °f¾   ¯° ff f¯°–  ½ ¾ °f ¾ ¾f° ¾¯f fff   €°  ¾ ff f°  ¾f ¾¯ n¾  n n .

°¾ f ¾°€¯f°°° ¯ ¯ ¾€¾¾ ¯¾f–   ¯½ ¯ °   n f° f°f  n .

°€–  @ ¾°°¯ ° 9 ½f   ¾ °°¯ ° ¾ f°  ¾n ¾ ° n ¾¾f  n  fn¾f –f¾€ f ¾f° n¯½° °¾ n¯ fff  € ¾  °¾ f  ¾ °°¯ °¾°¾¯ ° € ¾n ¯°°–f¾° n ¾¾f  n ¯½ ¯ ° @ ¾ ¾–°   ½ ½ €¯f°n  ¾¾°fnn f°n    ¾ ¾–°  n  n  @ ¾ °f° ¯° ¾¾ If f   ¾¾  ¾ ff f°   ¾¾n n°  n f f  ¾¾€f°f¾¾ ¯°°–  ¾f°   ¾ °°¯ °  n °f  ¾¾ @° f°   ¾ °f¾ .

f  f°°–nf°– f°   ¾ ¯½ ¯ ° –f f°"fn¯½ ¯ °¯f  ° ¾¯f ¯½ ¯ °f° ½ ¾¯½ ¯ ° J ° ¾½"J ° fnf .°¾ f f° ¾f  ¾¾ ff .

9D  ° n  nn ¾ °f   ¯½  n f ¯ .

9D  @ ¾n°€–f°@ ¾¾ ½f° n°€–f°¾n°   ¾½¾nf ° ¯ n°¾ @  n°¾  °f  ¾ ¾  €°  fn ¾°– ¯f°½f°€  °¯ ½ff¯    ¾n f¾   °¯  € f ¾ ¾    ¾  °n°– € ¾  ¾n½¾ f°   ¾ f°  @ €¾¾ ½° n°€–f°€ f  ¾¾  €°°€ ¾ ¾n °f J f¾ ¯f¯¯ €   ° ¾n °f n°€–f° f°–°– €¯ ¾¯½ °°°– ¾°–  ¾n½¾  n f°– f n¯½¾  ¾n °f °°– ¯½  ¾n½¾ °°°– n°nn °   fn ¾  n  ¾n½ ¾ ¾ ½¾¾   €°  €€  °° ¯ ¾ °–¾¾nf¾n°° n°¾½  ¾ nfn ¾¯f°f°  @@9½n¾ °–¾ @¾€  °° ¯ ½ff¯  ¾ °f  ¾ ¯¾fnnf ¾¯f°€ ¾  f° f  @ ¾ n° ¾ ½° n°€–f°€ f  ¾¾ ¾  n°€f ¯fn° ¾f° ½ °–n ° ¯fn° ¾  f  ¯fn° ¾ nf°  ¾   fn¾¾ –f°¾f°¾ f°  € f¾ f°– f    – ° f €¯°¾  € ff° €¯ n f – ° f¾f n¾¾½f€¯f° nf°° °J° ¾f¾ f¾°¯fn° ¾  @    ¾ ½ °   n°€–f° €   f   ¾ ¾ ¾n °–   f  ¾ ¾¾°  n °– nf°  ° ¯f°ff°– ¾ ¾  n¯ €f¯ ¾f°  f  – ° f   fn€f¯   °f   ¾ nf°¾  n€¯f¾€½ €° ¾n °–¯ ¾¾ fn¯ °f°€    .

W_`ZYX[^[SVÊSZW S\W @ ¾n °ff°  ¾€¯J  f½½nf°¾ f  ©¾ n  f°  -   ½¯ °¯fn° f° f° ½–¾½fn ¾°°°– J ¾  f½½nf°%¾  fnfJ f½½nf° ¾ – ½ $$  ¾ ° n¯$¾ $%  f¾nff°¾ ¯nf€€nnf°f  fn ° f½½nf° € ¯f ¾  ¯fn° f° ¾f¾ fn––°–  ¾¾  ° ¾°–€f ¾f –°– fn  °–¾½f– f° ¾ °–  ¾¾  f°   ¯½  ¾°–°  f °€  €€n ° °° ¾½nn°–¾½½ ¾°¯¾  -° ¾f° f ¾ n °¾ °¯fn½nfn °¾° J ¾  nf¾ ° f¾ f nn°–  °  ¾¾¾ ° Jf¾¯  ½°¯° f f¾ ¾°f¾  °  n°°¾nn°°¾  f f€½f– ¾ °f f° fnff n° °°  ½f– ¾ f€f¾n°° n°f° °¾ fnf f°¾¯fnn°n     ¾ n° ¾  ¯ ½nf¾ ¾f n¾  ¾ n° ¾– ° ½f–  ¾¯f ¾   °¾ f°–fn€€   f   °¯° ¾ n n°–  ¯f  °  ¾¾ n n°–f° ¾ €n¯½ff  ½n°–  .–f    ¾¾    fn ° ½ €¯¾f° fnf°f¾¯f°¾f¾ ½¾¾ nf° €  ¾¾ ¯ n¯ ¾f .

9Dn¾  f° ½f– ¾ ° f°–¯  f°¾ n° ¾€¯f° ¯fn°  Jn°°¾n °¾ ¯°  °n¾   ¯f  .

9Df°f°  °°–  ¾  f¾ ½ff  ¾ f°  ¾¾f  ° ¯¯ f       n° n °¾% f ¾$¾n ¾% -°–¾– ¯ °  ¾°–  .

f  f°      ¾ ¾ ¾¾° °f°¾ °f ¾°– °–f°  ¾ °¯ ¾– f– n ¾°–°¾–¾°– fnn ¾¾¯ ¾  ff f¾ f¾  ff¾ –¾  . ff f¾ D¾  ¾¾° ff¾f¾–– °f.9D¾°°°–f f f–  nnf¾°f¾½ ¾n¾  J °°°°– ¾   ¾¾f–f°¾ ¾   °¾  €°  ¾f°  ¾½°¾ ¾f€¯n¾ °¾f°½¾ n° ¾¾ @¾¾ n¾  f n°¾  ° ½ f°€ J f½½nf°  ¾¾ ½°–½ f°°–¯  f°  ¾f °–  J  €° ¯f¾ ¾¾        ° ©¯½n°n¾°¾°¾ ¾¾€¯° ¾¾ @ ¾ ¾ ¾ ¾¾f – f €€° °–¾f°–  f°–½°¾  °  ¾½ f°° f ° ¾ ¾¾  ¾€°–½  ¾  °¯ ¾¾ °–€f f¾¾   f f°° €f½  ¯ J"° °–f½½nf°¾ ° – ¯  ¾n °–  °–  °  ¾°°n¯¯°¾ ¾ °¾ °–½  ¾€f ½ f° ¾  n°¾ fnf fffnn¯f° °¯ ¾fnn¯f    ¾ °°f .

¾f¾ ° €–°– fn ° ¾ °¾  ¾f °f––°–€  ¾¾° fn °  f½½nf° @ J  f½½nf°°n °f½ ¾¾––°–– J €f¯  °¾°%J ¾J° J .

°° n° ¯ f ¾f  ° € fn % ––°–¾nnf€ J f½½nf°¯°°–  f ¾¾¯ °–f° ¾ ¯½ ¯ ° f ½½nf° J f¯     ¾°¾¯ °–fJ½  °€fn J°½ ¾ f¾¯¯f€  ff° fnf ffnf°¾ ¾  –f f° ¯  °f€f° ¾¾ – J  ¾½  f –-@9 €¯f°n n° ¾€¯ J  ¾  f––°–€¾  ½ €¯f°n ¾f¾n¾ ¯ J– ° f ¾f€ n° ¾ n¾ nn°f°¾ ¾ n° f ¾ nnf° °¯f°½f f° –f½  °f%°¾¾n f¾n € f¯½ %  f  ¾°–  J  f  f f  ¾ ° f   ¾°– f¾ ½f €   ½n ¾¾ € ½ €¯f°n   ¾°– f°  °°–  ° f n°    ¯ f° n°¾f° °n f¾°–   f  °   ¾¾ ¯ f f¯f  ¾   f J  f½½nf°  f ¾ €° ° ¯¾€n°n °¾ ¾@@9n°° n°¾  °  ¾°– f   ¯ f  ¾°– ¾¾f €° f¾ ½n ¾¾€  n¾°– ¾¾ ¯ °  ¾ € °– f– ¾f¾¾nf°½ f  f  ¾°–¾¾¯ ¯ ¾nf ¯   ¾°– °– $ ° f°n  ¾°–    f¯½ ¾€¯  ¾°–  O O O O  ¾°–f ½n ¾¾  °–f f–  n¯ °  ¾°–f½°  ¾ ° °–f f– ©   ¾°–f¯f¾  ¾f° ¾€¾ ¾¯f  ¾ f¾½ n€nnf¾ €¯  ¾°–¾  ¯  ¾°–    ¾¾ ¯¾€  ¯½f¾¾ f¯½ ¾€°– $ ° f°n  ¾°–  O  ¾°– f n ° ¾   f½½nf°  °°°–   n ° ° f ½ f–f°¾   ¾     f°  ° ½  €¯  f¾€f  ¾°–  ½¾  –¾f °¾€fn °n¾ ¾°– ¾nf¾¯ ¯¯f°f– ¯ ° –¾ ¯ ¯  f¾  €€  €¾  n  O °¾  f   f½½nf° ¯ ¾   ½ €¯f°n  f¾ °  ¾f ¾  °– ½ €¯f°n   ¾°– @¾¾ °  °°°– – ¾¾° ¾¾f–f°¾ f½½nf°ff¾½ n€ ¯f¯¯ f  O –½ €¯f°n  ¾°–f° f  ¾°–nf°¾ ¯¾¯f  –f¾f  €€  ° °° f°  ½ €¯f°n   ¾°– ¾ ¾ f   ¾°–  n° ¾ f°  ¾ € ¯ f¾ ¯ ° f°  °n¯f°– ½½¾ ¾ f°  ¾ ¾ f¾ f    ¾  °     f°  f   ¾°– ½ f ¾ f f ½ €°  f     ¾f – ¾f f ¾¾ ¯nf°fnn ½ ¾€°n°°–½½  - ff  .

 ¾°–  ¾ ° f¯   f   ¾¾ ¯    ¯°–    °¾ f   ¾   ½   ¾¾ ¯ n°¾f°¯¯°– f   ¯fn°  °   n°  € f   ¾°–   f°  ¯½f¾     ¯  ¯½f°n  € f°– f–  ff¾ ¾ fff  € ¾°– °¯ ½  °n ¯f°¯½f° –¾¾¯½ °¾€fn ° ¾¾ f  f–  ° ¾¾n¾f° ¾€¾ ¾° ½¾ ¾¾nf¾9$-$n  n ¾f° ¾ € ¯f ¾   ¯f  ¾  ¯ ––f   f  ¾ ° ff f¾ ¾  ½ € $  n  fn ¾ ° €  ¾¾ ¯¾  n @ ¾ ¾ ¾° f¯f ¾– ° f  ¾ f–  ff¾ ¾  €°f  f°– ¾n½°–f°–f– ¾¾f  ©    ¾¾ ¾°–   ¾¾ ¾°– ¾  f ¾¾ ¯°  ¾   ¯°–¾ ¾n ¾ f°– ¾n ¾ ff €¯  %° n nf¾   ¾ ¾¯ ¯ ¾ nf  ° –f   ¾°–%  @  ¯f° ½½¾  °  ¾ ¯f ° ¾¾ ¾  ¯f  ¾  f   ¾¾ ¯ €f¾ f°   n ¾ –fn €  ¾ f ¾ °° f¾  n f    J   ½ €¯f°n   ¾°– ¯f° ¾ f n°  °°¯ ° f°   ½ ff   ¯ f¾ ¯ °¾  ¾ ¾¾  ¾°–©€° n ¾nf¾f° °½ nf  @f f–f°  f¯½ €fJ f½½nf°    f ¾¯ f¾°n¾ ¾¾nf° f½½  ¾¾ ¯      f¾ ° °¯ €n°n °¾ ¾$@@9n°° n°¾ f° ¯¾ °f°  ¾f½¾° ° ¾n ¾$ ¾fn°° n ¾  ¾ %f-.9n¯¯f° ¾€ f¯½ % O f   ff f¾ €€°  ° ¾f O   fff  ¾¾ ¯¾°°°– O °½n ¾¾ ¾fn°¾¯  ¾n ¾%.

9D ¯ ¯  ¾ ° %° J f°  ff f¾  ¾  ¾ O O  ¯ ¾  ¾  ¾ ¾ nf° °f°n  ¾ ¾    €f  f¾ €  f°– ¾¾ ¯¾      ¾ ¾¾  ¾°–  ¾ °  f   ¾¾ ¯ ½  €   ½ f¾  €  f°–    °¾ f   f¾  ¾ ¾ ¾   ¾¾ ¯ fn¾€f  ¾¾f ¾¾f   ¾nf¾¾ °" ¾ ©¾f°–f° €    ¾€f–fn €"° ¾f ¾f   n €¯ f¾– ¾f "  ¾½°¯ f°°–€ ¯ ¾¾f– ¾ ¾    ¾¯   ¾½f°n¯½  °¾    n ¾"¾ ¾ n€ ¾¾ ¯n¯½¯¾  nf¾ €° ½ n €f ¾"°  ¾– ¾°   ¾¾ ¾°–¾f€¯€ ¾°–f¾¾   ¯°  ¾f €f– °¾¾ ¯ °  ° ¾ ¾°– ° °¯f½ f°fnf½fn € °f  f°–½° °  ¾     ¾¾  f¯½ f ¾  ¯f ¾ ¾¾ ¾ ¾°–¾n½¾  ¾ f° f¾ °f€¾ n  ¾ ¾   ½ €¯f°n €f ¾  °–½ ff ¾  ¾¾ ¾°–f¾ ¾ €f  ¾°–  ¾¾  ¾°– ¾€f  ¾°– ½ €¯f°n  ¾°–   ¾¾ ¾°–¾¾ °f¾½f€ ½n ¾¾€½ €¯f°n  ¾°–n ¾ °€   f°– ½°°f¾¾ ¯°  ¾   ¯°–¾ ¾n ¾ f°– ¾n ¾ff€¯ @¾  ½¾ °¾ f ¾¾ ¯€f¾f°  n ¾–fn €  .

°–° ¾½½¾  ° °¯ f° . f @ ¾ @  ° °¯  ½¾ € fnn ½f € ¾ ¾$  f½½nf°¾ °f °¯f  ¯ f n° °¾f  °n°  €f°  ° ½  € ¯ ¾nf¾ ¯°¾  ¾n ¾  ¯ –°¯ €¾ ¾ nf°  ¾ ¾¾ ¾° f¾ °¾¯ ¾½ n€  n f n ff¾¾ ¯½ n f f¾ °n  ¾ ¾¾ ¾¾   ¾¾ ¯¾   f €° € n °¾°¯  °– ¾ ¾¾ ¾  n° @¾–f f¾  ¾¯  – °f  ¾¾ ¾¾ ¾ ¾¾  ¾ ¾f° ½ff¯  ¾ °–¾ ¾¾ ¾n°€–f° °€   f°–½°¾ €°ff°f     ¾¾ ¯ . ¾¾@ ¾°–¾ ° °n ¯ ¯ f¾  f°  ¯¾ f°¾fn°f½  ¯¾  ¾n  n°– f f ¯f°¾f° ¾°n°f°½  ¯¾fnn °f°f½½nf°¾f  °  ¯¾  ¯°   ½ €¯f°n ¾f¾n¾    ¾¾ ¾°–¾– ° f   ¯ –f ° J ¾   ¾¯f°–¯½ n ° n°° n°¾  . f  ° °.°–° ¾ ¾¾ ¾°–½n ¾¾¾ ¾¯½ f° ¾f–€f n¾ ° °  f¾¾ ½¾  O O O  n  ¾¾@ ¾n½¾   °f¯n ff  ¾f° ¾ f    °¾ ¾¾ ¾f° f°f ¾ ¾¾ ¾ ¾¾   ¾¾@ ¾°– f ¾  @  € f ¾f ½½ €¯¾ ¾¾ ¾°–f   ¾¾@ ¾ n °–  ¾¾ ¾ n °–¾¯f ¾¯½ f°  f¾f½°f° nn¾ fn° nf° n ¾ ¾¾  ¾¾n½¾nf½ f°@@9$@@9$$O  ¾¾     D¾ n °f¾f° °f¯nff ° f° @ ¯f   f ¾ fn ¾ .°–° ¾ ¾¾ ¾°–½ ¾ €  ¾½ °¯ € ¾ ¾fnn ¾¾°– €€  °½f¾€  f½½nf°½ €¯°– €€  °½ f°¾ nf°f¾ nf½ ¾   ¾¾¯f ff €f¾ ¾nffn ¾n¾¾nf¾ €€  °n°° n° ¾½ ¾  €€  ° ¾ ½ ¾ 9½€°–f°  €€  °¾  ¾$½¾  @nf½  f € ¾ ¾¾ ¾°– nf°– ° f  °f¯n ff€ ¾ ¾¾ ¾ @ f ¾€ ¾ ¾¾°¾  ¾½ff¯  ¾% $9¾ ff%nf° € n €¯f°¯ €f¾%€¯ ff¾    °  ¯ °¾ ½ ¾ ¾½°¾ $ n ¾  n%   f  f ¯f° @¾ ¾¾ ¾f°  °€ ½ °f  f°–½°¾° f½½nf° .

¾   f ¾ ¾¾ ¾¾    .

 f½°¾ °–f  ½°¾fff  ¾  –f€ ¾ ¾¾ ¾  °  .

f¾   n¾½°  ¾ ¾¾ ¾ €  ¾  nf¾ ¾  €@ ¾f° n ¾¾½ n€ ¯   n¾½°  ¾ ¾¾ ¾ €  ¾ f° n ¾ ¾½ n€ ¯ °¯¾ n° ¾  € ¾½°¾ @¯ ¾° ¾¾f°¾½ n€ ¯¾ n¾€ € ¯   n¾½°   ¾ ¾¾ ¾ €  ¾½°¾ ¯ ¾ ¾¾f° ¾½ n€ ¯¾ n° ¾€ ¾½ n€ ½ n ° €  ¯  f¯½ €  ¾½°¾ ¯ ¾– °f¾¯¾ n° ¾€ € ¯ @ °   ¾½°¾ ¯ ¾¾ °f¾n ° °– €¯  ¾ – ¾ ¾¾¯   f f ¾   °€°  ½ n ° f %$& % €¾f ¾ ¾¾f°¯¾ n° ¾ °   ¾ ¾¾ ¾  €.

9D °   n ¾¾½ n€    n¾½°  ¾ ¾¾ ¾ € .

9D €  ¾½ n€ ¾   n ¾ ¾½ n€ .

9D nf°f¾n°€– ° ¾  ¯°¾f° n n  .

 f @ ¾ @¾ ½¾ °€   f°–½°° f½½nf° °f n¯ °f°€f ¾¾f n ¯f ¾  f  f  f¾nf¾¾ f  ¾f  f¯½ ½f¯½ °  ¾   ¾¾@ ¾°– O @¾¯f f –f °– ¾ €¾ ¾¾ ¾°– f  ½°€ ¾¯f°– ¾ ¾°f¾°– ¯fn° f–n°€–f° ¾   f fn¾¾ ¯½ ¯fn° ¾¾°–  ¾  ½f fn½° .°–° ½ ¾f¾°– f  ¾ n° fn °f¯f°f– ¾ f¯fnf– ° f ¾f°  ¾  ¾ f fn¾¾ ¯½ ½f °–° ¾  O J f¾ 9f°–° .9D € ¾f¯  .

°€–f°Df¾nf°  f¾n°€–   ¾  ¯fn° 9¾f°  ¯f¯¯f¾ ¾ ¾¯f ° fn¯fn°  %J° ¾°¯fn° ¾%   ¾¾@ ¾ ½¾ 9 ¾fn ff° n¯½  °¾ f°– €¾ ¾¾ ¾ ½¾f° –f½¾n°n ¾  ¾¯¯ff°  f  ½¾ nf°f¾ €   ½f½ °9 €¯f°n @ ¾°– ½ °f¾¾ ¯ €  ¾ ¾¾ ¾ ½¾f° –f½¾f ½¾nf°  f¾f°f   ½ °f  ° n¾° f½½nf°f f¾€¾    ¾$ ¾½°¾ f¾¯¯f°   ¾ ¾¾ ¾n°€–f°¾ f½½½f  O f f½ ¾ °f½  ¾½°¾ If f° f¾ ½¾ f°f  ¾ ¾¾ ¾ ¾f° f ©¾ ¾ ¾¾ ¾¾° fn  ¯ f°°–€f°  fnnf  ¾¾  O f½ °€½ €¯f°n   ° n¾½ ¾fn°¾ f  n¾¾ ¾    ¾½°¾ ¯ €°  fD¾  ½ n °f– f°  °¯ €fn ¾ ¾  f½¾  O .

O O O O O ¯  D¾  f¾f½ ½¾° °¯ €f¾ ¾– ° f   f  – ° f  @ ¾½  n° –f½¾¾ °¯ €@@9  ¾¾¯f  If¾ ¾  J ¾   °– fn¾ n° € °   ¾½°¾ ¯ –f½¾ ½¾°    ¾½°¾ ¯ ¯ ¾f–    ¯ °¾  D¾ nf½fn–f½f°  ¾½°¾ @¯ ¾D¾ f f½ ½¾°¯f° ¾¯f° ¾f¾ ¾ ¾  nf°f°     f° ff f¾ –f½¾ ½¾° f½½nf°½ €¯f°n f€€ n¾  ¾  f°  ff f¾ ½ff¯  ¾   @ ¾¾n °f ¾f¾f¯½ €¯f°n  ¾°–f¾°– n °¯fn° f° n°¾f°°n f¾  °¯  €¾¯f n°n °¾ ¾ € f¯½ ¾fn°n °n°° n°¾ ¾  f°  °n f¾  f °¯    ° °n ¯ °¾ €    ¾¯  ½°      n °    ¾    n¯    ° n € ¾  ¾nf½f  €¾ °–ff– °¯ €n°n °¾ ¾  °  n °¯fn°  n¯    ° n f½° ° f ¯ n °¾ ¾f°  n°° °n f¾  f ° ¾    ¾€ ¯f° €€  °n   °½ €¯f°n f° f  ¾°–  ½ €¯f°n  ¾°–°  €° f°  ° n¾°f½½nf°n f°  ¯°f  ¯ J °nf° ½¾¾ ½¯   f½½nf° f°¯   ¾f °– f   ¾°–  n  ¾  € f¯½   ¯f° J  ¾  ¾°  ° ff  ff°n  ¯f° ff f¾ ¾  ¾°  n  f¾¾f nf°¾¾f°¾¯ ½ €° f fn¾¯ ¾$¾ ¾   .