Performance Analyses with inspectit 23.03.2012
Über uns Beratungsschwerpunkte Performanceanalyse und -optimierung, Application Monitoring, Lastund Performancetests Architekturberatung Java-basierte Anwendungsentwicklung Beratungsschwerpunkte Performanceanalyse und -optimierung, Application Monitoring, Lastund Performancetests Java-basierte Anwendungsentwicklung
Agenda Motivation Auswirkungen schlechter Performance Ursachen inspectit Funktionsweise Sensoren Demonstration
Schlechte Performance ist teuer! Pro 100ms Beschleunigung wächst der Umsatz um 1% (Amazon) 1 (2) Sekunde mehr Verzögerung verringert den Umsatz um 3% (5%) (Bing-Microsoft) Pro 400ms Beschleunigung steigen die Pageimpressions um 9% (Yahoo) Schlechte Anwendungsperformance reduziert die Leistung Ihrer Mitarbeiter Performance Analyse und Optimierung wirkt sich nachweislich positiv aus
Performanceprobleme Ressourcenauslastung Konfiguration (bspw. Pools) Logik Synchronisierung Anwendung Logik auf der UI JavaScript Übertragungsdauer Netzgeschwindigkeit Legacy / Dienstanbieter Datenbanken Unnötig viele Aufrufe Zu große Ergebnismengen Ressourcen Auslastung
Application Performance Management Application Performance Management (APM) Initialisierung Analyse Realisierung Rollout Betrieb
Pragmatischer Lösungsansatz Performancetests sind risikogetrieben Einplanen von Performance Performance Anforderungen früh und konkret definieren Performancetests früh einplanen Kostenfreie Möglichkeiten Lasttest mittels Werkzeug (loadit, JMeter, Grinder) Messungen mittels Analyse/Diagnosewerkzeug (bspw. inspectit)
inspectit Kostenfreies Monitoring und Diagnosewerkzeug Pure Java Transparente Integration in jede Java Anwendung Bytecode Modifikation ermöglicht geringen Overhead
Ohne inspectit???
Mit inspectit!!!
inspectit Aufbau User Interface Server CMR App 1 Buffer App 2 User Interface App 3 cfg inspectit Agent
inspectit Funktionsweise SomeClass pre hook methoda() Sensor (Timer) Generische Realisierung der Datengewinnung post hook - Analysecode wird NICHT integriert. - Anwendungslogik methodc() wird NICHT beeinträchtigt - Informationsbereitstellung methodc() Nur definierte Methoden werden instrumentiert Sensor (Exceptions) Sensor (Invocation) Weitere Sensoren können einfach und transparent hinzugefügt werden.
Bytecode Modification 2. load JVM 1. retrieve Classloader 5. use 3. intercept 4. enhanced Java Agent Paketierte Anwendung (Klassen als Bytecode)
Unterstützung
inspectit Sensoren Benutzertransaktionen HTTP Anfragen Methodenlaufzeiten Kontext (Parameter) Datenbank Exceptions Systemauslastung
Out-of-the Box Frontend JSF Struts Servlet Business EJB Spring 1 Persistence SQL (+Parameters) Hibernate JPA JTA EclipseLink 1
Konfiguration Direkt (info.novatec.test.testclass) Einfache Pattern (info.*.test.*class) Superklasse/Interface (superclass=true, interface=true) Annotationen (@javax.ejb.stateless) Modifiers (pub, prot, def, priv)
Was kommt bald.net Unterstützung Verschiedene Datenhaltung Automatisierte Vergleiche JVM übergreifende Transaktionen
Demonstration: DVDStore
Hands-On Session Analysieren Sie die DVDStore Anwendung Verstehen Sie wie Sie mit inspectit Performanceprobleme finden Verwenden Sie einfache Lasttestmöglichkeiten um die Anwendung unter Last mit inspectit zu testen Übertragen Sie die Performanceanalyse auf ihr eigenes Projekt Diskutieren Sie mit uns über inspectit oder Performanceprobleme im Allgemeinen.
- Wir führen IT-Projekte zum Erfolg - NovaTec Ingenieure für neue Informationstechnologien GmbH Hauptniederlassung Dieselstr. 18/1 D-70771 Leinfelden-Echterdingen Telefon: +49 (0)711 220 40-700 Fax: +49 (0)711 220 40-899 Niederlassung München Landsberger Straße 439 D-81241 München E-Mail: info@novatec-gmbh.de Internet: www.novatec-gmbh.de Niederlassung Frankfurt Friedrich-Ebert-Anlage 36 D-60325 Frankfurt am Main Niederlassung Mittlerer Osten P.O. Box 140611 Jeddah 21333 Saudi-Arabien 24.03.2012 21