how to run a 1,000,000 vu load test using apache jmeter and blazemeter
DESCRIPTION
In Future Stack 2014, I'll present how to create, run and analyze a load test of 1M concurrent users. Here are the slides. BlazeMeter is a performance lab in a box, ready to run load of up to 1M users against your mobile, web or API, from Multi GEO locations, 100% compatible with Apache JMeter.TRANSCRIPT
785 Castro Street, Mountain View, CA 94041 | 1.855.445.2285 | [email protected]
How to Run a Test for 1M Users Backend Tes6ng (Mobile, Web & API)
Alon Girmonsky Founder & CEO
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Are You Sure?
• Question: Do you really need to test a concurrency level of 1M users?
Answer: a. I only need 1M named users b. I really expect to have 1M concurrent open
sessions c. I don’t know
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Things to Consider
• The Script • The Performance Lab • Running the Test • Understanding the Results • Test Iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Things to Consider
• The Script • The Performance Lab • Running the Test • Understanding the Results • Test Iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Comprehensive ScripGng at Your FingerGps
How Do I Write the Script?
JMeter is the most commonly used open source web, mobile and API backend tesGng soluGon. BlazeMeter is 100% compaGble with JMeter
HTTP / HTTPS
Login / Signup
Form POSTing / Credit Card Transac6ons
Rest / Web Services / JSON
Parameters Extrac6on ( JSON / RegEx / Xpath )
Mobile
Mongo, MSSQL, Oracle SQL, MySQL
Mul6ple User Profiles
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Apache JMeter
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Things to Consider
ü The Script • The Performance Lab • Running the Test • Understanding the Results • Test Iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Challenges (1/3)
The Performance Lab
• Resources. Are they: – Sufficient? – Strong? – Dedicated?
• Bandwidth – Can I saturate my system? – Is the load network stable?
• Throughput – Can I generate enough hits per second?
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Challenges (2/3)
The Performance Lab
• Load Distribution – Will the load be evenly distributed across
resources? • CDNs
– Am I testing a CDN (e.g. Akamai)? – Is the test realistic? – Will I avoid traffic shaping?
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Challenges (3/3)
The Performance Lab
• DDOS – Can I avoid triggering DDOS mechanisms?
• Load Balancers – Can I handle the load balancers properly (e.g.
close TCP connections on time)?
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
4,400 CPU Cores & 16.5 TB of Memory
The JMeter Super Computer
Load Engine Type: m3.xlarge CPU: 4 Cores Memory: 15 GB BW: 100Mbps Max TPS: 1K
1,000 X
= 1M Users
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Load Cluster = Console + 10 Engines
1+10 X
4,400 CPU Cores & 16.5 TB of Memory
The JMeter Super Computer
Load Engine Type: m3.xlarge CPU: 4 Cores Memory: 15 GB BW: 100Mbps Max TPS: 1K
CPU: 44 Cores Mem: 165 GB BW: 1 Gbps M/TPS: 10K
1,000 X
= 1M Users
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Super Cluster = 100 X Load Clusters
Load Cluster = Console + 10 Engines
1+10 X
4,400 CPU Cores & 16.5 TB of Memory
The JMeter Super Computer
Load Engine Type: m3.xlarge CPU: 4 Cores Memory: 15 GB BW: 100Mbps Max TPS: 1K
CPU: 44 Cores Mem: 165 GB BW: 1 Gbps M/TPS: 10K
CPU: 4,400 Cores Mem: 16.5 TB BW: 100 Gbps M/TPS: 1M
100 X
= 1M Users
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Up to 1M Users, Mul6 GEO, 100% Apache JMeter Compa6ble
Performance Lab in a Box
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Things to Consider
ü The Script ü The Performance Lab • Running the Test • Understanding the Results • Test Iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Challenges
Running the Test
• Time-to-test should be minutes • Synchronizing all the servers to start at once • Crunching the data
– 4GB of data per hour
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Time-‐to-‐Test < 2 Minutes
Running a Test With 1M Users
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Things to Consider
ü The Script ü The Performance Lab ü Running the Test • Understanding the Results • Test Iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
What To Look For
"We'd like to squeeze in a load test for XXXX's biggest event of the year, the Fantasy Football season. Our best opportunity to execute this is tonight at 3-7am EST. We'd like to generate a constant 40,000 hits/sec for about 1 hour. .."
Tradi6onally this would have taken weeks and cost $$$
“This would have been a disaster for our most important day of the year. BlazeMeter really saved our bacon here. …. and kudos on the success!"
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Time-‐to-‐Test < 2 Minutes
Running a Test With 1M Users
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
The Load Sensi6vity Point
What To Look For
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
NewRelic Integra6on
Capture Monitoring Data Capture Load Testing Data Ask the Test Data any Question
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Things to Consider
ü The Script ü The Performance Lab ü Running the Test ü Understanding the Results • Test Iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Run Load Test
Analyze Client Performance
Analyze Server
Performance
Update Back End Code /
Infrastructure
Run as Many Itera6ons as Needed – and More!
Performance Op6miza6on
• Load + Results • Look outside & within
– App KPIs – Load KPIs
• Run hundreds of iterations
@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]
Made for Developers, Time-‐to-‐Test < 2 min
Tes6ng Can Save Your Day!
• Run dozens to hundreds of test iterations • Run once, then automate • Test continuously
Ø A Superior Product Ø A Faster Release Cycle
THANK YOU FOR YOUR TIME!
Q & A
For more information: BlazeMeter.com/blog/ [email protected] @BlazeMeter