Profiling und Monitoring von Web-Anwendungen Agenda

Werbung
28.05.2010
1
Profiling und Monitoring von Web-Anwendungen
„Quality of Service“ mit Profiling und Monitoring sicherstellen
Hendrik Neumann
W3L GmbH
www.W3L.de
Vortrag auf dem sechsten
Treffpunkt@IT-Ruhr in Witten am 27.05.2010
www.IT-Ruhr.de
2
Agenda
Teil 1: Vortragsfokus
Teil 2: Profiling der Netzwerkkommunikation mit Fiddler
Teil 3: Profiling des Clients mit Firebug
Teil 4: Profiling des Application-Servers mit JProfiler
Teil 5: Fallbeispiel „Erkennen von Speicherlecks“
Teil 6: Monitoring der gesamten IT-Infrastruktur mit Nagios/Icinga
Teil 7: Monitoring der Java-VM: Java Management Extensions (JMX)
Teil 8: Fallbeispiel „Erkennen von Deadlocks“
Fallbeispiel Speicherleck
Fallbeispiel Deadlock
zurück
Copyright W3L GmbH
1
28.05.2010
3
Vortragsfokus
Entwicklungszyklus einer Web-Applikation
Für Entwicklung viele Tools und Vorgehensweisen
Aber: „viele“ Probleme treten erst beim Kunden auf!
Nebenläufigkeitsprobleme
Verfügbarkeit / Antwortzeiten / Latenzzeiten
Clientseitige Laufzeitprobleme
Vortragsfokus
Erfahrungen aus der Praxis zur Lösung solcher Probleme
die erst kurz vor- oder nach der Veröffentlichung auftreten
Quality of Service
Performance und Stabilität mit Profiling verbessern
Verfügbarkeit mit Monitoring überwachen und Fehler identifizieren
Copyright W3L GmbH
4
Umgebung im eigenen Haus
Profiling
Detaillierte Informationen
über das Verhalten der
Software
Speicherlecks und
PerformanceProbleme erkennen
Profil-Abbilder erstellen und
vergleichen
Nachteile
Performanceeinbruch im Betrieb
Kontext aus Sicht der
Benutzeranzahl und
Systemumgebung unrealistisch
Keine permanente Überwachung
möglich/ratsam
Copyright W3L GmbH
2
28.05.2010
5
Umgebung beim Kunden
Monitoring
Automatisierte Überwachung
einer Applikation
Verfügbarkeit überwachen
Fehler im laufenden Betrieb
aufspüren
Vorteile
Über jeden Fehler informiert –
zeitnaher Support möglich
(Idealfall: bevor sich der Fehler beim
Kunden bemerkbar macht)
Detaillierte Informationen über
Nutzerverhalten
Nachteile
Fehler werden erst erkannt, wenn
es u.U. zu spät ist.
Keine tiefgehenden Informationen,
warum Probleme auftraten (?)
Copyright W3L GmbH
6
Profiling von Web-Applikationen
Firebug
Copyright W3L GmbH
3
28.05.2010
7
Fiddler als HTTP-Profiling-Werkzeug
HTTP debugging proxy
Entwickelt von einem Microsoft-Mitarbeiter
Beim Start automatische Integration in IE und FF (Extension)
Funktionsumfang
Speicherung der gesamten HTTP-basierten Netzwerk-Kommunikation
HTTPS-Verschlüsselung
Entschlüsselung der Kommunikation
Jeder Request/Response kann inkl. statistischer Daten eingesehen
und gespeichert werden
Brakepoints: Bei bestimmten Filter-Kriterien anhalten und ggf.
Request-Parameter und/oder Response ändern
Remote-Verbindung möglich (auch ohne Installation und ohne
Administrator-Rechte)
Request-Builder: Requests erneut abschicken und Daten frei
manipulieren
Copyright W3L GmbH
8
Javascript Profiling mit Firebug
Erweiterung für Firefox
Spezial-Anwendung für Analyse von Webseiten
Inkl. des manipulierten DOM-Baumes
Anwendungen
Debugging
Monitoring
Profiling
Monitoring-Funktionen
Zeitliche Abfolge der HTTP-Requests inkl. statistischer Daten
Profile-Funktionen
Funktionsaufrufe loggen
Zeitmessung
Prozentuale Verteilung
Genaue Zeitdauer einzelner Methodenaufrufe inkl.
Verschachtelung (welche Methode wird aus welchem Kontext
aufgerufen)
Copyright W3L GmbH
4
28.05.2010
9
ej-technologies JProfiler
Kommerzielles Profiling-Programm für Java
Features
Kein Konfigurationsaufwand und sehr intuitive Benutzerführung
Vordefinierte Templates für bestimmte Profilingziele (z.B.
„Performance bottleneck“)
Profiling Daten werden in Echtzeit, also während das Programm läuft,
präsentiert
Trigger
Visualierung des Heapspeichers ermöglicht schnelles Auffinden von
Speicher-Lecks
Integration in alle gängigen IDEs und Application-Server
Aufgaben von Kommandozeile ausführen
On-Demand-Profiling: ermöglicht Integration in laufende Systeme
Copyright W3L GmbH
10
Profiling-Fallbeispiel Speicherleck
Ziel: Erkennen von Speicherlecks
Szenario
Entwicklung eines CMS (Office2Web Dokumentenmanagement)
Anforderungen aus Pflichtenheft realisiert
Abschließendes Testen in der Firma
Mitarbeiter bemerkt Speicheranstieg bei fortlaufender Interaktion mit
der Anwendung
Applikation reagiert nicht mehr
Aufgabe: Engpass und Speicherleck finden
Copyright W3L GmbH
5
28.05.2010
11
Monitoring von Web-Applikationen
Copyright W3L GmbH
12
Nagios / Icinga
Was ist Nagios?
Monitoring Plattform zur Überwachung von IT-Infrastrukturen
Modulares Konzept (C, C++, C#, Java, Perl, Python, PHP)
Open-Source Werkzeug mit großer Gemeinde („Quasi-Standard“)
Viele externe Erweiterungen
PerfParse: Performance-Analyse von Datenbanken
Zahlreiche Visualisierungsmöglichkeiten
Icinga
Bei Nutzern größere Unzufriedenheit über Bugfixing, neue Features,
GUI, Verhalten gegenüber der Community
Gründung eines Nagios-Forks von unzufriedenen NagiosEntwicklern/Anwendern: Icinga (März 2009); Aktuelle Version: 1.0.1
Plattform: Unix/Linux
Clients
Nagios Checker als Firefox-Erweiterung
Nagstamon als Desktop-Client
Copyright W3L GmbH
6
28.05.2010
13
Monitoring: Java Management Extensions (JMX)
Spezifikation zur Verwaltung und zum Monitoring von JavaAnwendungen, implementiert in
JVM ab Version 1.5, größere Änderungen in Java 6
Unterstützung aller gängiger Application-Server und ServletContainer
Überblick
Zu überwachende Ressourcen werden als MBeans implementiert
Objekt-Repository enthält zu verwaltende Objekte
Management Agent verwaltet Repository und realisiert Management
Infrastruktur
Einfache Integration in bestehende Anwendungen
Management-Tools
JConsole als integraler Bestandteil von JDK 1.5
Abfrage möglich mittels JMX-Querys
Copyright W3L GmbH
14
Architektur-Übersicht der JMX
Copyright W3L GmbH
7
28.05.2010
15
MBean-Komponenten
„Managed Bean“: per dependency injection erzeugte JavaBean
Aufgaben
Applikationseinstellungen verändern (pull)
Statistiken für Performance-, Zugriffs- oder Problemanalysen
sammeln
Events bei Statusänderungen, Fehlern etc. auslösen
Nagios und JMX
Mehrere Module verfügbar
Java Programm muss mit JMX-Freigabe gestartet werden
Abfragen in Konfiguration eintragen
-Dcom.sun.management.jmxremote.port=9958
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Copyright W3L GmbH
16
Fallbeispiel Erkennen von Deadlocks
Ziel: Monitoring mit JMX und Nagios realisieren
Szenario
Web-Applikation reagiert bei dem Kunden nicht mehr
Analyse mit Fiddler hat ergeben, dass Client korrekt arbeitet
Server gibt keine Fehlermeldungen aus
Vermutung: Deadlock
Aufgabe: Deadlock finden
Copyright W3L GmbH
8
28.05.2010
17
JMX und Nagios
Interface
Registrierung der MBean
Copyright W3L GmbH
18
JMX und Nagios
Copyright W3L GmbH
9
28.05.2010
19
JMX und Nagios
define command{
command_name
command_line
JMXDeadlock
/usr/lib/nagios/plugins/check_jmx
-U service:jmx:rmi:///jndi/rmi://ip:9958/jmxrmi
-O de.w3l:type=DeadlockDetection
-A DeadlockedThreads
-I DeadlockedText
-w 1
-c 10
}
define service{
use
host_name
service_description
check_command
normal_check_interval
retry_interval
check_interval
}
generic-service
Entwicklung
DeadlockErkennung
JMXDeadlock
1
1
1
Copyright W3L GmbH
20
JMX und Nagios
JMX-Erweiterung check_jmx
check_jmx
Copyright W3L GmbH
10
28.05.2010
21
JMX und Nagios
Copyright W3L GmbH
22
Produkt-Websites
Profiling
Netbeans IDE: http://www.netbeans.org/
Eclipse Test & Performance Tools: http://www.eclipse.org/tptp/
JProfiler: http://www.ej-technologies.com/products/jprofiler
Monitoring
Fiddler: http://www.fiddler2.com
JMX: http://java.sun.com/javase/technologies/core/mntrmgmt/javamanagement/
Nagios: http://www.nagios.org/
Nagions-JMX-Erweiterung:
ICINGA: http://www.icinga.org/
Sonstiges
Roadmap für Java 7: http://openjdk.java.net/projects/jdk7/
Copyright W3L GmbH
11
28.05.2010
23
Literatur, Tutorials und interessante Quellen
JavaTM Management Extensions (JMXTM) Specification, version
1.4
http://java.sun.com/javase/6/docs/technotes/guides/jmx/JMX_1_4_s
pecification.pdf
Monitoring mit JMX, JConsole und MBeans (Sun Tutorials):
http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html
http://java.sun.com/docs/books/tutorial/jmx/mbeans/standard.html
Nagios-Plugin-Verzeichnis
http://www.nagiosexchange.org/
JSR 255 (JMX 2.0)
http://jcp.org/en/jsr/detail?id=255
http://weblogs.java.net/blog/2008/04/25/query-language-jmx-api
Copyright W3L GmbH
24
Vielen Dank für Ihre Aufmerksamkeit
(Weitere) Fragen?
Copyright W3L GmbH
12
Herunterladen