Title: Web Stress Testing
1Web Stress Testing
- Matt Odhner
- Program Manager
- Application Center
- Microsoft
2Topics to be Covered
- Important web hosting statistics
- What stress testing solves common stress
testing issues - Web Application Stress tool demonstration
- Understanding the report data
- What a commercial stress tool needs
- Application Center Test (ACT) demonstration
- Visual Studio integration
- The importance of bandwidth testing
- Other ACT features
- Capacity planning
3Web Hosting Statistics
- Popular web sites receive over 40,000,000
requests per day - Web hosting is expected to be a 14.6 billion
industry by 2003 - Newport Group study revealed 52 of web
applications failed to scale, 60 had no
performance testing, only 25 used a testing tool - Zona Research found that 4 billion a year is
lost due to slow and failed web pages
4 Stress Testing Solves
- Stability issues - unexpected downtime and poorly
written COM objects - Performance problems locate bottlenecks and
whether the application will handle peak loads - Capacity planning - how many machines are needed
to support usage - Plus, it avoids financial losses and ensures
customer satisfaction
5Stress Testing Locates Bottlenecks
- Memory
- Processor
- Network
- Hard disk
- COM component
6Common Stress Test Issues
- Invalid test platform
- Invalid script
- Thread safety issues with unstable server COM
components - Active Server Page script errors and GLOBAL.ASA
issues - Insufficient processor power and/or scripts are
too complex for the hardware
7Traditional Test Bed
Web server
Member Stress Client
Member Stress Client
Controller Stress Client
8Approaches to Stress Testing
- Confirm that the application functions under load
- Find the maximum requests per second my
application can handle - Determine the maximum number of concurrent
connections my application can handle - Test the application with x number of unique users
9Creating the Script
Scripts view - create, edit, delete, and run
stress scripts.
10Creating the Script (contd)
- Record using your browser this method is
recommended because all page elements are
captured.
11Script Configuration - Settings
Concurrent browser connections
12Script configuration - Users
- Users view - manage user names and passwords.
13Script Configuration - Clients
Clients view - add and remove the client machines
used to stress the web server(s)
14Script Configuration - Script Item Details
Script item details modify query string, edit
POST data, use SSL, query RDS.
15Performance Monitor Data
- Collect performance monitor
- counters from within the tool
16Scriptable Object Model
Sub AddNewScript() Set objWAS
CreateObject("WAS.EngControl.1") Set
objScripts objWAS.Scripts Set objScript
objScripts.Add objScript.sName "A New
Script" objScript.ScriptItems.sServer
"www.targetserver.com" MsgBox "The new
ScriptID is " objScript.ScriptID End Sub
17Session Trace Option
h Selected new user User2, password,
ASPSESSIONIDGQQGQNYGMPBBLMOAFBPBPDFAJLMCCFCO
Account6001 h closed socket h linger is
on, linger timeout is 0 h connected to the
server. 172.30.170.21780 h sending request
to server (470 bytes) GET /fmstocks/_NewAccount.as
p HTTP/1.1 Host localhost
18ASP Client
19Reports Tabular Report Data
- Reports view - analyze the results of a test.
20Time to First and Last Byte
0 ms
Request
9 ms
6 ms
Response
Time To Last Byte
Time To First Byte
21Calculating ASP Performance
- MHz Cost N S avg (Pt) / avg(Rps)
- Where
- N Number of Processors
- S Speed of Processors
- Pt System Total Processor Time
- Rps ASP Requests per secondReports view -
analyze the results of a test.
22Calculating ASP Performance
- Example a test using a 2 processor web server
achieved 350 requests per second, with the
processors 70 utilized. - So, this works out to
- 2 processors 400 MHz gt 800 MHz
- 70 processor utilization gt (800) (0.70)
- gt 560 MHz used
- 350 ASP requests per second 560/350
- gt 1.6 million cycles per ASP request
23More About Web Application Stress Tool
- Designed to meet internal test needs
- http//webtool.rte.microsoft.com contains
- Searchable knowledge base
- Tutorial of main features
- Latest download
- Object model sample scripts
- Peer support on the discussion alias
webtool_at_microsoft.com - Online help contains samples
- The tool respects ROBOTS.TXT
24What is Needed in aCommercial Stress Test Tool?
- All of the features in Web application Stress,
Plus - Accurate simulation of client connection
- speeds
- Running a script a specific number of iterations
- Testing of servers in multiple domains
- Handle complex applications that require
- conditional responses
- Capable of changing subsequent requests based on
the response of a previous request - Functional and performance testing
- In-depth reporting and troubleshooting
25MicrosoftApplication Center Test
26Significant Features
- Integration with Visual Studio
- IP router technology
- Data collector to replay actual web site traffic
- Completely scriptable, even as the test is
running - Graphical and tabular reporting
- Capacity planning
- Can import Web Application Stress scripts
271. Visual Studio Integration
28Visual Studio Integration (contd)
29Bandwidth Statistics
- 58 of web site users said download speed was a
primary factor that influences them to return
to a site (Forrester Research) - Web surfers give a site about 10 to 15 seconds
to display before they hit the stop button and
go to a different site - Bandwidth is not expected to improve soon
-
- Chart shows forecast for the year 2003
302. IP Router Technology
Web farm
T1
T3
56 K
28.8
Client computers
31IP Router Technology (cont'd)
Web cluster
ACT
Local Area Network
Delay prior to sending each packet so that1,588
bits per second is maintained
32IP Router Technology (cont'd)
333. Data Collector
Internet traffic
Replays exact traffic
Client computers
344. Completely Scriptable
If IsObject(Session) False Then Set Session
CreateObject("ACT.Session") End If Set oRequest
Session.CreateRequest oRequest.Path
"/samples/cookie.asp" oRequest.Headers.Add
"Connection", "Close" oRequest.Headers.Add
"Cookie", "FirstNameMattLastnameOdhner" Set
oConnection Session.CreateConnection("MATTOD15")
Set fs CreateObject("Scripting.FileSystemObject
") Set writeToFile fs.OpenTextFile("c\test.txt"
, 8, TRUE) thePath oRequest.Verb " "
oRequest.Path " " _ oConnection.Send(oRequest
).ResultCode chr(13) chr(10) writeToFile.Writ
e thePath writeToFile.Close
35Reporting - Tabular Reports
36Reporting - Connections vs. TTFB TTLB
37Reporting - Comparing Scripts
386. Capacity Planning
1. Manual capacity planning
39Capacity Planning (cont'd)
2. Historical capacity planning
Internet
Filter
Filter
Filter
Web cluster
40Capacity Planning (cont'd)
3. Calibrated capacity planning
Web farm
Client computers
41Summary
- Web Stress tools give answers to the problems of
Web application stress, via - Modeling
- Prediction
- Identification of bottlenecked resources
- Provision of performance Metrics to help
- developers decide what content to deploy
- So - employ one today to improve your web
application's performance!
42Resources - Further Reading
http//www.microsoft.com/TechNet/iis/sol.asp htt
p//msdn.microsoft.com/library/techart/windnami
stakes.htm http//msdn.microsoft.com/workshop/ser
ver/asp/server102599.asp http//msdn.microsoft.co
m/workshop/server/asp/server092799.asp http//msd
n.microsoft.com/workshop/server/asp/server122799.a
sp http//www.microsoft.com/siteserver/commerce/s
upport/highcapacity.htm
43Resources - Other Web Stress Tools Available
Mercury Interactive, Loadrunner/Winrunner -
http//www.merc-int.com/products/ Radview,
Webload - http//www.radview.com/webload/ RSW,
eLoad - http//www.rswsoftware.com/ Segue,
Silkperformer - http//www.segue.com/html/s_soluti
ons/silk/s_performer.htm Bluecurve, Dynameasure
- http//www.bluecurve.com/products/products.htm
Rational, Rational Suite / PerformanceStudio -
http//www.rational.com/products/rs/pstudio/index.
jtmpl
44Questions?
- Matt Odhner
- Program Manager
- Application Center
- Microsoft