how to run a 1,000,000 vu load test using apache jmeter and blazemeter

26
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

Upload: alon-girmonsky

Post on 02-Jul-2015

684 views

Category:

Technology


0 download

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

Page 1: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

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

Page 2: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 3: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 4: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 5: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 6: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]

Apache  JMeter    

Page 7: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 8: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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?

Page 9: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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?

Page 10: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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)?

Page 11: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 12: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 13: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 14: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 15: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 16: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 17: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 18: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 19: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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!"

Page 20: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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  

Page 21: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@blazemeter 785 Castro Street, Mountain View, CA 94041|1.855.445.2285|[email protected]

The  Load  Sensi6vity  Point  

What  To  Look  For  

Page 22: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 23: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 24: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 25: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

@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

Page 26: How to Run a 1,000,000 VU Load Test using Apache JMeter and BlazeMeter

THANK  YOU  FOR  YOUR  TIME!  

Q  &  A  

For more information: BlazeMeter.com/blog/   [email protected]   @BlazeMeter