Loadtesting

oder

Was ist Performance?

Wer bist du ???


bastianwidmer.ch / @dasrecht

Agenda

Wieso dieser Vortrag?

Was ist Performance?

Fallbeispiel 1

User : "Das Backend der Webseite ist fürchterlich langsam!"

User sind mühsahm!

Aber wie ...

...erhalten wir etwas Aussagekräftiges?

Startsituation — "Baseline"

input => {magie} => output

Endsituation (nach Optimierungen)

ca. 2/3 Schneller... belegbar und reproduzierbar

Fallbeispiel 2

Hey Bastian ich habe etwas zum knobeln für dich!

Du hast einen neuen ungetesteten Serververbund mit 2 Frontend-Servern. Wir beginnen mit 7 Webseiten und skalieren bis 40. Jede dieser Seiten hat ca. 90k - 220k Hits Pro Monat Pro seite.

Funktioniert das?

Hmm...

Gib mir Zeit zum rechnen...

(23 Sites * (155 * 10^3 Hits/Month))
(30days * 24hours * 60minutes)

= ~82 Hits / Min ...

Kritik an dieser Rechnung?

Klassischer Ablauf bei "Performance Problemen"

  1. negatives Kundenfeedback
  2. Tests (von Hand)
  3. Beheben von 2-3 Bugs
  4. Performance immer noch im Keller (Kunde leicht säuerlich)
  5. AwesomeDoWhatImeanHotfix-Einspielen
  6. Traffic auf CDN's auslagern
  7. Kosten und Aufwand verhält sich derzeit reziprok zur Kundenzufriedenheit
  8. Optimieren des Client-Side Caches
  9. Cache Server hinstellen -> Varnish, TrafficServer
  10. Andere Optimierungen: Frontend Performance Considerations

What a mess!

Wieso es Sinn macht von Beginn an zu testen

The Tools

The Tools


many more like FunkLoad, Hammerhead2, Siege, curl-loader

simple, stupid: ApacheBench

                        ~ > ab -n150 http://bastianwidmer.ch
                        

Demo : ApacheBench

the Grinder

the Grinder

Demo : the Grinder

Apache Jakarta Jmeter

Demo : Jakarta Jmeter

Lasttests durchführen

Ablauf

  1. Lasttests schreiben
  2. Ziele definieren
  3. Lasttest ausführen und skalieren
  4. Auswerten der Resultate

Lasttests "schreiben"

Ziele definieren

Lasttests durchführen


Fire!

Halt halt halt, eine Bitte :

Informiert eure Hoster, bevor Ihr beginnt die Server zu belasten. Sie werden es euch danken!

Infrastruktur? Cloud? Skalieren?

Hää?

Kann ich die Dienstleistung auch einkaufen?

Kyte from Keynote

Kosten: 20k - 40k $ wenn die Tests durch einen Consultant erstellt werden (Load Pro Plan)

IT Dienstleister aus Bern

Kosten : 60k - 80k SFR

Selfmade Solution

Kosten : 120 SFR

Und wie das?


Grinder in the Cloud

Loadgenerators : 10 Hosts with 3 Workers on 5 Threads = 150 parallel users at the same time

the Grinder / Jmeter in the Cloud


Links

Daten Auswerten

Fragen?

Danke für die Aufmerksamkeit!

Liip is hiring!

liip.ch/jobs