Gatling stress tool via @usul_ and @slandelle at @BordeauxJUG

Stéphane Landelle talk about his open source stress tool gatling. François dussert also come to make a live demo and talk about how ezakus use Gatling.

Performance ?

  • Web speed is a user experience
  • Performance depends on context: user is ready to wait for a search but what about browsing home page ?
  • Speed matters not only on tech side
    • google added 500ms additionnal lags to their page: they’ve lost 20 percent of traffic !
    • amazon added 100ms to page loading: they’ve lost 1% sales == $160M

Methodology

  • Load testing comes after proper local perf testing: you should have a reference and find dev / local bottlenecks
  • find hotspot -> fix -> find hotspot == iterativ process
  • you need a lot of tools

Load types

  • Capacity test
    • how much users can we handle ? -> puts data
  • Stress test
    • handle attack or activity spike
  • Endurance test
    • long period of activity

Caches

  • remember to warm caches before testing
  • do not use always the same key cache (user, http request path…) – randomize or feed requests with data

Reports

  • Metrics
    • min / max ? not really useful
    • mean can be biased
    • percentile is great:  95th percentile = limit of 95 percent of metrics

Stress testing should be a part of the development process and integrated in automate testing

Why Gatling ?

  • Jmeter is reference and so on….
  • the gatling founder dont find a suitable tool for his needs so he coded it !
  • previous tools:
    • have internal performance issues
      • multi threaded
        • blocking I/O
        • waiting and sleeping thread for simulating user behavior
  • Usability matters
  • Maintainabilty (scenario in xml ? ouch !)
Its a real hard work to develop an open source tool…

Actor model based

  • actor have a mail box and push to other actor
  • multicore manage easier multiple tiny tasks
  • use the framework akka

IO Async

  • use async http client abstract on top of Netty

Scenario

  • DSL
  • u can use scala
  • items types
    • checks
    • structures
    • error handling
    • feeders
  • recorded as http proxy to your browser: record scenario use cases (and capture time pauses !)

Integration

  • maven
  • jenkins
  • graphite

Incoming

  • websockets
  • JDBC
  • clustering (but do you really need it ? your network card will be the first bottleneck

Demo with françois

  • Gatling at ezakus
    • use for http hits testing
    • hits on 15 glassfish servers
    • 100 M hits by day
    • 3000 req / s peaks
    • 2000 req /s mean by day

My conclusion

Gatling is a really nice http stress tool. I like a lot the reporting and the scenari possibilities to have a realistic behavior with your application caching.

This is stacked to my todo list. I  want to test a new varnish conf, or a overloaded database in size its perfect !

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *