WebStress - InterSystems

Transcription

WebStress - InterSystems
WebStress
Bill McCormick
Fall 2011
What is WebStress
• A utility being shipped as part of the product in 2011
• A tool that allows for recording http traffic between any client
and server that supports running thru a proxy
• Tailored for CSP and Zen specifically
• Allows for customizing and/or randomizing the data being
utilized from a given recorded base script
• Can play back multiple recordings simultaneously to simulate
load and verify results, including performance metrics
• Also has applications for QD, UnitTesting and other
purposes
Why WebStress?
• TrakCare performance evaluations required for certain bids
– Brisbane
– Edinburgh
• LoadRunner and other tools for this can be very expensive
• Managing CSP / Zen based applications requires a few little
tricks to benchmark correctly
• Has been used in dozens of benchmarks since 2002
• Chile - Used to verify performance standards
• Added as a utility for use by customers in 2011.1
Some core concepts
• Controller
– Manages the playback of a test and gathers results
• Generator
– Machine that is executing the script and randomization logic
during playback. Can be same machine as controller
• WebServer
– The URL that the application is running over. In the case of a
Cache system it also allows us to connect to the server
• App Server
– The actual database being used by the test under Cache
Continued
• NoEncrypt Flag
– Sets the flag that allows benchmark recordings and
playback to work on CSP / Zen based solutions
• No Delay
– For non page content ignore recorded delays
– js, html, css, jpg etc
• No Results
– For non page content ignore results
– js, html, css, jpg simulates cacheing
Continued
• Scripts
– A collection of http requests that from a UI perspective
represent a “transaction” or “workflow”
• Tests
– A collection of scripts that when combined represent a
“server usage profile”
• Save Page Source
– For verification purposes this will loop over a script and
save the returned page content to a local directory
Recording
• WebStress has a facility that launches a listener on a defined
port
• A browser for example can be configured to use this port as
a proxy and we capture the output
• We will offer to set the no encrypt flag for a given cache
service when the listener is launched
• The recorder also generates a routine for providing
randomization logic
Recording
• Demonstrate
Customizing a Script
• Once a recording is completed we can edit it to change settings and
values or completely randomize data being used
– Parameters
• These are name value pairs that were submitted via http
– Http Headers
• This is the information your browser added to the http request when it
was POSTed or GET
– URLs
• These are the individual http requests captured. They can be removed
or manually added
• This can be done manually in the script itself or by overriding
the stubs in the generated routine.
Challenges
• Implementing the randomization logic is the most
challenging task involved in building a benchmark run
– May require a copy of the live data
– May require business logic flow to safely implement
– Must be done to generate a proper test
Creating a Test - Settings
• Controls when and how the playback of the various scripts is
launched
– Scheduled
– Start now
• Run time settings
–
–
–
–
–
–
Run time
Warm up
Cool down
Delay Mode
Page Source
Use HTTPS
Tests Continued
• Adding Scripts
– Select a Script
– Choose a Generator
– Choose a Web Server
– Define the rate
• Sessions
• Processes
– URL Loopback
– Target
• Repeat as needed
Running a Benchmark
• Preparing a Test
– Starts the processes on the Generator
– Starts the controller’s listener that drives the generators and collects
the data
• Run the Test
– The Controller sends the start signal to the generators
– Results are ignored for the duration of the “warm up”
– Live results display on this page
• After the test
– Results are processed
– Jobs Halted
Running a Benchmark
• Let’s start a test while we talk
Running a Benchmark - Cont
• While the test is running you will see information on the current Rates Per
Minute. These are color coded to indicate how close to your target for a
given script you are doing.
• If you need to you can stop a test, adjust the settings for the Sessions and
Processes and rerun the test again to aim closer to target
Debug Mode
• You have the option to run a script and have the returned pages be stored
to disk. This is very handy for debugging a script and validating that things
are performing correctly.
• To do this we specify the Source Directory and the Save Page Source
options in the test settings.
• This creates a structure at that location that represents each script, and
each time we looped thru the URLs
Running a Benchmark
• Verify our demonstration
WebStress Results
• Run History Page
• WebStress.Results.Iterations
• WebStress.Results.PageSummary
• Capture time to first byte, last byte average/max/min
• Exportable to Excel
WebStress Summary
• Runs on 2011.1
• Can be used against any http based application
• Keep Alive must be disabled during recording
• Only the tool must run on 2011.1. It can push load at any
version of Cache.
WebStress Academy
• Thank you
• Bill McCormick - bill.mccormick@intersystems.com
• Iain Bray - Lead developer - Iain.Bray@intersystems.com
WebStress
Bill McCormick
bill.mccormick@intersystems.com