Im Rahmen der Developer Konferenz des Internet-Briefing zeige ich Last- und Performancetests mit Proxy Sniffer (http://www.proxy-sniffer.com/).
Die Präsentation dient dabei als Einleitung und Begleitung. Die Demo ist hier kurz zusammengefasst: http://www.youtube.com/watch?v=kP7ZxGTBync
5. Welche Elemente lädt der Browser?
- unconditional request
- conditional request
Browser http/s
Website
8. Dez. 2011 5 Last. Performance. Im Griff. Namics.
6. Unconditional versus conditional
Unconditional (leerer Cache / erster Besuch)
GET
Browser Website
Conditional (hat das/ein Element lokal)
If-Modified-
Since?
Browser Website
304
8. Dez. 2011 6 Last. Performance. Im Griff. Namics.
7. Was lädt der Browser?
- Quelle
- Grösse
- Anzahl Requests
- Reihenfolge
- Headerdaten / Protkoll
Browser http/s
Website
8. Dez. 2011 7 Last. Performance. Im Griff. Namics.
8. Welche Elemente lädt der Browser?
- im Vergleich zur alten Website
Browser http/s
Website
8. Dez. 2011 8 Last. Performance. Im Griff. Namics.
9. Lesen...
must should
http://stevesouders.com/
http://code.google.com/sp
Caching verstehen! eed/articles/
z.B. http://www.mnot.net/cache_docs/
8. Dez. 2011 9 Last. Performance. Im Griff. Namics.
15. Wann welches Tool (Fokus Ladeverhalten)?
Firebug Webpagetest Charles Proxy Sniffer
Browser nur FFox ausgewählte alle alle
Testpunkt lokal remote lokal lokal / remote
(unkontrolliert) (kontrolliert)
Details ++ - ++ +
Aufzeichnung nein nein ja ja
Automati- nein nein nein ja
sierung
Kosten gratis gratis USD 50 gratis / Lizenz
für Mobile nein nein ja (Proxy) ja (Proxy)
Spezialität - Clientcode - Sicht “aus - Throttling - CMD Line
Analyse dem Internet” - Rewrite - Lasttest
- Übersicht - FFox Menu
Sackmesser Fast Food Rolls Royce Alles drin
8. Dez. 2011 15 Last. Performance. Im Griff. Namics.
17. Was?
Lastverhalten und Performance
Auslieferungszeit der Seiten (Usersicht)
Anzahl parallele Users
benötigte Bandbreite
Stabilität
über Zeit Memory Leaks & Overflows
unter Last Concurrency & Deadlocks
Fittness der Infrastruktur
Reproduktion von Problemen für Fixing
8. Dez. 2011 17 Last. Performance. Im Griff. Namics.
18. Wann?
Integration /
Deployment
Proof of
Anforderungen Concept Entwicklung Going Live Betrieb
Spezifikation der Test Test der
Bedürfnisse eingesetzter Anwendung
• gleichzeitigen User Frameworks
• Anzahl Requests Bei jedem
• User Stories Release / Fix
• Antwortszeit / -
verteilung
8. Dez. 2011 18 Last. Performance. Im Griff. Namics.
20. Komponenten von Proxy Sniffer
Nur zwei Dateien: prxsniff.jar (16.4 MB) and prxsniff.key
Gute Doku
port 7999 aufzeichnen
HTTP Proxy
port 7990
WebAdmin / GUI
port 7993
Exec Agent ausführen
port 7995
Job Controller
8. Dez. 2011 20 Last. Performance. Im Griff. Namics.
21. Ablauf einer Testsequenz
Szenario anpassen (one
aufzeichnen thing at the time)
Validieren
(Aufzeichung Test auswerten
anpassen)
Test generieren
Test ausführen
(java)
Test kompilieren
(class)
8. Dez. 2011 21 Last. Performance. Im Griff. Namics.
22. Test ausführen und auswerten
8. Dez. 2011 22 Last. Performance. Im Griff. Namics.
23. Demo von Proxy Sniffer
Am Vortrag live gezeigt und sich hier im Überblick:
http://www.youtube.com/watch?v=kP7ZxGTBync
8. Dez. 2011 23 Last. Performance. Im Griff. Namics.
25. Beispiel 1
Kapazitätsgrenze
12Mb / Sekunde
instabil
8. Dez. 2011 25 Last. Performance. Im Griff. Namics.
26. Beispiel 2
85Mb / Sekunde
8. Dez. 2011 26 Last. Performance. Im Griff. Namics.
27. Beispiel 3
Problem mit
Nebenläufigkeit
8. Dez. 2011 27 Last. Performance. Im Griff. Namics.
28. Beispiel 4
wunderbar
8. Dez. 2011 28 Last. Performance. Im Griff. Namics.
29. Wie?
Richtig schwierig ist das Szenario
User Stories als Grundlage (“follow the money”)
Auftraggeber / Domänenexperte
Analytics (zuzüglich Sicherheitsmarge)
Unterschiedliche Testaspekte
Bandbreite ein grosses Element max. wiederholen
Anzahl Transaktionen: Kurze Testzyklen mit steigender
Nutzerzahl 1, 5, 25, 50, 75, 100... (Asymptote / Crash)
Long Runner Wenig Last aber sehr lange
System unter Last stoppen und starten
8. Dez. 2011 29 Last. Performance. Im Griff. Namics.
30. Wo klemmts (typischerweise)?
Network (Pipe, Router, Firewall) < 1%
Load Balancer 5%
Reverse Proxy (Produkt) 5%
Reverse Proxy (Konfiguration) 10 %
OS Konfiguration (TCP/IP Stack) 5%
Framework 10 %
Konfiguration der Anwendung 20 %
Programmcode der Anwendung 40 %
Datenbankmanagementsystem 5%
Quelle: David Fischer
8. Dez. 2011 30 Last. Performance. Im Griff. Namics.
32. Zusammenfassung
IMMER testen
Produkteigentümer definiert die Anforderungen
früh im Projekt testen (aber spät optimieren)
Möglichst nahe am Produktionssystem testen
90% der Requests genügen (ausser bei Fehlern)
Guten Szenarien sind die Knacknuss
8. Dez. 2011 32 Last. Performance. Im Griff. Namics.
33. Internet Briefing. Developer Konferenz.
Clientseitige Last- & Performancetests. Namics.
juerg.stuker@namics.com
@jstuker
8. Dezember 2011